Odsylam do readme Dizelpacka.Ok dzięki:)
node -1 0 5515 eventlauncher -21622.6 -8.08945 -2.09577 50000 none 1232 5515_str_wyjazd end
event 5515_str_wyjazd multiple 0.0 none stradom_wyj_1_s2 gnaszyn_wjazdowy3_s3 gnaszyn_wyjazd22_s6 gnaszyn_wjazdowy1_s6 endevent
Wyskakuje, że 5515_str_wyjazd
jest niepoprawną komendą?Oczekiwano: inny element (słowo z listy)
No czyli skladnia sie sypie.To może śmiesznie zabrzmi, skoro się za scenerię zabrałem, ale nie jestem jeszcze tak obeznany w Rainsted'zie.
node -1 0 5515 eventlauncher -21622.6 -8.08945 -2.09577 50000 none 1232 5515_str_wyjazd end
node -1 0 5515 eventlauncher -21622.6 -8.08945 -2.09577 50000 none 1232 5515_str_wyjazd XXX none end
//Eventy do dużej misji:)
event odjazd_01 sound 1.0 odjazd_01_wav 1 endevent
event odjazd_02 sound 1.0 odjazd_02_wav 1 endevent
event odjazd_03 sound 1.0 odjazd_03_wav 1 endevent
event odjazd_04 sound 1.0 odjazd_04_wav 1 endevent
event odjazd_05 sound 1.0 odjazd_05_wav 1 endevent
event odjazd_06 sound 1.0 odjazd_06_wav 1 endevent
event odjazd_07 sound 1.0 odjazd_07_wav 1 endevent
event odjazd_08 sound 1.0 odjazd_08_wav 1 endevent
event odjazd_09 sound 1.0 odjazd_09_wav 1 endevent
event nasz_odjazd sound 1.0 nasz_odjazd_wav 1 endevent
//
//----------------------------------------------------------------------------------------------------------------------------------
//SKLADY Z CZESTOCHOWY STRADOMIA
//----------------------------------------------------------------------------------------------------------------------------------
//
//----------5515----------Lubliniec
node -1 0 5515 eventlauncher -21622.6 -8.08945 -2.09577 50000 none 1232 5515_str_wyjazd end
event 5515_str_wyjazd multiple 0.0 none stradom_wyj_1_s2 gnaszyn_wjazdowy3_s3 gnaszyn_wyjazd22_s6 gnaszyn_wjazdowy1_s6 endevent
node -1 0 5515_cd eventlauncher -21622.6 -8.08945 -2.09577 50000 none 1233 odjazd_5515 end
event odjazd_5515 multiple 60.0 none odjazd_09 nasz_odjazd endevent
node -1 0 5515-gn_wyjazd eventlauncher -16450.3 -8.56015 292.031 50000 none 1241 5515_gn_wyjazd end
event 5515_gn_wyjazd multiple 0.0 none gnaszyn_wyjazdowy1_s2 bl_wjazdowy2_s7 nasz_odjazd endevent
node -1 0 5515-bl_wyjazd eventlauncher -12070.4 -8.62614 261.694 50000 none 1249 5515_bl_wyjazd end
event 5515_bl_wyjazd multiple 0.0 none bl_wy2_s6 HS_B12_s2 nasz_odjazd endevent
node -1 0 5515-HS_wyjazd eventlauncher -3149.6 -8.37281 20.1264 50000 none 1302 5515_HS_wyjazd end
event 5515_HS_wyjazd multiple 0.0 none HS_P12_s2 Li_B12_s2 lisow_wjazdowy1_s2 nasz_odjazd endevent
node -1 0 5515-Li_wyjazd eventlauncher 4172.53 -11.707 206.259 50000 none 1312 5515_Li_wyjazd end
event 5515_Li_wyjazd multiple 0.0 none LSW_wyjazd_1_s2 kochanowice_wjazdowy1_s2 nasz_odjazd endevent
node -1 0 5515-koch_wyjazd eventlauncher 4172.53 -11.707 206.259 50000 none 1317 5515_koch_wyjazd end
event 5515_koch_wyjazd multiple 0.0 none koch_wyjazd2_s2 jaw_wj1 nasz_odjazd endevent
event jaw_wj1 multiple 0.0 none Jawornica1_s2 lbc_toc_os4 lbc_A_s13 endevent
//----------46061----------Opole
//!!!!!!!!!!NAPISAĆ WJAZD!!!!!!!!!!ZMIENIC ZWROTKE Z LBC!!!!!!!!!!
node -1 0 46041 eventlauncher -21622.6 -8.08945 -2.09577 50000 none 1433 46041_str_wyjazd end
event 46041_str_wyjazd multiple 0.0 none stradom_wyj_1_s2 gnaszyn_wjazdowy3_s3 gnaszyn_wyjazd22_s6 gnaszyn_wjazdowy1_s6 endevent
node -1 0 46041-gn_wyjazd eventlauncher -16450.3 -8.56015 292.031 50000 none 1441 46041_gn_wyjazd end
event 46041_gn_wyjazd multiple 0.0 none gnaszyn_wyjazdowy1_s2 bl_wjazdowy2_s7 endevent
node -1 0 46041-bl_wyjazd eventlauncher -12070.4 -8.62614 261.694 50000 none 1449 46041_bl_wyjazd end
event 46041_bl_wyjazd multiple 0.0 none bl_wy2_s6 HS_B12_s2 endevent
node -1 0 46041-HS_wyjazd eventlauncher -3149.6 -8.37281 20.1264 50000 none 1502 46041_HS_wyjazd 46041_HS_wyjazd_cd end
event 46041_HS_wyjazd multiple 0.0 none HS_P12_s2 Li_B12_s2 lisow_wjazdowy1_s2 LSW_wyjazd_1_s2 kochanowice_wjazdowy1_s2 koch_wyjazd2_s2 jaw_wj1 endevent
event 46041_HS_wyjazd_cd multiple 0.0 none jaw_wj1 Jawornica1_s2 lbc_toc_os4 lbc_A_s13 endevent
//----------5517----------Lubliniec
//!!!!!!!!!!NAPISAĆ WJAZD!!!!!!!!!!ZMIENIC ZWROTKE Z LBC!!!!!!!!!!
node -1 0 5517 eventlauncher -21622.6 -8.08945 -2.09577 50000 none 1555 5517_str_wyjazd end
event 5517_str_wyjazd multiple 0.0 none stradom_wyj_1_s2 gnaszyn_wjazdowy3_s3 gnaszyn_wyjazd22_s6 gnaszyn_wjazdowy1_s6 endevent
node -1 0 5517-gn_wyjazd eventlauncher -16450.3 -8.56015 292.031 50000 none 1441 5517_gn_wyjazd end
event 5517_gn_wyjazd multiple 0.0 none gnaszyn_wyjazdowy1_s2 bl_wjazdowy2_s7 endevent
node -1 0 5517-bl_wyjazd eventlauncher -12070.4 -8.62614 261.694 50000 none 1449 5517_bl_wyjazd end
event 5517_bl_wyjazd multiple 0.0 none bl_wy2_s6 HS_B12_s2 endevent
node -1 0 5517-HS_wyjazd eventlauncher -3149.6 -8.37281 20.1264 50000 none 1302 5517_HS_wyjazd end
event 5517_HS_wyjazd multiple 0.0 none HS_P12_s2 Li_B12_s2 lisow_wjazdowy1_s2 endevent
node -1 0 5517-Li_wyjazd eventlauncher 4172.53 -11.707 206.259 50000 none 1312 5517_Li_wyjazd end
event 5517_Li_wyjazd multiple 0.0 none LSW_wyjazd_1_s2 kochanowice_wjazdowy1_s2 endevent
node -1 0 5517-koch_wyjazd eventlauncher 4172.53 -11.707 206.259 50000 none 1317 5517_koch_wyjazd end
event 5517_koch_wyjazd multiple 0.0 none koch_wyjazd2_s2 jaw_wj1 endevent
event jaw_wj1 multiple 0.0 none Jawornica1_s2 lbc_toc_os4 lbc_A_s13 endevent
node -1 0 5515 eventlauncher -21622.6 -8.08945 -2.09577 50000 none 1232 5515_str_wyjazd end
event 5515_str_wyjazd multiple 0.0 none stradom_wyj_1_s2 gnaszyn_wjazdowy3_s3 gnaszyn_wyjazd22_s6 gnaszyn_wjazdowy1_s6 endevent
node -1 0 5515 eventlauncher -21622.6 -8.08945 -2.09577 50000 none 1232 5515_str_wyjazd 5515_str_wyjazd end
event 5515_str_wyjazd multiple 0.0 none stradom_wyj_1_s2 gnaszyn_wjazdowy3_s3 gnaszyn_wyjazd22_s6 gnaszyn_wjazdowy1_s6 endevent
node -1 0 5515 eventlauncher -21622.6 -8.08945 -2.09577 50000 none 1232 5515_str_wyjazd 5515_str_wyjazd end
event przebieg_711_1 multiple 150.0 ns31 nsg06+ nsg04+ nsg02+ zg01+ Nowy_Sad_C_S2 Nowy_Sad_Sklep_A_S2 Nowy_Sad_Sklep_E_S2 Zagorz_A_S1 condition trackoccupied endevent
event sygnal_odjazdu_1 multiple 200.0 ns31 odjazd_01 odjazd_02 odjazd_03 condition trackoccupied endevent
Przypis do toru w SCM:node -1 0 ns31 track normal 34.0 1.435 0.25 25.0 20 0 Flat vis
Rail_screw_used1 4 TpBpS-new2.tex 0.2 0.5 1.1
5188.97 8.2 -663.775 0.0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
5188.97 8.2 -697.775 0.0 //point 2
0
event2 Nowy_Sad_C_sem_info
event1 przebieg_711_1
event1 sygnal_odjazdu_1
endtrack
log po grze(fragment):EVENT ADDED TO QUEUE:
sygnal_odjazdu_1
EVENT ADDED TO QUEUE:
nowy_sad_c_sem_info
EVENT LAUNCHED:
nowy_sad_c_sem_info
Type: GetValues
EVENT LAUNCHED:
sygnal_odjazdu_1
Multiple passed
EVENT ADDED TO QUEUE:
odjazd_01
EVENT ADDED TO QUEUE:
odjazd_02
EVENT ADDED TO QUEUE:
odjazd_03
EVENT LAUNCHED:
odjazd_01
EVENT LAUNCHED:
odjazd_02
EVENT LAUNCHED:
odjazd_03
Nie wiem w czym jest problem więc proszę o pomoc, jak ustawiałem manualnie wszystko chodziło, teraz jak jest (powinno być) automatycznie to leży.
event przebieg_711_1 multiple 150.0 ns31 nsg06+ nsg04+ nsg02+ zg01+ Nowy_Sad_C_S2 Nowy_Sad_Sklep_A_S2 Nowy_Sad_Sklep_E_S2 Zagorz_A_S1 condition trackoccupied endeventA nie ma czasem ograniczenia zdarzeń? Bo tu jest aż 9. Ja daję maksymalnie 5-6.
event przebieg_711_1 multiple 150.0 ns31 zwrotki_ev sygnaly_ev sygnal_odjazdu_1 condition trackoccupied endevent
event zwrotki_ev 0.0 ns31 nsg06+ nsg04+ nsg02+ zg01+ endevent
event syganly_ev 0.0 ns31 Nowy_Sad_C_S2 Nowy_Sad_Sklep_A_S2 Nowy_Sad_Sklep_E_S2 Zagorz_A_S1 endevent
event sygnal_odjazdu_1 multiple 50.0 ns31 odjazd_01 odjazd_02 odjazd_03 endevent
A więc jak wywołać jazdę pociągu z prędkością 40km/h?Ustawiasz w trainsecie w scenerii wartość 40 (ostatnia z liczb we wpisie). Natomiast najprostszą metodą uruchomienia pociągu jest postawienie go na torze z prędkością 0.1, i przypisanie do toru zdarzenia od semafora. I dalej powinno zagrać.
[b]moje zdarzenie:[/b]
event zdawka_start multiple 30.0 ns31 Nowy_sad_A_S2 start_AI condition trackoccupied endevent
[b]Log (eventy)[/b]
Event "start_ai" does not exist InitEvents OK
[b]Przypis do toru:[/b]
node -1 0 ns31 track normal 34.0 1.435 0.25 25.0 20 0 Flat vis
Rail_screw_used1 4 TpBpS-new2.tex 0.2 0.5 1.1
5188.97 8.2 -663.775 0.0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
5188.97 8.2 -697.775 0.0 //point 2
0
event1 zdawka_start
event0 sygnal_odjazdu_1
event2 Nowy_Sad_C_sem_info
endtrack
Wiecie w czym tkwi mój problem? Proszę o pomoc
event0 AI_on
event2 Nowy_Sad_C_sem_info
event AI_on putvalues 5.0 none 0.1 0.1 0.1 Jump_to_order 0 0 endevent
Za bardzo kombinujesz. Chcesz zrobic zeby AI ruszylo, w tym celu:
Do toru przypiszKod: [Zaznacz]event0 AI_on
event2 Nowy_Sad_C_sem_info
Zdefiniuj AI_on jakoKod: [Zaznacz]event AI_on putvalues 5.0 none 0.1 0.1 0.1 Jump_to_order 0 0 endevent
i wywolaj w dowolny sposob sygnal zezwalajacy na jazde na semaforze Nowy_Sad_C.
event2 Nowy_Sad_C_sem_info
tor wcześniej daj eventX wyzwol
gdzie X odpowiedni numerek, napisz event wyzwol multiple 60.0 none Nowy_Sad_C_S2 endevent
a do toru, na którym AI się ma zatrzymać daj velocity 0 (albo ukryty semafor).EVENT ADDED TO QUEUE:
et22_go
EVENT LAUNCHED:
et22_go
Type: PutValues
Przypis do toru:node 1000 0 tor1k track normal 100.0 1.435 0.25 25.0 20 0 Flat vis
Rail_screw_used1 4 TpBpS-new2.tex 0.2 0.5 1.1
5.04488 0.2 1265.0 0.0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
5.04488 0.2 1365.0 0.0 //point 2
0
event2 ET22_go
endtrack
Wpis w pliku SCN:event ET22_go putvalues 20.0 none 0.1 0.1 0.1 Jump_to_order 0 0 endevent
Sceneria TD, chciałem wywołać jazdę AI po wjechaniu pociągu B na tor1k z punktu 1 do 2 (event2, o ile się nie mylę), nie wiem co jest źle, będę wdzięczny za pomoc
node -1 0 osobowy_mem memcell 0 0 1 osobowy_koch 0 0 none endmemcell
event koch_odj multiple 0.0 osobowy_mem jakiś_event update1 condition memcompare osobowy_koch 0 0 endevent
event update1 updatevalues 2.0 osobowy_mem lisow_osob 0 0 endevent
Wyżej przykładowy ciąg eventów, przy pomocy memcell'a.
node -1 0 osobowy_mem memcell 0 0 1 osobowy_koch 0 0 none endmemcell
event koch_odj multiple 0.0 osobowy_mem jakiś_event update1 condition memcompare * 0 0 endevent
Próbowałeś zmienić nazwę zdarzenia na inną niż nazwa dźwięku?
Ponownie nazwa zdarzenia jest taka sama jak nazwa dźwięku,Próbowałeś zmienić nazwę zdarzenia na inną niż nazwa dźwięku?
zmieniłem na:
"node 10000 0 dzwiek100 sound 9.42 0.38 83.89 blokada_zepsuta.wav endsound
event dzwiek100 sound 1.0 dzwiek100 1 endevent"
-brak oczekiwanego efektu
Ponownie nazwa zdarzenia jest taka sama jak nazwa dźwięku,
node 10000 0 dzwiek100_sound sound 9.42 0.38 83.89 blokada_zepsuta.wav endsound
event dzwiek100 sound 1.0 dzwiek100_sound 1 endevent
Gdzie masz wyzwolić event w torze dzwiek100.Masz odpowiedni event w torze który by wyzwolił odtwarzanie dźwięku ? Bo bez tego nic nie zrobisz.
...Pogrubione powinno być event1, lub event2, w zależności, w którą stronę jedzie skład.
node -1 0 tor1_bizonowo_peron1 track normal 100.0 1.435 0.25 25.0 20 0 Flat vis
Rail_screw_used1 4 TpBpS-new2.tex 0.2 0.5 1.1
9.41522 0.200007 2.0345 0.0 //point 1
0.0 0.0 33.3333 //control vector 1
0.0 0.0 -33.3333 //control vector 2
9.41522 0.200007 102.035 0.0 //point 2
0
event tor1_bizonowo_peron1
endtrack
event keyctrl01 multiple 10.0 start1s skwarki_wyjazd 91002_odjazd endevent
event skwarki_wyjazd multiple 60.0 start1s sem1s_S2 zwrot01+ zwrot02+ zwrot04+ zwrot06+ condition trackcupied endevent
event rodjazd1 sound 100.0 rodjazd1 1 endevent
event sem1s_s1 multiple 0.0 none sem1s_S1 endevent
event kac_wjazd multiple 10.0 przejazd3_tor1 duza2+ duza4+ duza6- duza8- duzapoczwp_S12 condition trackcupied endevent
event kac_radio_manewry sound 1.0 bede_manewry_robila 1 endevent
event kac_menewry_start multiple 30.0 wielki_kac_tor6 duza_zwrot_zeberko- duza10- duza18+ duza6end_Ms2 endevent
event kac_manewry1 multiple 30.0 kac-manewry-odwrot duza6end_S1 duza18+ duza10- duza_zwrot_zeberko+ wielki_kac_tm3_Ms2 endevent
event kac_manewry2 multiple 30.0 tor8end-stop wielki_kac_tm3_Ms1 duza_zwrot_zeberko+ duza10- duza18+ duza8end_Ms2 condition trackcupied endevent
event kac_manewry3 multiple 30.0 kac-manewry-odwrot duza8end_S1 duza18+ duza10- duza_zwrot_zeberko- wielki_kac_tm3_Ms2 91002_odjazd condition trackcupied endevent
event kac_odjazd multiple 120.0 sterowanie_tor6 wielki_kac_tm3_Ms1 duza_zwrot_zeberko- duza10- duza18- duza12- duza14+ duza16+ duza6end_S10 endevent
event rodjazd2 sound 100.0 rodjazd2 1 endevent
Zabawie się w archeologa. Mam nadzieje, że dobry temat odkopuje.
Według poradników, sterowanie zwrotnicami odbywa się za pomocą "-" (jazda na wprost) i "+" (jazda na bok). Pierwszy dzień mojej zabawy z eventami i już pewnej kwestii nie rozumiem.
libertyn, najnowszej - PC2010DDS.
Jeszcze małe pytanie:
Warto przypisywać eventy dźwiękowe do torów? Czy po prostu za pomocą innego eventu multiple wywołać je z odpowiednim opóźnieniem?
Cytujnode 1000 0 dejawy_tor3a track normal 100.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used1.dds 4 tpd-old1.dds 0.2 0.5 1.1
-2243.95 0.200012 8889.45 0.0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
-2243.95 0.200012 8989.45 0.0 //point 2
0
event0 start_eu07 multiple 60 None
dejawy_kopalnia_tm5_Ms2
dejawy_zwr12-
dejawy_zwr13+
dejawy_zwr14+
dejawy_zwr15+
endtrack
include;ms2nbk.inc;dejawy_kopalnia_tm5;-2241.8;0.0;8942.5;0.0;tm5.dds;end
event0 start_eu07 multiple 60 None
Nie możesz wpisywać zdarzeń w torach, w torach możesz zrobić co najwyżej wyzwalacz, a eventy piszesz osobno (lepiej nie umiem wytłumaczyć). Zobacz jak to wygląda na Torze Doświadczalnym, tylko tam eventy przekładające zwrotnice są przypisane do klawiszy.Otóż to.
event nazwa_zdarzenia multiple opóźnienie None
zdarzenie1
zdarzenie2
...
zdarzenie8
endevent
event start_eu07 multiple 60 None
dejawy_kopalnia_tm5_Ms2
dejawy_zwr12-
dejawy_zwr13+
dejawy_zwr14+
dejawy_zwr15+
endevent
dejawy_kopalnia_tm5_Ms2_sem_info
Dzięki chłopaki przynajmniej wiem co robię źle, ale jak przypisać zdarzenie za pomocą Rainsteda?Mogę ci napisać jak przypisać w notatniku (w poradniku @wasyla znajdziesz informację, jak to zrobić w 3ds Max)- o Rainsted niech lepiej @Ra napisze.
node 1000 0 balmia3 track normal 90.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_rused2.tga 4 tpd-oil2.tga 0.2 0.5 1.1
-2566.69 -3.79986 3227.35 0.0 //point 1
10.2607 0.0 28.1909 //control vector 1
-10.2605 0.0 -28.1907 //control vector 2
-2535.9 -3.79986 3311.92 0.0 //point 2
0
endtrack
rodzaj_eventu nazwa_eventu
Gdzie "rodzaj_eventu" to rodzaj eventu, jakim się posłużyłeś, np. "event1", zaś "nazwa_eventu" to nazwa eventu, na przykład "start_eu07".node 1000 0 balmia3 track normal 90.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_rused2.tga 4 tpd-oil2.tga 0.2 0.5 1.1
-2566.69 -3.79986 3227.35 0.0 //point 1
10.2607 0.0 28.1909 //control vector 1
-10.2605 0.0 -28.1907 //control vector 2
-2535.9 -3.79986 3311.92 0.0 //point 2
0
event1 miasto_manewr1
endtrack
event start_eu07 multiple 60 None
dejawy_kopalnia_tm5_Ms2
dejawy_zwr12-
dejawy_zwr13+
dejawy_zwr14+
dejawy_zwr15+
endevent
mogą być w tym samym pliku, jednak żeby był porządek to lepiej stwórz plik .inc z takimi wpisami, np. eventy_quark.inc , wrzuć go do folderuinclude quark/eventy_quark.inc end
W praktyce jest to bardzo proste. Jak będę miał trochę czasu to napiszę suplement do poradnika @wasyla.
Możesz sprawdzić jaka jest długość składu i po wjeździe na tor A po przejechaniu tej odległości ustawić event "dobra starczy"Nie, tak to nie ma sensu, bo długość składu może być różna.
eventall1 koniec_wypychania
lubeventall2 koniec_wypychania
W zależności jak skierowany jest ów odcinek. Wcześniejszemu odcinkowi (niż ten, który jest opisany powyżej) nadajesz unikalną nazwę, np. tor_zwolniony.event koniec_wypychania multiple 0.0 tor_zwolniony
dobra_starczy
condition trackfree endevent
W ten sposób każdy z pojazdów/wagonów będzie wywoływał event (eventall*) koniec_wypychania, ale event wykona się dopiero, gdy odcinek tor_zwolniony będzie wolny (warunek trackfree). Takie coś zastosowałem np. w scenariusz l053-sluzba-osobowy, gdzie z okręgu zwrotnicowego zjeżdża ciężki pociąg towarowy ET41. Przewidziałem to, że ktoś będzie chciał wymienić ten skład na dłuższy, więc można sobie dowolnie manipulować ilością wagonów.
event san07 multiple 3.0 none93
sandomierz_g2_S1
radio4
radio5
sand_tm001_Ms2
zwr110+
zwr111-
condition trackfree endevent
node 300 0 wystarczy_wav sound -18487.0 1.5 50723.0 wystarczy.wav endsound
event radio4 sound 0.0 wystarczy_wav 1 endevent
node 300 0 mozna_do_tylu_wav sound -18487.0 1.5 50723.0 mozna_do_tylu.wav endsound
event radio5 sound 20.0 mozna_do_tylu_wav 1 endevent
node 1500 0 none93 track normal 6.221 1.435 0.25 25.0 20 0 flat vis
rail_screw_rused1.dds 4 none 0.2 0.5 1.1
-18476.9 0.2 50876.4 0.0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
-18476.9 0.2 50882.6 0.0 //point 2
0
eventall1 san07
endtrack
event start_regio multiple 60 psiary_zagroda_i_s2
endevent
Wtajcie, mam problem z eventami. Napisałem jeden event na zwierzyńcu i nie chce się wykonać. W załączniku log i plik scm. Tak napisałem event w pliku include:1. Zdarzenie nie wykonało się, ponieważ jest puste.Cytujevent start_regio multiple 60 psiary_zagroda_i_s2
endevent
event nazwa rodzaj czas tor event1 ... event8 (opcjonalnie_warunki) endevent
event KeyCtrl01 multiple 60.0 noneNie przestawiają mi się zwrotnice, sygnały się wyświetlają.
odstep_a_s10
odszzwr02+
odszzwr18+
odszzwr19+
odszzwr01+
swoszowice_a_toa_s2
swoszowice_a_s2
endevent
event swoszowice_po multiple 10.0 none
swoszowice_k_s2
psiepole_we1_toa_os4
psiepole_we1_toa1_os4
psiepole_we1_toa2_os4
endevent
node 1000 0 swoszowice_k_sem_info track normal 50.0 1.435 0.25 35.0 20 0 flat vis
rail_screw_used1 4 tpd-oil3 0.2 0.5 1.1
-298.722 0.2 12458.6 0.0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
-298.723 0.2 12508.6 0.0 //point 2
0
velocity 0.0
event1 swoszowice_k_sem_info
event swoszowicce_po
endtrack
node 1000 0 swoszowice_k_sem_info track normal 50.0 1.435 0.25 35.0 20 0 flat visLiterówka, nie określone w jakim kierunku ma jechać pojazd aby wywołać event. Nie wiem czy to swoszowice_k_sem_info jako nazwa toru nie namiesza, choć w sumie nie powinno.
rail_screw_used1 4 tpd-oil3 0.2 0.5 1.1
-298.722 0.2 12458.6 0.0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
-298.723 0.2 12508.6 0.0 //point 2
0
velocity 0.0
event1 swoszowice_k_sem_info
event1 swoszowice_po
endtrack
Nie wiem czy to swoszowice_k_sem_info jako nazwa toru nie namiesza, choć w sumie nie powinno.Nie miesza, jednak wpis jest nadal zły. Nie można do tego samego odcinka toru napisać więcej niż jedno event1, event2, itp.
nazwarozjazduacgdzie a i c to odpowiednie ramiona rozjazdu. Przykład z linii 053:
anglik96ac
event psiepole_rozjazd multiple 0.0 noneTak dopisane do toru.
anglik10_a
anglik10_d
zwrotek+
endevent
node 1000 0 p5 track normal 0.0 1.435 0.1 35.0 20 0 flat vis
rail_screw_used1 4 tpd-oil3 0.2 0.5 1.5
137.252 0.2 17363.0 0.0 //point 1
-1.52588e-005 0.0 -59.1973 //control vector 1
0.0 0.0 59.1973 //control vector 2
137.252 0.2 17185.4 0.0 //point 2
0
event psiepole_rozjazd
velocity 61.0
endtrack
Powinno być anglik_10adTeż nie tak. Powinno być:
anglik10ad
:)
"Unknow track property".Wyskakuje mi jeszcze taki błąd ale o co chodzi z tą właściwością toru? Dodam jeszcze że nie mam go teraz w podglądzie scenerii w Rainsted.
Nieznana właściwość toru. Wpis poprzedzający ten tor ma złą składnię.
Event "zwr04_v40" cannot find track "zwr04"
Event "zwr04_vmax" cannot find track "zwr04"
Event "zwr04_1" cannot find track "zwr04"
Event "zwr04_0" cannot find track "zwr04"
node 1000 0 zwrotek track switch 34.0 1.435 0.24 15.0 20 2 flat vis
rail_screw_used1 4 rail_screw_used1 0.2 2.75 2.5
137.252 0.2 17497.0 0.1 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
137.252 0.2 17531.0 -0.1 //point 2
0
137.252 0.2 17497.0 0 //point 1
0.0 0.0 11.334 //control vector 1
1.28186 0.0 -11.2617 //control vector 2
135.327 0.2 17530.9 0 //point 2
-300.0
//velocity 40.0
endtrack
Nie można tak robić. Znaczy można, ale nie ma potrzeby, żeby to działało trzeba by też zmienić nazwę na zwrotek w tym wpisie:include;zwrp34r300l.inc;zwr04;137.252;-1.93715e-007;17497.0;0.0;zwrot34r300pods-new;end
Polecam jednak zostać przy pierwotnym nazewnictwie.
Pisałem o tym kilka postów wyżej:Zejdę z tematu na sprawy techniczne. Zauważyłem, ze piszecie o poprzednich postach ,,wyżej". Czy tylko ja mam na odwrót, czy wy nie rozróżniacie góry i dołu strony? U mnie ostatnio wysłane posty są na górze, a wcześniejsze na dole.
Nie rozumiem tego. Napisać event w taki sposób aby po zwolnieniu tego rozjazdu drugiego wyświetliło mi się S2, tak chce to zrobić bo chyba będzie najlepiej.Czego nie rozumiesz? Właśnie tam jest taki przepis jak to zrobić. Napisz na którym punkcie utknąłeś w próbie zrozumienia tego tekstu.
U mnie ostatnio wysłane posty są na górze, a wcześniejsze na dole.To sobie można dowolnie ustawić w panelu osobistym. Możesz mieć od góry nowe posty, a możesz mieć na dole najnowsze wiadomości. Ja mam na dole nowe posty. Ziomal był szybszy.
Wybierasz sobie odcinek toru, który wiesz, że jest pierwszym odcinkiem w całości leżącym już na torze A. Do tego toru przypisujesz coś takiego (przykładowy event):Kod: [Zaznacz]eventall1 koniec_wypychania
lubKod: [Zaznacz]eventall2 koniec_wypychania
W zależności jak skierowany jest ów odcinek. Wcześniejszemu odcinkowi (niż ten, który jest opisany powyżej) nadajesz unikalną nazwę, np. tor_zwolniony.
event psiepole_rozjazd multiple 10.0 noneI przypisany do toru tak
anglik_10da
zwr13+
endevent
node 1000 0 p04 track normal 89.0119 1.435 0.25 999 20 0 flat vis
rail_screw_used1 4 tpd-oil3 0.2 0.5 1.5
-140.406 0.2 14847.7 -2.0 //point 1
1.55396 0.0 29.6309 //control vector 1
-3.1001 0.0 -29.4902 //control vector 2
-133.422 0.2 14936.4 -2.0 //point 2
1700.0
event2 psiepole_rozjazd
endtrack
Jeszcze zwrotnicaCytujnode 1000 0 zwr13 track switch 34.0 1.435 0.24 15.0 20 2 flat vis
rail_screw_used1 4 rail_screw_used1 0.2 2.75 2.5
137.252 0.2 17497.0 0.1 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
137.252 0.2 17531.0 -0.1 //point 2
0
137.252 0.2 17497.0 0 //point 1
0.0 0.0 11.334 //control vector 1
1.28186 0.0 -11.2617 //control vector 2
135.327 0.2 17530.9 0 //point 2
-300.0
//velocity 40.0
endtrack
include;zwrp34r300l.inc;zwr13;137.252;-1.93715e-007;17497.0;0.0;zwrot34r300pods-new;end
node 1000 0 tor_AI track normal 0.0 1.435 0.25 35.0 20 0 flat vis
rail_screw_used1 4 tpd-oil3 0.2 0.5 1.1
137.252 0.2 18331.0 0.0 //point 1
0.0 0.0 -33.334 //control vector 1
0.0 0.0 33.334 //control vector 2
137.252 0.2 18231.0 0.0 //point 2
0
event2 tor_AI_sem_info
event2 psiepole_g_sem_info
event0 eu07start
event2 energetyka_jazda
endtrack
event eu07start putvalues 10.0 none 0.1 0.1 0.1 Jump_to_order 0 0 endevent
event energetyka_jazda multiple 10.0 none
psiepole_g_s10
test_zwr07-
tunel_ton_s2
tunel_n_s5
tunel_h_s1
anglik11ad
endevent
node 1000 0 tor_AI track normal 0.0 1.435 0.25 35.0 20 0 flat vis
rail_screw_used1 4 tpd-oil3 0.2 0.5 1.1
137.252 0.2 18331.0 0.0 //point 1
0.0 0.0 -33.334 //control vector 1
0.0 0.0 33.334 //control vector 2
137.252 0.2 18231.0 0.0 //point 2
0
event2 tor_AI_sem_infoevent2 psiepole_g_sem_info
event0 eu07startevent2 energetyka_jazda
endtrack
event eu07start putvalues 10.0 none 0.1 0.1 0.1 Jump_to_order 0 0 endevent
event energetyka_jazda multiple 10.0 none
psiepole_g_s10
test_zwr07-
tunel_ton_s2
tunel_n_s5
tunel_h_s1
anglik11ad
endevent
node 1000 0 tor_AI track normal 0.0 1.435 0.25 35.0 20 0 flat vis
rail_screw_used1 4 tpd-oil3 0.2 0.5 1.1
137.252 0.2 18331.0 0.0 //point 1
0.0 0.0 -33.334 //control vector 1
0.0 0.0 33.334 //control vector 2
137.252 0.2 18231.0 0.0 //point 2
0
endtrack
robisz:node 1000 0 tor_AI track normal 0.0 1.435 0.25 35.0 20 0 flat vis
rail_screw_used1 4 tpd-oil3 0.2 0.5 1.1
137.252 0.2 18331.0 0.0 //point 1
0.0 0.0 -33.334 //control vector 1
0.0 0.0 33.334 //control vector 2
137.252 0.2 18281.0 0.0 //point 2
0
endtrack
node 1000 0 none track normal 0.0 1.435 0.25 35.0 20 0 flat vis
rail_screw_used1 4 tpd-oil3 0.2 0.5 1.1
137.252 0.2 18281.0 0.0 //point 1
0.0 0.0 -33.334 //control vector 1
0.0 0.0 33.334 //control vector 2
137.252 0.2 18231.0 0.0 //point 2
0
endtrack
Tak łatwo jest jednak tylko w przypadku odcinków prostych.
node 1000 0 tor_AI track normal 0.0 1.435 0.25 35.0 20 0 flat vis
rail_screw_used1 4 tpd-oil3 0.2 0.5 1.1
137.252 0.2 18331.0 0.0 //point 1
0.0 0.0 -33.334 //control vector 1
0.0 0.0 33.334 //control vector 2
137.252 0.2 18231.0 0.0 //point 2
0
event2 tor_AI_sem_info
event2 psiepole_g_sem_info
endtrack
node 1000 0 misio track normal 0.0 1.435 0.25 35.0 20 0 flat vis
rail_screw_used1 4 tpd-oil3 0.2 0.5 1.1
137.252 0.2 18281.0 0.0 //point 1
0.0 0.0 -33.334 //control vector 1
0.0 0.0 33.334 //control vector 2
137.252 0.2 18231.0 0.0 //point 2
0
event0 eu07start
event2 energetyka_jazda
endtrack
event san07 multiple 3.0 none93Chodzi o to że gdy tor none93 będzie wolny to wykonają się te polecenia w evencie?
sandomierz_g2_S1
radio4
radio5
sand_tm001_Ms2
zwr110+
zwr111-
condition trackfree endevent
event mijanka multiple 4.0 none
psiepole_we3_toj_s2
psiepole_we3_toj1_s2
psiepole_we3_toj2_os4
psiepole_i_s13
psiepole_c_s1
endevent
event bykstart putvalues 10.0 none 0.1 0.1 0.1 Jump_to_order 0 0 endevent
event mijanka1 multiple 3.0 p04
mijanka
psiepole_wy4_f_s2
test_zwr06-
tunel_too_os4
tunel_o_s12
zwr70-
zwr71-
condition trackoccupied endevent
EVENT ADDED TO QUEUE: psiepole_rozjazdNa to wygląda. Zamień event1 na event2 i odwrotnie. O ile ma to sens.
EVENT LAUNCHED: bykstart
Type: PutValues
EVENT ADDED TO QUEUE: bykstart
EVENT LAUNCHED: psiepole_rozjazd
include;*;*;*;...;*;end
Druga gwiazdka będzie nazwą semafora. Można także tego dokonać z poziomu 3ds maxa. Należy importować scenerię, znaleźć interesujący Cię semafor, kliknąć PPM, wybrać Object properties i w odpowiedniej zakładce zmienić nazwę na poprawną.
event KeyCtrl01 multiple 0.0
wjazd_regio_s10
to_l03lis12_s2
li_d12_s2
hs_tou_s4
hs_s12_
herby_ang11qcb
herby_ang2bc
endevent
include;ss4zcpbiw24.inc;wjazd_regio;4050.59;-11.8;130.826;80.8983;g1-2m.dds;end
hs_s12_
?event bykstart putvalues 10.0 none 0.1 0.1 0.1 Jump_to_order 0 0 endeventA no i oczywiście bykstart to nazwa zdarzenia możesz ją dowolnie zmieniać:)
A ja mam takie pytanko. Jest jakiś "wzór ogólny" na eventy?Nom:
event (nazwa) ... (opóźnienie) ... endevent
Gdzie w miejsce wielokropków wstawia się różne komendy, z góry zdefiniowane lub własne.
Nom:Kod: [Zaznacz]event (nazwa) ... (opóźnienie) ... endevent
Gdzie w miejsce wielokropków wstawia się różne komendy, z góry zdefiniowane lub własne.
event nazwa_zdarzenia multiple opóźnienie nazwa_obiektu
zdarzenie1
zdarzenie2
...
zdarzenie8
condition warunek endevent
[b]condition memcompare[/b] bielsko 5 0 endevent
Chodzi mi o te wartości liczbowe w w/w fragmencie. W poradniku napisane też jest że "nieznaczące wartości można zastąpić znakiem *. Skąd mam wiedzieć które wartości są nieznaczące?
event wazd_na_sz multiple 1.0 none
sem1_Sz1
condition propability 0.5 endevent
Szansa na wywołanie tego eventu wynosi 50%.Pozbawić tor szyn można, ale przed odpaleniem symulacji. O zerwaniu druta nic nie wiem.Można by pomyśleć o zmienianiu widzialności obiektów innych niż submodele odpowiednim eventem. Wtedy da się zamienić drut dobry na zerwany, zwinąć szyny (od razu z podsypką?), a nawet usuwać całe modele.
20 zdarzeń do wyboru to każde przypisuje do tego samego miejsca i daje parametr 0,05 dla każdego?W takim przypadku każde zdarzenie miałoby taką samą szansę się wykonać (niezależnie od siebie) z prawdopodobieństwem 0,05.
poprzez zmianę warunku occupedChyba źle rozumujesz. Event się nie zmienia- jak?
event nazwa_zdarzenia multiple opóźnienie nazwa_obiektu
zdarzenie1
zdarzenie2
...
zdarzenie8
condition trackoccupied endevent
W nazwa_obiektu wpisujemy nazwę toru, którego zajęcie będzie wyzwalało event.event keyctrl01 multiple 0.1 none test_zwr01- endevent
event keyctrl02 multiple 0.1 none test_zwr01+ endevent
event keyctrl03 multiple 0.1 none zwr02- endevent
event keyctrl04 multiple 0.1 none zwr02+ endevent
keyctrl01
to 01 odpowiada za klawisz 1 itd?
Tak.Kod: [Zaznacz]keyctrl01
to 01 odpowiada za klawisz 1 itd?
1. Skoro occupuied odpowiada za warunki np.: tor zajęty/wolny to czy można dać warunek typu że event wyzwala się nie przez wcześniej wymienione warunki tylko przez odległość od np.: semafora?Można to zrobić. Po prostu piszesz kod zdarzenia, następnie w torach (w jakiej odległości od semafora sobie życzysz) umieszczasz jego wyzwolenie przez najechanie na dany odcinek toru. Można jeszcze wyzwalać eventy o zadanej godzinie, np. podawać sygnał na semaforze.
node 1000 0 none track normal 100.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used1.dds 4 tpbps-new2.dds 0.2 0.5 1.1
0.396825 0.2 236.111 0.0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
0.396825 0.2 336.111 0.0 //point 2
0
endtrack
event keyctrl01 multiple 0.1 None
test_zwr01-
zwr_02-
endevent
event keyctrl01 multiple 10 None
test_zwr01-
zwr02-
endevent
W poradniku @Wasyla jest napisane że musi być podane w sekundach.
Dlaczego musi być w formacie x.x?
ExportString = include;koziolbeton.inc;%;%;%;%;%;;;;;end //Passive
//(p1) tekstura podsypki, p2 p3 p4 origin p5 rotation
origin (p2) (p3) (p4)
rotate 0 (p5) 0
//node 1000 0 none track normal 2.0 1.435 0.25 25.0 20 128 flat vis
// rail_screw_unused1.tga 4 (p1) 0.2 0.5 1.1
//0.0 0.2 0.0 0.0 //point 1
//0.0 0.0 0.0 //control vector 1
//0.0 0.0 0.0 //control vector 2
//0.0 0.2 2.0 0.0 //point 2
//0
//velocity 0.0
//endtrack
node 1000 0 (p1) model 0 0 0 0 pkp/koziolbeton.t3d none endmodel
rotate 0 0 0
endorigin
Mimo że w 3DSie odwracam helpery w scn kozły nie są obrócone.include;koziolbeton.inc;koziolbeton;72.906;0.0;72.5321;2.00358e-005;;;;;end //Passive
include;koziolbeton.inc;koziolbeton01;-516.312;0.0;72.532;-180.0;;;;;end //Passive
include;koziolbeton.inc;koziolbeton02;-207.286;0.0;1025.33;-180.0;;;;;end //Passive
include;koziolbeton.inc;koziolbeton03;-213.967;0.0;1019.94;-180.0;;;;;end //Passive
include;koziolbeton.inc;koziolbeton04;-220.116;0.0;1017.11;-180.0;;;;;end //Passive
include;koziolbeton.inc;koziolbeton05;-220.129;0.0;539.117;-180.0;;;;;end //Passive
include;koziolbeton.inc;koziolbeton06;-213.985;0.0;641.927;-180.0;;;;;end //Passive
include;koziolbeton.inc;koziolbeton07;-207.219;0.0;721.581;-180.0;;;;;end //Passive
include;koziolbeton.inc;koziolbeton08;-333.327;0.0;1038.63;-180.0;;;;;end //Passive
include;koziolbeton.inc;koziolbeton09;-511.564;0.0;1034.57;-180.0;;;;;end //Passive
include;koziolbeton.inc;koziolbeton10;-509.96;0.0;1024.35;-180.0;;;;;end //Passive
include;koziolbeton.inc;koziolbeton11;-505.117;0.0;1008.44;-180.0;;;;;end //Passive
event odpalaj putvalues 10.0 none 0.1 0.1 0.1 Jump_to_order 0 0 endevent
event KeyCtrl09 multiple 3.0 none odpalaj tamara_go_sr3 endevent
Ale Jump_to_order wyzwala się zaraz po odpaleniu symka. Kombinowałem z memcellami ale zupełnie ich nie ogarniam.
node -1 0 t448p memcell 1.0 1.0 1.0 Wait_for_orders 0 0 tor_13 endmemcell
event t448p_wlacz UpdateValues 0.1 t448p Jump_to_order 0 0 endevent
event t448p_jedz UpdateValues 1.0 t448p SetVelocity 40 0 endevent
event KeyCtrl09 multiple 1.0 none t448p_wlacz t448p_jedz endevent
Całe eventy jakie napisałem, a stonka odpaliła po wyzwoleniu, przeszła w tryb pociągowy i pojechała. Dzięki za naprowadzenie :)BTW testowałem to na starej wersji scenerii bo tylko tą mam na laptopie i stonka po odjechaniu stanęła przed kozłem oporowym, a model dosłownie obrócił się w osi X a za chwilę stanęła na torze odwrotnie :DMasz podwójny tor w tym miejscu.
trainset none ns_tor6-peron3_240m 0.0 0.0
//$o -
node 800 0 en57-082ra dynamic pkp\en57_v1 en57-082ra.dds 6baii 0.0 nobody 55 0 enddynamic
node 800 0 en57-082s dynamic pkp\en57_v1 en57-082s.dds 6bsii 0.0 nobody 55 0 enddynamic
node 800 0 en57-082rb dynamic pkp\en57_v1 en57-082rb.dds 6bbii 0.0 nobody 0 0 enddynamic
endtrainset
I zadziałało, kibel pojawił się na odpowiednim torze. Jednak chciałem aby AI stało pod semaforem wjazdowym. Zmieniłem więc tor: trainset none tor57 0.0 0.0
//$o -
node 800 0 en57-082ra dynamic pkp\en57_v1 en57-082ra.dds 6baii 0.0 nobody 55 0 enddynamic
node 800 0 en57-082s dynamic pkp\en57_v1 en57-082s.dds 6bsii 0.0 nobody 55 0 enddynamic
node 800 0 en57-082rb dynamic pkp\en57_v1 en57-082rb.dds 6bbii 0.0 nobody 0 0 enddynamic
endtrainset
A kibla nigdzie nie ma. Nie wiem czy to ważne, ale na scenerii są aż 4 tory "ns_tor6-peron3_240m" i 2 "tor57".node -1 0 losowe1 memcell 2.0 2.0 2.0 Wait_for_orders 0 0 none endmemcell
...oraz event, który zmienia jej wartości:event losowe1_go updatevalues 0.0 losowe1 Wait_for_orders 1 1 endevent
Mam także event, który losuje, czy wykona się powyższy event (zmieniający wartości) czy nie:event losowe1_losuj multiple 1.0 none losowe1_go condition propability 0.5 endevent
Event losowe1_losuj wstawiłem do innego eventu multiple:event wjazd_ai multiple 1.0 none start ns_a-wjazdowy_S13 ns_zwr09- ns_zwr07- ns_za_zamykaj ns_przed_zamykaj losowe1_losuj endevent
No i na koniec 2 eventy, z których jeden ma się wykonać, w zależności od tego, który się wylosuje:event manewr_odjazd_ns multiple 20.0 losowe1 ns-tow_f_S10 radio21 radio26 manewrstop_stop ns_tm1_Ms1 ns_tm4_Ms1 ns_a-wjazdowy_S1 condition memcompare * 0 0 endevent
event manewr_odjazd_ns multiple 21.0 losowe1 ns-tow_f_Sz1 radio21 radio26 manewrstop_stop ns_tm1_Ms1 ns_tm4_Ms1 ns_a-wjazdowy_S1 condition memcompare * 1 1 endevent
Jednak za każdym razem, gdy uruchamiam symulację, wykonuje się drugi event, czyli podaje Sz. Z tego wynika, że za każdym razem zmienia się wartość komórki pamięci, ale przecież to czy się zmieni miało się losować. Siedzę nad tym od wczoraj i nic nie mogę wymyślić. Liczę na Waszą pomoc.
Mam kolejny problem, tym razem z eventami losowymi. Otóż mam komórkę pamięci:Ja bardzo nie znam się na terminologii jeśli chodzi o eventy. Raczej jadę z tym na czuja. Tak nie definuje się komórki. Zdefiniuj tak:Kod: [Zaznacz]node -1 0 losowe1 memcell 2.0 2.0 2.0 Wait_for_orders 0 0 none endmemcell
node -1 0 losowe1 memcell 1.0 1.0 1.0 * 0 0 none endmemcell
Tzn. nie podawaj w definicji nazw kluczowych jak Czekaj_na_rozkaz....oraz event, który zmienia jej wartości:Ustaw tak:Kod: [Zaznacz]event losowe1_go updatevalues 0.0 losowe1 Wait_for_orders 1 1 endevent
event losowe1_go updatevalues 0.0 losowe1 * 1 1 endevent
Mam także event, który losuje, czy wykona się powyższy event (zmieniający wartości) czy nie:Tu jest ok.Kod: [Zaznacz]event losowe1_losuj multiple 1.0 none losowe1_go condition propability 0.5 endevent
Event losowe1_losuj wstawiłem do innego eventu multiple:Kod: [Zaznacz]event wjazd_ai multiple 1.0 none start ns_a-wjazdowy_S13 ns_zwr09- ns_zwr07- ns_za_zamykaj ns_przed_zamykaj losowe1_losuj endevent
No i na koniec 2 eventy, z których jeden ma się wykonać, w zależności od tego, który się wylosuje:Każdy z eventów ma mieć unikalną nazwę. Ty użyłeś tej samej nazwy do dwóch różnych zdarzeń: manewr_odjazd_ns. Trzeba to zmienić :)Kod: [Zaznacz]event manewr_odjazd_ns multiple 20.0 losowe1 ns-tow_f_S10 radio21 radio26 manewrstop_stop ns_tm1_Ms1 ns_tm4_Ms1 ns_a-wjazdowy_S1 condition memcompare * 0 0 endevent
Kod: [Zaznacz]event manewr_odjazd_ns multiple 21.0 losowe1 ns-tow_f_Sz1 radio21 radio26 manewrstop_stop ns_tm1_Ms1 ns_tm4_Ms1 ns_a-wjazdowy_S1 condition memcompare * 1 1 endevent
node -1 0 losowe1 memcell 2.0 2.0 1.0 * 0 0 none endmemcell
event losowe1_go updatevalues 0.0 losowe1 * 1 1 endevent
event losowe1_losuj multiple 1.0 none losowe1_go condition propability 0.5 endevent
event wjazd_ai multiple 1.0 none start ns_a-wjazdowy_S13 ns_zwr09- ns_zwr07- ns_za_zamykaj ns_przed_zamykaj losowe1_losuj endevent
Żeby nazwy były unikalne, zrobiłem tak:event manewr_odjazd_ns multiple 1.0 none manewr_odjazd_ns1 manewr_odjazd_ns2 endevent
event manewr_odjazd_ns1 multiple 20.0 losowe1 ns-tow_f_S10 radio21 radio26 manewrstop_stop ns_tm1_Ms1 ns_tm4_Ms1 ns_a-wjazdowy_S1 condition memcompare * 0 0 endevent
event manewr_odjazd_ns2 multiple 21.0 losowe1 ns-tow_f_Sz1 radio21 radio26 manewrstop_stop ns_tm1_Ms1 ns_tm4_Ms1 ns_a-wjazdowy_S1 condition memcompare * 1 1 endevent
Nie wiem dalej co mam źle.
Random integer: 0.0699/0.5
a w drugim:Random integer: 0.852/0.5
Więc za każdym razem powinien być inny sygnał. I druga rzecz to: EVENT LAUNCHED: manewr_odjazd_ns1
A manewr_odjazd_ns1 to event odpowiadający za wyświetlenie S10. Z kolei kilka linijek dalej mamy: EVENT LAUNCHED: manewr_odjazd_ns2
Ale w przeciwieństwie do poprzedniego eventu, ten się wykonuje, o czym świadczą kolejne linijki:Multiple passed
EVENT ADDED TO QUEUE: ns-tow_f_sz1
EVENT ADDED TO QUEUE: radio21
EVENT ADDED TO QUEUE: radio26
EVENT ADDED TO QUEUE: manewrstop_stop
EVENT ADDED TO QUEUE: ns_tm1_ms1
EVENT ADDED TO QUEUE: ns_tm4_ms1
EVENT ADDED TO QUEUE: ns_a-wjazdowy_s1
EVENT LAUNCHED: ns_a-wjazdowy_s1
Multiple passed
Dalej nic z tego nie rozumiem.
EVENT LAUNCHED: losowe1_losuj
Random integer: 0.0699/0.5
...
EVENT LAUNCHED: losowe1_losuj
Random integer: 0.4622/0.5
EVENT LAUNCHED: losowe1_losuj
Random integer: 0.852/0.5
...
EVENT LAUNCHED: losowe1_losuj
Random integer: 0.1564/0.5
Nie dziwota, że wyświetliło Ci dwa razy Sz1. Generalnie jest tak, że losowanie odbywa się dwa razy. Znajdź przyczynę takiego stanu. Mimo wszystko za każdym razem wyświetlało Ci Sz-ta. Przecież mogło się zdarzyć tak, że podczas drugiego losowania mogło wyskoczyć S10. Jednak tak się nie stało. Taki los.
Generalnie jest tak, że losowanie odbywa się dwa razy. Znajdź przyczynę takiego stanu.Chodzi Ci o to, że dalej jest coś źle i nie powinny się 2 razy losować?
node -1 0 zew memcell 2.0 2.0 3.0 * 0 0 none endmemcell
Eventy zmieniające jej wartości:event zew0 updatevalues 0.0 zew * 0 0 endevent
event zew1 updatevalues 0.0 zew * 1 1 endevent
event zew2 updatevalues 0.0 zew * 2 2 endevent
I eventy://Pierwsza stacja:
event wjazd_sianowice multiple 1.0 zew
sianowice1 zew1
condition memcompare * 0 0 endevent
event sianowice1 multiple 70.0 none
robie_dla_pana_wjazd sianowice_b_S13 dziekuje_jedziemy sianowice_zwr03- sianowice_zwr04- sianowice_zwr05- sianowice_zwr09- zew0
endevent
event zew1_sianowice_wjazd1_S13 multiple 10.0 none
sianowice_b_S13 robie_dla_pana_wjazd sianowice_zwr03- sianowice_zwr04- sianowice_zwr05- sianowice_zwr09- zew0
endevent
event keyctrl01 multiple 0.1 zew
zew1_sianowice_wjazd1_S13
condition memcompare * 1 1 endevent
//--------------------------------------
//--------------------------------------Następna stacja:
event krosowo_wjazd_ns multiple 1.0 zew
krosowo_wjazd_ns1 zew2
condition memcompare * 0 0 endevent
event krosowo_wjazd_ns1 multiple 60.0 none
krosowo_a-wjazdowy_S13 krosowo_zwr04a- krosowo_zwr06a- krosowo_zwr03- zew0
endevent
event keyctrl01 multiple 0.1 zew
krosowo_a-wjazdowy_S13 krosowo_zwr04a- krosowo_zwr06a- krosowo_zwr03- zew0
condition memcompare * 2 2 endevent
node -1 0 StacjaPierwsza-podanie eventlauncher (współrzędne semafora wjazdowego) 500.0 a 0 zew1_sianowice_wjazd1_S13 zew1_sianowice_wjazd1_S13 end.
event zapal_wyjazd multiple 5.0 none lbc_O_sem_info lbc_zwr38- wyjazd endeventMam pytanko, zwrotnica lbc_zwr38- jest zwykłą, tylko ma obok siebie urządzenie mechaniczne (bez tego czarnego, co pokazuje kierunek) mimo podania nabok nie chce się zmienić a semafor i tak podaje wyjazd. Jest coś źle? Log w załączniku.
event wyjazd multiple 10.0 none lbc_O_s10 endevent
zwrotnica lbc_zwr38- jest zwykłą, tylko ma obok siebie urządzenie mechaniczne
(bez tego czarnego, co pokazuje kierunek)
mimo podania na_bok nie chce się zmienić a semafor i tak podaje wyjazd
Jest coś źle? Log w załączniku.
mimo podania na_bok nie chce się zmienić a semafor i tak podaje wyjazdchodzi o to, czy jest jakieś uzależnienie, że jeśli się zwrotnica nie przełoży to się semafor nie wyświetli.
lbc_O-sem_info jest to nazwa toru na który wjeżdżam.
Zaznaczyłem te same tory na 2 różnych paczkach i na TGA tor ma nazwę 't_paw_a' a na DDS 'n1268'.Może zapisałeś plik z torami? Takie nazwy się generują automatycznie dla torów none oraz prawdopodobnie jeśli nazwy są powtórzone.
node -1 0 damage_status memcell 1 1 1 Wait_for_orders 128 1 damage endmemcell
event damage_stop updatevalues 0.0 damage_status SetDamage 128 1 endevent
event keyctrl05 multiple 0.1 none damage_stop endevent
Po wciśnięciu SHIFT+5 nic się niedzieje. Jako, że np. w scenery.doc zamiast SetDamage było używane DamageFlag, zamieniłem wszystkie setDamage na DamageFlag, jednak bez rezultatu. Z loga wynika, że event się uruchamia:Key pressed: [Shift]+[5]
EVENT ADDED TO QUEUE: keyctrl05
EVENT LAUNCHED: keyctrl05
Multiple passed
EVENT ADDED TO QUEUE: damage_stop
EVENT LAUNCHED: damage_stop
Stworzyłem event updatevalues, ponieważ wcześniej korzystałem z komendy Warning_Signal i działało. Jednak w tym wątku - http://eu07.pl/forum/index.php/topic,19849.msg240832.html#msg240832 (http://eu07.pl/forum/index.php/topic,19849.msg240832.html#msg240832) @Quark-t napisał, że należy to zrobić jako puvalues:event wykolej putValues 1.0 damage 1 1 1 DamageFlag 128 1 endevent
event keyctrl05 multiple 0.1 none wykolej endevent
I znów nic, log:Key pressed: [Shift]+[5]
EVENT ADDED TO QUEUE: keyctrl05
EVENT LAUNCHED: keyctrl05
Multiple passed
EVENT ADDED TO QUEUE: wykolej
EVENT LAUNCHED: wykolej
Type: PutValues
Nie jestem pewien czy dobrze napisałem ten putValues, wzorowałem się na pliku W9.inc. Oczywiście w tym przypadku także zamieniałem DamageFlag na SetDamage. {uszkodzenia taboru}
dtrain_thinwheel=1; {dla lokomotyw}
dtrain_loadshift=1; {dla wagonow}
dtrain_wheelwear=2;
dtrain_bearing=4;
dtrain_coupling=8;
dtrain_ventilator=16; {dla lokomotywy el.}
dtrain_loaddamage=16; {dla wagonow}
dtrain_engine=32; {dla lokomotyw}
dtrain_loaddestroyed=32;{dla wagonow}
dtrain_axle=64;
dtrain_out=128; {wykolejenie}
dtrain_loaddamage=16; {dla wagonow}
dtrain_loaddestroyed=32;{dla wagonow}
dtrain_axle=64;
event shp putvalues 0.0 none 1.0 1.0 1.0 CabSignal -1 -1 endevent
//----------Uuchomienie, wyjazd AI, wyjazd z Alakowic----------
node -1 0 cell1 memcell 2.0 2.0 2.0 * * 0 none endmemcell
event KeyCtrl01 multiple 0.0 cell1 182_wlacz 182_wyjazd change1_cell1 radio1 condition memcompare * * 0 endevent
node -1 0 182_cell memcell 3.0 3.0 3.0 Wait_for_orders 0 0 none163 endmemcell
event 182_wlacz updatevalues 0.0 182_cell Jump_to_order 0 0 endevent
event 182_wyjazd multiple 25.0 none alakowice_m_S2 al_zw3+ al_zw2+ 182_jedz endevent
event 182_jedz updatevalues 20.0 182_cell SetVelocity 70 0 endevent
event change1_cell1 updatevalues 0.0 cell1 * * 1 endevent
node -1 0 radio1 sound 4782.10 13.54 -8319.46 radio1.wav endsound
event radio1 sound 10.0 radio1 1 endevent
//----------Ustawienie wyjazdu dla SM42---------
node -1 0 cell2 memcell 4.0 4.0 4.0 * * 0 none endmemcell
event sm42_start multiple 2.0 cell2 alakowice_f_S13 al_zwwpizdu2+ al_zw4- al_zw3- condition memcompare * * 0 endevent
event change1_cell2 updatevalues 0.0 cell2 * * 1 endevent
//----------------------------
//---------Bałtyk, wjazd, losowanie---------
node -1 0 cell3 memcell 5.0 5.0 5.0 * * 0 none endmemcell
node -1 0 cell4 memcell 6.0 6.0 6.0 * * 0 none endmemcell
event change1_cell3 updatevalues 0.0 cell3 * * 1 endevent
event change2_cell3 updatevalues 0.0 cell3 * * 2 endevent
event change3_cell3 updatevalues 0.0 cell3 * * 3 endevent
event change1_cell4 updatevalues 0.0 cell4 * * 1 endevent
event baltyk_losuj multiple 1.0 cell4 change1_cell4 baltyk_losuj1 baltyk_losuj2 baltyk_wywoluj condition memcompare * * 0 endevent
event baltyk_losuj1 multiple 1.0 none change1_cell3 condition propability 0.5 endevent
event baltyk_losuj2 multiple 3.0 none change2_cell3 condition propability 0.5 endevent
event baltyk_wywoluj multiple 4.0 none baltyk1 baltyk2 radio2-1 endevent
//--------Bałtyk, wariant 1---------
event radio2-1 multiple 1.0 cell3 radio2 condition memcompare * * 1 endevent
node -1 0 radio2 sound -21.9664 2.6 -596.218 wjazd_na_stoj.wav endsound
event radio2 sound 60.0 radio2 1 endevent
event baltyk1 multiple 100.0 cell3 baltyk_a_S8 baltyk_h_S13 bl_zw13bc bl_zw16ac bl_zw18- condition memcompare * * 1 endevent
event baltyk1-1 multiple 20.0 cell3 baltyk_a_S13 bl_zw6- condition memcompare * * 1 endevent
//---------Bałtyk, wariant 2----------
event baltyk2 multiple 2.0 cell3 baltyk_a_S9 en57_wlacz baltyk2-1 condition memcompare * * 2 endevent
node -1 0 en57_cell memcell 7.0 7.0 7.0 Wait_for_orders 0 0 en57_start endmemcell
event en57_wlacz updatevalues 0.0 en57_cell Jump_to_order 0 0 endevent
event baltyk2-1 multiple 5.0 cell3 baltyk_u_S8 bl_zw17ad bl_zw16ac bl_zw13ac bl_zw11- en57_jedz condition memcompare * * 2 endevent
event en57_jedz updatevalues 5.0 en57_cell SetVelocity 100 0 endevent
event baltyk2-2 multiple 20.0 cell3 baltyk_a_S9 bl_zw6- baltyk_h_S13 bl_zw13ac bl_zw17ac bl_zw18- condition memcompare * * 2 endevent
Jak wczytasz za pomocą Rainsted wszystkie includy to wskazuje złą składnie w eventach jeśli taka jest.W moim przypadku, to Rainsted lubi urywać wczytywanie includów, co w efekcie uniemożliwia uruchomienie scenerii i podglądu. Nie wyłapuje wszystkich błędów.
FirstInit gdzieś nie posiałeś lub nie wpisałeś eventów za FirstInit / pojazdów przed FirstInit? Ja raz tak miałem i wtedy symulator wysypuje się zanim nie dojdzie do Init Events.No proszę, a jednak FirstInit się zagubił. Dzięki :)
W moim przypadku, to Rainsted lubi urywać wczytywanie includów, co w efekcie uniemożliwia uruchomienie scenerii i podglądu. Nie wyłapuje wszystkich błędów.To wklej eventy do pustego pliku i w rainsted otwórz go, przejdź do zakładki Struktura. W przypadku błędu będziesz miał coś takiego:
Można dać "podziemny semafor".To jest to samo co to:
SetVelocity 0 0
Tym razem pytanie. Jeżeli po najechaniu przez AI na pewien tor, do którego zostanie przypisany event SetVelocity 0 0, to zatrzyma się na tym torze? Jeśli nie, to w jaki sposób wymusić zatrzymanie AI na danym torze (nie przy peronie)?A nie możesz sobie sam tego sprawdzić? Byłoby to bardziej pouczające dla Ciebie.
Fakt :)Można dać "podziemny semafor".To jest to samo co to:SetVelocity 0 0
Jeżeli po najechaniu przez AI na pewien tor, do którego zostanie przypisany event SetVelocity 0 0, to zatrzyma się na tym torze?Nie. Miejsce doczepienia eventu do toru nie ma większego znaczenia. Aczkolwiek podczepienie powinno być możliwie blisko sygnalizatora i podczepienia powinny być w takiej kolejności, jak występują sygnalizatory i wskaźniki (inaczej AI może się pogubić).
Jeśli nie, to w jaki sposób wymusić zatrzymanie AI na danym torze (nie przy peronie)?Należało by wprowadzić ukresy... Dodawanie "niewidocznego semafora", czyli komórki pamięci z wpisanym SetVelocity 0 0 jest pewną prowizorką, bo chcą zatrzymać skład w różnych miejscach trzeba by to wstawiać co 50m.
Byłoby to bardziej pouczające dla Ciebie.Jest tak bardzo pouczające, że aż nadto. Chcę zatrzymać AI na jakimś odcinku tak, aby nie wyglądało to na zwykłe zatrzymanie przed semaforem. Brakuje mi pomysłów, jak zrobić, aby zadziałało. Przeglądając inne eventy już zupełnie niczego nie rozumiem.
node -1 0 st44_cell3 memcell 1.0 1.0 1.0 SetVelocity 0 0 tor2k endmemcell
To kod z generatora, nie? Bo generator tworzy identyczne nazwy, a dodatkowo ktoś zgłaszał mi identyczny błąd przy korzystaniu z tej opcji.Dziwne, bo składnia wygląda na dobrą (porównałem ze swoimi wypocinami).
To kod z generatora, nie? Bo generator tworzy identyczne nazwy, a dodatkowo ktoś zgłaszał mi identyczny błąd przy korzystaniu z tej opcji.Tak, przy KeyCtrl nie ma problemu przy takiej składni. Nie mam już pomysłów, jak jutro do tego nie dojdę to skończy się na przesunięciu eventu gdzieś przed wjazdowy i opóźnieniu "zapłonu".
event szogun multiple 60 membalmia_manewry odczepiamy_sie balmia_manewry_cd upbalmia_manewry condition memcompare * 0 0 endevent
I wywołaj szoguna.
event keyCtrl01 multiple 10 memkeyCtrl01bug szopa_tm8_a_ms2 wyjazdszopa2tm03_ms2 wyjazd_z_szopy_tm01_ms2 upkeyCtrl01 condition memcompare * 0 0 endevent
node -1 0 memkeyCtrl01bug memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event upkeyCtrl01 updatevalues 0.0 memkeyCtrl01bug * 1 1 endevent
Tak korzystam. Po prostu zaznaczyłem opcje wykonaj tylko raz i tak się wygenerowało.Wiadomo, że tak.:)
Mam mały problem, jak generuje event wyzwalany zajęciem toru to muszę podawać w warunku tor zajęty?
event odjazd_glowny multiple 20 balmia2 balmia_c_s10 condition trackoccupied endevent
event odjazd_glowny multiple 20 balmia2 balmia_c_s10 condition trackoccupied endevent
node 1000 0 balmia2 track normal 90.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used2 4 tpd-oil2 0.2 0.5 1.1
-2595.33 -3.79986 3163.28 0.0 //point 1
10.2605 0.0 28.1907 //control vector 1
-10.2605 0.0 -28.1907 //control vector 2
-2564.54 -3.79986 3247.86 0.0 //point 2
0
event2 balmia_c_sem_info
event0 odjazd_glowny
endtrack
event odjazd_glowny multiple 20 balmia2 balmia_c_s10 condition trackoccupied endeventPrzyglądam się temu zdarzeniu i dochodzę do wniosku, że ten zapis nie ma sensu. Aby zdarzenie event0 odjazd_glowny wykonało się, skład pociągu musi zająć tor balmia2. Po co więc dodatkowo warunkować to zdarzenie? Usuń warunek i powinno działać.
Staramy się unikać teraz event0.Dlaczego?
Usunąłem i nie działa.event odjazd_glowny multiple 20 balmia2 balmia_c_s10 condition trackoccupied endeventPrzyglądam się temu zdarzeniu i dochodzę do wniosku, że ten zapis nie ma sensu. Aby zdarzenie event0 odjazd_glowny wykonało się, skład pociągu musi zająć tor balmia2. Po co więc dodatkowo warunkować to zdarzenie? Usuń warunek i powinno działać.
node 1000 0 jacek track normal 90.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used2 4 tpd-oil2 0.2 0.5 1.1
-2564.54 -3.79986 3247.86 0.0 //point 1
10.2607 0.0 28.1909 //control vector 1
-10.2605 0.0 -28.1907 //control vector 2
-2533.76 -3.79986 3332.43 0.0 //point 2
0
event0 odjazd_glowny
event2 balmia_c_sem_info
endtrack
@Szczawik, ja bym powiedzial co innego. Warunek jest tylko warunkiem, sam eventu nie wykona. Zarowno jesli event jest wyzwalany wjechaniem skladu na tor jak i zajeciem odcinka izolowanego, warunek jest niepotrzebny.Tak korzystam. Po prostu zaznaczyłem opcje wykonaj tylko raz i tak się wygenerowało.Wiadomo, że tak.:)
Mam mały problem, jak generuje event wyzwalany zajęciem toru to muszę podawać w warunku tor zajęty?
Kolejne pytanie do was jak wygasić sygnały na semaforach?Bardzo prosta rzecz. Do jakiegoś toru za semaforem przypisujesz event1/2, w którym to będzie zapisane aby semafor wygasł, np.: nazwasemafora_s1
Dzięki @matikolejarz. Trzeba przypisywać sygnalizatory powtarzające, bo mi AI nie chce ruszyć.To ustaw AI bliżej semafora, albo daj kawałek dalej sem_info do toru. Ja mam AI pod powtarzaczem, i mimo sp1 na powtarzaczu, a na semaforze S13 i AI się wtacza.
Dlaczego zwrotnica przekręcona w bok nie ustawia torów własnie w bok tylko prosto?Możesz jaśniej? Chodzi Ci ,że masz nazwazwrotnicy- a mimo tego zwrotnica nie przekłada się?
node 1000 0 fuga track normal 0.0 1.435 0.25 -1 20 0 flat vis
rail_screw_used1 4 tpb-n1 0.2 0.5 1.1
10936.3 -11.6 -237.985 0.0 //point 1
88.1758 0.0 -40.6569 //control vector 1
-81.1279 0.0 53.3496 //control vector 2
11188.9 -11.6 -383.073 0.0 //point 2
0
event2 jazda_1
endtrack
event jazda_1 multiple 5 none to_i111_os2 kwc_wj1n_s2 wyjazd_k1_s2 to_li_os2 lis_sp_none416_sp2 endevent
Pokaż ten swój wpis.trainset rozklad ursus 0.1 0.1
Usuń też tą jedynkę oczywiście.Zmienić na 0 czy całkowicie usunąć?
Nie lubię się cytować, ale cóż czasem trzeba. Proszę:Usuń też tą jedynkę oczywiście.Zmienić na 0 czy całkowicie usunąć?
Według mnie wpis powinien wyglądać tak:
trainset rozklad ursus 0.1 0.1
node -1 0 EN57-1051ra dynamic PKP\EN57_V1 EN57-1051RA 6BAII 0 headdriver 55 50 Passengers enddynamic
node -1 0 EN57-1051s dynamic PKP\EN57_V1 EN57-1051S 6BSII 0 connected 55 50 Passengers enddynamic
node -1 0 EN57-1051rb dynamic PKP\EN57_V1 EN57-1051RB 6BBII 0 connected 0 50 Passengers enddynamic
endtrainset
Jest jakiś sens grzebania w eventach, jeśli ktoś sobie nie radzi ze składnią wpisów na poziomie podstawowym?Może i nie radze ale tworze i misja prędzej czy później powstanie.
event przepusc_AI multiple 10 none li_c01_s13 test_zwr04- lisow_wjazdowy1_s1 endeventdla AI, ja go wyzwalam przed swoim semaforem lecz po wyzwoleniu tylko zwrotnica się przekręca w bok a na semaforze nic się niedzieje. Semafor przypisałem do toru, raz z point1 później 2 ale i tak nic się nie działo.
node 1000 0 ctl track normal 50.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used1 4 tpbps-new2 0.2 0.5 1.1
-178.811 -9.156 -11.721 0.0 //point 1
-16.6021 0.0 -1.46543 //control vector 1
16.6021 0.0 1.46543 //control vector 2
-228.617 -9.15616 -16.1173 0.0 //point 2
0
event1 li_c01_sem_info
endtrack
node 1000 0 none1710 track normal 100.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used1 4 tpbps-new2 0.2 0.5 1.1
-99.5504 0.2 4283.29 0.0 //point 2
-7.62939e-006 0.0 -33.3335 //control vector 2
7.62939e-006 0.0 33.333 //control vector 1
-99.5504 0.2 4183.29 0.0 //point 1
0
velocity 140.0
event2 baltyk_z_sem_info
endtrack
Wygenerowałem takie eventy: node -1 0 lol2 memcell -99.547 0 4183.859 SetVelocity 20 30 none1710 endmemcell
event uplol2 updatevalues 50 lol2 * * 60 endevent
event lol2 multiple 60 none balmia_z_S2 endevent
A to jest skład z którym muszę zrobić tak żeby ruszył: trainset rozklad none1710 10.0 0.1
//$o -
node -1 0 EP08-013 dynamic pkp\ep08_v1 102e-013 102e_ic 0.0 headdriver 3 0 enddynamic
node -1 0 AOU_008-1 dynamic pkp\1xxa_v1 aou_008-1 1xxa 0.0 nobody 3 16 passengers enddynamic
node -1 0 ADU_160_TLK dynamic pkp\1xxa_v1 adu_160_tlk 1xxa 0.0 nobody 3 20 passengers enddynamic
node -1 0 B10OU_2 dynamic pkp\1xxa_v1 b10ou_2 1xxa 0.0 nobody 3 30 passengers enddynamic
node -1 0 B10OU_20-70_667-3 dynamic pkp\1xxa_v1 b10ou_20-70_667-3 1xxa 0.0 nobody 3 35 passengers enddynamic
node -1 0 BDNU_090-7 dynamic pkp\1xxa_v1 bdnu_090-7 1xxa 0.0 nobody 0 20 passengers enddynamic
endtrainset
Nie mam pojęcia czy semafor jest do toru źle przypisany czy co. Czy trzeba dać jakiś warunek w EventGeneratorze w Multiple do stworzenia czegoś takiego? Jako wyzwolenie dałem: "Pojazd stojący na torze" a nic się nie dzieje. Jeśli mógłby to ktoś zaawansowany wytłumaczyć to byłbym wdzięczny.
event2 baltyk_z
musi być w torze bo inaczej wywala taki błąd.
node -1 0 lol2 eventlauncher -97.109 0 4183.25 100 SHIFT -5 balmia_z 2 condition Waring_signal 5 5 10 end
wywala mi błąd: "Cannot find Memory Cell for Event Launcher". Nie mam pojęcia o co chodzi. W załączniku dla ułatwienia screen z generatora dla tego wpisu.
Po dodaniu "tego czegoś"To oznacza, że u Ciebie nie odnaleziono komórki pamięci dla tego eventu.Kod: [Zaznacz]node -1 0 lol2 eventlauncher -97.109 0 4183.25 100 SHIFT -5 balmia_z 2 condition Waring_signal 5 5 10 end
wywala mi błąd: "Cannot find Memory Cell for Event Launcher".
node 1000 0 none1710 track normal 100.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used1 4 tpbps-new2 0.2 0.5 1.1
-99.5504 0.2 4283.29 0.0 //point 2
-7.62939e-006 0.0 -33.3335 //control vector 2
7.62939e-006 0.0 33.333 //control vector 1
-99.5504 0.2 4183.29 0.0 //point 1
0
velocity 140.0
event2 balmia_z_sem_info
endtrack
Niestety nie mam pojęcia co w końcu zrobić z tym fragmentem: event2 balmia_z_sem_info
Myślę, że screen z generatora mówi sam za siebie. Czy trzeba zlikwidować ten event2 balmia_z_sem_info
wpis i zamiast niego włożyć w to samo miejsce ten event0 lol2
wpis? I czy ten event multiple (lol2) musi być wyzwolony przez opcję "Pojazd stojący na torze"? I kolejne pytanie - co ma być pierwsze w eventach w pliku .scn scenariusza? Czy ma być taka event lol2 multiple 0 none balmia_z_S2 endevent
node -1 0 nuda1 eventlauncher -97.094 0 4183.266 -1 none 1031 lol2 none end
kolejność czy na odwrót? Oraz czy event multiple ma być z opóźnieniem czy też nie?
event keyCtrl01 multiple 10 memkeyCtrl01bug zwr_481- upRz53 condition memcompare * 0 0 endevent
node -1 0 memRz53bug memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event upRz53 updatevalues 0.0 memRz53bug * 1 1 endevent
MemCell "memkeyctrl02bug" does not exist
event keyCtrl01 multiple 10 memkeyCtrl01bug kierowniczka upkeyCtrl01 condition memcompare * 0 0 endevent
node -1 0 memkeyCtrl01bug memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event upkeyCtrl01 updatevalues 0.0 memkeyCtrl01bug * 1 1 endevent
---------------------------------------------------------------------------------------------
Event "kierowniczka" does not exis
To znaczy? Może znów masz złe parametry pliku WAV?Parametry dobre. Spróbuję po zmianie kolejności współrzędnych.
Może zmienić tytuł wątku na "Zgadnijcie co zrobiłem, że nie działa"?Na razie przydałoby się zmienić w tytule "w" na "v", ale jak tak dalej będzie, to trzeba będzie pomyśleć o Twojej propozycji ;) Userzy myślą, że jak pobiorą Generator (proszę korzystać z najnowszej wersji w Publikacjach) misja zrobi się sama. Rozczarowałem ich. A podanie gotowego rozwiązania skutkuje kolejnym pytaniem o to samo, więc warto zachęcać do ręcznego szukania.
Userzy myślą, że jak pobiorą Generator (proszę korzystać z najnowszej wersji w Publikacjach) misja zrobi się sama. Rozczarowałem ich.Przeciez w programie jest wszystko napisane, co trzeba zrobic, by dany event zadzialal... (dla niekumatych - przypisac do toru) ;)
event keyCtrl02 multiple 0 none bl_zw17db endevent
który po wklejeniu do pliku .scn i zapisaniu, na scenariuszu nie działa. To jest fragment tych torów "przystających" do rozjazdu: node 1000 0 bl_zw17_c track switch 8.0 1.435 0.24 500 225 2 flat vis
rail_screw_used1 4 rail_screw_used1 0.2 2.75 2.5
-115.448 0.2 2798.54 0.1 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
-114.559 0.2 2790.59 -0.1 //point 2
0
-115.448 0.2 2798.54 0 //point 1
0.296265 0.0 -2.64868 //control vector 1
-0.154655 0.0 2.66089 //control vector 2
-114.772 0.2 2790.57 0 //point 2
300.0
endtrack
node 1000 0 bl_zw17_d track switch 8.0 1.435 0.24 500 225 2 flat vis
rail_screw_used1 4 rail_screw_used1 0.2 2.75 2.5
-114.529 0.2 2798.54 0.1 //point 1
0.00196075 0.0 -2.66528 //control vector 1
-0.144028 0.0 2.66138 //control vector 2
-114.318 0.2 2790.53 -0.1 //point 2
0
-114.529 0.2 2798.54 0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
-114.531 0.2 2790.53 0 //point 2
300.0
endtrack
node 1000 0 bl_zw17_b track switch 8.0 1.435 0.24 500 225 2 flat vis
rail_screw_used1 4 rail_screw_used1 0.2 2.75 2.5
-114.525 0.2 2782.09 0.1 //point 1
-0.00196075 0.0 2.66528 //control vector 1
0.144028 0.0 -2.66138 //control vector 2
-114.744 0.2 2790.09 -0.1 //point 2
0
-114.525 0.2 2782.09 0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
-114.531 0.2 2790.09 0 //point 2
300.0
endtrack
node 1000 0 bl_zw17_a track switch 8.0 1.435 0.24 500 225 2 flat vis
rail_screw_used1 4 rail_screw_used1 0.2 2.75 2.5
-113.614 0.2 2782.15 0.1 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
-114.503 0.2 2790.1 -0.1 //point 2
0
-113.614 0.2 2782.15 0 //point 1
-0.296265 0.0 2.64893 //control vector 1
0.154655 0.0 -2.66089 //control vector 2
-114.29 0.2 2790.12 0 //point 2
300.0
endtrack
event (p1)ac multiple 0 none (p1)_wz6 (p1)_av60 (p1)_a0 (p1)_b0 (p1)_c0 (p1)_d0 endevent
event (p1)bd multiple 0 none (p1)_wz5 (p1)_av60 (p1)_a1 (p1)_b1 (p1)_c1 (p1)_d1 endevent
event (p1)ad multiple 0 none (p1)_wz7 (p1)_av40 (p1)_a1 (p1)_b1 (p1)_c0 (p1)_d0 endevent
event (p1)bc multiple 0 none (p1)_wz8 (p1)_bv40 (p1)_a0 (p1)_b0 (p1)_c1 (p1)_d1 endevent
PS. Hunter mnie ubiegł.
event brutto4_wjazd multiple 0.0 none psiepole_j_S13 test_zwr08- test_zwr07- test_zwr06- brutto4_start brutto4_jedz endevent
EVENT LAUNCHED: brutto4_wjazd
Multiple passed
EVENT ADDED TO QUEUE: psiepole_j_s13
EVENT ADDED TO QUEUE: test_zwr08-
EVENT ADDED TO QUEUE: test_zwr07-
EVENT ADDED TO QUEUE: test_zwr06-
EVENT ADDED TO QUEUE: brutto4_start
EVENT ADDED TO QUEUE: brutto4_jedz
(...)
EVENT LAUNCHED: test_zwr06-
(...)
EVENT LAUNCHED: test_zwr07-
(...)
EVENT LAUNCHED: test_zwr08-
node 1000 0 *obronca track normal 22.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used1 4 tpd-oil2 0.2 0.5 1.1
-9222.96 -9.15616 280.903 0.0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
-9244.96 -9.15616 280.903 0.0 //point 2
0
endtrack
Są co najmniej dwie zwrotnice o nazwie test_zwr08 i pewnie przełącza się ta druga. Pozostałych nie sprawdzałem.Zmiana nazwy rozwiązała problem. Dzięki.
Jeśli stworzę rozkład, to AI zawsze się zatrzyma.Po czym to wnosisz?
Lepiej jeżdżące AI: reakcja na sygnały manewrowe, zatrzymywanie na W4 wg rozkładu wraz z odjazdem o podanej godzinie, zatrzymywanie na końcu toru, lepsze hamowanie (youBy), sygnały końca pociągu (ZiomalCl), poprawiona zmiana kierunku (ZiomalCl).
Puściłem AI torem obok. Czas jazdy trochę się wydłuży, ale było to prostsze w wykonaniu.No, a miałem napisać, żeby nie robić prowizorek typu brak W4 w torze obok, czy podmiana rozkładów w trakcie jazdy... W każdym bądź razie będę pilnował, żeby takie rozwiązania nie były akceptowane na testach.
@Ra, skoro działa, to czemu tego nie akceptować?Bo nie ma takiej potrzeby. Włożyłem dużo pracy w to, żeby pociągi jeździły zgodnie z rozkładami i zatrzymywały się w miejscach podanych w rozkładzie. Nie widzę potrzeby, by omijać działające dobrze mechanizmy "bo działa". Również można by przekładać sobie rozjazdy ręcznie jadąc pomiędzy stacjami i ręcznie zapalać semafory, a jakoś się tego nie stosuje.
w torze musi być jeszcze PassengerStopPoint, więc możesz poprowadzić skład, który ma się nie zatrzymywać przez inny tor.Zauważyłem, że jest kilka własności torów, które nie są opisane w Scenery.doc, np. PassengerStopPoint albo Isolated.
PS. O rozkładach wiem tylko tyle co przeczytałem na wiki Ra i trochę z doświadczenia na test_w4.scn.
Jak wjeżdżam lokomotywą na rozjazd następuje wykolejenie loka. Co tu jest źle?Jak się wykoleja, to masz coś namieszane z torami i nie ma to nic wspólnego z eventami.
A czy to nie jest spowodowane tym, że próbujesz połączyć ze sobą dwa elementy typu Switch?Dwa rozjazdy połączone ze sobą powodują nullTracki, ale o ile mi dobrze wiadomo, to MaSzynowe angliki są tak skonstruowane, żeby do takiej sytuacji nie dochodziło.
Uwaga! Jeśli sceneria ma błędy w postaci niezgodności przechyłki na połączonych ze sobą odcinkach, może to prowadzić do nieprzejezdności i wykolejenia taboru (wcześniej taka sytuacja była akceptowana).Zobacz jaki komunikat zapisuje się w logu - Derailed due to ...
@Ra da się to jakoś naprawić? Dzieje mi się to samo co na obrazku @dymusa.Za mało informacji podajesz. Co to za tory? Co się zapisuje w logu? Czy po wczytaniu wszystkiego do Rainsted i połączeniu torów na zakładce Debugger z tolerancją 1.5mm widać jakieś dziury na Podglądzie terenu?
W tym logu nie widzę żadnych danych dotyczących wykolejenia. ZTCP to EXE 325 zapisywało takowe (derailed due np. to high speed).Nie wiem dlaczego w logu nic nie ma. Tak się wykoleja.
Żadnych dziur w rozjeździe nie ma.Dalej tak twierdzisz?
Spakuj swoją scenerię z tym problemem i wstaw tu linka.W tym logu nie widzę żadnych danych dotyczących wykolejenia. ZTCP to EXE 325 zapisywało takowe (derailed due np. to high speed).Nie wiem dlaczego w logu nic nie ma. Tak się wykoleja.
Tmuszą mieć takie same współrzędne.I przechyłki też (ważne przy zakrętach).
// ograniczenie prędkości, parametry:
//---------------w9---------------
//param: textura, x, z, y, kat
//początek ograniczenia
event (p1)_wja putvalues 0.0 none (p2) (p3) (p4) SetVelocity (p8) (p8) endevent
//minięciu końca ograniczenia
event (p1)_wyj putvalues 0.0 none (p2) (p3) (p4) SetVelocity -1 -1 endevent
origin (p2) (p3) (p4)
rotate (p6) (p5) (p7)
node 400 0 none model 0 0 0 0 ip/pkp/w9.t3d none endmodel
rotate 0 0 0
endorigin
// ograniczenie prędkości, parametry:
//---------------w9---------------
//param: textura, x, z, y, kat
//komorka do warunku zawsze spelnionego
node -1 0 DoNiczego memcell 111.0 111.0 111.0 Wait_for_orders 0 0 none endmemcell
//poczatek ograniczenia w9:
event (p1)_wja putvalues 0.0 none (p2) (p3) (p4) SetVelocity (p8) (p8) endevent
//
//koniec ograniczenia - ominiecie zbyt wczesnego przyspieszania wywolanego
//skanowaniem torow przez dodanie zawsze spelnionego warunku
//teraz AI nie widzi wczesniej predkosci przy skanowaniu
//i dowiaduje sie o niej dopiero gdy najezdza na tor z eventem
event (p1)_wyj multiple 1.0 DoNiczego (p1)_y condition memcompare * 0 0 endevent
event (p1)_y putvalues 0.0 none (p2) (p3) (p4) SetVelocity -1 -1 endevent
origin (p2) (p3) (p4)
rotate (p6) (p5) (p7)
node 400 0 none model 0 0 0 0 ip/pkp/w9.t3d none endmodel
rotate 0 0 0
endorigin
I to działało całkiem dobrze.Dążę do tego, żeby nie wstawiać Velocity w torach. W zamian tego chciałbym ograniczać prędkość przez SetVelocity umieszczone w inc'u przypisanym do toru gdzie ma się zaczynać i kończyć ograniczenie prędkości. Rozwiązanie to ma taką zaletę, że nie trzeba używać n-razy tego samego wpisu dla całej grupy torów. Potrzebne są tylko 2 wpisy w torach.To nie jest dobry kierunek. Jeśli jest ograniczenie (dla obydwu kierunków ruchu), powinno być ono wpisane w tory. Tylko jeśli ograniczenie jest w jednym kierunku (np. ze względu na widoczność), powinno być zrobione przez PutValues z SetVelocity. Używanie eventów tego typu jest "rozwiązaniem komplikującym" (nadmiarowym), natomiast każdy tor i tak ma parametr Velocity i umieszczenie go we wpisie nie powoduje zwiększenia ilości danych (jest bardziej "naturalne"). Innym argumentem jest np. to, że jeśli AI zostanie "zresetowane" na takim odcinku (pomiędzy W9), to nie będzie wiedziało o ograniczeniu.
W exe 372 nie zmieniło się zachowanie AI dla pierwszego przykładu inc'a, ale niestety przestał działać zabieg z przykładu drugiego- zdarzenie się wywołuje, ale AI nie reaguje na nie.Obecnie eventy są klasyfikowane jako skanowane albo kolejkowane. Jeśli PutValues zawiera SetVelocity w momencie wczytywania scenerii, zostanie zakwalifikowany jako skanowany i nie doda się do kolejki.
1) Czy docelowo możliwe jest zmuszenie AI do odpowiedniej reakcji na koniec ograniczenia?SetVelocity jest standardowo używane w semaforach. Załóżmy taką sytuację: AI stoi przed semaforem mając prędkość startową 0.1. Semafor oddalony o 200m ma komendę SetVelocity 40 40. Wg tego, co napisałeś, AI ma czekać aż do wjechania na tor, do którego to zdarzenie jest przypisane. AI będzie więc czekać w nieskończoność, bo z aktualną prędkością 0.1 nie dowlecze się bliżej semafora. Być może trzeba by inaczej traktować SetVelocity umieszczone w PutValues niż w komórce odczytywanej przez GetValues.
Widziałbym to tak: gdy AI wyskanuje zdarzenie z SetVelocity nakazujące zwiększyć prędkość, AI czeka aż do wjechania na tor do którego to zdarzenie jest przypisane. W przypadku zdarzenia nakazującego zmniejszenie prędkości nic zmieniać nie trzeba, bo jest OK.
2) Jeśli odp. na pytanie pierwsze jest negatywna, to czy jest szansa żeby docelowo SetVelocity działało też w przypadku wywołania go ze zdarzenia typu condition (tak jak w 355)?Nie. Eventy zakwalifikowane jako skanowane są odczytywane podczas skanowania i nie da się ich wywołać. Poza tym dodawanie takiego condition nie ma sensu, efekt będzie identyczny, jeśli da się od razu endevent.
Innym argumentem jest np. to, że jeśli AI zostanie "zresetowane" na takim odcinku (pomiędzy W9), to nie będzie wiedziało o ograniczeniu.Ten argument przekonał mnie o niesłuszności mojego toku myślenia co do wstawiania eventów w ograniczeniach.
jeśli ograniczenie jest w jednym kierunku (np. ze względu na widoczność), powinno być zrobione przez PutValues z SetVelocityi potencjalne sytuacje, gdy z uwagi na zbyt szybkie rozpoczęcie przyśpieszania bardzo długich składów, ostatnie wagony wykolejają się jeszcze na ograniczeniu, czy nie należałoby pomyśleć jednak o tej propozycji:
1) Czy docelowo możliwe jest zmuszenie AI do odpowiedniej reakcji na koniec ograniczenia?Zmodyfikowałbym tylko mój wstępny pomysł dodając warunek minimalnej konfigurowalnej dodatkowym parametrem (albo określonej na stałe) prędkości, od której AI rozpoczynałby przyśpieszanie przy obiekcie inc.
inaczej traktować SetVelocity umieszczone w PutValues niż w komórce odczytywanej przez GetValues.nie byłoby możliwe do wykonania.
Obecnie eventy są klasyfikowane jako skanowane albo kolejkowane. Jeśli PutValues zawiera SetVelocity w momencie wczytywania scenerii, zostanie zakwalifikowany jako skanowany i nie doda się do kolejki.Rozumiem powody tego rozwiązania. Mała prośba o opublikowanie listy, które są skanowane a które kolejkowane.
i potencjalne sytuacje, gdy z uwagi na zbyt szybkie rozpoczęcie przyśpieszania bardzo długich składów, ostatnie wagony wykolejają się jeszcze na ograniczeniu,Przy ograniczeniu w jedną stronę nie ma raczej mowy o wykolejeniu z tego powodu.
Mała prośba o opublikowanie listy, które są skanowane a które kolejkowane.
Rozróżnienie eventów skanowanych i dodawanych do kolejki
Odkąd uruchomiono skanowanie torów w poszukiwaniu sygnałów wpływających na jazdę AI, zaistniała potrzeba odróżnienia eventów używanych podczas skanowania od tych dodawanych do kolejki. Obecnie (od wersji 361) takie rozróżnienie jest wykonywane na etapie wczytywania scenerii. Jeśli event PutValues zawiera komendę SetVelocity, ShuntVelocity albo zaczynającą się od PassengerStopPoint:, zostanie uznany jako uczestniczący w skanowaniu. Podobnie GetValues, jeśli połączona z nim komórka pamięci będzie zawierać pierwotnie komendę SetVelocity albo ShuntVelocity, nawet jeśli później komenda w komórce zostanie wymieniona na inną (jak dotąd nie używa się tego, wyjątkiem jest służba 3 na Linii 053).
Ogólnie, to dobrze jednak byłoby mieć wpływ na charakter eventów (np. przez dodanie prefiksu przy nazwie eventu). Po pierwsze wsteczna kompatybilność ze starszymi sceneriami (czyli mniej pracy przy przerabianiu) i określone założenia scenariusza, gdy scenarzysta chciałby mieć wpływ na np. zatrzymanie AI pod określonym warunkiem (np. zdarzenia losowe).Moim zdaniem nie ma to sensu użytkowego. Konieczność dostosowania się do błędów i udziwnionych rozwiązań w istniejących sceneriach mnie nie przekonuje. Komenda SetVelocity jest ma charakter sygnałowy i trudno jest jednoznacznie określić, jak miałoby się zachować AI dostając taką komendę. Czy np. SetVelocity 20 20 wysłane nagle z kolejki eventów miało by wdrożyć nagłe hamowanie AI w celu jak najszybszego uzyskania zadanej prędkości?
Przy ograniczeniu w jedną stronę nie ma raczej mowy o wykolejeniu z tego powodu.Żeby nie wymyślać już konkretnych sytuacji, to po prostu sprowadzę tu podstawowy argument ważny przy symulatorach - realizmu. Dziwnie i "nieedukacyjnie" wygląda jak obserwujemy pociąg kierowany przez AI łamiący ograniczenie prędkości.
Moim zdaniem nie ma to sensu użytkowego. Konieczność dostosowania się do błędów i udziwnionych rozwiązań w istniejących sceneriach mnie nie przekonuje.No tak, tworzone były różne obejścia bo "było tak łatwiej" albo nie było innych możliwości. Pierwszym przypadkiem bym się faktycznie nie przejmował. W drugim przypadku, gdy jest jakiś pomysł w głowie i inaczej nie da się tego zrobić, to szuka się różnych "furtek". Np. żeby zatrzymać AI trzeba schować semafor pod ziemię...
Komenda SetVelocity jest ma charakter sygnałowy i trudno jest jednoznacznie określić, jak miałoby się zachować AI dostając taką komendę. Czy np. SetVelocity 20 20 wysłane nagle z kolejki eventów miało by wdrożyć nagłe hamowanie AI w celu jak najszybszego uzyskania zadanej prędkości?Służbowe. A gdy np. SetVelocity 20+ 20+ to nagłe.
Żeby nie wymyślać już konkretnych sytuacji, to po prostu sprowadzę tu podstawowy argument ważny przy symulatorach - realizmu. Dziwnie i "nieedukacyjnie" wygląda jak obserwujemy pociąg kierowany przez AI łamiący ograniczenie prędkości.AI ma przede wszystkim jeździć i nie sprawiać problemów, a nie być wzorem do naśladowania. Jak dotąd, z jednostronnym ograniczeniem spotkałem się tylko na odcinku Kozłów - Psary, ze względu na słabą widoczność z przejazdu na łuku. Poza tym, metodologia mojej pracy jest następująca: przysyłasz mi scenerię, na której AI się zachowuje nieprawidłowo, ja poprawiam kod, aż zacznie działać, albo dochodzę do wniosku, że coś trzeba zrobić w inny sposób. Jednocześnie zmiany będą weryfikowane na scenerii o znacznym ruchu AI (jazda z rozkładami, skomplikowane manewry).
W drugim przypadku, gdy jest jakiś pomysł w głowie i inaczej nie da się tego zrobić, to szuka się różnych "furtek". Np. żeby zatrzymać AI trzeba schować semafor pod ziemię...Wirtualne semafory są OK, pod warunkiem, że są zrobione zgodnie z zasadami, tzn. komórka pamięci jest przy torze, którym ma sterować, a nie w OXYZ, a komendy do niej wpisywane pokrywają się ze sterowaniem semaforem. Natomiast jeśli wstawia się wirtualne semafory przy peronie na każdej stacji, bo się komuś nie chce pisać rozkładu, to już poniekąd przegięcie jest.
Służbowe. A gdy np. SetVelocity 20+ 20+ to nagłe.Nie spotkałem się z taką postacią liczb zmiennoprzecinkowych.
Nie spotkałem się z taką postacią liczb zmiennoprzecinkowych.
OK. Z moimi "małymi" potrzebami nie mam szans.Na co?
Są w C możliwości zmiany typu zmiennych na string i konwersji na int/long. Te "20+" było propozycją rzuconą na poczekaniu. Nie znam typów argumentów tej funkcji w C. Bez takich ingerencji w kod można zrobić np 100020 i już.Raczej chodzi o to, że argumenty liczbowe komend są przechowywane jako liczby zmiennoprzecinkowe. Informacje o jakiś tam plusach trzeba by rozpoznawać i umieszczać osobno. I nie było by to zgodne wstecz. Poza tym, czy na pewno to, co chcesz osiągnąć nie da się zrobić inny, prostszy sposób?
Być może W9 na końcu ograniczenia powinien mieć komendę np. SetVelocity 40 -1Sprawdziłem na swojej scenerii testowej. Niestety nie.
W pierwszym przypadku ustalenie VelActual mogłoby następować przez ustalenie prędkości przed uruchomieniem AI. Wydaje mi się to logiczne - przekazujemy "pałeczkę" w ustalonym stanie jazdy, a dodatkowo możemy stosować jako autopilot na odcinkach między semaforami prowadząc sami pociąg.To się nie sprawdzało. Wystarczyło włączyć jazdę na pierwszą pozycję, następnie uaktywnić AI i dalej się wlokło z prędkością 2km/h. Teraz, po włączeniu AI dodałem reset skanowania na wszelki wypadek. Zdarzało się bowiem, że przy ręcznym prowadzeniu udało się przejechać jakieś sygnały, które potem wisiały i nie szło ich skasować z tabelki mimo przejechania paru kilometrów.
Może jakaś ankietka dla developerów, czy to w ogóle przydatne?Słabo to widzę.
event keyCtrl05 multiple 0 none losujwjazd_ir wjazd_ir jamnik_kalowo endevent
event wjazd_ir multiple 30 none wjazd_ir1 wjazd_ir2 wjazd_ir3 endevent
event wjazd_ir1 multiple 35 none stacja_b_zwr20- stacja_b_zwr26- stacja_b_p_s13 wyjazd3 woodkid_s5 endevent
event wjazd_ir2 multiple 10 none stacja_b_p_s5 woodkid_s2 endevent
event wjazd_ir3 multiple 15 none stacja_b_p_s13 woodkid_s10 stacja_b_zwr21- stacja_b_zwr22- endevent
event wyjazd1 multiple 80 none stacja_b_c_s2 wyjazd_stacja endevent
event wyjazd2 multiple 80 none stacja_b_e_s10 stacja_b_zwr08- stacja_b_zwr09- stacja_b_zwr10+ stacja_b_zwr12+ wyjazd_stacja endevent
event wyjazd3 multiple 80 none stacja_b_g_s10 stacja_b_zwr05- stacja_b_zwr15- wyjazd_stacja endevent
node -1 0 memwjazd_ir memcell 0.0 0.0 0.0 * 0 0 none endmemcell
node -1 0 memwjazd_ir memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event up1wjazd_ir updatevalues 0.0 memwjazd_ir * 1 1 endevent
event up2wjazd_ir updatevalues 0.0 memwjazd_ir * 2 2 endevent
event losuj1wjazd_ir multiple 0.0 none up1wjazd_ir condition propability 0.5 endevent
event losuj2_1wjazd_ir multiple 0.0 none up2wjazd_ir condition propability 0.5 endevent
event losuj2wjazd_ir multiple 2.0 memwjazd_ir losuj2_1wjazd_ir condition memcompare * 0 0 endevent
event losujwjazd_ir multiple 0.0 none losuj1wjazd_ir losuj2wjazd_ir endevent
event mul1wjazd_ir multiple 0.0 memwjazd_ir wjazd_ir1 condition memcompare * 0 0 endevent
event mul2wjazd_ir multiple 0.0 memwjazd_ir wjazd_ir2 condition memcompare * 1 1 endevent
event mul3wjazd_ir multiple 0.0 memwjazd_ir wjazd_ir3 condition memcompare * 2 2 endevent
event wjazd_ir multiple 0.0 none mul1wjazd_ir mul2wjazd_ir mul3wjazd_ir endevent
Zdarzenie losujące (podane w dolnym polu) należy koniecznie uruchomić co najmniej 10 sekund przed wykonaniem właściwego zdarzenia. W przeciwnym wypadku wynik będzie "sfałszowany". Najlepiej to uczynić od razu po uruchomieniu misji.
node -1 0 turow eventlauncher 0.0 0.0 0.0 -1 none 0130 turow_start none end
Zdarzenie turow załączy się, gdy zegarek w symulatorze pokaże 01:30.
A to czegóż? Pełna automatyka scenariuszy?Dążenie do tego, by tak było. By AI jeździło wg rozkładów. Jest to niezbędne narzędzie, by rozbudowywać multiplayer.
Z tego co wiem, to obecnie wszystkie misje odpalane są przez eventlaucher (te z SP1). Poprawił to SKP bodajże.Wszystkie nie. Niektóre z nich są zrobione jako mulitple.
nie wszystkie scenariusze są przez eventlauncherTo prawda, lecz reszta scenariuszy nie jest odpalana eventami multiple, jak napisałeś. Po prostu program oczekuje na wystąpienie zdarzenia zapisanego np. w torze. Ogólnie, można uznać, że Twoje zdanie jest solidnym skrótem myślowym :)
event otwierajp77:free multiple 0 none p77_otwieraj endevent
Następnie dodajesz wpis do toru, który po zajęciu tego odcinka ma coś wywołać np otworzyć przejazd wpis isolated i nazwa eventu :isolated otwierajp77
endtrack
i event zamykający:event1 p77_zamykaj
EDIT:Jakimi eventami zamykamy przejazdy? Podajcie przykład. [...] to to będzie działać? [...] będzie działać?Podstawowa kwestia w przypadku, gdy chcesz się nauczyć (status aplikant o tym świadczy): trzeba czytać stworzoną już do tej pory dokumentację (np. Scenery.doc, rainsted.com, szukajka forumowa), testować zdobytą wiedzę w praktyce na konkretnym przykładzie i jak już po prostu nie masz więcej pomysłów zdać się na pomoc "zewnętrzną". Sawi wyłożył to na tacy, ale chyba lepiej byłoby żeby na własną rękę sobie to ogarnąć na początek, wcześniej czytając "źródła". Nie bierz tego, co napisałem negatywnie. Wręcz przeciwnie - wg mnie najpierw trzeba poczytać i sprawdzić bo wiele spraw można wtedy sobie lepiej "rozkminić".
P77 to nazwa przejazdu?Rozumiem, że to pytanie retoryczne ;)
Myślałem, że to będzie trudniejsze.A widzisz: nauczysz się samodzielnie, zrobisz sam i wtedy masz ten (ang.) "fun". [OT]Jakiś mądry człowiek powiedział:
Całe życie jest nauką, jak przestajesz się uczyć to znaczy że zaczynasz umierać[/OT]
nie wiem dlaczego ale AI przystrojone w Tb1 po podjechaniu do semafora i otrzymaniu S2 nie zmienia osygnalizowania czoła tylko dalej jedzie w trybie manewrowymDaj trochę więcej szczegółów. W jakim stanie jest AI podczas uruchomienia scenerii, jakie komendy i sygnały otrzymuje do czasu dojechania pod ten semafor, czy jest _sem_info w torze, na jakim exe działasz.
Druga sprawa to trakcja. Nigdy się przy tym nie bawiłem a chciałbym poprawić błąd pokazany w załączniku. Można to zrobić zmieniając współrzędną Z słupa/słupów trakcyjnych za pomocą notatnika?Kiedyś przestawiałem słupy w x, y i z notatnikiem. Trochę uciążliwa to robota, bo słupy są osobno i każda linia osobno. W przypadku czterech słupów, to IMO można się tego podjąć.
Dojeżdża samo do semafora bez komend. [...] Skład jest jakieś 50 m przed semaforemZrobiłem test. W odcinek, na końcu którego jest semafor, wpisałem jak należy _sem_info, na tym odcinku postawiłem pociąg z prędkością początkową 0.1. Uruchamia się w trybie shunt i stoi. Jak podam s2, przełącza się na jazdę pociągową i rusza. Więc wszystko jest ok. Wyślij mi jak chcesz ten scenariusz, to popatrz'ę :)
Mam ustawionego byka pod semaforem z jakieś ~10-15 metrów z prędkością początkową 0.1 i ma zapalone manewrowe, po podaniu semafora przełącza się na pełne oświetlenie i jedzieCzyli tak, jak powinien.
w przypadku innego AI mam tak samo, prędkość początkowa 0.1 lecz już na trzech zapalonych światłach. Nie potrafię rozgryźć od czego to jest zależne.A nie jest tak przypadkiem, że wcześniej wyskanował jakiś sygnał jazdy pociągowej, i w tym trybie podjechał pod semafor z s1?
Druga sprawa to trakcja. Nigdy się przy tym nie bawiłem a chciałbym poprawić błąd pokazany w załączniku. Można to zrobić zmieniając współrzędną Z słupa/słupów trakcyjnych za pomocą notatnika?Można, ale musisz pamiętać, że trakcja nie jest "przypięta" do słupów, a ma swoje współrzędne. W związku z tym przesuwając słup, musisz też przesunąć współrzędne obu odcinków trakcji które się na nim spotykają (kiedyś poprawiałem w ten sposób jakieś słupy rosnące między szynami w jakiejś starej scenerii- chociaż ostatecznie okazało się że najprościej było zamienić model słupa z prawego na lewy - tutaj to było: http://eu07.pl/forum/index.php/topic,11559.msg136780.html#msg136780)
// operator NOT / jezeli * 0 5 to nie wykonuje zdarzen
event ai_pspd_start multiple 1 mempspd_wjazd else ai_pspd_start1 ai_pspd_start2 condition memcompare * 0 5 endevent
road
road
road
road
road
road
road
road
road
Loading - binary model: models\pkp/top.e3d
Loading - texture: textures\sem\top.dds
Loading - binary model: models\pkp/topn.e3d
Loading - texture: textures\pkp\w11osp.dds
Loading - binary model: models\ip/pkp/w11osp.e3d
Loading - texture: textures\pkp\w11osp2.dds
InitNormals
InitNormals OK
InitTracks
InitTracks OK
InitTraction
InitTraction OK
InitEvents
InitEvents OK
InitLaunchers
InitLaunchers OK
InitGlobalTime
InitGlobalTime OK
FirstInit is done
Loading - binary model: dynamic\pkp\et42_v1\et42-a.e3d
Loading - texture: textures\tabor\aircoupler.dds
Loading - texture: dynamic\pkp\et42_v1\cienet42.dds
Loading - texture: textures\tabor\#sprzeg2.dds
Loading - texture: dynamic\pkp\et42_v1\wozeket42.dds
Loading - texture: textures\tabor\kolo_sprychy.dds
Loading - texture: dynamic\pkp\et42_v1\shp.dds
Loading - texture: textures\tabor\pantograf.dds
Loading - texture: textures\tabor\zderzak_sm03.dds
Loading - texture: dynamic\pkp\et42_v1\et42-019.dds
Loading - binary model: dynamic\pkp\et42_v1\et42-b.e3d
New timetable for et42-019-a: txce88252
Dodam że plik rozkładu jest w "scenery" po kliknięciu na skład od owego rozkładu Rainsted normalnie go pokazuje. Wpis składu w *.scn:trainset txce88252 rusek 0.0 0.0
node -1 0 ET42-019-A dynamic PKP\et42_v1 et42-019 et42-a 0 headdriver 55 0 enddynamic
node -1 0 ET42-019-B dynamic PKP\et42_v1 et42-019 et42-b 0 connected 0 0 enddynamic
endtrainset
Gdybym wiedział to bym nie pytał ale zaczynam dopiero rozdział: "Rozkłady jazdy, czyli jak kliknąć F3 i dojechać na czas".
node -1 0 004_mamy_wolne sound 14 1 745 004_mamy_wolne.wav endsound event 004_mamy_wolne sound 5 004_mamy_wolne 1 endevent
tylko w podglądzie scenerii nie mam współżędnej Y. Zamiast prawdziwej wpisałem 1. Zadziała to? Sprawdzcię przy okazji budowę eventu.
Można podać 0 0 0 i bez limitu zanikania.To jest trochę naciąganie;)
//manewry na bocznicy
event memcell_update_trasa_c04 updatevalues 0.0 memcell_trasa_c c 0 5 endevent
event trasa_c04 multiple 30.0 memcell_trasa_c
psiary_bocznica_sz1_s1
psiary_bocznica_zwr04+
psiary_bocznica_zwr03+
psiary_bocznica_b_ms2
psiary_bocznica_zwr01+
psiary_bocznica_tm4_ms2
memcell_update_trasa_c04
condition memcompare c 0 4 endevent
//manewry na bocznicy - podjazd po skład
event memcell_update_trasa_c05 updatevalues 0.0 memcell_trasa_c c 0 6 endevent
event trasa_c05 multiple 0.0 memcell_trasa_c
wystarczy
trasa_c05_part_2
mozna_do_tylu
condition memcompare c 0 5 endevent
event trasa_c05_part_2 multiple 30.0 memcell_trasa_c
psiary_bocznica_zwr02+
psiary_bocznica_b_s1
psiary_bocznica_tm4_ms1
psiary_bocznica_tm1_ms2
memcell_update_trasa_c05
endevent
//odjazd z skladem - dojazd do psiar srodmiescie
event memcell_update_trasa_c06 updatevalues 0.0 memcell_trasa_c c 0 7 endevent
event trasa_c06 multiple 20.0 memcell_trasa_c
psiary_bocznica_tm1_ms1
memcell_update_trasa_c06
trasa_c06_part2
trasa_c06_part3
proba_hamulca
condition memcompare c 0 6 endevent
event trasa_c06_part2 multiple 270.0 none
psiary_bocznica_c_s13
psiary_bocznica_zwr01-
psiary_srodmiescie_zwr07+
anglik_test9357ac
anglik_test4231bd
na_biegu
endevent
event expres_zwierzyniec:free multiple 0 psiary_zagroda_i_s2 anglik_test7836bd psiary_poludnie_p_s2 psiary_poludnie_g_s2 psiary_srodmiescie_p_s2 psiary_srodmiescie_i_s2 endevent
Jeszcze tak odnośnie tego musisz to poprawić. Gdyż najpierw się przestawia rozjazd, a potem podaje sygnał/y na semaforze.
event expres_zwierzyniec:free multiple 0 psiary_zagroda_i_s2 anglik_test7836bd psiary_poludnie_p_s2 psiary_poludnie_g_s2 psiary_srodmiescie_p_s2 psiary_srodmiescie_i_s2 endevent
node -1 0 SM42-506 dynamic PKP\SM42_V1 6D-506 6D 0 headdriver 3 0 enddynamic
node -1 0 a22787 dynamic PKP\1XXA_V1 A9OU_003-4 1XXA 0 nobody 3 0 enddynamic
node -1 0 a13223 dynamic PKP\1XXA_V1 A9OU_003-4 1XXA 0 nobody 3 0 enddynamic
node -1 0 a46150 dynamic PKP\1XXA_V1 AOU_008-1 1XXA 0 nobody 3 0 enddynamic
node -1 0 a50111 dynamic PKP\1XXA_V1 112A12 1XXA 0 nobody 3 0 enddynamic
node -1 0 a12243 dynamic PKP\1XXA_V1 AZDNU_120 1XXA 0 nobody 3 0 enddynamic
node -1 0 a20719 dynamic PKP\1XXA_V1 AZDNU_120_N 1XXA 0 nobody 3 0 enddynamic
node -1 0 a17366 dynamic PKP\1XXA_V1 AZDNU_120 1XXA 0 nobody 3 0 enddynamic
endtrainset
node 1000 0 odjazd13 track normal 0.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used1 4 tpd-oil1 0.2 0.5 1.1
1143.75 0.199629 -1771.88 0.0 //point 1
-1.37366 0.0 -4.66895 //control vector 1
1.37366 0.0 4.66895 //control vector 2
1139.62 0.199629 -1785.88 0.0 //point 2
0
isolated tlk_manewry
endtrack
event tlk_manewry:free multiple 0 none psiary_zagroda_tm4_ms2 anglik_test2670bd anglik_test3464bc endevent
No i jest do poprawki. Najpierw zwrotka potem sygnał. Czyli musiałbyś opóźnić np kolejnym multiplem sygnał manewrowy.Ok opóźnię sygnał a zwrotki dam bezpośrednio w tym evencie ale to pomoże na mój problem?
Tak, ale nie widzę sensu zawracania sobie tym głowy w symulatorze. Tyle z mojej strony :pTy mnie lepiej nie denerwuj. W WPC zostało ustalone, że pierw jest przebieg, przejazd a potem dopiero sygnał. A nie po to przerabiałem moje 2 scenariusze, żeby potem szły hasła że nie warto w symulatorze...
W WPC zostało ustalone, że pierw jest przebieg, przejazd a potem dopiero sygnał.A dlaczego nikt o tym nie wie? Jakie jeszcze tajemnice są, które zaraz zaskoczą tych co nie mają dostępu do WPC?
Przejrzalem readme do najnowszej paczki - znalazłem tam całe DWA scenariusze autorstwa jednego z członków WPC.Jak to rozumieć?
Paweł w rzeczywistości tak jest, najpierw przebieg następnie semafor. Nie podburzaj innych. Każdy ma wybór jak zrobić.No i chodzi o to, żeby ten wybór miał, a nie że ktoś ma mu coś narzucać...
Siecool nikt Cie nie przymusza do grzebania przy całkowie więc jeśliś łaskaw daj sobie na luz z tekstami o nie pisaniu scenariuszy bo to że ktoś jest w WPC nie determinuje prawa do pisania scenariusza.To, że ktoś jest w WPC nie determinuje prawa do narzucania innym, co mają zrobić i jak. Na tym forum ogon macha psem - zamiast ułatwiać w jakikolwiek sposób życie twórcom, testerzy dumają nad tym, jakieby tu wymogi narzucić, nie zastanawiając się nad tego konsekwencjami, bo sami scenariuszy nie piszą, więc mają to w nosie.
Administracja OIDP nie zamknęła Ci definitywnie drogi powrotnej do WPC.Żeby stać się godnym dostępu do repo trzeba podać imię i nazwisko. Nie zamierzam, więc jakby kolejny nakaz z kapelusza...
event1 stacja1_a_sem_info
Stacja1_a jest to semafor wjazdowy, skojarzony jest z tarczą ostrzegawczą stacja1_toa.event2 stacja1_k_sem_info
Ja mam pytanie, co oznacza ten wpis sem_info?
Proszę o wypowiadanie się na temat wątku a nie schodzenie na kwestie które są poruszane w innych działach lub przez inne grupy osób. A tym bardziej twierdzenie że coś jest nieistotne jest lekceważeniem chociażby zdrowego rozsądku jakim powinni się wszyscy kierować.Zdrowy rozsądek nakazuje konsultować pewne decyzje z innymi, czego tutaj zabrakło. Sprawa wypłynęła w tym wątku, więc tutaj była dyskutowana, co wydaje się dość logiczne.
Co do zdarzeń wywoływanie ich wg. kolejności w jakiej powinny się pojawiać jest jak najbardziej zasadne i wskazane.Przykład kompletnie nieadekwatny - dyskutujemy o eventach w jednym multiplu, gdzie wszystkie eventy wchodzącego w jego skład wykonywane są jednocześnie. Więc nie ma siły, żeby zaszła sytuacja, którą opisujesz, czego dowiódł popatrz. Nikt tutaj również nie mówił o żadnych eventach dźwiękowych.
Dla przykładu: Uruchamiane najpierw jest zdarzenie dźwiękowe dające sygnał odjazdu a potem pojawia się sygnał na semaforze a na końcu ustawiana jest droga.
ET22 + jeden wagon da radę rozpędzić się i wjechać na zwrotnice zanim zdąrzą się wszystkie przestawić zwłaszcza jak ich będzie więcej.
event sygnaly2 multiple 10 none baltyk_n_sz1 baltyk_e_s2 endeventMam problem z tymi eventami. Nie chce się wywołać żadne z losujących zdarzeń.
event sygnaly3 multiple 5 none baltyk_n_s10 baltyk_e_s2 endevent
node -1 0 memlosuj1 memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event uplosuj1 updatevalues 0.0 memlosuj1 * 1 1 endevent
event losujlosuj1 multiple 0.0 none uplosuj1 condition propability 0.6 endevent
event losuj1 multiple 0.0 none mul1losuj1 mul2losuj1 endevent
event mul1losuj1 multiple 0.0 memlosuj1 sygnaly2 condition memcompare * 0 0 endevent
event mul2losuj1 multiple 0.0 memlosuj1 sygnaly3 condition memcompare * 1 1 endevent
//EG========================================================================================
node -1 0 memlosuj1 memcell 0.0 0.0 0.0 * 0 0 none endmemcell
//kod odpowiadający za zdarzenie nr:1
event uplosuj11 updatevalues 0.0 Memlosuj1 * 0 1 endevent
event mullosuj11 multiple 1 none uplosuj11 condition propability 1 endevent
event warlosuj11 multiple 0.0 memlosuj1 losuj11 condition memcompare * 0 1 endevent
//kod odpowiadający za zdarzenie nr:2
event uplosuj12 updatevalues 0.0 Memlosuj1 * 0 2 endevent
event mullosuj12 multiple 2 none uplosuj12 condition propability 0.5 endevent
event warlosuj12 multiple 0.0 memlosuj1 losuj12 condition memcompare * 0 2 endevent
//kod główny:
event losuj_losuj1 multiple 0.0 mullosuj11 mullosuj12 endevent
event losuj1 multiple 0.0 warlosuj11 warlosuj12 endevent
Zauważ, że nie masz zdefiniowanego zdarzenia prawdopodobieństwa dla drugiego zdarzenia i aktualizacji komórki.
//EG========================================================================================
node -1 0 memlosuj1 memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event uplosuj1 updatevalues 0.0 memlosuj1 * 1 1 endevent
event losujlosuj1 multiple 0.0 none uplosuj1 condition propability losuj1 endevent
event losuj1 multiple 0.0 none mul1losuj1 mul2losuj1 endevent
event mul1losuj1 multiple 0.0 memlosuj1 mul1losuj1 condition memcompare * 0 0 endevent
event mul2losuj1 multiple 0.0 memlosuj1 mul2losuj1 condition memcompare * 1 1 endevent
Ty w miejscu mul1losuj1 i mul2losuj1 dałeś eventy sygnaly2 i 3. Na Mój chłopski rozum by to zadziałało musiałbyś wstawić w miejsce mul1losuj1 i 2 eventy o nazwie sygnaly2 i 3.
event start_cargo:busy multiple 5 none bl_zw28- zwrotnica wygas_sbl sbl_1 szumy6 endevent
//--------------------------------------
node -1 0 przejazd_cell1 memcell 1.0 1.0 1.0 * * 0 none endmemcell
event change1_przejazd_cell1 updatevalues 0.0 przejazd_cell1 * * 1 endevent
node -1 0 przejazd_cell2 memcell 1.0 1.0 1.0 * * 0 none endmemcell
event change1_przejazd_cell2 updatevalues 0.0 przejazd_cell2 * * 1 endevent
//--------------------------------------
event losuj_fos_oz1:busy multiple 0.0 none
losuj_przejazd_fos_oz1
losuj_przejazd_fos_oz2
endevent
event losuj_przejazd_fos_oz1 multiple 0.0 none
change1_przejazd_cell1
fos_oz1_zamykaj
condition propability 0.9 endevent //0.9
event losuj_przejazd_fos_oz2 multiple 0.0 none
change1_przejazd_cell2
fos_oz2_zamykaj
condition propability 0.9 endevent //0.9
event topka_fos_oz1:busy multiple 0.0 none
topka1
topka2
topka3
topka4
endevent
event fos_ozim1_sem_ligh2_tlk lights 0.0 fos_ozim1 1 1 0 0 endevent
event topka1 multiple 0.0 przejazd_cell1
topka11
condition memcompare * * 1 endevent
event topka11 multiple 0.0 przejazd_cell2
fos_ozim1_sem_ligh2_tlk
condition memcompare * * 1 endevent
event topka2 multiple 0.0 przejazd_cell1
topka22
condition memcompare * * 1 endevent
event topka22 multiple 0.0 przejazd_cell2
fos_ozim1-osp1
condition memcompare * * 0 endevent
event topka3 multiple 0.0 przejazd_cell1
topka33
condition memcompare * * 0 endevent
event topka33 multiple 0.0 przejazd_cell2
fos_ozim1-osp1
condition memcompare * * 1 endevent
event topka4 multiple 0.0 przejazd_cell1
topka44
condition memcompare * * 0 endevent
event topka44 multiple 0.0 przejazd_cell2
fos_ozim1-osp1
condition memcompare * * 0 endevent
//--------------------------------------
Innymi słowy, jeśli życzysz sobie stworzyć przejazd od Ozimka do Lublińca, to jesteś zmuszony rozważyć ten problem z tarczami od zera.
event odjazd_eu07:free multiple 3 memodjazd_eu07bug bl_zw17ac bl_zw16ac bl_zw13ac bl_zw11- losujgo go upodjazd_eu07 condition memcompare * 0 0 endevent
node -1 0 memodjazd_eu07bug memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event upodjazd_eu07 updatevalues 0.0 memodjazd_eu07bug * 1 1 endevent
event sygnaly2 multiple 60 none dokoncz1 endevent
event zastepczy multiple 20 none baltyk_n_sz1 baltyk_e_s2 endevent
event sygnaly3 multiple 60 none baltyk_n_s10 baltyk_e_s2 endevent
node -1 0 memgo memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event upgo updatevalues 0.0 memgo * 1 1 endevent
event losujgo multiple 0.0 none upgo condition propability 0.5 endevent
event go multiple 0.0 none mul1go mul2go endevent
event mul1go multiple 0.0 memgo sygnaly2 condition memcompare * 0 0 endevent
event mul2go multiple 0.0 memgo sygnaly3 condition memcompare * 1 1 endevent
event dokoncz1 multiple 0 none cargo1sz zastepczy endevent
node -1 0 memodjazd_eu07bug memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event upodjazd_eu07 updatevalues 0.0 memodjazd_eu07bug * 1 1 endevent
event losujgo multiple 0.0 none upodjazd_eu07 condition propability 0.5 endevent
event go multiple 0.0 none mul1go mul2go endevent
event mul1go multiple 0.0 memodjazd_eu07bug sygnaly2 condition memcompare * 0 0 endevent
event mul2go multiple 0.0 memodjazd_eu07bug sygnaly3 condition memcompare * 1 1 endevent
event uruchomlos multiple 1 none goeu07 endevent
event goeu07 multiple 15 none losujgo go endevent
event sygnały2 multiple 20 baltyk_n_sz1 baltyk_e_s2 endevent
event sygnaly3 multiple 60 baltyk_n_s10 baltyk_e_s2 endevent
Trzeba coś zrobić tylko z tym jednym eventem co jest sygnał zastępczy. Reszty nie trzeba zmieniać.Ciekawe, to skoro tak to wyjaśnij mi czemu Tobie to nie działa? Ty naprawdę nie dostrzegasz tego jak tam jest namieszane? Zacznijmy w takim razie od początku. Jakie dokładnie masz zamierzenie?
event radio_sz multiple 1 none wjazd_na_zastepczy* semafor endevent
event semafor multiple 15 none semafor_a_sz1 endevent
* - nazwa dźwięku który chcesz odtworzyć.Są dwa eventy; sygnaly2 i sygnaly3. W jedym jest sygnał zastępczy i chce dodać do niego info przez radio że dostaniemy SZ na semaforze i trzeba to zrobić właśnie z wyprzedzeniem tego zdarzenia gdzie jest podany sygnał zastępczy.To skoro tak, to wyjaśnij mi w jakim celu użyłeś tam komórki pamięci? To mają być w końcu normalne zdarzenia, czy zdarzenia losowe z prawdopodobieństwem?
node -1 0 launchproba_alakowice eventlauncher 5136 8589 10.5 1000 w 0 mulproba_alakowice mulproba_alakowice condition memproba_alakowice * 1 1 end
event mulproba_alakowice multiple 0.0 none proba_alakowice upproba_alakowice endevent
node -1 0 memproba_alakowice memcell 0.0 0.0 0.0 * 1 1 none endmemcell
event upproba_alakowice updatevalues 0.0 memproba_alakowice * 0 0 endevent
node -1 0 443232_proba_hamulcow sound 5136 8589 10.5 443232_proba_hamulcow.wav endsound
event 443232_proba_hamulcow sound 20 443232_proba_hamulcow 1 endevent
event wpychamy multiple 20 memwpychaj upwpychajcie psiary_bocznica_sz1_ms2 psiary_bocznica_zwr05+ sm42-mozesz_pchac condition memcompare * 0 0 endevent
który powinien się wykonać w momencie, kiedy drugi raz przejadę po danym odcinku toru. Komórka pamięci to:node -1 0 memwpychaj memcell 1.0 1.0 1.0 * 1 1 none endmemcell
event upwpychajcie updatevalues 0.0 memwpychaj * 0 0 endevent
Pierwszy event w torze to wpychamy zaraz za nim to upwpychajcie lecz wykonuje się gdy pierwszy raz przejadę po torze. Nie wiem co jest powodem, że nie funga.
@kamil1306 tym launcherem chcesz wywołać event sound?Nie napisałem jeszcze jednego zdarzenia gdzie zostanie wywołany dźwięk. Tak to zrobiłem ale ciągle nie działa.
event proba_alakowice multiple 10 none 443232_proba_hamulcow endevent
Wojtuś daj przy komórce pamięci zamiast * 1 1 0 0. Zmień też jej współrzędne na unikalne.Współrzędne nie muszą być unikalne. W moich scenariuszach dawałem 1.0 1.0 1.0 kilku komórkom i działało.
node -1 0 cell1 memcell 1.0 1.0 1.0 * * 0 none endmemcell
node -1 0 cell2 memcell 1.0 1.0 1.0 * * 0 none endmemcell
node -1 0 cell3 memcell 1.0 1.0 1.0 * * 0 none endmemcell
Nie wiem co jest powodem, że nie funga.Upwypychajcie się nie wykona, ponieważ nie wykonają się zdarzenia wywoływane przez wypychamy. Spróbuj sam dojść dlaczego tak jest.
Przemku z tymi unikalnymi współrzędnymi to różnie bywa. Czasem ich nie trzeba zmieniać, a czasem jest to wręcz konieczność, bo np przez to AI nie zatrybi. Spotkałem się z tym kilka razy na expressie.Ściemniasz. Współrzędne komórki są istotne, jeśli AI oblicza odległość do niej, np. gdy jest to komórka od semafora.
event tor1 multiple 20 cell5 upcell5 psiary_bocznica_sz1_ms2 psiary_bocznica_zwr04- psiary_bocznica_zwr05- test_zwr09- test_zwr06- sm42-wagony condition memcompare * 0 0 endevent
który jest zablokowany przed ponownym wykonaniem. Tor za tym eventem jest event wpychamy:event wpychamy multiple 40 memwpychaj upwpychajcie psiary_bocznica_sz1_ms2 psiary_bocznica_zwr05+ sm42-mozesz_pchac condition memcompare * 0 0 endevent
i komórka:node -1 0 memwpychaj memcell 1.0 1.0 1.0 * 1 1 none endmemcell
event upwpychajcie updatevalues 0.0 memwpychaj * 0 0 endevent
W pierwszej kolejności chcę, aby wykonał się event tor1 a gdy drugi raz najadę na tory, gdzie jest event wpychamy to ma się wykonać. A póki co to wykonuje mi się tor1 a za 20 sekund wpychamy.
Doprawdy? Widać, że nie tylko ja się z tym spotkałem.Tak. Jeśli komórki mają komendy skanowane (obecnie SetVelocity i ShuntVelocity) i są dopięte do toru, to muszą być ustawione w identycznej kolejności jak zdarzenia GetValues odczytujące te komórki. Inaczej AI się pogubi, ponieważ nie sortuje sygnałów wg ich odległości (normalnie nie ma potrzeby sortowania). W szczególności dwie takie komórki nie powinny mieć identycznych współrzędnych, gdyż wtedy mogą być widziane w odwrotnej kolejności niż ich przypisanie do toru.
node -1 0 memwpychaj memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event upwpychajcie updatevalues 0.0 memwpychaj * 1 1 endevent
event sm42-mozsz_pchac updatevalues 0.0 memwypchaj * 2 2 endevent
event tor1 multiple 20 cell5 upcell5 psiary_bocznica_sz1_ms2 psiary_bocznica_zwr04- psiary_bocznica_zwr05- test_zwr09- test_zwr06- sm42-wagony condition memcompare upwpychajcie * 0 0 endevent
event wpychamy multiple 40 memwpychaj upwpychajcie psiary_bocznica_sz1_ms2 psiary_bocznica_zwr05+ sm42-mozesz_pchac condition memcompare * 1 1 endevent
Wtedy jako pierwszy powinien zostać wywołany event tor1, a drugi wypychamy.
node -1 0 memwpychaj memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event upwpychajcie updatevalues 0.0 memwpychaj * 1 1 endevent
event sm42-mozesz_pchac updatevalues 0.0 memwypchaj * 2 2 endevent
event tor1 multiple 20 cell5 upcell5 psiary_bocznica_sz1_ms2 psiary_bocznica_zwr04- psiary_bocznica_zwr05- test_zwr09- test_zwr06- sm42-wagony upwpychajcie condition memcompare * 0 0 endevent
event wpychamy multiple 40 memwpychaj upwpychajcie psiary_bocznica_sz1_ms2 psiary_bocznica_zwr05+ sm42-mozesz_pchac condition memcompare * 1 1 endevent
node -1 0 memwpychaj memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event upwpychajcie updatevalues 0.0 memwpychaj * 1 1 endevent
event up_wpychacie1 updatevalues 0.0 memwypchaj * 2 2 endevent
event tor1 multiple 20 cell5 upcell5 psiary_bocznica_sz1_ms2 psiary_bocznica_zwr04- psiary_bocznica_zwr05- test_zwr09- test_zwr06- sm42-wagony upwpychajcie condition memcompare * 0 0 endevent
event wpychamy multiple 40 memwpychaj upwpychajcie psiary_bocznica_sz1_ms2 psiary_bocznica_zwr05+ sm42-mozesz_pchac up_wpychacie1 condition memcompare * 1 1 endevent
A ja co mam zrobić?A jesteś pewien, że próbujesz wywołać w okolicy punktu 5136 8589 10.5?
node 1000 0 tutaj1 track normal 100.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used1 4 tpbps-new2 0.2 0.5 1.1
5136.47 10.4008 -8589.78 0.0 //point 1
-26.2793 0.0 20.5068 //control vector 1
26.2788 0.0 -20.5068 //control vector 2
5057.63 10.4008 -8528.26 0.0 //point 2
0
endtrack
Identykator powinien być unikalny w skali innych zdarzeń losowych.Wpisałem
stacja1wjazd_a
Prawdopodobieństwo wykonania zdarzenia 2 - wpisałem 0.5.event0 stacja1wjazd_a.
Uruchomiłem scenerię, niestety żadne zdarzenie nie zaszło. Wygenerował się plik errors.txt w którym przeczytałem:Missed event: wjazd_boczny in multiple mul2stacja1wjazd_a
Missed event: wjazd_prosty in multiple mul1stacja1wjazd_a
Chciałem się dowiedzieć coś więcej z pliku pomoc.pdf, niestety przeczytałem tylko:Aby wykonało się jedno (losowo wybrane) zdarzenie, należy wywołać event o nazwie takiej samej jak nazwa identykatora. Można to zrobić w Multiple wybierając typ Inne.Wybieram zakładkę Multiple.
EU07.EXE 13.5.804.408
Duplicated event: stacja1wjazd_a
Missed event: wjazd_prosty in multiple stacja1wjazd_a
Missed event: wjazd_boczny in multiple mul2stacja1wjazd_a
Missed event: wjazd_prosty in multiple mul1stacja1wjazd_a
Tak ciekawe, że nigdzie nie musiałem wpisywać sygnałów na semaforze.//naciśnij shift+1 to zasymuluje wywołania eventu przez lokomotywę.
event keyCtrl01 multiple 10 none wielki_kac_wjazd endevent
// Losowanie wariantu
event wielki_kac_wjazd multiple 0 none losujstacja1wjazd_a wielki_kac_wjazd_cd endevent
//Wywołanie wylosowanego wariantu
event wielki_kac_wjazd_cd multiple 10 none stacja1wjazd_a endevent
//EG========================================================================================
node -1 0 memstacja1wjazd_a memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event upstacja1wjazd_a updatevalues 0.0 memstacja1wjazd_a * 1 1 endevent
event losujstacja1wjazd_a multiple 0.0 none upstacja1wjazd_a condition propability 0,5 endevent
event stacja1wjazd_a multiple 0.0 none mul1stacja1wjazd_a mul2stacja1wjazd_a endevent
event mul1stacja1wjazd_a multiple 0.0 memstacja1wjazd_a wjazd_prosty condition memcompare * 0 0 endevent
event mul2stacja1wjazd_a multiple 0.0 memstacja1wjazd_a wjazd_boczny condition memcompare * 1 1 endevent
event wielki_kac_wjazd multiple 0 none losujstacja1wjazd_a wielki_kac_wjazd_cd endevent
Teraz musisz dać dwa eventy multiple z przebiegami (zwrotnice + semafory). Jeden musi mieć taką nazwę jak wpisałeś w zdarzenie 1, drugi musi mieć nazwę jak zdarzenie 2
Identyfikator zdarzenia losowego | stacja1wjazd_a |
Prawdopodobieństwo wykonania zdarzenia 2 | 0.5 |
Zdarzenie 1 | stacja1_a_s9 |
Zdarzenie 2 | stacja1_a_s13 zwr01- |
node -1 0 memstacja1wjazd_a memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event upstacja1wjazd_a updatevalues 0.0 memstacja1wjazd_a * 1 1 endevent
event losujstacja1wjazd_a multiple 0.0 none upstacja1wjazd_a condition propability 0.5 endevent
event stacja1wjazd_a multiple 0.0 none mul1stacja1wjazd_a mul2stacja1wjazd_a endevent
event mul1stacja1wjazd_a multiple 0.0 memstacja1wjazd_a stacja1_a_s9 condition memcompare * 0 0 endevent
event mul2stacja1wjazd_a multiple 0.0 memstacja1wjazd_a stacja1_a_s13 zwr01- condition memcompare * 1 1 endevent
Wygenerowany tez zostaje kod, który wklejam do eventu wcześniej uruchamianego.losujstacja1wjazd_a
Udało się działa, wpisałem tylko w scenerii:event0 stacja1wjazd_a
Tylko pytanie. Które multiple zmienić, aby zdarzenie było opóźnione?event start2_alakowice multiple 0 none baltyk_z_s2 baltyk_j_s2 baltyk_e_s2 alakowice_a_s5 takiecos_zamykaj przejazdek_zamykaj gruszki_przejazd1 endevent
event orlen_beczki multiple 20 none baltyk_z_s5 endevent
event przejazd_st44 multiple 10 none bl_zw11+ al_zw1+ orlen_beczki balwidprz_zamykaj endevent
event wjazd_eco_koniec:free multiple 20 p9_zamykaj posterunek_kociary_zwr02- anglik_test6885ad kociary_zwr04+ losujkumulacja_eco endeventOdgrzewam, ale to najlepsze miejsce na takie sprawy i nie chce zakładać nowego temtu. Z zacytowanego fragmentu nie wyzwalają się eventy z sygnałami. Przebieg ok i nie mam błędów w logu, ale coś jest nie tak.
event wjazd_eco_sygnaly1 multiple 5 none posterunek_kociary_d_s10 kociary_p_s5 endevent
event wjazd_eco_sygnaly2 multiple 10 none posterunek_kociary_d_sz1 kociary_p_s5 endevent
node -1 0 memkumulacja_eco memcell 1.0 1.0 1.0 * 0 0 none endmemcell
event upkumulacja_eco updatevalues 0.0 memkumulacja_eco * 1 1 endevent
event losujkumulacja_eco multiple 0.0 none upkumulacja_eco condition propability 0.6 endevent
event kumulacja_eco multiple 0.0 none mul1kumulacja_eco mul2kumulacja_eco endevent
event mul1kumulacja_eco multiple 0.0 memkumulacja_eco wjazd_eco_sygnaly1 condition memcompare * 0 0 endevent
event mul2kumulacja_eco multiple 0.0 memkumulacja_eco wjazd_eco_sygnaly2 condition memcompare * 1 1 endevent
node;-1;0;poser1;model;-660.608;1.0;6912.91;178.577;posers/cman0006-wa.t3d;none;;endmodel
Submodelu do animacji sokowego posera nie znam bo mam go tylko w e3d.Znasz znasz. Pamiętaj o repo :).
Stanie nic nie wywoła. Busy wywoła się, jeśli na którykolwiek z odcinków należących do izolowanego coś najedzie. Nie wiem jak w przypadku, gdy pojazd startuje na izolowanym i przejedzie na inny tor należący do tej samej grupy. Free gdy z wszystkie będą wolne i z któregoś coś zjedzie.@Stele, samo stanie na odcinku przez warunek "busy" wywoła zdarzenie. Dzięki chłopaki, ale @gfirlejczyk bardzo dobrze mi to wyjaśnił. Tylko o to pytałem.
Odcinek zostaje zajęty w momencie zajęcia jednego z wszystkich przypisanych do niego odcinków torów. Więc jeśli wpiszesz do iluś torów ten sam odcinek to będzie on reagował na zajęcie każdego z nich.Yyyy zaraz. Czyli jak mam tory
...-------|----t1:aaa-----|-----t2:aaa-----|-----t3:aaa----|-----....
(gdzie t* to nazwa toru a aaa to nazwa odcinka izolowanego) to event aaa:busy wywoła kolejno 3 razy: 1 raz jak zostanie zajęty tor t1, drugi jak t2 i trzeci jak t3? Analogicznie potem z evenetem aaa:free ?
Odcinek zostaje zajęty w momencie zajęcia jednego z wszystkich przypisanych do niego odcinków torów. Więc jeśli wpiszesz do iluś torów ten sam odcinek to będzie on reagował na zajęcie każdego z nich.jest nie do końca prawdziwe. Bliższe prawdzie byłoby
Odcinek zostaje zajęty w momencie zajęcia pierwszego z wszystkich przypisanych do niego odcinków torów. Więc jeśli wpiszesz do iluś torów ten sam odcinek to będzie on reagował na zajęcie pierwszego z nich.
Położenie komórek tylko z komendami dla AI nie ma znaczenia (ma znaczenie jeśli związane jest z odtwarzaniem dźwięków).Położenie komórek z komendami dla AI ma znaczenie, ponieważ na jego podstawie AI wylicza sobie odległość.
Powiedz mi tylko jeśli event masz przypisany jako event0/1/2 i pociąg wywoła go zajmując tor to jakie znaczenie ma odległość od eventu?Semafor w MaSzynie to tylko model. AI prowadząc pociąg nie umie dostosować szybkości pociągu do takiej, jaką nakazuje semafor. To znaczy nie umie patrząc na niego, tak jak robi to człowiek. W prawdziwym świecie to maszynista widząc z daleka sygnał, szacuje odległość do sygnalizatora i zmniejsza (lub zwiększa) szybkość pociągu. Dlatego komórka pamięci powinna mieć współrzędne takie jak semafor. W komórce pamięci umieszcza się dozwoloną szybkość dla zadanego sygnału, a odległość pociąg prowadzony przez AI - semafor (odczyt współrzędnych z komórki pamięci) oblicza się w czasie rzeczywistym. Znając masę pociągu, aktualną prędkość, odległość do semafora, siłę hamowania, tarcie i inne parametry, można ze wzorów policzyć ile upuścić powietrza (lub jak przekręcić nastawnik), by pociąg przejechał obok semafora z należytą szybkością. Dlatego odległość do komórki ma znaczenie, nie tylko przy odtwarzaniu dźwięków (obszar dobrej słyszalności).
Jeśli są obok siebie (poszczególne odcinki torów przylegają), to są traktowane tak, jakby to był jeden odcinek izolowany, więc zdarzenia wywołają się tylko raz.Tak właśnie zrobiłem. Dodałem do wpisów torów taki sam odcinek izolowany gdzie wytworzył się jeden duży i zdarzenie wywołuje się bez problemu. Nie trzeba robić komórek pamięci czy innych rzeczy. To bardzo dobre rozwiązanie. Dziękuje za pomoc i rozświetlenie sprawy.
A wartość parzysta co oznacza?W momencie zajmowania odcinka druga wartość liczbowa z komórki pamięci jest traktowana jako całkowita i ustawiany jest w niej najmłodszy bit (hm, ujemnych nie testowałem), tym samym zmieniana jest na nieparzystą. W momencie zwalniania odcinka, w tejże wartości całkowitej zerowanych jest 8 najmłodszych bitów (czyli liczby 1..255 staną się zerem). Ja na Quarku używałem następujących wartości:
include;posers\robol.inc;d124;1762.49;0.0;2986.51;10.5;;;;;end //PassiveWedług mnie powinno działać ale nie jest dobrze. Include działa i ludzik jest w scenerii.
event anim_poser1 animation 0.1 poser1 translate sok 0 -5000 -3000 1000 endevent
event jaw_11:free multiple 0 jaw_22 jaw_przejazd1_otwieraj1 condition trackfree endevent
where jaw_22 is name of isolated compartment, but in errors.txt I have:Bad event: Track "jaw_22" does not exist in "jaw_22:free"
node 1000 0 truba track normal 100.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used1 4 tpd-oil1 0.2 0.5 1.1
35.0 0.2 1897.23 0.0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
35.0 0.2 1797.23 0.0 //point 2
0
event1 kociary_sz3_sem_info
endtrack
node 1000 0 duzy track normal 100.0 1.435 0.25 25.0 20 0 flat vis
rail_screw_used1 4 tpd-oil1 0.2 0.5 1.1
35.0 0.2 1797.23 0.0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
35.0 0.2 1697.23 0.0 //point 2
0
isolated AI_stop
endtrack
event AI_stop:busy putvalues 0 none 0 0 0 Prepare_engine 0 0 endevent
Mam tor z sem_info przy którym zatrzymuje się AI.Trochę to sprzeczne. Skoro pociąg prowadzony przez AI się zatrzymuje, to musi mieć jakiś powód, więc któraś z dwóch metod zadziałała. W przypadku Prepare_engine powinny zostać zgaszone światła, w przypadku S1 na semaforze — nie.
...
Problem polega na tym, że nie dezaktywuje się AI i nie zwraca uwagi na sem_info.
Co to dokładnie znaczy trochę? Jeśli zjeżdża z odcinka, to powinieneś użyć free. Popraw te współrzędne na unikalne tego toru.Stoi skład na obu torach więc nie może być z warunkiem free. Po dodaniu współrzędnych też nie działa. W cargo na bałtyku jest tak samo i działa.
Duplicated event: none_speedlimitinfo_p
Duplicated event: none_speedlimitinfo_k
Duplicated event: none_speedlimitinfo_p
Duplicated event: none_speedlimitinfo_k
Bad track: Event2 "trasa_c04" does not exist
Bad track: Event2 "trasa_c03" does not exist
Bad track: Event2 "trasa_c05" does not exist
Bad track: Event1 "trasa_a13_00" does not exist
event rozlacz putvalues 100 none 0 0 0 Shunt 0 0 endevent
Event rozlacz może być zdalnie przypisany do toru, jego opóźnienie musi być tak dobrane, aby pociąg zdążył się zatrzymać pod semaforem lub W4.event przylacz_5_wagonow putvalues 1 none 0 0 0 Shunt 5 -3 endevent
Tak samo jak wyżej event można przypisać do toru zdalnie (czyli za pomocą nadania nazwy "nazwatoru:event1,2").event WdZ_H6_zapinaj updatevalues 0 WdZ_H6_sem_mem Shunt -3 -3 endevent //komenda podpięcia loka po oblocie
event WdZ_H6_sem_mem:sent multiple 2 none WdZ_H6_Ms2 endevent //ms2 po odczytaniu komendy
______________________________________________________________
[ Rodzaj i numer pociągu | TLK38100 ]
[________________________________________________|_____________]
[ | Debica ]
[ Relacja pociągu | Macierzewo ]
[________________________________________________|_____________]
[ Wymagany % ciężaru hamującego | 126% ]
[________________________________________________|_____________]
[ Seria i obciążenie lokomotywy | EP07 80 ]
[________________________________________________|_____________]
[ 0.00 | 120 | Debica 2 | ]
[ | | ph,R1,W24,H,RT,PP 2 09.11 | ]
[ | |----------------------------------2--------|----]
[ | | Debica_Osiedle 2 | 4 ]
[ | | po 2 09.15 | ]
[ | |----------------------------------2--------|----]
[ | | Tumlin 2 | 3 ]
[ | | po 2 09.18 | ]
[ | |----------------------------------2--------|----]
[ | | Swoszowice 2 | 4 ]
[ | | R1,W24,H,PP 2 09.22 | ]
[ | |----------------------------------2--------|----]
[ | | Psie_Pole 2 09.27 | 5 ]
[ | | ph,R1,W24,H,PP 2 09.28 | ]
[ | |----------------------------------2--------|----]
[ | | Turow 2 09.35 | 7 ]
[ | | ph,R1,W24,H,PP 2 09.39 | ]
[ 28.7 |_____|----------------------------------2--------|----]
[ | 100 | Brzeziny 2 | 5 ]
[ | | R1,W24,PP 2 09.44 | ]
[ 36.3 |_____|----------------------------------2--------|----]
[ | 120 | Rudawa 2 09.49 | 5 ]
[ | | ph,R1,W24,H,RT,PP 2 09.50 | ]
[ | |----------------------------------2--------|----]
[ | | Zerniki 2 | 7 ]
[ | | R1,W24,H,RT,PP 2 09.57 | ]
[ 52.2 |_____|----------------------------------2--------|----]
[ | 80 | Skwarki 2 | 6 ]
[ | | podst,R1,H,PP 2 10.03 | ]
[ 58.0 |_____|----------------------------------2--------|----]
[ | 120 | Sandomierz 2 10.08 | 5 ]
[ | | ph,R1,H,RT,P 2 10.11 | ]
[ 65.0 |_____|----------------------------------1--------|----]
[ | 60 | Wilis 1 10.20 | 9 ]
[ | | ph,R5,H,RT,P 1 10.34 | ]
[ 33.4 |_____|----------------------------------1--------|----]
[ | 80 | Zlepieniec 1 | 6 ]
[ | | po 1 10.40 | ]
[ | |----------------------------------1--------|----]
[ | | Druzgot 1 | 5 ]
[ | | po 1 10.45 | ]
[ | |----------------------------------1--------|----]
[ | | Calkowo 1 10.50 | 5 ]
[ | | ph,R5,H,RT,P 1 10.51 | ]
[_______|_____|__________________________________1________|____]
Uwagi dodatkowe:
- od Karpikowik podg. do Psie Pole rozkład opracowany dla jazdy
po torze lewym;
- od Turów do Brzeziny rozkład opracowany dla jazdy
po torze lewym;
Kursuje: 09.XII.17 - 10.III.18 (/) 01 I 2018
Urwać się musi po zatrzymaniu w Wilisiu.
,@ ______________________________________________________________
[ Rodzaj i numer pociągu | TLK38100 ]
[________________________________________________|_____________]
[ | Debica ]
[ Relacja pociągu | Macierzewo ]
[________________________________________________|_____________]
[ Wymagany % ciężaru hamującego | 126% ]
[________________________________________________|_____________]
[ Seria i obciążenie lokomotywy | EP07 80 ]
[________________________________________________|_____________]
[ 0.00 | 120 | Debica 2 | ]
[ | | ph,R1,W24,H,RT,PP 2 09.11 | ]
[ | |----------------------------------2--------|----]
[ | | Debica_Osiedle 2 | 4 ]
[ | | po 2 09.15 | ]
[ | |----------------------------------2--------|----]
[ | | Tumlin 2 | 3 ]
[ | | po 2 09.18 | ]
[ | |----------------------------------2--------|----]
[ | | Swoszowice 2 | 4 ]
[ | | R1,W24,H,PP 2 09.22 | ]
[ | |----------------------------------2--------|----]
[ | | Psie_Pole 2 09.27 | 5 ]
[ | | ph,R1,W24,H,PP 2 09.28 | ]
[ | |----------------------------------2--------|----]
[ | | Turow 2 09.35 | 7 ]
[ | | ph,R1,W24,H,PP 2 09.39 | ]
[ 28.7 |_____|----------------------------------2--------|----]
[ | 100 | Brzeziny 2 | 5 ]
[ | | R1,W24,PP 2 09.44 | ]
[ 36.3 |_____|----------------------------------2--------|----]
[ | 120 | Rudawa 2 09.49 | 5 ]
[ | | ph,R1,W24,H,RT,PP 2 09.50 | ]
[ | |----------------------------------2--------|----]
[ | | Zerniki 2 | 7 ]
[ | | R1,W24,H,RT,PP 2 09.57 | ]
[ 52.2 |_____|----------------------------------2--------|----]
[ | 80 | Skwarki 2 | 6 ]
[ | | podst,R1,H,PP 2 10.03 | ]
[ 58.0 |_____|----------------------------------2--------|----]
[ | 120 | Sandomierz 2 10.08 | 5 ]
[ | | ph,R1,H,RT,P 2 10.11 | ]
[ 65.0 |_____|----------------------------------1--------|----]
[ | 60 | Wilis 1 10.20 | 9 ]
[ | | ph,R5,H,RT,P,@ 1 10.34 | ]
[ 33.4 |_____|----------------------------------1--------|----]
[ | 80 | Zlepieniec 1 | 6 ]
[ | | po 1 10.40 | ]
[ | |----------------------------------1--------|----]
[ | | Druzgot 1 | 5 ]
[ | | po 1 10.45 | ]
[ | |----------------------------------1--------|----]
[ | | Calkowo 1 10.50 | 5 ]
[ | | ph,R5,H,RT,P 1 10.51 | ]
[_______|_____|__________________________________1________|____]
event tor1001:event2 multiple 0 none otwieraj_przejazd1 endevent
Czy piszemy event1 czy event2 - zależy to od kierunku toru. I teraz w składni możesz umieścić warunek do sprawdzenia zajętości toru. Ale uwaga! Jeżeli będzie to tylko pojedyncze sprawdzenie, to najpewniej przejazd nigdy się nie otworzy. Trzeba zrobić event rekurencyjny, czyli coś przypominającego pętlę programistyczną:event otwieraj_przejazd1 multiple 5.5 tor1000 NAZWA_PRZEJAZDU_otwieraj else otwieraj_przejazd1 condition trackfree endevent
"tor1000" to tor, przez który przebiega droga na przejeździe.node -1 0 przejazd1_mem memcell 0 0 0 * * 0 none endmemcell
event przejazd1+ addvalues 0 przejazd1_mem * * 1 endevent
event przejazd1- addvalues 0 przejazd1_mem * * -1 endevent
Event zamykający przejazd powinien mieć taką składnię:event tor0xxx:event2 multiple 0 none NAZWA_PRZEJAZDU_zamykaj przejazd1+ endevent
Natomiast każdy event otwierający najpierw powinien poczekać na zwolnienie toru. Po jego zwolnieniu zmniejszyć wartość zmiennej, a potem sprawdzić czy je wartość jest równa zero. Jeżeli tak, to można otwierać przejazd:event otwieraj_przejazd1 multiple 5.5 tor1000 przejazd1- otwieraj_przejazd1_a else otwieraj_przejazd1 condition trackfree endevent
event otwieraj_przejazd1_a multiple 1 przejazd1_mem NAZWA_PRZEJAZDU_otwieraj condition memcompare * * 0 endevent
Oczywiście eventów otwierających będzie więcej i trzeba sprawdzać w nich właściwy tor. Jednakże ten mechanizm daje praktycznie 100% poprawności działania przejazdu.Można podjechać, później wycofać, rogatki nigdy się nie otworzą.Dyżurny ruchu ręcznie zeruje przejazd, bądź wyłącza liczniki jeśli taka jazda jest celowa.
Albo przejechać przejazd i wycofać, nie zamkną się. (bo trzeba by dopiero dojechać daleko do wyzwalacza w drugą stronę)
czy da się to zrobić tak, żeby np. pierwszy tor zamiast none nazywał się t0001, następny t0002 itd. ?
Żeby nie wpisywać ręcznie, tylko zamienić tekst i żeby zmieniały się cyferki w kolejności rosnącej przy zamienianiu.
//pomijanie ściągania w Lisowie
node 100 0 none eventlauncher 847.618 264.858 -2103.834 100 w 0 manewrystop_lisow manewrystop_lisow end
//komórka aby inne pociągi nie oddziaływały na eventy w Lisowie
node -1 0 memcell_manewry_lisow memcell 0 0 0 a 1 0 none endmemcell
event manewrystop_lisow updatevalues 0 memcell_manewry_lisow a 0 0 endevent
//Obsługa rezonatorów SHP:
event kaletnik891:event2 multiple 0 none rez101_shp endevent
event kaletnik888:event2 multiple 0 none rez100_shp endevent
event kaletnik876:event2 multiple 0 none rez102_shp endevent
event kaletnik748:event2 multiple 0 none rez103_shp endevent
event kaletnik759:event1 multiple 0 none rez104_shp endevent
event kaletnik810:event2 multiple 0 none rez105_shp endevent
event kaletnik813:event2 multiple 0 none rez106_shp endevent
event kaletnik1503:event2 multiple 0 none rez107_shp endevent
event kaletnik1526:event2 multiple 0 none rez108_shp endevent
event kaletnik1525:event2 multiple 0 none rez109_shp endevent
event kaletnik1520:event2 multiple 0 none rez110_shp endevent
event kaletnik853:event2 multiple 0 none rez111_shp endevent
event kaletnik624:event2 multiple 0 none rez112_shp endevent
event kaletnik624:event2 multiple 0 none rez113_shp endevent
event kaletnik626:event2 multiple 0 none rez114_shp endevent
event kaletnik595:event1 multiple 0 none rez115_shp endevent
event kaletnik594:event1 multiple 0 none rez116_shp endevent
event kaletnik570:event2 multiple 0 none rez117_shp endevent
event kaletnik571:event2 multiple 0 none rez118_shp endevent
event kaletnik572:event2 multiple 0 none rez119_shp endevent
event kaletnik520:event1 multiple 0 none rez120_shp endevent
event kaletnik529:event1 multiple 0 none rez121_shp endevent
event kaletnik492:event2 multiple 0 none rez122_shp endevent
event kaletnik500:event2 multiple 0 none rez123_shp endevent
event kaletnik508:event2 multiple 0 none rez124_shp endevent
event kaletnik891:event2 multiple 0 none rez101_shp endevent
Będzie:event kaletnik891:event2 putvalues 0 none (p2) (p3) (p4) CabSignal -1 -1 endevent
Nie jestem pewien czy do działania potrzebne będą współrzędne czy można wpisać zera, na L61 przy ograniczeniach wpisywałem, ale chyba nie testowałem czy działa bez.