- Symulator MaSzyna -
Symulator EU07 (i nie tylko) => Pomoc w tworzeniu => Wątek zaczęty przez: Patrykos w 22 Kwietnia 2008, 16:11:02
-
Witam!
Jak wiemy, mamy możliwość sterowania zwrotnicą. Bardzo to się przydaje do wykonywania dodatkowych manewrów w celu urozmaicenia służby. Jednak niekiedy utrudnia nam to anglik (czyt. rozjazd krzyżowy). Macie może jakieś pomysły, za pomocą czego można sterować rozjazdem krzyżowym?
Pozdrawiam
Patryk
-
Mnie na myśl przychodzą tylko eventy pod kolejnymi cyframi. No, i do takiej służby raczej przydała by się także możliwość zmiany świateł na semaforach. Może pan Ra wymyślił by program, elastycznie modyfikujący eventy w sceneriach? coś do swojego startera, bo odczytywanie pozycji torów i semków już wykonał w starterze :)
To znaczy, odnajdujemy swoje zwrotnice/semafory, klik, wybieramy sygnał/położenie z rozwijanej listy, i w symku na bieżąco się to zmienia.
-
Mnie na myśl przychodzą tylko eventy pod kolejnymi cyframi.
Cyfr masz tylko 10. A anglików w scenerii? Potem kolejny problem - która cyfra do którego?
-
Faktycznie. Dlatego może ten program sterujący eventami w symku, w czasie rzeczywistym. Wybieram semafor i ustawiam sobie co tam na nim chce.
-
Mnie na myśl przychodzą tylko eventy pod kolejnymi cyframi. No, i do takiej służby raczej przydała by się także możliwość zmiany świateł na semaforach. Może pan Ra wymyślił by program, elastycznie modyfikujący eventy w sceneriach? coś do swojego startera, bo odczytywanie pozycji torów i semków już wykonał w starterze :)
To znaczy, odnajdujemy swoje zwrotnice/semafory, klik, wybieramy sygnał/położenie z rozwijanej listy, i w symku na bieżąco się to zmienia.
W symku na bieżąco przez starter Ra tego nie zmienisz. Takie zmienianie położenia zwroty itd. (wywoływanie eventów) możliwe jest, ale tylko gdy exe symka ma taką możliwość zaimplementowaną... I tylko z poziomu tej aplikacji.
-
Trzeba zrobić tak jak ze zwrotnicami. Jeden lub dwa klawisze sterujące, zasięg do 5m.
//sterowanie zwrotnica za pomoca klawiszy t,T
node -1 0 (p1) eventlauncher (p2) (p3) (p4) 5.0 t 0 (p1)- (p1)+ end
bo mamy dwa eventy sterujące zwrotnicą:
//---globalne (zewnetrzne) procedury sterujace:
event (p1)- multiple 0 none (p1)_Wz1 (p1)_0 (p1)_Vmax endevent
event (p1)+ multiple 0 none (p1)_Wz2 (p1)_1 (p1)_V40 endevent
Dla rozjazdu krzyżowego będzie podobnie:
// 4 zwrotnice wchodzace w sklad rozjazdu krzyzowego maja sie nazywac (p1)_a, (p1)_b, (p1)_c i (p1)_d
// globalne (zewnetrzne) procedury sterujace:
event (p1)ac multiple 0 none (p1)_Wz6 (p1)_aV100 (p1)_a0 (p1)_b0 (p1)_c0 (p1)_d0 endevent
event (p1)bd multiple 0 none (p1)_Wz5 (p1)_aV100 (p1)_a0 (p1)_b0 (p1)_c0 (p1)_d0 endevent
event (p1)bc multiple 0 none (p1)_Wz8 (p1)_aV40 (p1)_a1 (p1)_b1 (p1)_c1 (p1)_d1 endevent
event (p1)ad multiple 0 none (p1)_Wz7 (p1)_bV40 (p1)_a1 (p1)_b1 (p1)_c1 (p1)_d1 endevent
Więc sterowanie można zrobić następująco:
//sterowanie rozjazdem za pomoca klawiszy s,S,t,T
node -1 0 (p1) eventlauncher (p2) (p3) (p4) 5.0 s 0 (p1)ac (p1)ad end
node -1 0 (p1) eventlauncher (p2) (p3) (p4) 5.0 t 0 (p1)bc (p1)bd end
Powyższy wpis musi być poza origin, aby wyzwalanie znalazło się w odpowiednim miejscu (plik sterujący rozjazdem rozkrz34R150.inc i tak nie ma struktury origin, więc wpis można umieścić w dowolnym miejscu).
Sterowanie ręczne semaforami robi się w podobny sposób. Wystarczy poczytać, porównać i pomyśleć.
2008-07-07 Poprawiłem odległości na 5m - są teraz pogrubione, podobnie jak kod klawisza.
-
Trzeba zrobić tak jak ze zwrotnicami. Jeden lub dwa klawisze sterujące, zasięg do 5m.
//sterowanie zwrotnica za pomoca klawiszy t,T
node -1 0 (p1) eventlauncher (p2) (p3) (p4) 3.0 t 0 (p1)- (p1)+ end
bo mamy dwa eventy sterujące zwrotnicą:
//---globalne (zewnetrzne) procedury sterujace:
event (p1)- multiple 0 none (p1)_Wz1 (p1)_0 (p1)_Vmax endevent
event (p1)+ multiple 0 none (p1)_Wz2 (p1)_1 (p1)_V40 endevent
Dla rozjazdu krzyżowego będzie podobnie:
// 4 zwrotnice wchodzace w sklad rozjazdu krzyzowego maja sie nazywac (p1)_a, (p1)_b, (p1)_c i (p1)_d
// globalne (zewnetrzne) procedury sterujace:
event (p1)ac multiple 0 none (p1)_Wz6 (p1)_aV100 (p1)_a0 (p1)_b0 (p1)_c0 (p1)_d0 endevent
event (p1)bd multiple 0 none (p1)_Wz5 (p1)_aV100 (p1)_a0 (p1)_b0 (p1)_c0 (p1)_d0 endevent
event (p1)bc multiple 0 none (p1)_Wz8 (p1)_aV40 (p1)_a1 (p1)_b1 (p1)_c1 (p1)_d1 endevent
event (p1)ad multiple 0 none (p1)_Wz7 (p1)_bV40 (p1)_a1 (p1)_b1 (p1)_c1 (p1)_d1 endevent
Więc sterowanie można zrobić następująco:
//sterowanie rozjazdem za pomoca klawiszy s,S,t,T
node -1 0 (p1) eventlauncher (p2) (p3) (p4) 3.0 s 0 (p1)ac (p1)ad end
node -1 0 (p1) eventlauncher (p2) (p3) (p4) 3.0 t 0 (p1)bc (p1)bd end
Powyższy wpis musi być poza origin, aby wyzwalanie znalazło się w odpowiednim miejscu (plik sterujący rozjazdem rozkrz34R150.inc i tak nie ma struktury origin).
Sterowanie ręczne semaforami robi się w podobny sposób. Wystarczy poczytać, porównać i pomyśleć.
Albo coś zrąbałem albo nie działa...
-
Albo coś zrąbałem albo nie działa...
Może nie do tego pliku inc co trzeba wsadziłeś te eventy... Ja np. mam 7 plików z anglikami.
rozkrz34R150.inc
krzyzowy8R150.inc
krzyzowy8R150l.inc
krzyzowy8R150p.inc
krzyzowy8R150w.inc
krzyzowy8R150pw.inc
rkpd.inc
Także... W którymś na pewno zadziała.
-
Więc tak...wiemy jak sterować zwrotnicą, wiemy jak sterować anglikiem, a teraz się zapytam, jak sterować semaforem?(Jak wspomniał @Ra)
-
Za plikiem SS5zpcpbI:
//stany semafora:
event (p1)_s1 multiple 0 none (p1)_sem_ligh1 (p1)_sem_info_stop (p7)_os1 endevent
event (p1)_s2 multiple 0 none (p1)_sem_ligh2 (p1)_sem_info_vmax (p1)_sem_distinfo_vmax (p7)_os2 endevent
event (p1)_s3 multiple 0 none (p1)_sem_ligh3 (p1)_sem_info_vmax (p1)_sem_distinfo_v100 (p7)_os2 endevent
event (p1)_s4 multiple 0 none (p1)_sem_ligh4 (p1)_sem_info_vmax (p1)_sem_distinfo_v40 (p7)_os2 endevent
event (p1)_s5 multiple 0 none (p1)_sem_ligh5 (p1)_sem_info_vmax (p1)_sem_distinfo_stop (p7)_os2 endevent
event (p1)_s10 multiple 0 none (p1)_sem_ligh10 (p1)_sem_info_v40 (p1)_sem_distinfo_vmax (p7)_os4 endevent
event (p1)_s11 multiple 0 none (p1)_sem_ligh11 (p1)_sem_info_v40 (p1)_sem_distinfo_v100 (p7)_os4 endevent
event (p1)_s12 multiple 0 none (p1)_sem_ligh12 (p1)_sem_info_v40 (p1)_sem_distinfo_v40 (p7)_os4 endevent
event (p1)_s13 multiple 0 none (p1)_sem_ligh13 (p1)_sem_info_v40 (p1)_sem_distinfo_stop (p7)_os4 endevent
event (p1)_ms2 multiple 0 none (p1)_sem_lighs2 (p1)_sem_info_shunt2 endevent
event (p1)_sz1 multiple 0 none (p1)_sem_lighz1 (p1)_sem_info_v20 endevent
event (p1)_wyg multiple 1 none (p1)_sem_ligh0 endevent
Czyli generalnie mamy nazwa_sygnał
Trzeba tylko sprawdzić czy dany semafor ma możliwość wyświeltenia danego sygnału. W tym celu zaglądamy do pliku .inc danego typu semafora.
Polecam temat:
http://eu07.pl/forum/index.php/topic,2451.0.html (http://eu07.pl/forum/index.php/topic,2451.0.html)
Do tego oczywiście scenry.doc i wszystkiego się nauczysz.
-
ale zastępczy poda prawie każdy :)
node -1 0 (p1)_ev eventlauncher (p2) (p3) (p4) 3.0 s 0 (p1)_s1 (p1)_sz1 end
-
No dobra zrobiłem z rozjazdami krzyżowymi, ale jak mam zrobić z semaforami bo nie mogę załapać.
-
Wklejasz mój wpis do inca odpowiedniego semafora, podlatujesz i naciskasz S -> dostajesz zastępczy; dasz s -> dostaniesz s1
-
Jeśli mogę zapytać: Czy da się tak zrobić żeby naciskając S przy semaforze sygnały zmieniały się po koleji tzn S1, S2, S3... Oczywiście na te które jest w stanie semafor wyświetlić.
-
Rade da - trzeba się z komórkami pamięci pobawić i eventami z warunkami.
Zrobione "na szybko" dla SS5zpcpbI.inc:
node -1 0 (p1)s_mem memcell 0 0 1 s1 1 1 none endmemcell
event (p1)podaj_s2 multiple 1.0 (p1)s_mem (p1)_s2 (p1)_podaj_upd1 condition memcompare s1 * * endevent
event (p1)podaj_s3 multiple 1.0 (p1)s_mem (p1)_s3 (p1)_podaj_upd2 condition memcompare s2 * * endevent
event (p1)podaj_s4 multiple 1.0 (p1)s_mem (p1)_s4 (p1)_podaj_upd3 condition memcompare s3 * * endevent
event (p1)podaj_s5 multiple 1.0 (p1)s_mem (p1)_s5 (p1)_podaj_upd4 condition memcompare s4 * * endevent
event (p1)podaj_s10 multiple 1.0 (p1)s_mem (p1)_s10 (p1)_podaj_upd5 condition memcompare s5 * * endevent
event (p1)podaj_s11 multiple 1.0 (p1)s_mem (p1)_s11 (p1)_podaj_upd6 condition memcompare s10 * * endevent
event (p1)podaj_s12 multiple 1.0 (p1)s_mem (p1)_s12 (p1)_podaj_upd7 condition memcompare s11 * * endevent
event (p1)podaj_s13 multiple 1.0 (p1)s_mem (p1)_s13 (p1)_podaj_upd8 condition memcompare s12 * * endevent
event (p1)podaj_ms2 multiple 1.0 (p1)s_mem (p1)_ms2 (p1)_podaj_upd9 condition memcompare s13 * * endevent
event (p1)podaj_sz1 multiple 1.0 (p1)s_mem (p1)_sz1 (p1)_podaj_upd10 condition memcompare ms2 * * endevent
event (p1)podaj_wyg multiple 1.0 (p1)s_mem (p1)_wyg (p1)_podaj_upd11 condition memcompare sz1 * * endevent
event (p1)podaj_s1 multiple 1.0 (p1)s_mem (p1)_s1 (p1)_podaj_upd12 condition memcompare wyg * * endevent
event (p1)_podaj_upd1 updatevalues 1 (p1)s_mem s2 * * endevent
event (p1)_podaj_upd2 updatevalues 1 (p1)s_mem s3 * * endevent
event (p1)_podaj_upd3 updatevalues 1 (p1)s_mem s4 * * endevent
event (p1)_podaj_upd4 updatevalues 1 (p1)s_mem s5 * * endevent
event (p1)_podaj_upd5 updatevalues 1 (p1)s_mem s10 * * endevent
event (p1)_podaj_upd6 updatevalues 1 (p1)s_mem s11 * * endevent
event (p1)_podaj_upd7 updatevalues 1 (p1)s_mem s12 * * endevent
event (p1)_podaj_upd8 updatevalues 1 (p1)s_mem s13 * * endevent
event (p1)_podaj_upd9 updatevalues 1 (p1)s_mem ms2 * * endevent
event (p1)_podaj_upd10 updatevalues 1 (p1)s_mem sz1 * * endevent
event (p1)_podaj_upd11 updatevalues 1 (p1)s_mem wyg * * endevent
event (p1)_podaj_upd12 updatevalues 1 (p1)s_mem s1 * * endevent
event (p1)_zmien_syg2 multiple 0 none (p1)podaj_s13 (p1)podaj_ms2 (p1)podaj_sz1 (p1)podaj_wyg (p1)podaj_s1 endevent
event (p1)_zmien_syg multiple 0 none (p1)podaj_s2 (p1)podaj_s3 (p1)podaj_s4 (p1)podaj_s5 (p1)podaj_s10 (p1)podaj_s11 (p1)podaj_s12 (p1)_zmien_syg2 endevent
Całość odpalana eventem NazwaSemafora_zmien_syg
-
No dobrze, to praktycznie wiemy jak sterować podstawowymi elementami w sceneri, ale jednak jest problem z anglikami, otóż nie są wyzwalane przez eventy, poprostu trzeba ręcznie przestawiać. Jak temu zaradzić?