Obiekt event: Różnice pomiędzy wersjami

Z MaSzyna
Skocz do: nawigacja, szukaj
 
(Nie pokazano 16 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
TODO: Podzielić ten artykuł - opisać każdy podtyp eventu w osobnym artykule, tak jak w przypadku node.
 
 
Każdy wpis '''event''' zaczyna się od tych samych parametrów:
 
    <span style="color:tomato;font-weight:bold">event</span> ''name type delay object''
 
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Parametr
 
! Interpretacja
 
|-
 
| name
 
| Nazwa zdarzenia
 
|-
 
| type
 
| Typ zdarzenia.
 
 
 
Dostępne typy zostały opisane poniżej.
 
Dostępne typy zostały opisane poniżej.
|-
 
| delay
 
| Opóźnienie wykonania zdarzenia [s].
 
 
Można wpisać -1, wtedy zdarzenie będzie wykonywać się cyklicznie.
 
|-
 
| object
 
| Obiekt, na rzecz którego zostanie wywołane zdarzenie.
 
 
Można dodać więcej niż jeden obiekt, oddzielając ich nazwy symbolem |
 
|}
 
 
 
* [Obiekt event::AddValues|AddValues]
 
* [Obiekt event::CopyValues|CopyValues]
 
 
 
 
== GetValues ==
 
Pobiera informacje z komórki pamięci i wysyła do pojazdu stojącego na torze.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">getvalues</span> 0 ''komorka'' <span style="color:tomato;font-weight:bold">endevent</span>
 
 
== LogValues ==
 
Jeśli nie istnieje dana komórka pamięci to zostanie wypisana do logu zawartość wszystkich komórek w scenerii.
 
 
== PutValues ==
 
Wysyła informacje do pojazdu stojącego na torze z pominięciem komórki pamięci.
 
 
== UpdateValues ==
 
Ładuje informacje do komórki pamięci.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">updatevalues</span> 0 ''komorka wartosci'' <span style="color:orange;font-weight:bold">condition</span> ''warunki'' <span style="color:orange;font-weight:bold">randomdelay</span> ''opoznienie_losowe'' <span style="color:tomato;font-weight:bold">endevent</span>
 
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Nazwa parametru
 
! Znaczenie parametru
 
! Typ wartości
 
! Uwagi
 
|-
 
| komorka
 
| Komórka pamięci, do której dodane zostaną wartości
 
| Nazwa obiektu [[Obiekt_node#memcell|'''node::memcell''']]
 
|
 
|-
 
| wartosci
 
| Wartości do ustawienia w komórce.
 
| Tekst, Liczba, Liczba
 
| Można nie podawać wartości, wstawiając w jej miejsce znak '''*'''
 
|-
 
| warunki
 
| Specyfikacja warunkow dla ktorych event zostanie wykonany
 
|
 
| Parametr opcjonalny
 
|-
 
| opoznienie_losowe
 
| Zwiekszenie opoznienia o losowa wielkosc z zakresu 0-podana wartosc
 
| Liczba
 
| Parametr opcjonalny
 
|}
 
 
== animation ==
 
Pozwala animować model przez zmianę jego położenia lub kąta obrotu.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">animation</span> 0 ''model typ_animacji submodel wektor tempo'' <span style="color:tomato;font-weight:bold">endevent</span>
 
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Nazwa parametru
 
! Znaczenie parametru
 
! Typ wartości
 
! Uwagi
 
|-
 
| model
 
| Model, którego submodel będzie animowany.
 
| Nazwa obiektu [[Obiekt_node#model|'''node::model''']]
 
|
 
|-
 
| typ_animacji
 
| Typ animacji submodelu.
 
| Słowo kluczowe
 
| <span style="color:orange;font-weight:bold">rotate</span> - obrót
 
 
<span style="color:orange;font-weight:bold">translate</span> - przemieszczenie
 
|-
 
| submodel
 
| Submodel, który będzie animowany.
 
| Nazwa submodelu z modelu [[Format T3D|T3D]]
 
|
 
|-
 
| wektor
 
| Docelowe przesunięcie [m] lub obrót [deg] submodelu.
 
| Liczby
 
|
 
|-
 
| tempo
 
| Tempo przesunięcia w [j/s]
 
| Liczba
 
| W przypadku podania ujemnej prędkości animacji dla typu rotate animowany element wykona tylko obrót o podana wartość, bez zapętlania.
 
|}
 
 
== lights ==
 
Zmienia stan świateł modelu.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">lights</span> 0 ''model stany_lampek'' <span style="color:tomato;font-weight:bold">endevent</span>
 
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Nazwa parametru
 
! Znaczenie parametru
 
! Typ wartości
 
! Uwagi
 
|-
 
| model
 
| Model, któremu zostaną ustawione stany świateł.
 
| Nazwa obiektu [[Obiekt_node#model|'''node::model''']]
 
|
 
|-
 
| stany_lampek
 
| W zależności od ilości zdefiniowanych lampek w modelu, znaleźć tu się muszą liczby opisujące ich stan.
 
| Liczby
 
| [[Lampki_w_modelach|Dowiedz się więcej o lampkach]]
 
|}
 
 
== trackvel ==
 
Umożliwia zmianę prędkości szlakowej toru.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">trackvel</span> 0 ''tor predkosc'' <span style="color:tomato;font-weight:bold">endevent</span>
 
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Nazwa parametru
 
! Znaczenie parametru
 
! Typ wartości
 
! Uwagi
 
|-
 
| tor
 
| Tor, któremu zostanie zmieniona prędkość szlakowa.
 
| Nazwa obiektu [[Obiekt_node#track|'''node::track''']]
 
|
 
|-
 
| predkosc
 
| Wartość prędkości szlakowej [km/h].
 
| Liczba
 
|
 
|}
 
 
== visible ==
 
Umożliwia zmianę widoczności obiektu.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">visible</span> 0 ''obiekt widocznosc'' <span style="color:tomato;font-weight:bold">endevent</span>
 
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Nazwa parametru
 
! Znaczenie parametru
 
! Typ wartości
 
! Uwagi
 
|-
 
| obiekt
 
| Obiekt typu node.
 
| Nazwa obiektu [[Obiekt_node|'''node''']]
 
|
 
|-
 
| widocznosc
 
| Stan widoczności obiektu
 
| Liczba
 
| 0 - obiekt niewidoczny
 
 
1 - obiekt widoczny
 
|}
 
 
== voltage ==
 
Umożliwia zmianę wartości napięcia podstacji.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">voltage</span> 0 ''zrodlo_zasilania napiecie'' <span style="color:tomato;font-weight:bold">endevent</span>
 
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Nazwa parametru
 
! Znaczenie parametru
 
! Typ wartości
 
! Uwagi
 
|-
 
| zrodlo_zasilania
 
| Źródło zasilania, któremu zmieniane jest napięcie.
 
| Nazwa obiektu [[Obiekt_node#tractionpowersource|'''node::tractionpowersource''']]
 
|
 
|-
 
| napiecie
 
| Wartość napięcia [V].
 
| Liczba
 
|
 
|}
 
 
== whois ==
 
Umożliwia identyfikację składu przez wpisanie do komórki pamięci danych pobranych ze składu.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">whois</span> 0 ''komorka jakie_dane'' <span style="color:tomato;font-weight:bold">endevent</span>
 
 
{| class="wikitable"
 
! Parametr
 
! Tekst (+1)
 
! Liczba 1 (+2)
 
! Liczba 2 (+4)
 
|-
 
| +0 (1..7)
 
| Plik rozkładu
 
| Ile stacji do końca
 
| 1=postój, 0=przelot
 
|-
 
| +8 (9..15)
 
| Miejsce docelowe
 
| Kierunek w składzie: 1 albo -1
 
| Moc silników (0=wagon)
 
|-
 
| +16 (17..23)
 
| Nazwa ładunku
 
| Ilość ładunku
 
| Maksymalna ilość ładunku
 
|-
 
| +24 (25..31)
 
| Typ pojazdu (CHK)
 
| Stopień zahamowania
 
| Odleglość do wykrytej przeszkody
 
|-
 
| +32 (32..39)
 
| Nazwa pojazdu prowadzącego skład, który wyzwolił event
 
| -
 
| -
 
|-
 
| +40 (41..47)
 
| Kolejna stacja w rozkładzie jazdy składu do którego należy pojazd, który wyzwolił event
 
| -
 
| Identyfikator czy na rzeczonej kolejnej stacji ma miejsce postój
 
|}
 
 
Przykład: W torze umieszczony jest wpis '''event2 test_whois''', którego zadaniem zapisanie do komórek informacji o jadącym taborze
 
 
//komórki pamięci
 
node -1 0 mem-typ memcell 0 0 0 none 0 0 none endmemcell
 
node -1 0 mem-lad memcell 0 0 0 none 0 0 none endmemcell
 
node -1 0 mem-doc memcell 0 0 0 none 0 0 none endmemcell
 
node -1 0 mem-roz memcell 0 0 0 none 0 0 none endmemcell
 
//eventy zgrupowane pod jedną nazwą (nie jest to wymagane)
 
config joinduplicatedevents yes endconfig
 
event test_whois whois 0 mem-roz  7 endevent //rozkład
 
event test_whois whois 0 mem-doc 15 endevent //docelowość
 
event test_whois whois 0 mem-lad 23 endevent //ładunek
 
event test_whois whois 0 mem-typ 31 endevent //typ pojazdu
 
event test_whois logvalues 0 none endevent //wpisz do logu
 
config joinduplicatedevents no endconfig
 
 
== friction ==
 
Umożliwia zmianę globalnego współczynnika tarcia.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">friction</span> 0 none ''tarcie'' <span style="color:tomato;font-weight:bold">endevent</span>
 
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Nazwa parametru
 
! Znaczenie parametru
 
! Typ wartości
 
! Uwagi
 
|-
 
| tarcie
 
| Współczynnik tarcia
 
| Liczba z zakresu <0-1>
 
| Wartości poniżej 0.5 zmniejszają tarcie, a powyżej 0.5 - zwiększają.
 
|}
 
 
== multiple ==
 
Umożliwia wywołanie kilku zdarzeń jednocześnie oraz uzależnianie ich wykonania od określonych warunków.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">multiple</span> 0 ''memcell'' ''events'' <span style="color:orange;font-weight:bold">else</span> ''events'' <span style="color:orange;font-weight:bold">condition</span> ''conditions'' <span style="color:orange;font-weight:bold">randomdelay</span> ''randomDelay'' <span style="color:tomato;font-weight:bold">endevent</span>
 
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Parametr
 
! Interpretacja
 
|-
 
| memcell
 
| [[Obiekt_node#memcell|Komórka pamięci]] testowana przy warunku. Przy braku wpisać 'none'.
 
|-
 
| events
 
| Nazwy eventów które mają być wykonane.
 
|-
 
| conditions
 
| Specyfikacja warunków dla których event zostanie wykonany.
 
 
Parametr opcjonalny.
 
|-
 
| randomDelay
 
| Zwiększenie opóźnienia o losową wielkość z zakresu 0-podana wartość.
 
 
Parametr opcjonalny.
 
|}
 
 
=== Specyfikacja warunków ===
 
{| class="wikitable"
 
! Warunek
 
! Interpretacja
 
|-
 
| '''trackoccupied'''
 
| Event wyzwalany w momencie gdy tor określony w ?KOMORCE PAMIECI? jest zajęty.
 
|-
 
| '''trackfree'''
 
| Event wyzwalany w momencie gdy tor określony w ?KOMORCE PAMIECI? jest wolny.
 
|-
 
| '''probability'''
 
| Event wyzwalany jest w momencie, gdy wylosowana liczba jest mniejsza niż paramter z zakresu <0;1> Akceptowany '''propability''' dla zgodności wstecznej z błędem ortograficznym.
 
|-
 
| '''memcompare'''
 
| Event wyzwalany jest w momencie gdy zawartość podanej komórki pamięci jest taka sama jak w komórce pamięci podanej w parametrze ''memcell''.
 
|-
 
| '''memcompareex'''
 
| Rozbudowana wersja warunku '''memcompare'''. Może być definiowana w formie pozwalającej na bardziej elastyczne uruchamianie eventów. Format wygląda następująco:
 
 
memcompareex comparator operator text operator value1 operator value2
 
 
'''gdzie:'''
 
:''comparator'' - słowo-klucz określające czy do spełnienia warunku wymagane jest:
 
::zaliczenie porównań wszystkich zdefiniowanych elementów komórki pamięci <tt>all</tt>'''
 
::przynajmniej jednego ze zdefiniowanych elementów komórki pamięci <tt>any</tt>
 
::żadnego ze zdefiniowanych elementów komórki pamięci <tt>none</tt>
 
:''*Dotychczasowy sposób działania warunku <tt>memcompare</tt> jest odpowiednikiem trybu <tt>all</tt>''
 
 
:''operator'' - metoda porównania elementu komórki pamięci ze zdefiniowaną wartością. Dostępne metody to:
 
::<tt>==</tt> - równy
 
::<tt>!=</tt> - nierówny
 
::<tt><</tt> - mniejszy
 
::<tt>></tt> - większy
 
::<tt><=</tt> - mniejszy lub równy
 
::<tt>>=</tt> - większy lub równy
 
:''*Dotychczasowy sposób działania warunku <tt>memcompare</tt> jest odpowiednikiem operatora <tt>==</tt>''
 
 
:''text, value1, value2'' - wartości z jakimi porównywane będą poszczególne elementy komórki pamięci.
 
:''*użycie klucza <tt>*</tt> zamiast pary: operator i wartość, powoduje pominięcie testu danego elementu.''
 
--------------------------------------------------------------------
 
 
''- - - !!! - - -  Uruchomienie eventu warunkowanego może zależeć od więcej niż jednego czynnika. Poszczególne warunki wpisujemy po kolei po słowie kluczowym <tt>condition</tt> - - - !!! - - -''
 
 
--------------------------------------------------------------------
 
|}
 
 
== switch ==
 
Umożliwia przestawienie zwrotnicy.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">switch</span> 0 ''zwrotnica przelozenie predkosc_ruchu ruch_dodatkowy'' <span style="color:tomato;font-weight:bold">endevent</span>
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Nazwa parametru
 
! Znaczenie parametru
 
! Typ wartości
 
! Uwagi
 
|-
 
| zwrotnica
 
| Zwrotnica, której stan ma być zmieniony.
 
| Nazwa obiektu [[Obiekt_node#switch|'''node::track::switch''']]
 
|
 
|-
 
| przelozenie
 
| Przełożenie zwrotnicy.
 
| Liczba
 
| 0 - jazda na wprost, 1 - jazda na bok
 
|-
 
| predkosc_ruchu
 
| Prędkość liniowa ruchu iglic.
 
| Liczba
 
| Parametr opcjonalny; -1 - wartosc domyslna (0.1 m/sek)
 
|-
 
| ruch_dodatkowy
 
| Dodatkowy ruch iglicy niedolegającej.
 
| Liczba
 
| Parametr opcjonalny, -1 - wartość domyślna (0.05 m)
 
|}
 
Uwaga! Częściej spotykaną praktyką jest przekładanie zwrotnic za pomocą zdarzeń zaimplementowanych w plikach INC. Realizuje się je za pośrednictwem obiektu [[Obiekt_event#multiple|'''event::multiple''']], podając ich nazwy w parametrze ''zdarzenia'' i dodając do każdej z nich znak:
 
* + (plus) - jazda na wprost
 
* - (minus) - jazda na bok
 
 
 
== sound ==
 
Odgrywa dźwięk zdefiniowany w [[Obiekt_node::sound|'''node::sound''']]
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">sound</span> 0 ''node_sound playstatus radiochannel'' <span style="color:tomato;font-weight:bold">endevent</span>
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Nazwa parametru
 
! Znaczenie parametru
 
! Typ wartości
 
! Uwagi
 
|-
 
| node_sound
 
| Nazwa node dźwięku, który ma zostać odegrany.
 
| Nazwa obiektu [[Obiekt_node::sound|'''node::sound''']]
 
|
 
|-
 
| playstatus
 
| Czy dźwięk ma być odgrywany.
 
| Liczba
 
| 0 - wyłączony, 1 - włączony, -1 - włączony bezkierunkowy
 
|-
 
| radiochannel
 
| Opcjonalny numer kanału, na którym odgrywany ma być dźwięk. Jest on wtedy pozycjonowany na radiotelefonie obsadzonego pojazdu i odgrywany tylko przy ustawionym zgodnym kanale.
 
| Liczba
 
| Parametr opcjonalny; 1 - 10
 
|}
 
 
== <s>disable</s> ==
 
Występuje w kodzie źródłowym, ale nie jest używany.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">disable</span> 0 ? <span style="color:tomato;font-weight:bold">endevent</span>
 
 
== <s>dynvel</s> ==
 
Występuje w kodzie źródłowym, ale nie jest używany.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">dynvel</span> 0 ? <span style="color:tomato;font-weight:bold">endevent</span>
 
 
== <s>message</s> ==
 
Występuje w kodzie źródłowym, ale nie jest używany.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">message</span> 0 ? <span style="color:tomato;font-weight:bold">endevent</span>
 
 
== texture ==
 
Zmienia teksturę wymienną modelu lub grupy modeli [[Obiekt_node::model|'''node::model''']]
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">texture</span> 0 ''model1|model2|model3|etc skinindex skinfile inputcell'' <span style="color:tomato;font-weight:bold">endevent</span>
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Nazwa parametru
 
! Znaczenie parametru
 
! Typ wartości
 
! Uwagi
 
|-
 
| <nowiki>model1|model2|etc</nowiki>
 
| <nowiki>lista modeli które otrzymają nowa teksturą, rozdzielonych znakiem |</nowiki>
 
| Nazwa obiektu [[Obiekt_node::model|'''node::model''']]
 
|
 
|-
 
| skinindex
 
| Numer tekstury wymiennej ktora zostanie zastapiona.
 
| Liczba
 
| W przedziale 1-4.
 
|-
 
| skinfile
 
| Ścieżka do materiału, który ma zostać przypięty jako tekstura wymienna.
 
| Ścieżka pliku [[Materiały_-_Pliki_.mat|'''materiału''']]
 
| Lub tekstrury, jesli linkowany bezpośrednio.
 
|-
 
| inputcell
 
| Nazwa opcjonalnej komórki pamięci, której wartości mogą być użyte jako parametry (p1) (p2) oraz (p3) w łancuchu skinfile.
 
| Nazwa obiektu [[Obiekt_node::memcell|'''memcell''']]
 
| None jeśli ''skinfile'' nie używa parametrów.
 
|}
 
 
Przykłady:
 
event ... texture ... tablica1|tablica2 1 rozklad none endevent
 
Spowoduje zmianę wymiennej tekstury nr 1 w statycznych obiektach ''tablica1'' i ''tablica2'' na teksturę ''"rozklad"''.
 
  
node ... textureinput memcell 0 0 0 rozklad 2 0 none endmemcell
+
* [[Obiekt event::AddValues|AddValues]]
event ... texture ... tablica1|tablica2 1 (p1)_(p2) textureinput endevent
+
* [[Obiekt event::CopyValues|CopyValues]]
Spowoduje zmianę textury wymiennej nr 1 w statycznych obiektach ''tablica1'' i ''tablica2'' na teksture ''"rozklad_2"''.
+
* [[Obiekt event::GetValues|GetValues]]
 +
* [[Obiekt event::LogValues|LogValues]]
 +
* [[Obiekt event::PutValues|PutValues]]
 +
* [[Obiekt event::UpdateValues|UpdateValues]]
  
node ... whoiscell memcell 0 0 0 none 0 0 none endmemcell
+
* [[Obiekt event::animation|animation]]
event whoisvehiclename whois 0 whoiscell 33 endevent
+
* [[Obiekt event::lights|lights]]
event whoistexture texture 0 tablica3 2 make:scripts/wyswietlacz&$timetable=(p1) whoisvehiclename endevent
+
* [[Obiekt event::trackvel|trackvel]]
event whoistexturelaunch multiple 0 none whoisvehiclename whoistexture endevent
+
* [[Obiekt event::visible|visible]]
Spowoduje po wyzwoleniu przez pojazd eventu ''whoistexturelaunch'' zapisanie w komórce pamięci jego nazwy i wywołanie skryptu ''scripts/wyswietlacz.py'' z parametrem ''$timetable=nazwapojazdu'' który to parametr powoduje przekazanie do skryptu aktualnych danych rozkładu rzeczonego pojazdu. Tekstura wygenerowana przez rzeczony skrypt zostanie przypisana jako tekstura wymienna nr 2 w statycznym obiekcie ''tablica3''.
+
* [[Obiekt event::voltage|voltage]]
 +
* [[Obiekt event::whois|whois]]
 +
* [[Obiekt event::friction|friction]]
 +
* [[Obiekt event::multiple|multiple]]
 +
* [[Obiekt event::switch|switch]]
 +
* [[Obiekt event::sound|sound]]
 +
* [[Obiekt event::texture|texture]]
 +
* <s>message</s>
  
 
[[Kategoria:Scenerie]]
 
[[Kategoria:Scenerie]]

Aktualna wersja na dzień 08:51, 31 mar 2023

Dostępne typy zostały opisane poniżej.