Wprowadzenie
'Callback' to specjalne działanie 2, które łata "wywołuje" (calls) w celu zmodyfikowania różnych funkcji, czego przykładem jest efekt wizualny pojazdów kolejowych. Zobacz callback tutorial , jak ich używać.
W ostatnim działaniu 2 łańcucha VarAction2s drugi bajt pasującego wpisu musi mieć ustawiony bit 7, aby zidentyfikować go jako wynik wywołania zwrotnego.
Na przykład 04 00 nie jest wynikiem wywołania zwrotnego (ale może być ID innego powiązanego działania 2), podczas gdy 04 80 jest wynikiem wywołania zwrotnego o wartości 4. W sumie wywołanie zwrotne ma 15-bitowe wartości wyniku, przy czym górna 7 bitów jest zapisanych w drugim bajcie. Na przykład 54 C2 jest wynikiem wywołania zwrotnego o wartości 4254 = 16980, gdzie znowu drugi bajt ma ustawiony bit 7, zmieniając 42 na C2.
- GRFv≤7 Dla GRF w wersji 7 i niższej nie wszystkie 15-bitowe wartości są dostępne jako wartości zwracane, tylko wartości od 00 do 7EFF.
Dla kompatybilności z wcześniejszymi wersjami łatek, FF w górnym bajcie oznacza to samo co 80, więc 04 FF ma również wynik wywołania zwrotnego 4. Uwaga: jeśli twój plik grf musi być zgodny z wersjami przed TTDPatch 2.0.1 alfa 40, musisz ustawić wysoki bajt na FF, więc możesz użyć tylko 8-bitowych wyników.
- GRFv≥8 Dla GRF w wersji 8 i wyższej ta warstwa zgodności została usunięta. 'Callbacks' może zwrócić wszystkie 15-bitowe wartości między 00 a 7FFF.
Aby sprawdzić określone 'callback', użyj VariationalAction2 lub VarAction2Advanced , aby sprawdzić zmienną 0C .
- Zmienna 0C zawiera numer zwrotny.
- Zmienna 0C jest słowem, dlatego VarAction2 musi używać typu 85.
- Wyniki można określić bezpośrednio przy użyciu wartości 8xxx (patrz wyżej) lub wartości 8xxx w kolejnej (Podstawowej/Wariacyjnej/Losowej) akcji 2, do której zwykle przypisano ich identyfikator zestawu.
- Domyślny przypadek VarAction2 musi wskazywać na zwykły łańcuch graficzny, aby nieznane/przyszłe wywołania zwrotne skutkowały "niepowodzeniem wywołania zwrotnego" (callback failure) .
Przykład:
<Sprite-number> * <Length> 02 <feature> <set-id> 85 0C 00 \wxFFFF <nvar> (<set-id/result> \wx <callback> \wx <callback>){n} <set-id of graphics chain>
Format VarAction2 wyjaśniono szczegółowo na stronie VariationalAction2 .
Lista callbacks
Następujące wywołania zwrotne są zdefiniowane przez łatkę. Liczba 'callback' będzie przechowywana w zmiennej 0C, abyś mógł zwrócić prawidłowe wyniki, jeśli masz kilka 'callback'. Wszystkie 'wywołania zwrotne' wyjaśniono bardziej szczegółowo poniżej.
PROŚBA ODNOTOWANIA: Od czasu TTDPatch 2.5 beta 5 zmieniła się wielkość zmiennej 0C, a teraz istnieją również numery zwrotne wielkości-słowa. Aby zachować zgodność wsteczną, tylko wywołania zwrotne 10..3F można sprawdzić za pomocą kontroli wielkości bajtów. Z drugiej strony, wywołania zwrotne 140 i wyższe muszą być sprawdzane za pomocą 'czeku' o rozmiarze słowa lub dworda, aby upewnić się, że są jednoznacznie zidentyfikowane.
Numer | Feature(s) | Znaczenie |
---|---|---|
10 | Pojazdy | Visual effect and wagon power |
11 | Pojazdy | Wagon length |
12 | Pojazdy | Load amount |
13 | Stacje | Station availability |
14 | Stacje | Select sprite layout |
15 | Pojazdy | Refitted capacity callback |
16 | Trains | Build articulated engines |
17 | Domy | House construction check |
18 | Several [1] | AI construction/purchase selection |
19 | Pojazdy | Cargo sub-type display |
1A | Domy | Następna klatka animacji |
1B | Domy | Kontrola animacji |
1C | Domy | Zmiany na etapie budowy |
1D | Trains | Czy można dołączyć wagon |
1E | Domy | Wybierz kolor budynku |
1F | Domy | Akceptacja ładunku |
20 | Domy | Długość klatki animacji |
21 | Domy | Wywołanie zniszczenia budynku |
22 | Branże | Dostępność |
23 | Pojazdy | Dodatkowy tekst na ekranie zakupu |
24 | Stacje | Niestandardowy układ stacji |
25 | Kafle przemysłowe | Kontrola animacji |
26 | Kafle przemysłowe | Następna klatka animacji |
27 | Kafle przemysłowe | Długość klatki animacji |
28 | Branże | Dopuszczalność lokalizacji przemysłu |
29 | Branże | Losowa zmiana produkcji |
2A | Domy | Uzyskanie akceptowanych typów ładunków |
2B | Kafle przemysłowe | Decyduje o przyjęciu ładunku |
2C | Kafle przemysłowe | Uzyskanie akceptowanych typów ładunków |
2D | Pojazdy | Wybieranie odwzorowania kolorów dla pojazdu |
2E | Domy | Produkcja ładunków na zamówienie |
2F | Kafle przemysłowe | Sprawdzenie kształtu niestandardowego |
30 | Kafle przemysłowe | Decyduje rysowanie domyślnych fundamentów |
31 | Pojazdy | Start/stop kontrola |
32 | Pojazdy | 32-dni CB |
33 | Several | Wywołanie zwrotne efektu dźwiękowego |
34 | Vehicles [1] | Wybór 'autoreplace' pojazdu |
35 | Branże | Miesięczna losowa zmiana produkcji |
36 | Pojazdy | Zmień właściwości pojazdu |
37 | Branże | Wyświetlanie podtypów ładunku |
38 | Branże | Pokaż dodatkowy tekst w oknie funduszu |
39 | Ładunki | Niestandardowe obliczanie zysku |
3A | Branże | Pokaż dodatkowy tekst w oknie branży |
3B | Branże | Kontroluj efekty specjalne |
3C | Kafle przemysłowe | Wyłącz 'autosloping' |
3D | Branże | Zrezygnuj z przyjmowania ładunków |
40..13F | --Zarezerwowane-- | |
140 | Stacje | Kontrola animacji |
141 | Stacje | Następna klatka animacji |
142 | Stacje | Długość klatki animacji |
143 | Domy | Zabezpiecz budynek warunkowo |
144 | Sounds [1] | 1.2 2.6 Efekty dźwiękowe otoczenia |
145 | Ładunki | Obliczanie niestandardowej oceny stacji |
146 | Nowe sygnalizacje [1] | Rysowania 'sprite' nowej sygnalizacji |
147 | Kanały | Dodaje przesunięcie sprite'a |
148 | Domy | Przyjmowany ładunek obserwowany |
149 | Stacje | Kontrola nachylenia terenu |
14A | Branże | Wybierz kolor branży |
14B | Branże | Decyduje o typach ładunków wejściowych |
14C | Branże | Decyduje o typach ładunków wyjściowych |
14D | Domy | Indywidualna nazwa budynku |
14E | Domy | Decyduje rysowanie domyślnych fundamentów |
14F | Domy | Wyłącz 'autosloping' |
150 | Kafle lotniskowe | 1.1 Decyduje rysowanie domyślnych fundamentów |
152 | Kafle lotniskowe | 1.1 Kontrola animacji |
153 | Kafle lotniskowe | 1.1 Następna ramka animacji |
154 | Kafle lotniskowe | 1.1 Długość klatki animacji |
155 | Lotniska | 1.1 Dodatkowe informacje o układzie lotniska w GUI budowy |
156 | Lotniska | 1.1 Nazwa układu lotniska |
157 | Obiekty | Kontrola nachylenia terenu |
158 | Obiekty | Następna klatka animacji |
159 | Obiekty | Kontrola animacji |
15A | Objects | Długość klatki animacji |
15B | Obiekty | Wybierz kolor budynku |
15C | Obiekty | Pokaż dodatkowy tekst w oknie budowania |
15D | Objekty | Wyłącz 'autosloping' |
15E | Pojazdy | 1.2 Współczynnik kosztu 'refit`u |
15F | Branże | 1.3 Ustaw początkowy poziom produkcji na budowie |
160 | Pojazdy | 1.5 Zaawansowane tworzenie efektów |
- ↑ 1.0 1.1 1.2 1.3 Funkcja wywołuje ogólne wywołania zwrotne, a nie konkretny ID pojazdu. Przeczytaj wpis Action 3, aby dowiedzieć się, jak zdefiniować.
Efekt wizualny i moc wagonu (10)
Features: | pociągi, pojazdy drogowe, statki |
Purchase list | nie |
Variable 10 | n/a |
Variable 18 | n/a |
Result | wybrany efekt |
'Fail result means' | właściwości domyślne |
Return registers | n/a |
To wywołanie zwrotne służy do określenia efektu wizualnego, jaki ma być zastosowany w pojeździe oraz do tego, czy wagon jest napędzany (dodając moc i wagę do pociągu).
Flaga 'napędzanego wagonu' ma zastosowanie tylko do wagonów kolejowych, które domyślnie byłyby zasilane (tj. Ustawiono właściwość 1B).
Efekt wizualny dotyczy wszystkich pojazdów kolejowych ( 1.1 Od czasu OpenTTD r21238 również dla pojazdów drogowych i statków).
'Callback' jest wywoływane tylko podczas ładowania gry, kiedy pociąg się cofa lub podczas przestawiania pociągu w depocie.
W OpenTTD 'efekt wizualny' jest również aktualizowany, gdy pojazd wjeżdża na tor innego rodzaju szyny. W takim przypadku flaga 'wagonu napędzanego' nie może się zmienić.
Jeśli wywołanie zwrotne nie powiedzie się z jakiegokolwiek powodu (np. Nie zdefiniowano, działanie 2 nie zwraca wyniku wywołania zwrotnego itp.), Wartość odpowiedniej właściwości działania 0 ( train property 22 , road vehicle property 21 , ship property 1C ) jest używana zamiast. Możliwe wartości zwracane można również znaleźć w tych właściwościach.
Wagon length (11)
- GRFv≤7 To wywołanie zwrotne jest wywoływane tylko dla GRF w wersji 7 i niższej.
- GRFv≥8 Do GRF w wersji 8 i nowszych callback 36.
To wywołanie zwrotne jest używane zamiast train property 21 lub (resp.) road vehicle property 23 za każdym razem, gdy pojazd opuszcza zajezdnię lub jest wyświetlany w zajezdni. Jeśli wywołanie zwrotne nie powiedzie się, zamiast tego zostanie użyta wartość właściwości.
Wynik wywołania zwrotnego może ulec zmianie tylko wtedy, gdy cały łańcuch pojazdu znajduje się w magazynie. Jeśli Twój pojazd obsługuje funkcję autorefit, a długość może się zmienić przy ponownym montażu, musisz użyć callback 15E , aby zapobiec ponownemu montażu.
Load amount (12)
- GRFv≤7 To wywołanie zwrotne jest wywoływane tylko dla GRF w wersji 7 i niższej.
- GRFv≥8 Do GRF w wersji 8 i nowszych callback 36.
To wywołanie zwrotne jest używane zamiast property 07 podczas ładowania gry lub zmiany układu pociągu w depocie (lub przy zakupie innych pojazdów). Jeśli wywołanie zwrotne nie powiedzie się, zamiast tego zostanie użyta wartość właściwości 07.
Uwaga: w przypadku statków powietrznych przewożących zarówno pasażerów, jak i pocztę to wywołanie zwrotne jest zerwane (wrt. Mail) w TTDPatch i OpenTTD przed r14672.
Od OpenTTD r14672 'callback' jest wymagane dla pasażerów i poczty. Przedział pocztowy zachowuje się jak wagon przyczepiony do silnika kolejowego (lokomotywy). To znaczy. aby odczytać zmienne ogólne statku powietrznego, należy użyć wariacji2 typ 82/86/8A (obiekt powiązany), ponieważ większość zmiennych nie jest poprawna dla przedziału pocztowego.
Wreszcie, aby rozróżnić część pasażera i część poczty, możesz użyć zmiennej 47 lub nawet 40.
Dostępność stacji (13)
Określa, czy stację można zbudować, czy nie, tj. Czy można ją wybrać w oknie budowy stacji. Zwrócenie 1 jako 'callback return' oznacza, że stację można zbudować, a kod 'powrotu' 0 usuwa stację z wyboru.
- GRFv≤7 Zauważ, że GRF w wersji 7 i niższej rozróżniały tylko zerowe i niezerowe wartości zwrotne.
Station sprite layout (14)
Callback 14 wybiera wpis z układu ikonek (ustawiony przez prop. 09 lub domyślny, jeśli nie jest ustawiony), a jeśli jego wartość zwracana jest nieprawidłowa, zostanie użyty układ 'sprite' podany z typu kafelka. Możesz użyć tego, aby wybierać spośród ponad 4 różnych zestawów 'sprites'.
Bit 0 (orientacja stacji) wartości zwracanej jest ignorowany i zamiast tego jest ustawiany na bit 0 rzeczywistej płytki, dzięki czemu nie trzeba jawnie sprawdzać orientacji i zwracać dwóch odpowiednich wartości, zamiast tego po prostu uporządkuj układy tak, aby nawet liczby odpowiadają orientacji X (NE-SW), a liczby nieparzyste odpowiadają orientacji Y (NW-SE).
Efekt jest podobny do posiadania dodatkowych typów kafelków, które jednak nie są tak naprawdę budowane, ale pokazują tylko inną grafikę w zależności od tego wywołania zwrotnego.
Refitted wywołanie zwrotne pojemności (15)
To wywołanie zwrotne jest używane, gdy pojazd jest remontowany, aby znaleźć nową pojemność. 2.5 Jest to 15-bitowy callback od TTDPatch 2.0.1 alpha 40 i pozwala na zwrot wartości do 7EFF=32511 jednostek ładunku. 1.2 Via misc. flagę pojazdu 5 to 'callback' można również włączyć, jeśli pojazd nie jest zmontowany i niesie domyślny ładunek. Zobacz vehicle refitting page for details
Informacje o nowym typie ładunku są dostępne w variable 47 .
Dodatkowo zmienna pojazdu B9 (dla VarAction2) zostanie ustawiona na nowy typ ładunku specyficzny dla klimatu (kolumna 3, typ B na cargo type list ) , lub do FF tylko podczas sprawdzania, czy pojazd można 'refittable'.
W przeciwieństwie do zwykłych mocy przerobionych (w tym tych z 'callback' 36), wartość zwrotu nie podlega zwykłemu podziałowi zdolności dla ładunków innych niż pasażerowie w pociągach i samolotach, zamiast tego pojemność jest wykorzystywana dokładnie tak, jak została zwrócona przez 'callback'. Zobacz także stronę podsumowującą vehicle refitting .
Silnik przegubowy (16)
Pozwala to na budowę 'przegubowych' 'silników' lub wagonów, tj. Pojazdów wykonanych z kilku pojedynczych pojazdów. Jeśli to połączenie zwrotne jest w użyciu, dodatkowe pojazdy będą dodawane, o ile będzie to konieczne.
- GRFv≤7 Dla GRF w wersji 7 i niższej wartość zwracana wykorzystuje 8 bitów.
Bity od 0 do 6 określają ID pojazdu do dodania. Jeśli do 'ID' zostanie dodane 80, pojazd zostanie cofnięty. Zwrot FF oznacza zakończenie pojazdu przegubowego i nie dołączanie kolejnych części.
- GRFv≥8 Dla GRF w wersji 8 i wyższej wartość zwracana wykorzystuje 15 bitów.
Bity od 0 do 13 określają ID pojazdu do dodania. Jeśli do ID zostanie dodany 4000, pojazd zostanie cofnięty. Zwrot 7FFF oznacza zakończenie pojazdu przegubowego i nie dołączanie kolejnych części.
Zauważ, że ponieważ pociąg nie jest jeszcze zbudowany, nie możesz używać zmiennych pociągu w akcji 2. Zamiast tego użyj pierwszego bajtu zmiennej 10 (dodatkowe informacje o 'callback' 1), która jest ustawiona na 01 dla pierwszej części przegubowej, 02 dla drugiej i tak dalej.
0.6 2.5 Jeśli więcej niż pierwszy pojazd zawiera ładunek, 'callback' musi również działać w menu zakupu. Oznacza to, że w akcji 3 zostanie wywołany z typem ładunku FF. W przeciwnym razie ilość ładunku pokazana w menu zakupu będzie dotyczyć tylko pierwszej części pojazdu przegubowego.
W OpenTTD klasa ładunku pierwszych pojazdów drogowych służy do ustalenia, czy pojazd może zatrzymać się na przystankach autobusowych, czy ciężarówek, niezależnie od pojemności pierwszego pojazdu. Jeśli bit klasy ładunku dla pasażerów jest ustawiony, może jechać na przystanki autobusowe, gdy nie jest ustawiony, może jechać na przystanki dla ciężarówek. Zobacz także stronę o vehicle refitting.
Sprawdzenie budowy domu (17)
To 'wywołanie zwrotne' służy do ustalenia, czy dany typ budynku można zbudować na pozycji. Powinien zwrócić 1, aby umożliwić budowanie, a 0, aby go anulować.
Ponieważ budynek nie został jeszcze utworzony, nie można używać zmiennych 40 i 41 (zwracają zero). Możesz jednak użyć zmiennej 42, 43, 44, 45 i wszystkich zmiennych miasta. Od wersji OpenTTD r19744 można również uzyskać dostęp do losowych bitów za pomocą RandomAction2 lub zmiennej 5F.
Właściwości 0A i 13 są sprawdzane, nawet jeśli wywołanie zwrotne zwraca wartość niezerową; mogą również anulować budowę.
W przypadku budynków z wieloma kaflami to wywołanie zwrotne jest zawsze wywoływane dla typu północnego kafla, ale nie można zagwarantować, że pozycja, do której można uzyskać dostęp za pomocą zmiennych 40, 42 i 43, jest końcową pozycją północnego kafla. Gwarantujemy jednak, że jeśli budynek naprawdę zostanie zbudowany, jeden z jego kafli zajmie ten kafel. Na przykład, jeśli zwrócisz zero dla pustynnych kafli, nie oznacza to, że twój budynek nie będzie zajmował żadnych pustynnych kafli, ani że jego północny kafel będzie na kaflu innym niż pustynny; oznacza to tylko, że co najmniej jeden kafel budynku będzie na kaflu niepustynnym. (np. nadal można go zbudować na samym skraju pustyni) To ograniczenie zostało usunięte w OpenTTD r13489, 'callback' jest teraz wywoływane dla ostatecznej pozycji północnego 'pola'.
- GRFv≤7 Zauważ, że GRF w wersji 7 i niższej rozróżniały tylko zerowe i niezerowe wartości zwrotne.
Wybór konstrukcji/zakupu AI (18)
Ta funkcja 'zwrotna' funkcji ogólnej jest wywoływana w celu podjęcia różnych decyzji, gdy 'SI' buduje nową trasę. Na przykład, AI zazwyczaj ma ustaloną na stałe listę wagonów dla każdego rodzaju ładunku, ale dzięki temu wywołaniu zwrotnemu możesz uzależnić wybór od branż źródłowych i docelowych, a także odległości między usługami.
Ponieważ pojazd nie został jeszcze kupiony, nie możesz używać zwykłych zmiennych pojazdu 40+x lub 80+x, zamiast tego masz następujące:
Zmienna | Rozmiar | Content |
---|---|---|
80 | B | typ ładunku (specyficzny dla klimatu, kolumna 3, typ B w cargo type list) |
81 | B | typu ładunku (niezależny od klimatu, kolumna 1, typ A w cargo type list) |
82 | B | wybór domyślny |
83 | B | źródło industry type (ID). W przypadku nowych branż typ zastępczy jest zwracany począwszy od OpenTTD r20108.[1] |
84 | B | przeznaczenie industry type (ID). W przypadku nowych branż typ zastępczy jest zwracany począwszy od OpenTTD r20108.[1] |
85 | B | odległość między źródłem a miejscem docelowym, (dx+dy)/2 |
86 | B | Wydarzenie budowy SI |
87 | B | Numer konstrukcyjny; dla wagonów: liczba wagonów; dla stacji 0=source station, 1=destination station |
88 | B | Rozmiar stacji w formie NL; N=number of platforms, L=length |
40 | D | xxxxxxTT, TT=cargo slot z tabeli tłumaczeń ładunku lub taka sama jak w przypadku braku tabeli, dostępna od r1167/2.5b9 |
-
↑ 1.0 1.1 Dostępne są dwie specjalne wartości zwrotu: 0xFE, która wskazuje nieznany typ branży i 0xFF wich wskazuje miasto
'Wywołanie zwrotne' zostanie wywołane dla następujących zdarzeń konstrukcyjnych, zapisanych w zmiennej 86:
Grupa | Cecha | Var.86 | Typ | Opis |
---|---|---|---|---|
'Trains' | 00 | 00 | 'Check' | Zwykły silnik kolejowy |
01 | Check | Elektryczna lokomotywa | ||
02 | Check | Monorail engine | ||
03 | Check | Maglev engine | ||
08 | 'Get' | Zwykły wagon kolejowy | ||
09 | Get | Elektryczny wagon kolejowy | ||
0A | Get | Monorail wagon | ||
0B | Get | Maglev wagon | ||
0F | Get | Typ toru do zbudowania | ||
Pojazdy drogowe | 01 | 00 | Check | Pojazd drogowy |
01 | Get | Pierwszy ID pojazdu drogowego do wypróbowania | ||
02 | Get | Liczba pojazdów drogowych do wypróbowania | ||
Ships | 02 | 00 | Check | Ship |
01 | Get | Pierwszy ID statku do wypróbowania | ||
02 | Get | Liczba statków do wypróbowania | ||
'Samolot' | 03 | 00 | Check | Samolot |
Stacje | 04 | 00 | Get | ID stacji |
Notes:
- "Check" oznacza sprawdzenie, czy powinien spróbować kupić ten pojazd (z ID w var. 82). Zwróć 0, aby zabronić zakupu, lub 1, aby na to pozwolić. Jeśli jest to dozwolone, komputer kupi najdroższy pojazd (lub stopień AI dla silników pociągów), jaki może znaleźć, i jest dostępny i ma wystarczająco wysoką niezawodność.
- "Pobierz" (Get) oznacza dowiedzieć się, którego ID (itp.) Użyć. Wartość domyślna w var.82 będzie używana, jeśli wywołanie zwrotne nie powiedzie się.
- W przypadku silników pociągów i samolotów AI zawsze sprawdza wszystkie dostępne silniki.
- W przypadku pojazdów drogowych i statków, AI ma wbudowaną listę pojazdów do wypróbowania, możesz użyć zdarzenia 'callback' 01 i 02, aby zmienić tę listę.
- W przypadku pociągów typy torów (0='regular', 1=electric, 2=monorail, 3=maglev) (electrifiedrailways/unifiedmaglev) są automatycznie mapowane odpowiednio w zależności od przełączników zelektryfikowanych/zunifikowanych. Aby uzyskać najlepsze wyniki, załóż, że wszystkie cztery są dostępne. Gra użyje wtedy poprawnego, jeśli nie jest dostępny.
To wywołanie zwrotne jest "powiązane" , tzn. Jeśli wynik nie jest wynikiem wywołania zwrotnego (wysoki bit nie jest ustawiony), wówczas żądanie jest przekazywane do poprzedniej ogólnej procedury obsługi wywołania zwrotnego, tj. Są sprawdzane w odwrotnej kolejności. Umożliwia to pozostawienie niektórych decyzji poprzedniemu programowi obsługi i pozwala na pewną współpracę między kilkoma plikami .grf.
- GRFv≤7 'Prośba odnotowania', że GRF w wersji 7 i niższej rozróżniały tylko zerowe i niezerowe wartości zwracane dla "Check" .
Cargo Subtype Display (19)
To wywołanie zwrotne pozwala wyświetlać tekst po nazwie ładunku podczas ponownego montażu oraz na wyświetlaczu pojemności pojazdu. Jest to przydatne do rozróżnienia kilku podtypów określonego ładunku, np. towarami mogą być samochody, ropa naftowa, blachy itp.
Wartość zwracana musi być liczbą ciągu D0xx ustawionego przez akcję 4 w tym samym pliku .grf. Na przykład, jeśli ustawisz tekst ID D006 na jakiś tekst, zwrot 06 w tym wywołaniu zwrotnym spowoduje wyświetlenie go po nazwie ładunku.
Zwykle do rozróżnienia różnych podtypów należy użyć zmiennej F2 cyklu/podtytułu pojazdu. Podczas ponownego montażu wywołanie zwrotne jest wywoływane z sukcesywnie zwiększanymi wartościami zmiennej F2, dopóki połączenie zwrotne nie powie, aby zatrzymać. Wszystkie zwrócone warianty są następnie wyświetlane jako opcje ponownego montażu, a wszystkie opcje, które mają ten sam typ ładunku i wynik wywołania zwrotnego (niezależnie od cyklu ponownego montażu) są zgrupowane razem w tej samej linii.
00..FE | Użyj podtypu z tekstu D0xx (D000..D0FE) |
FF | Stop wywołania (calling). |
00..3FF | Użyj podtypu z tekstu D0xx (D000..D3FF) |
400 | Stop wywołania. |
Next animation frame (1A/26/141/153/158)
Wywoływane w każdej ramce animacji, to wywołanie zwrotne zwraca numer następnej ramki do wyświetlenia. Dodatkowo może zwrócić te specjalne wartości:
Wartość | Znaczenie |
---|---|
FF | zatrzymabie animacji. Bieżąca klatka pozostaje na ekranie do czasu ponownego uruchomienia animacji. |
FE | kontynuować następną klatkę jak zwykle. Możesz zwrócić to na etapach, na których nie chcesz robić nic specjalnego. |
2.5 Z TTDPatch 2.5 beta 2 można zapytać o losowe bity w zmiennej 10. Aby to włączyć, ustaw bit 3 właściwości 19 dla domów, bit 0 właściwości 12 dla kafli przemysłu, bit 2 właściwości 13 dla stacji lub bit 12 właściwość 10 dla obiektów.
Podobnie jak wszystkie wywołania zwrotne animacji, jeśli wysoki bajt wyniku jest niezerowy, zostanie on zinterpretowany jako liczba efektów dźwiękowych, a odpowiedni efekt dźwiękowy zostanie odtworzony na kafelku.
Kontrola animacji (1B/25/140/152/159)
Wywoływane okresowo, w przedziale czasowym określonym we właściwości 16 (domy) lub gdy nastąpi aktywacja animacji (kafelki przemysłu, stacje, kafelki lotniska i obiekty). Zwraca liczbę klatek, do których animacja powinna przeskoczyć, lub jedną z następujących wartości specjalnych:
Wartość | Znaczenie |
---|---|
FF | stop animacji w bieżącej klatce |
FE | start animacji z bieżącą klatką |
FD | pozostawić animację w bieżącym stanie (nic nie rób) |
- W przypadku budynków miejskich z wieloma kaflami property 19/bit 2 nieznacznie modyfikuje to wywołanie zwrotne, zobacz szczegóły.
- Z wyjątkiem CB 1B (domy), niski bajt zmiennej 18 zawiera przyczynę (wyzwalacz animacji) połączenia. Pozostałe bity mogą zawierać dodatkowe informacje specyficzne dla wyzwalacza/przyczyny.
Cecha Callback Animation triggers Houses 1B none Industry tiles 25 Property 11 Stations 140 Property 18 Airport tiles 152 Property 11 Objects 159 Property 13
- Z wyjątkiem CB 1B (domy), wywołania zwrotne są zawsze używane, gdy są zdefiniowane, nie trzeba ustawiać bitu we właściwości akcji 0, aby je aktywować.
- 2.5 Od TTDPatch 2.5 beta 2 te wywołania zwrotne otrzymują losowe bity w zmiennej 10, aby umożliwić losowe zmiany.
- Dla wywołania zwrotnego 1B (domy) dokładna losowość zależy od bitu 2 property 19 (zsynchronizowane wywołanie zwrotne 1B). Jeśli połączenie zwrotne jest zsynchronizowane, wysokie 16 bitów będzie takie samo dla wszystkich kafelków, a niskie 16 bitów będzie różne dla każdego kafelka. W przeciwnym razie wszystkie 32 bity będą niezależne dla każdego kafelka.
- W przypadku CB 25 (kafle branżowe) losowość zależy od rodzaju zdarzenia. W przypadku wyzwalaczy, które mają miejsce w całej branży (wyzwalacze 2, 3 i 4), wysokie 16 bitów będzie takie samo dla wszystkich kafli, podczas gdy niskie 16 bitów będzie inne. W przypadku innych wyzwalaczy wszystkie 32 bity są niezależne.
- Dla CB 140 (stacje), wysokie 16 bitów jest takie samo dla wszystkich uruchomionych kafli, podczas gdy niskie 16 bitów jest różne dla każdego kafla (tile).
- Podobnie jak wszystkie wywołania zwrotne animacji, jeśli wysoki bajt wyniku jest niezerowy, zostanie zinterpretowany jako liczba efektów dźwiękowych, a odpowiedni efekt dźwiękowy zostanie odtworzony na kaflu.
Construction stage changes (1C)
Wywoływany, gdy budynek zmienia etap budowy (podczas normalnej rozgrywki, to znaczy dokładnie cztery razy). Może zwrócić te same wartości, co wywołanie zwrotne 1B. Zmienna 40 zawiera nowy etap. Możesz zwrócić FF dla etapów, które nie mają animowanej grafiki, aby zaoszczędzić zasoby.
Podobnie jak wszystkie wywołania zwrotne animacji, jeśli wysoki bajt wyniku jest niezerowy, zostanie on zinterpretowany jako liczba efektów dźwiękowych, a odpowiedni efekt dźwiękowy zostanie odtworzony na kafelku.
Możliwość dołączenia wagonu (1D)
To wywołanie zwrotne jest wywoływane dla silnika pociągu (tj. Z akcji silnika 3) podczas dołączania nowego pojazdu do bieżącego pociągu i określa, czy może on być faktycznie podłączony do pociągu. 'Callback' jest zawsze używane, gdy jest zdefiniowane, nie trzeba ustawiać bitu we właściwości akcji 0, aby ją włączyć.
Możesz użyć VarAction2s, aby sprawdzić zmienne 40+x i 80+x. Dla var. działanie 2 typ 81 (pojazd), odnoszą się do zmiennych wagonu, który ma być przymocowany, a nie do silnika, do którego jest on przymocowany, więc możesz sprawdzić właściwości wagonu, takie jak rodzaj ładunku, aby sprawdzić, czy jest on odpowiedni dla danego silnik pociągu.
2.5 Var. działanie 2 typ 82 (silnik) odnosi się do silnika, do którego przyczepiany jest wagon, począwszy od wersji TTDPatch 2.0.1 alfa 46. Pozwala to na przykład ustalić długość pociągu, do którego jest on przymocowany. We wcześniejszych wersjach łatek odnosi się do silnika źródła (lub wagonu, jeśli wagon nie jest przymocowany do niczego innego), co nie było tak naprawdę pomocne.
Ogólnie rzecz biorąc, połączenie zwrotne jest oceniane w ten sposób:
- Akcja 3 jest używana ze zwykłego silnika (zmiany barw nie mają wpływu).
- Cargotyp używany w Akcji 3 pochodzi z wagonu.
- VarAction2 typy 81, 85, 89 odnoszą się do wagonu.
- VarAction2 typy 82, 85, 8A odnoszą się do silnika.
'Return' | Znaczenie |
---|---|
00..FC | Nie zezwalaj na zakładanie i używanie D0xx (D000.. D0FC) ID tekstu jako drugi wiersz komunikatu o błędzie, |
FD | Nie zezwalaj na dołączanie do standardowego komunikatu (niezgodne typy szyn) |
FE | Zezwalaj na dołączanie[1] |
FF | Zezwalaj na dołączanie, jeśli typy szyn są zgodne (domyślnie) |
Return | Znaczenie |
---|---|
00..3FF | Nie zezwalaj na zakładanie i używanie D0xx (D000.. D3FF) ID tekstu jako drugi wiersz komunikatu o błędzie, |
400 | Zezwalaj na dołączanie, jeśli typy szyn są zgodne (domyślnie) |
401 | Zezwalaj na dołączanie[1] |
402 | Nie zezwalaj na dołączanie do standardowego komunikatu (niezgodne typy szyn) |
- ↑ 1.0 1.1 Oznacza to, że można zezwolić na podłączenie na przykład wagonu jednoszynowego do zwykłego pojazdu kolejowego.
Building colour (1E)
Wywoływany, aby zdecydować, jakiego koloru należy użyć w budynku. Powinny zwracać liczbę mapowań kolorów, które mają być użyte,, na przykład 775 dla blue->dark blue (mapowania niebiesko - ciemnoniebieskiego).
Może to być przydatne, jeśli chcesz czegoś bardziej złożonego niż cztery losowe kolory.
2.5 Z TTDPatch 2.0.1 alfa 67 można zwrócić wartość zestawu col2*16+col1 plus bit 14 set, gdzie col1 i col2 to dwa kolory firmowe. Na przykład wartość zwracana 73 C0 używa col1=3= żółty (yellow) i col2=7=ciemnozielony (dark green). Jeśli nie zainstalowano żadnych map kolorów dwóch firm, kolory z prop. Zamiast tego używanych jest 17.
Wykorzystuje 15 bitów zwrotnych.
Akceptacja ładunku (1F)
Wywoływany, aby zdecydować, co może zaakceptować kafel budynku. Wykorzystuje 15 bitów zwrotnych. Zwracane słowo powinno mieć układ Sgmp, przy czym litery oznaczają::
Symbol | Znaczenie |
---|---|
S | 1, jeśli budynek powinien przyjmować żywność/'napoje gazowane' zamiast towarów |
g | Jeśli S wynosi 1, akceptacja żywności w 1/8 jednostki |
Jeżeli S wynosi 0, przyjęcie towaru w 1/8 jednostki | |
m | przyjmowanie 'przesyłek' w 1/8 jednostek |
p | przyjęcie pasażerów w 1/8 jednostek |
Na przykład podanie ID 8426h oznacza "4/8 towarów, 2/8 poczty, 6/8 pasażera" , a podanie ID 9205 oznacza "2/8 jedzenia, 5/8 pasażera" .
Jeśli zostanie użyta właściwość 1E i/lub callback 2A , znaczenie nieznacznie się zmienia. W tym przypadku p oznacza akceptację podanego pierwszego rodzaju ładunku, m oznacza to samo dla drugiego rodzaju ładunku, a g jest takie samo dla trzeciego rodzaju ładunku, podczas gdy S musi wynosić zero.
Length of animation frame (20/27/142/154/15A)
Wywoływany, aby zdecydować, jak długo powinna trwać bieżąca klatka animacji. Wartość opóźnienia należy podać w taki sam sposób, jak dla właściwości 1B/10/17 . Zmniejszenie wartości zwracanej natychmiast przyspiesza animację. Z drugiej strony, zwiększenie nie powoduje natychmiastowego spowolnienia: rzeczywisty czas trwania bieżącej klatki będzie znajdować się gdzieś pomiędzy starymi a nowymi opóźnieniami. Nowe opóźnienie jest stosowane poprawnie dla późniejszych ramek.
Uwaga: Jest to jeden z najbardziej czasochłonnych wywołań zwrotnych, ponieważ jest wywoływany dla każdego animowanego kafelka co ≈30 milisekund. Aby uzyskać lepszą wydajność, staraj się unikać używania go w uzasadnionych przypadkach, np. spróbuj użyć tylko właściwości i umieść po sobie wiele identycznie wyglądających klatek animacji.
Trigger building destruction (21)
Wywoływane okresowo, w odstępie czasu określonym przez właściwość 16. Zwróć 0, aby nic nie robić, lub 1, aby usunąć budynek z mapy, tak jakby miasto postanowiło go zniszczyć. Możesz użyć tego na przykład do usunięcia historycznego budynku, ponieważ miasta nie mogą go normalnie usunąć.
- GRFv≤7 Zauważ, że GRF w wersji 7 i niższej rozróżniały tylko zerowe i niezerowe wartości zwrotne.
Industry availability (22)
Wywoływany, gdy TTDPatch musi wiedzieć, czy dany typ branży jest dostępny.
To wywołanie zwrotne ma na celu ograniczenie całego typu, więc nie można uzyskać dostępu do żadnych zmiennych branżowych, tylko globalnych. Dobrym przykładem zastosowania tego wywołania zwrotnego jest elektrownia jądrowa, która nie może pojawić się przed 1970 rokiem.
- GRFv≤7 W przypadku GRF w wersji 7 i niższej wywołanie zwrotne powinno zwracać zero, aby udostępnić typ, lub dowolną wartość niezerową, aby go wyłączyć.
- GRFv≥8 W przypadku GRF w wersji 8 i nowszej wywołanie zwrotne powinno zwrócić jedną z tych wartości:
0000 Nie zezwalaj na budowę 0001..00FF Zezwalaj na budowę i użyj zwróconej wartości jako prawdopodobieństwa pojawienia się na mapie. (Zamiast używać property 17 or 18.) 0100 Zezwalaj na budowę; wykorzystać prawdopodobieństwo pojawienia się z property 17 resp. 18.
Podczas tego wywołania zwrotnego zmienna 18 (dodatkowe informacje o wywołaniu zwrotnym 2) może zawierać następujące wartości:
Zmienna 18 | Znaczenie |
---|---|
0 | TTD generuje mapę i musi wiedzieć, czy twój typ może się pojawić. |
1 | TTD postanowiłzbudować nową grę losową podczas regularnej rozgrywki i musi wiedzieć, czy może wybrać typ. |
2 | Użytkownik próbuje zbudować/perspektywę dla swojej branży za pośrednictwem nowego okna przemysłu. TTD musi wiedzieć, czy gracz może to zrobić. |
Dodatkowy tekst na ekranie zakupu (23)
'Callback' można użyć do dodania tekstu poniżej informacji o pojeździe na ekranie zakupu. 'Callback' jest zawsze używane, gdy jest zdefiniowane, nie trzeba ustawiać bitu we właściwości akcji 0, aby ją aktywować.
Przed użyciem tego 'wywołania zwrotnego' należy zdefiniować ciąg tekstowy dla funkcji z zakresu D0XX. Wartość 'zwracana' tego callback jest XX ID D0XX 'łańcucha'.
Począwszy od r1908, można również zwrócić 'ID' tekstowe D100..D3FF.
- GRFv≥8 Od wersji 8 GRF wartość 400 może zostać 'zwrócona', aby nie wyświetlać tekstu. W starszych wersjach konieczne jest 'niepowodzenie wywołania zwrotnego'.
1.2 Od wersji OpenTTD R23045 zawartość rejestrów 100h..105h jest kopiowana na stos tekstowy.
'Linie' są zawijane automatycznie lub mogą zostać jawnie rozbite przy użyciu znaku nowej linii 0D. Liczba dostępnych linii zależy od rodzaju pojazdu i jego innych właściwości, na przykład obecności lub braku wagnów 'liniowych' lub z napędem 'refittable' etc..
Jeśli ładunek FF (ikona menu kup) jest obsługiwany jawnie dla pojazdu, wówczas obsługa wariantu 2 callback 23 musi być włączony łańcuch (chain) kupna menu wariant 2.
Przykład ustawienia dodatkowego tekstu dla pojazdu drogowego:
// Definiuje ciąg o ID D001 dla cechy 01. Bit 7 bajtu języka musi być ustawiony na 1,
// ponieważ ID ciągu to słowo.
4 * 32 04 01 83 01 \wxD001 "Hint: This is a " 0D "new line." 00
// callback
5 * 14 02 01 10 85 0C 00 \wxFFFF 01 \wx8001 \wx23 \wx23 02 00
Niestandardowy układ stacji (24)
Po zastosowaniu wartości z podpory stacji. 0E, to wywołanie zwrotne służy do dalszego dostosowania układu kafli.
Jest on wywoływany raz dla każdego budowanego kafla i zwraca nowy typ kafla, aby zbudować na swoim miejscu lub opuścić kafel zgodnie z definicją rekwizytu. Domyślnie 0E lub TTD, jeśli 'wywłoanie zwrotne nie powiedzie się'. Jedynymi możliwymi wartościami zwracanymi są 00, 02, 04 i 06. Ich znaczenie jest takie samo jak w rekwizytach. 0E.
Ponieważ stacja nie została jeszcze zbudowana, zmienne 40+x i 80+x nie są dostępne, zamiast tego zmienna 10 (dodatkowe informacje o wywołaniu zwrotnym 1) zawiera te same informacje, co zmienna 41. Z tego samego powodu wykorzystuje ten sam typ ładunku w akcji 3, co menu konstrukcyjne (tzn. Typ FF, jeśli jest zdefiniowany, albo domyślny).
To wywołanie zwrotne jest zawsze używane i nie trzeba go ustawiać we właściwości akcji 0, aby je aktywować.
Industry location permissibility (28)
Wywoływany, aby zdecydować, czy można zbudować przemysł w danym miejscu. Ponieważ branża nie została jeszcze zbudowana, możesz użyć tylko niewielkiego podzbioru danych: możesz uzyskać dostęp do danych najbliższego miasta za pośrednictwem akcji 2/typ 82 bez żadnych problemów, ale akcja 2/typ 81 uzyska dostęp do zmiennych innych niż normalnie miałby dostęp:
Zmienna | Rozmiar | Wersja | Znaczenie |
---|---|---|---|
40+x | Niedostępne | ||
5F | 1.1 | Losowe bity, od których przemysł zaczyna się po zakończeniu budowy. Dostępne również przez RandomAction2. | |
60+x | Tylko var. 62 i vars 64..68 może być użyty | ||
80 | W | Współrzędne wybranej pozycji | |
86 | B | Numer wybranego układu, zgodnie z właściwością 0A | |
87 | B | Typ terenu w wybranym miejscu (szczegółowe informacje można znaleźć w canal variable 81 ) | |
88 | B | Strefa miejscowości wybranego miejsca (detale patrz zmienna domu 42) house variable 42 ) | |
89 | B | Odległość między najbliższym miastem a wybraną pozycją. | |
8A | B |
Wysokość najniższego narożnika kafla
|
|
8B | W | Odległość do najbliższego kafla wodnego, jeśli nieruchomość 1A bit 2 jest wolna (zabudowana na lądzie); odległość do najbliższego pustego kafla terenu, jeśli właściwość (property) 1A bit 2 jest wolna (zbudowana na wodzie) | |
8D | W | Kwadrat odległości euklidesowej między najbliższym miastem a wybraną pozycją | |
8F | D | 0.6 2.6 | 32 losowe bity |
Zmienna 8B będzie zawsze poniżej 80 godzin, jeśli bit 2 prop 1A jest czysty. Jeśli bit 2 jest ustawiony, 8B zostanie ustawione na maksimum 200 godzin w przypadku pathological mapy wody.
1.1 Podczas tego wywołania zwrotnego zmienna 18 (dodatkowe informacje o wywołaniu zwrotnym 2) zawiera następujące wartości dla OpenTTD r20942 i nowszych:
Zmienna 18 | Znaczenie |
---|---|
0 | TTD generuje mapę. |
1 | TTD postanowiłzbudować nową grę losową podczas regularnej rozgrywki. |
2 | Użytkownik próbuje zbudować swoją branżę za pośrednictwem nowego okna branżowego. |
3 | Użytkownik próbuje perspektywę dla swojej branży za pośrednictwem nowego okna przemysłu. |
To wywołanie zwrotne musi zwrócić 15-bitową wartość, która jest interpretowana w następujący sposób:
0.6 2.6 Od czasu TTDPatch r1755 można używać stosu tekstowego do komunikatów o błędach, podobnie jak wywołanie zwrotne 3A. Jedyna różnica polega na tym, że zamiast 6 kopiowane są tylko 4 rejestry, ponieważ komunikaty o błędach obsługują tylko 20 bajtów stosu referencyjnego, a dwa z tych bajtów mogą być używane przez TTD.
Losowa zmiana produkcji (29)
Wywoływany, gdy TTD wybiera branżę dla losowej zmiany produkcji. Zmienna 18 zawiera 32 losowe bity, aby pomóc w losowaniu decyzji. 'Callback' musi zwrócić jeden z następujących wyników:
Od wersji TTDPatch 2.5 beta 1 możesz ustawić bit 7 tej wartości, aby ukryć komunikat informujący o zmianie produkcji. Uważaj na to, szczególnie w przypadku zamkniętych wiadomości; większość graczy nie chciałaby, aby te były tłumione.
W przypadku wartości zwrotnych 05..0C wyświetlane są komunikaty informacyjne z podwójną/połową. Prawdopodobnie powinieneś zastąpić wartości domyślne tekstem, który nie mówi wprost "podwójnie" ani "o połowę" ani nie używa funkcji zastępowania wiadomości (patrz poniżej). Jeśli operacja dzielenia przynosi produkcja poniżej jednej czwartej wartości domyślnej, zamiast tego branża jest zamknięta. Pomnóż operacje, które przyniosą produkcję ponad 8 razy oryginał zwiększy go tylko do tej wartości.
Od wersji TTDPatch r1306 możesz zastąpić domyślne wiadomości, które pojawiają się po zmianach produkcyjnych. Aby to zrobić, musisz ustawić bit 8 z zwrócił wynik i wstawił textID do niskiego słowa rejestru GRF 100h (wysokie słowo rejestru jest ignorowane). TextID może mieć domyślny tekst TTD lub tekst DCxx; nie może być tekstem D0xx. Jeśli podana akcja wygeneruje komunikat, będzie to ten, który podałeś. Może jednak wcale nie generować komunikatów; na przykład operacja 04 może postanowić nie zmieniać produkcja, a następnie twoja wiadomość nie będzie wyświetlana. Jest jeden wyjątek: operacja 00 nigdy nie wygeneruje komunikatu, ale nadal tak będzie, gdy ustawiony jest bit 8. Jest to przydatne w połączeniu z callback 35 , aby poinformować gracza o rzeczach, które nie zmienić mnożnik produkcji, ale nadal są wystarczająco ważne, aby wymagać wiadomości.
Za pomocą zwracanych wartości 0Dh, 0Eh i 0Fh można płynniej regulować poziom produkcji. Poziom produkcji wynosi od 04 do 80 godzin (wartość początkowa 10h). Zwrócenie 0Dh, gdy produkcja osiągnie 4, zamknie przemysł. Ale powrót 0Fh nigdy nie zamknie branży, zamiast tego wartość jest ograniczona do dozwolonego zakresu. Należy zauważyć, że OpenTTD przed wersją r15103 nie aktualizował poprawnie szybkości produkcji zapewnianych przez właściwości 12 i 13.
Get accepted cargo types (2A/2C)
Wywoływany, gdy TTD musi wiedzieć, jakie ładunki może przyjąć kafelek domu/przemysłu. Bity wyniku należy wypełnić w następujący sposób:
Bit range | Znaczenie |
---|---|
0..4 | First cargo type |
5..9 | Second cargo type |
10..14 | Third cargo type |
Decydowanie o przyjmowaniu ładunku (2B)
Wywoływany w celu uzyskania akceptacji dla kafla branży. Rodzaje ładunków są zdefiniowane przez właściwości 0A..0C lub callback 2C , jeżeli włączone. 'Callback' musi 'zwrócić' wartość 15-bitową w następującym formacie:
Zakres bitów | Znaczenie |
---|---|
0..3 | Odbiór pierwszego ładunku (0..8) |
4..7 | Akceptacja dla drugiego ładunku (0..8) |
8..11 | Przyjęcie trzeciego ładunku (0..8) |
Jeśli wywołanie zwrotne nie powiedzie się, zamiast tego zostaną użyte właściwości 0A..0C.
Wybierz odwzorowanie kolorów dla pojazdu (2D)
Wywoływany podczas rysowania pojazdu. Powinien zwrócić numer mapowania kolorów, który ma być zastosowany na ikonce pojazdu, na przykład: 775 dla mapowania niebieski-> granatowy blue->(dark blue) . Jeśli 'wywołanie zwrotne nie powiedzie się', zostanie użyty firmowy kolor właściciela. Ponieważ mapowanie 775 nie zmień dowolne kolory, możesz je zwrócić, aby wyłączyć kolory firmowe i zostawić całą magię niebieską w swoim 'sprite' .
Jeśli ustawiony jest bit 14, kolor firmy zostanie dodany do wynikowej liczby 'sprites' . Oznacza to danego 'sprite' i 15 następujące 'sprites' muszą być mapami kolorów, po jednym dla każdego z 16 możliwych kolorów gracza. Jeśli w pojeździe jest także ustawiony inny znacznik, bit 1 jest ustawiony (dwa kolory firmowe), 'sprite' i 255 kolejnych 'sprites' muszą być odpowiednimi mapami kolorów. Alternatywnie użyj zwrotu wartość 00 C0, aby użyć domyślnych map dwukolorowych.
Wykorzystuje 15 bitów 'zwrotnych'.
Zwracana wartość jest buforowana w celu przyspieszenia przetwarzania sprite i jest aktualizowana tylko za pomocą callback 32 bit 1 (lub podczas ładowania/uruchamiania gry lub zmiany układu).
Custom cargo production (2E)
To wywołanie zwrotne może być wykorzystane do dostosowania produkcji ładunkowej płytek domowych. Nazywa się to co 256 tyknięć, gdy płytka może wytwarzać ładunek. Ponieważ kafelek może wytwarzać wiele rodzajów ładunku, to wywołanie zwrotne jest wywoływane w pętli, dopóki nie zwróci 20FFh (liczba pętli jest ograniczona do 256, aby uniknąć niekończących się pętli). Jeśli zwracana wartość nie wynosi 20FFh, wysoki bajt musi być typem ładunku, a niski bajt musi być kwota do dystrybucji. W razie potrzeby możesz zwrócić typ ładunku więcej niż jeden raz, dzięki czemu możesz rozdzielić z niego więcej niż 255 jednostek. Podczas wywołania zwrotnego najniższy bajt zmiennej 10 zawiera liczbę dotychczasowych iteracji, a zmienna 18 zawiera a wartość losowa, aby pomóc w losowaniu produkcji. (Stary kod losowo produkuje, aby wyglądał bardziej naturalnie, możesz to zrobić to samo przez VarAction2 z nvar = 0). Oryginalny algorytm generowania pasażerów/poczty jest opisany tutaj.
Wykorzystanie 15 bitów zwrotnych.Sprawdzenie kształtu niestandardowego (2F)
To 'wywołanie zwrotne' jest wywoływane, gdy TTD sprawdza, czy dany kafelek jest odpowiedni dla kafla branżowego. 'Callback' powinno zwrócić zero, jeśli kafel nie jest odpowiedni, lub dowolną inną wartość, jeśli jest odpowiedni.
- GRFv≥7 Znaczenie zwracanej wartości jest inne w wersji 7 GRF; działa tak samo jak callback 28 . 2.6 Ponadto, od TTDPatch r1755, możesz używać stosu odwołania tekstowego do swoich komunikatów o błędach, podobnie jak callback 3A . Jedyna różnica polega na tym, że zamiast 6 kopiowane są tylko 4 rejestry.
Ponieważ kafel nie został jeszcze zbudowany, możesz używać tylko zmiennych 41, 42, 43 i 60, a także nie masz dostępu do żadnych zmiennych branżowych. Zmienna 60 jest tutaj najbardziej użyteczna, ponieważ możesz sprawdzić nachylenie kafla, a nawet pobliskie kafle. To wywołanie zwrotne jest jedynym sposobem na zbudowanie kafla na stromych zboczach.
1.1 Od wersji OpenTTD r19744, możesz uzyskać dostęp do losowych bitów branży (dostałby się po budowie) za pomocą zmiennej branżowej 5F lub (resp.) RandomAction2 typ 83.
2.6 Od TTDPatch 2.6 r1728 najniższy bajt zmiennej 18 zawiera numer układu wybrany dla branży. Pozostałe bity zmiennej 18 pozostają na razie niezdefiniowane.
1.1 Od OpenTTD r20942 drugi najniższy bajt zmiennej 18 zawiera zdarzenie wyzwalające konstrukcję przemysłową. Wartości są takie same jak najniższy bajt zmiennej 18 wywołania zwrotnego 28.
PROŚBA ODNOTOWANIA: Po wywołaniu tego wywołania zwrotnego TTD sprawdza i nie umieścił jeszcze żadnych kafli branżowych. Dlatego bit 8 (kafel należy do tej samej branży co 'bieżący') zmiennej 60 zawsze będzie czysty, nawet dla bieżącego kafla..
Decide drawing default foundations (30/14E/150)
To wywołanie zwrotne jest wywoływane, gdy TTD rozpoczyna rysowanie kafelka przemysł/dom/lotnisko (industry/house/airport) na pochyłym terenie. Powinien zwrócić 0, aby wyłączyć domyślna grafika nachylenia i 1, aby je włączyć.
Jeśli zdecydujesz się wyłączyć podstawę, możesz narysować własną, określając
- brak naziemnego 'sprite', tzn. 'sprite' o numerze 00 00 00 00,
- następnie ikonka fundamentu z ustawionym bitem 30, aby widoczne były fundamenty nawet w trybie przezroczystym, a normalna wysokość fundamentu TTD wynosi 7 pikseli,
- następnie normalna grafika z obwiedniami dostosowanymi w odniesieniu do 'sprite' fundacji:
100 * 4 01 09 02 01 // foundation 101 C:\ttdlx\newgrf\sprites\slope.pcx 220 130 09 40 63 -30 -9 // building 102 C:\ttdlx\newgrf\sprites\slope.pcx 80 130 09 31 64 -31 0 103 * 28 02 09 00 02 00 00 00 00 // no groundsprite 00 00 00 C0 00 00 00 10 10 07 // foundation 01 00 00 80 00 00 08 10 10 10 // building
Uwaga: TTDPatch i OpenTTD do 0.7 nie mają odpowiedniej grafiki fundamentowej dla stromych zboczy. W każdym razie zmienna 60 przydaje się przy wyborze właściwego fundamentu do narysowania.
- GRFv≤7 'Prośba odnotowania', że GRF w wersji 7 i niższej rozróżniały tylko zerowe i niezerowe wartości zwrotne.
Kontrola uruchomienia/zatrzymania pojazdu (31)
To 'wywołanie zwrotne' jest 'wywoływane' za każdym razem, gdy gracz (lub AI) próbuje uruchomić lub zatrzymać pojazd. Jest to przydatne przede wszystkim do zapobiegania pojazdom od opuszczenia składu, chyba że spełniony zostanie określony warunek. Aby sprawdzić, czy pojazd jest uruchamiany, czy zatrzymywany, sprawdź bit 1 zmiennej B2. Jeśli jest ustawiony, pojazd jest aktualnie zatrzymany, a jeśli jest pusty, pojazd porusza się (lub przynajmniej nie zatrzymuje się ręcznie).00..FE | Display error message using D0xx (D000..D0FE) text as second line. |
FF | Akcja start/stop zakończy się sukcesem. |
100..1FE | Display error message using D0xx (D100..D1FE) text as second line. |
200..2FE | Wyświetl komunikat o błędzie, używając tekstu D0xx (D200..D2FE) jako drugiego wiersza. |
300..3FE | Display error message using D0xx (D300..D3FE) text as second line. |
00..3FF | Wyświetl komunikat o błędzie, używając tekstu D0xx (D000..D3FF) jako drugiego wiersza. |
400 | Start/stop action zakończy się sukcesem. |
'Callback' jest zawsze używane, gdy jest zdefiniowane, nie trzeba ustawiać bitu we właściwości akcji 0, aby ją aktywować.
32-day callback (32)
To 'wywołanie zwrotne' jest wywoływane co 32 dni gry dla każdego pojazdu, chociaż nie dla wszystkich pojazdów tego samego dnia. 'Callback' jest zawsze użyte, gdy jest zdefiniowane, nie trzeba ustawiać bitu we właściwości akcji 0, aby ją aktywować.
Zwracana wartość jest maską bitową następujących bitów:
Bit | Wartość | Znaczenie |
---|---|---|
0 | 1 | Uruchom wyzwalacz pojazdu 10 |
1 | 2 | Zaktualizuj mapę kolorów 'via callback' 2D |
Jeśli nie ustawiono żadnych bitów, nic się nie dzieje.
Efekt dźwiękowy (33)
To 'wywołanie zwrotne' jest wywoływane dla wszystkich pojazdów i jako ogólne wywołanie zwrotne dla mostów, dla różnych zdarzeń, które wspierają odtwarzanie efektów dźwiękowych. Typ zdarzenia jest przechowywany w najniższym bajcie zmiennej 10.
15-bitowa wartość zwracana to liczba efektów dźwiękowych. Wartości od 0 do 72 (dec) to wbudowane efekty dźwiękowe TTD, wartości powyżej tego odnoszą się do dźwięków z Działania 11.
Jeśli 'callback' zwróci kod błędu (nie wynik 'callback'), odtworzony zostanie domyślny efekt dźwiękowy TTD. Jeśli 'callback' zwróci numer dźwięku, który nie jest ani dźwiękiem TTD, ani dźwiękiem z akcji 11, nic nie zostanie odtworzone.
Najniższy bajt zmiennej 10 | Wydarzenie |
---|---|
1 | Start dźwięku, wywoływany po opuszczeniu stacji lub zajezdni, dźwięk startu dla samolotów |
2 | Dźwięk tunelu, wywoływany, gdy pojazd wjeżdża do tunelu |
3 | Dźwięk awarii, wywoływany, gdy pojazd się zepsuje (nie dla samolotów) |
4 | Dźwięk pracy, wywoływany raz na 'tick' silnika, ale nie więcej niż jeden raz na ruch pojazdu |
5 | Przyłożenie dźwięku, tylko dla samolotów (oczywiście) |
6 | Generowanie efektów wizualnych ('pióropusz' parowy, dym z oleju napędowego, iskra elektryczna) |
7 | Dźwięk pracy, nazywany co 16 'ticks' silnika, jeśli jest w ruchu |
8 | Zatrzymany dźwięk, wywoływany co 16 'ticks' silnika po zatrzymaniu (np. na sygnale/w stacji) |
9 | Dźwięk załadunku/rozładunku, wywoływany w przypadku obciążenia lub rozładunku ładunku |
10 | Dźwięk mostka, nazywany jako ogólna funkcja 06 wywołania zwrotnego za każdym razem, gdy składa się porusza się na mostku. Zmienne 40+x, 60+x i 80+x odnoszą się do pojazdu, a bity 0..7 zmiennej 18 przytrzymują typ mostka |
W przypadku dźwięków jazdy wskazane jest sprawdzenie motion counter i zwrócenie tylko udanej liczby efektów dźwiękowych co tyle 'tyknięć' ruchu pojazdu. W ten sposób dźwięki będą odtwarzane częściej, im szybszy jest pociąg. Alternatywnie możesz sprawdzić zmienną licznika 'tyknięć' i odtwarzać efekt dźwiękowy co tyle tyknięć silnika, aby odtwarzać go ze stałą szybkością lub, oczywiście, przełączać oba tryby w zależności od prędkości pojazdu.
Zauważ, że jeśli przełącznik prędkości samolotu jest aktywny, samoloty poruszają się określoną liczbę razy na 'tik' silnika. Oznacza to, że ich licznik ruchu rośnie szybciej niż w przypadku innych pojazdów, a zatem w celu uzyskania niezawodnych efektów dźwiękowych należy podzielić licznik ruchu przez ustawienie prędkości planowej (możliwe do odczytania za pomocą action D ) przed sprawdzeniem wartości.
Wybór autoreplace pojazdu (34)
To 'wywołanie zwrotne' jest wywoływane za każdym razem, gdy stary pojazd wymaga wymiany. Zwraca 'ID' pojazdu, aby zaktualizować obecny pojazd. Zmienne pojazdu są dostępne jak zwykle, aby zdecydować, które identyfikatory będą odpowiednie do aktualizacji.
Callback jest wielokrotnie wywoływane, a numer iteracji jest przechowywany w najniższym bajcie zmiennej 10. Plik .grf powinien zwracać wszystkie możliwe 'ID' jeden po drugim, z najlepszymi wymienionymi na początku. Łatka będzie używać pierwszego pojazdu z listy, który jest dostępny dla gracza i ma wymaganą minimalną niezawodność określoną przez przełącznik automatycznego zastępowania, i przerywa sekwencję callback w tym momencie.
Sekwencja 'callback' jest również przerywana, gdy zwracany ID jest równy bieżącemu ID pojazdu. Ma to na celu zapobieganie obniżeniu oceny, dlatego należy zawsze zwracać ID pojazdu, dla którego wywołanie zwrotne jest wywoływane w odpowiednim miejscu w sekwencji.
Jeśli 'wywołanie zwrotne nie powiedzie się', tj. Jeśli żaden z callbacks w ogólnym 'łańcuchu' nie znajdzie odpowiedniego ID , pojazd nie zostanie zmodernizowany i zamiast tego zostanie po prostu odnowiony. Jeśli ID jest dostępny, ale graczowi brakuje gotówki na ulepszenie, łatka czeka na gotówkę, zanim będzie dostępna, zamiast wybierać gorszy silnik lub odnawiać pojazd.
W pociągach każda głowica silnika zostanie zastąpiona jednym pojazdem nowego typu. W związku z tym wskazane jest, aby zwracać tylko "kompatybilne" 'ID' dla pociągów, które wymagają określonej konstrukcji lub ustawienia głowic silnika.
'Callback' jest zawsze używane, gdy jest zdefiniowane, nie trzeba ustawiać bitu we właściwości akcji 0, aby ją aktywować.
Monthly random production change (35)
Działa dokładnie tak samo jak callback 29 , z tym wyjątkiem, że jest wywoływany co miesiąc, co pozwala na częstsze zmiany produkcji.
Zmiana właściwości pojazdu (36)
Ten wspólny callback umożliwia modyfikację niektórych właściwości pojazdu, dla którego nie ma określonego callbacka (jak CB 10,11, 12). Niższy bajt zmiennej 10 zawiera numer property z działania 0.
Obsługiwane są następujące właściwości:
Feature | Wersja | Właściwość | 'Oznaczenia' (Remarks) |
---|---|---|---|
Trains (00) | 1.2 GRFv≥8 | 07 ( Ilość ładowania ) | Zobacz też callback 12 |
0.6 2.5 | 09 (Prędkość) | ||
0.6 2.5 | 0B (Moc) | ||
0.6 2.6 | 0D (Współczynnik kosztów eksploatacji) | ||
0.6 2.6 | 14 (Pojemność ładunkowa) | Zobacz też callback 15 | |
0.6 2.5 | 16 (Waga) | ||
0.6 | 17 (Koszt (..factor)) | ||
0.6 2.5 | 1F (Siła pociągowa) | ||
1.2 GRFv≥8 | 21 (Krótkie wagony) [1] | Zobacz też callback 11 | |
22 (Efekt wizualny & wagony napędzane) | Zmieniane via callback 10 | ||
0.6 2.5 | 25 (Dane użytkownika) | ||
1.2 | 2B (Niestandardowy okres 'dojrzewania' ładunku) | ||
Pojazdy drogowe (01) | 1.2 GRFv≥8 | 07 ( Ilość ładowania ) | Zobacz też callback 12 |
1.0 | 09 (Współczynnik kosztów eksploatacji) | ||
0.6 | 0F (Pojemność ładunkowa) | Zobacz też callback 15 | |
0.6 | 11 (Faktor kosztu) | ||
1.1 | 13 (Moc) | ||
1.1 | 14 (Waga) | ||
1.1 | 15 (Prędkość) | ||
1.1 | 18 (Siła pociągowa) | ||
21 (Visual effect) | Zmieniane via callback 10 | ||
1.2 | 22 (Niestandardowy okres 'ageing' ładunku) | ||
1.2 GRFv≥8 | 23 (Krótkie wagony)[1] | Zobacz też callback 11 | |
Statki (02) | 1.2 GRFv≥8 | 07 ( Ilość ładowania ) | Zobacz też callback 12 |
0.6 2.6 | 0A (Faktor kosztu) | ||
0.6 2.5 | 0B (Prędkość) | ||
0.6 2.6 | 0D (Pojemnośc ładunku) | Zobacz też callback 15 | |
0.6 2.6 | 0F (Współczynnik kosztów eksploatacji) | ||
1C (Visual effect) | Zmieniane via callback 10 | ||
1.2 | 1D (Niestandardowy okres 'dojrzewania' ładunku) | ||
Samoloty (03) | 1.2 GRFv≥8 | 07 ( Ilość ładowania ) | Zobacz też callback 12 |
0.6 | 0B (Faktor kosztu) | ||
0.6 2.5 | 0C (Prędkość) | ||
0.6 2.6 | 0E (Współczynnik kosztów eksploatacji) | ||
1.0 | 0F (Pierwotna ładowność) | Zobacz też callback 15 | |
1.0 | 11 (Dodatkowa ładowność) | ||
1.2 | 1C (Niestandardowy okres dojrzewania ładunku) | ||
1.2 | 1F (Zasięg samolotów) |
- ↑ 1.0 1.1 Te właściwości mogą zmienić swoją wartość tylko wtedy, gdy pojazd znajduje się w depocie . Oznacza to, że jeśli twój pojazd obsługuje autodopasowanie (autorefit), a montaż (refitting) może zmienić te właściwości, musisz użyć callback 15E aby zapobiec ponownemu 'montażu' (refitting).
Większość nieruchomości zmieni się tylko wtedy, gdy pojazd zostanie kupiony, serwisowany (wjeżdża do depotu), odwiedza stację lub ładuje zapisaną grę. Inne, takie jak TE, są wywoływane przy każdym uruchomieniu obliczeń TE.
Jeśli wywołanie zwrotne nie powiedzie się, zostanie użyta odpowiednia wartość właściwości akcji 0. 'Callback' jest zawsze używane, gdy jest zdefiniowane, nie trzeba ustawiać bitu we właściwości akcji 0, aby ją włączyć.
Przed wersją r1758 (zarówno 2.5, jak i TTDPatch 2.6) callback 36 było czasami wywoływane ze zmiennymi 40+x i 80+x niedostępnymi, gdy powinny być dostępne lub nie wszystkie poprawnie zainicjalizować wszystkie zmienne 80+x, co powoduje, że niektóre zmienne 40+x są niebezpieczne.
Informacje o właściwościach pojemności można również znaleźć na stronie podsumowania vehicle refitting.
Wyświetlanie podtypów ładunku dla przemysłu (37)
To 'wywołanie zwrotne' pozwala wyświetlać tekst po nazwie ładunku w oknie funduszu branżowego oraz w oknie branżowym.00..FE | Display D0xx (D000..D0FE) text. |
FF | Nie wyświetlaj tekstu. |
100..1FE | Wyświetl tekst D0xx (D100..D1FE) . |
200..2FE | Display D0xx (D200..D2FE) text. |
300..3FE | Display D0xx (D300..D3FE) text. |
Podczas 'callback' zmienna 18 określa, który podtyp ładunku jest pytany. Znaczenie zmiennej 18 zmienia się wraz z flagą własności przemysłowej 1A 18.
Bity 0..7 z var. 18 może mieć następujące wartości:- Jeśli właściwość 1A flaga 18 jest czysta.
Numer | Znaczenie |
---|---|
00 | Podtekst zwrotny dla pierwszego akceptowanego typu ładunku |
01 | Return subtext for second accepted cargo type |
02 | Zwraca podtekst dla trzeciego zaakceptowanego typu ładunku |
03 | Return subtext for first produced cargo type |
04 | Return subtext for second produced cargo type |
Numer | Znaczenie |
---|---|
00 | Podtekst zwrotu dla akceptowanego typu ładunku. Użyj bitów 16..23, aby je odróżnić. |
01 | Zwraca podtekst dla wyprodukowanego typu ładunku. Użyj bitów 16..23, aby je rozróżnić. |
Numer | Znaczenie |
---|---|
00 | Tekst ma być wyświetlany w oknie funduszu branżowego. Branża nie jest jeszcze zbudowana, więc nie można uzyskać dostępu do zmiennych branżowych |
01 | Tekst ma być wyświetlany w oknie przemysłu. Możesz użyć zmiennych branżowych tutaj. |
02 | Tekst ma być wyświetlany w oknie katalogu branżowego. Możesz użyć zmiennych branżowych tutaj. |
inne wartości | Zarezerwowane do wykorzystania w przyszłości |
Bit 16..23 z var. 18 zawierają typ ładunku z CTT (tylko jeśli ustawiono flagę 18 właściwości 1A).
Inne bity var. 18 jest zarezerwowanych do wykorzystania w przyszłości.
1.0 Od czasu OpenTTD r17802 zawartość rejestrów 100h..105h jest kopiowana na stos tekstowy.
Show additional text in fund/building window (38/15C)
To wywołanie zwrotne pozwala wyświetlić dodatkowe informacje w oknie funduszu branżowego i okien budowy obiektów. Zwracana wartość powinna być liczbą tekstu D0xx, który ma zostać wyświetlony. Tekst musi zaczynać się od kolorowego znaku specjalnego i nie powinien być dłuższy niż trzy linie (zapewnione są automatyczne łamanie linii, ale można użyć znaku char 0D do ręcznego podziału linii). Ponieważ branża nie została jeszcze zbudowana, nie można uzyskać dostępu do żadnych zmiennych branżowych podczas tego wywołania zwrotnego. To samo dotyczy przedmiotów.
- GRFv≥8 W przypadku wersji GRF 8 i nowszych możesz zwrócić wartość 400, aby nie wyświetlać tekstu (zamiast niepowodzenia połączenia zwrotnego).
Callback 38 jest dostępny od wersji TTDPatch 2.0.1 a72 i nowszych. Od czasu OpenTTD r20086 i TTDPatch r2354 zawartość rejestrów 100h..105h jest kopiowana na stos tekstowy.
Custom profit calculation for cargoes (39)
To wywołanie zwrotne jest wywoływane za każdym razem, gdy ładunek jest dostarczany na stację, aby uzyskać kwotę, jaką gracz powinien uzyskać. Niskie słowo var. 18 zawiera odległość transferu, bajt 3 zawiera ilość przewożonego ładunku, a najwyższy bajt zawiera czas spędzony na trasie (jednostka czasu to +185 tyknięć, czyli ok. 2,5 dnia). Wynikiem powinien być mnożnik ze znakiem, który jest mnożony przez ilość przenoszonego ładunku i współczynnik ceny, a następnie dzielony przez 8192. Ponieważ najwyższy bit musi być zawsze ustawiony dla wyniku wywołania zwrotnego, TTDPatch sprawdza drugi najwyższy bit (bit 14 ) dla znaku. Zwrócenie wartości ujemnej oznacza, że gracz musi zapłacić za przelew zamiast otrzymywać z niego pieniądze. Na przykład maksymalna wartość zwrotna 16383 oznacza, że gracz otrzymuje dwukrotność współczynnika ceny za każdą jednostkę.
Show additional text in industry window (3A)
To wywołanie zwrotne pozwala wyświetlić dodatkowe informacje w oknie branżowym dotyczące stanu branży. Zwracana wartość powinna być liczbą tekstu D0xx, który ma zostać wyświetlony. Tekst musi zaczynać się od specjalnego znaku kolorystycznego i nie może być dłuższy niż jedna linia. Na przykład możesz użyć tego wywołania zwrotnego, aby wyświetlić bieżący limit produkcji w branży wtórnej.
- GRFv≥8 W przypadku wersji GRF 8 i nowszych możesz zwrócić wartość 400, aby nie wyświetlać tekstu (zamiast niepowodzenia połączenia zwrotnego).
0.6 Nie są zwracane dane (przekroczony limit czasu wysyłania danych)..
0.6 2.6 Od TTDPatch 2.6 r1370 zawartość rejestrów 100h..105h jest kopiowana na stos tekstowy. Umożliwia to wyświetlanie dynamicznie obliczanych wartości w tekście przy użyciu odpowiednich StringCodes. Należy jednak pamiętać, że moduł obsługi tekstu zobaczy go jako tablicę bajtów, a nie tablicę DWORD, więc będziesz musiał spakować dwa słowa do rejestru, gdy użyjesz kodów odczytujących słowa ze stosu. W przypadku \7D (który dostaje bajt), być może będziesz musiał spakować więcej do rejestru, ale prawdopodobnie łatwiej jest użyć \7C. Pamiętaj również, że możesz użyć \80 do wyświetlania identyfikatorów tekstowych obliczanych w locie, ale identyfikatory tekstowe DCxx nie będą działać poprawnie. Gdy musisz wybierać dynamicznie z własnych tekstów, musisz użyć identyfikatorów D0xx i dodać do nich 400 godzin. (To znaczy użyj D400, aby odnieść się do D000, D401 dla D001 itp.)
To wywołanie zwrotne jest dostępne z 2.5 TTDPatch 2.0.1 a72 i wyższy
Kontrola specjalnych efektów branżowych (3B)
To 'wywołanie zwrotne' pozwala kontrolować niektóre aspekty efektów specjalnych włączonych we właściwości 1A. Najniższy bajt zmiennej 18 zawsze zawiera liczbę efektu specjalnego, który jest równy liczbie bitów ustawionej we właściwości 1A. Obecnie obsługiwany jest tylko efekt 0 (okresowo sadzi pola) i efekt 1 (okresowo wycina pobliskie drzewa).- Dla efektu 0 powinieneś zwrócić 0, aby uniknąć sadzenia pól i 1, aby zasadzić pole. 'Callback' jest wywoływane co 256 tyknięć dla danej branży. Zmienna 10 zawiera 32 losowe bity, których można użyć do losowego zachowania. Zmienna branżowa AAh (słowo) może być używana do rzadszego 'nasadzenia', ale należy pamiętać, że niski bajt w tym momencie zawsze wynosi zero. Domyślne zachowanie daje 1/8 szansy na zasadzenie nowego pola co 256 'tyknięć'.
- Dla efektu 1 powinieneś zwrócić 0, aby uniknąć wycięcia drzewa i 1, aby spróbować wyciąć drzewo. 'Callback' jest wywoływane co 256 tyknięć dla danej branży. W TTDPatch i OpenTTD przed wersją r22673 nie otrzymujesz przypadkowych wartości w tym przypadku, ale nadal możesz używać zmiennej AAh; niski bajt również tutaj zawsze wynosi zero. Domyślnym zachowaniem jest próba wycinania drzewa co 512 tyknięć.
To wywołanie zwrotne jest dostępne z 2.5 TTDPatch 2.0.1 a73 i powyżej
- GRFv≤7 Zauważ, że wersje 7 i niższe GRF rozróżniały tylko zerowe i niezerowe wartości 'zwracane' dla efektu 0 i 1.
Disable autosloping (3C/14F/15D)
Za pomocą tego wywołania zwrotnego można zapobiec zmianie funkcji autoslope pod ziemią pod płytką domu/przemysłu/obiektu (house/industry/object) . Aby umożliwić zmianę terenu, zwróć 0. Zwrócenie 1 uniemożliwi modyfikacje terenu.
- GRFv≤7 Zauważ, że GRF w wersji 7 i niższej rozróżniały tylko zerowe i niezerowe wartości zwrotne.
Opt out of accepting cargo (3D)
Dzięki temu zwrotowi przemysł może odmówić przyjęcia ładunku, nawet jeśli jest to jeden z rodzajów ładunku wejściowego. Jeśli w pobliżu jest inny przemysł, który przyjmuje ten ładunek, ten go dostanie.
Najniższy bajt var. 18 zawiera ID dostarczonego ładunku. Jeśli twój GRF ma zainstalowaną tabelę translacji ładunku, otrzymasz indeks z tej tabeli; w przeciwnym razie otrzymasz bit ładunku związany z rodzajem ładunku. Musisz zwrócić zero, jeśli nie chcesz przyjąć ładunku, lub 1, aby go przyjąć. Inne zwracane wartości są zastrzeżone do wykorzystania w przyszłości.
To wywołanie zwrotne powinno być używane w połączeniu z callback 2B , ponieważ przyjmowanie płytek i akceptacja samej branży powinny zawsze się zgadzać. Jeśli wyłączysz przyjmowanie ładunku za pośrednictwem callback 3D , ale zapomnisz usunąć akceptację z kafelków, stacja będzie nadal przyjmować ładunek, a gracz będzie nadal otrzymywać pieniądze , ale przemysł nie odbierze ładunku. Z drugiej strony, jeśli usuniesz akceptację z kafelków, ale zapomnisz użyć callback 3D , Twoja branża może nadal otrzymać ładunek. (Na przykład w pobliżu może znajdować się inny przemysł, którego kafelki przyjmują ładunek. To sprawia, że stacja przyjmuje ładunek i wysyła go do najbliższej branży, która jest twoją, nawet jeśli jego kafelki nie przyjmują ładunku.)
To wywołanie zwrotne jest dostępne z 2.5 TTDPatch 2.5 beta 4 i powyżej
Zabezpieczenie budynku warunkowo (143)
To 'wywołanie zwrotne' jest wywoływane, gdy ktoś próbuje usunąć budynek z mapy. Możesz użyć tego wywołania zwrotnego, aby uniemożliwić miastu lub graczom AI usunięcie budynku, jeśli zostaną spełnione określone warunki. Możesz zwrócić 0, aby zezwolić na zniszczenie, lub 1, aby go zabronić, z wyjątkiem ludzkich graczy, którzy zawsze mogą usunąć dowolny budynek.
Jeśli zawsze zwracasz 1 z tego wywołania zwrotnego, osiągasz ten sam efekt, co włączenie bitu 1 właściwości 19. Gdy to wywołanie zwrotne jest włączone, bit 1 właściwości 19 jest ignorowany. Jeśli 'callback' nie powiedzie się, zniszczenie jest dozwolone.
W przypadku budynków z wieloma kaflami 'callback' zostanie wywołane dla typu kafla, którą gracz chce zniszczyć. Dlatego, aby uzyskać spójne zachowanie, należy włączyć to wywołanie zwrotne dla każdego kafla i odpowiedzieć na nie w ten sam sposób, bez względu na to, do którego kafla jest on wywoływany.
Od wersji TTDPatch 2.6 r1705 można użyć tego wywołania zwrotnego, aby zapobiec budowaniu "miejskich " (town) branż (banków, wież ciśnień itp.) Nad domem. Najniższy bajt zmiennej 10 wynosi zero dla "normal" rozbiórki i jeden, gdy TTD chce usunąć dom ze względu na nowy przemysł. Inne wartości zmiennej 10 są zastrzeżone do wykorzystania w przyszłości.
Efekty dźwiękowe otoczenia (144)
To wywołanie zwrotne jest ogólnym wywołaniem zwrotnym dla funkcji 0C (nowe dźwięki) używanej do odtwarzania efektów dźwiękowych otoczenia.
15-bitowa wartość zwracana to liczba efektów dźwiękowych. Wartości od 0 do 72 (dec) to wbudowane efekty dźwiękowe TTD, wartości poza tym odnoszą się do dźwięków z Action 11.
Aby zdecydować, czy odtworzyć dźwięk i jaki dźwięk zagrać, Var.Action 2 zmienna 10 zawiera następujące informacje:- GRFv≤7 For GRF version 7 and below: THRRxxxt
- GRFv≥8 For GRF version 8 and above: xTHHRRtt
Pole | Znaczenie |
---|---|
T | Klasa kafli, 0='jedynie ziemia', 4=trees, 6=water |
HH |
GRFv≤7 Wysokość północnego narożnika płytki (wielokrotność 8) GRFv≥8 Wysokość najniższego narożnika płytki (wielokrotność 1) |
RR | 8 losowe bity |
xxx | Reserved |
tt |
|
To wywołanie zwrotne musi być włączone przez bit 4 in action D var 9E.
Obliczanie niestandardowej oceny stacji (145)
To 'wywołanie zwrotne' pozwala zmodyfikować część obliczania oceny ładunku na stacji dla twojego ładunku. Aby zrozumieć, jak go używać, musisz najpierw zrozumieć, jak działa domyślne obliczanie oceny:
Wewnętrznie ocena stacji jest zapisana w bajcie, 0 oznacza 0%, a 255 oznacza 100%. Ocena jest obliczana jako suma następujących składników:
Czas od ostatniego odebrania ładunku
Jednostki czasu (dni) | Wynik (%, zaokrąglony) |
---|---|
>21 (>52.5 dni) | 0 (0%) |
13..21 (32.5 dni..52.5 dni) | 25 (10%) |
7..12 (17.5 dni..32.5 dni) | 50 (20%) |
4..6 (10 dni..17.5 dni) | 95 (37%) |
0..3 (0 dni..10 dni) | 130 (51%) |
Zastosowana jednostka czasu wynosi 185 tyknięć silnika lub 2,5 dnia TTD. W przypadku statków jednostki czasu są dzielone przez 4 przed obliczeniem tego składnika, więc statki mają cztery razy więcej czasu, zanim oceny zaczną spadać.
Ilość oczekującego ładunku
Ilość ładunku | Wynik (%, zaokrąglony) |
---|---|
>1500 | -90 (-35%) |
1001..1500 | -35 (-14%) |
601..1000 | 0 (0%) |
301..600 | 10 (4%) |
101..300 | 30 (12%) |
0..100 | 40 (16%) |
Maks. prędkość ostatniego pojazdu odbierającego ładunek
Obliczenia te są nieco skomplikowane. Maksymalna prędkość pojazdu jest wyrażona w "jednostkach prędkości" . W przypadku pociągów i pojazdów drogowych jednostka prędkości wynosi 1 km/h; dla statków wynosi 0,5 km/h; dla samolotów jest to 8 mph. Jeśli maks. prędkość jest wyższa niż 255 jednostek prędkości, zamiast niej stosuje się 255. Jeśli pojazd jest wolniejszy niż 85 jednostek, nie przyznaje się punktów; w przeciwnym razie dostajesz (speed_units-85)/4 punkty. Dlatego maksymalna, jaką możesz uzyskać, to 42 punkty, czyli 16%.
Wiek ostatniego przewoźnika, który odebrał ładunek
Oryginalne obliczenia wyglądają tak:
Wiek pojazdu (lat) | Wynik (%, zaokrąglony) |
---|---|
2 | 10 (4%) |
1 | 20 (8%) |
0 | 33 (13%) |
Jeśli przełącznik newagerating jest włączony, obliczenia ulegają zmianie. Otrzymujesz 33 punkty za pojazdy młodsze niż 5 lat, a 0 punktów za pojazdy starsze niż 21 lat. Pomiędzy tymi dwoma wiekami wynik spada powoli, o 2 punkty rocznie.
Bonus dla firm AI
Ustawienie inteligencji AI | Wynik (%, zaokrąglony) |
---|---|
Low | 0 (0%) |
Medium | 31 (12%) |
High | 63 (25%) |
Bonus za posąg w najbliższej miejscowości
Jeśli Twoja firma wzniosła pomnik w najbliższym mieście, otrzymasz 26 punktów (10%) premii do wszystkich ocen ładunku.
Kopcowanie
Jeśli gracz robi wszystko doskonale, maksymalna ocena, jaką może uzyskać, to 271 punktów, a najgorsza możliwa usługa transportowa dostaje -90 punktów; dla "wysoce inteligentnych" graczy AI odpowiednie wartości wynoszą odpowiednio 334 i -27. Wynikowa wartość zostaje zaciśnięta w zakresie 0..255. TTD zapewnia, że oceny zmieniają się powoli, ale stale: co 2,5 dnia rzeczywista ocena zbliża się do wartości obliczonej powyżej, o nie więcej niż 2 punkty. Na przykład potrzebujesz co najmniej 320 dni, aby przejść od 0% do 100%, nawet jeśli Twoja usługa jest doskonała. Gdy typ ładunku pojawia się po raz pierwszy na stacji, jego ocena jest ustawiona na 175 punktów (69%), więc dostosowanie go do rzeczywistych parametrów usługi zajmuje trochę czasu..
Efekt callback
'Callback' umożliwia wymianę pierwszych trzech elementów (dni od ostatniego odbioru, oczekiwania i maksymalnej prędkości ostatniego pojazdu) w powyższym obliczeniu. Jeśli 'callback' się powiedzie, pierwsze trzy komponenty zostaną pominięte, a zwrócone wartości zostaną użyte zamiast ich wyników. Bit 14 jest uważany za bit znaku, więc możesz zwrócić liczby ujemne (i nie musisz się martwić, że obliczone wyniki wywołania zwrotnego dadzą wynik ujemny, dopóki pozostaniesz w zakresie -16384..16383). Podczas wywołania zwrotnego zmienna 18 ma wartość ssaaaatt, gdzie- tt jest czasem od ostatniego odbioru ładunku, w jednostkach czasu opisanych powyżej (1 jednostka = 2,5 dnia niezależnie od typu pojazdu)
- aaaa to ilość oczekującego ładunku
- ss jest prędkością ostatniego pojazdu, który odbiera ładunek, w jednostkach prędkości opisanych powyżej (jeśli żaden pojazd nie wjechał jeszcze na stację, wartość wynosi FFh)
Najniższy bajt zmiennej 10 zawiera jedną z następujących wartości:
wartość | znaczenie |
---|---|
10h | ostatnim pojazdem wjeżdżającym na stację był pociąg |
11h | the last vehicle entering the station was a road vehicle |
12h | the last vehicle entering the station was a ship |
13h | the last vehicle entering the station was an aircraft |
00h | żaden pojazd nie wjechał jeszcze na stację lub ostatni wjeżdżający został sprzedany |
Pamiętaj, że na stację przypada tylko jedno pole "ostatni pojazd" , więc pojazd, którego dotyczy, mógł nie odebrać żadnego ładunku. Pierwotne obliczenia TTD nie dbają o to i po prostu wykorzystują pole, aby uzyskać typ pojazdu zastosowany w pierwszym elemencie.
Obecnie przy podejmowaniu decyzji można używać tylko zmiennych 10 i 18, ponieważ dla 'callback' ładunku nie są dostępne zmienne pojazdu ani stacji. Gdy tylko pozwoli na to architektura TTDPatch, 'callback' otrzyma dostęp do stacji i ostatniego wjechanego pojazdu.
New signals sprite drawing callback (146)
Jest to ogólne wywołanie zwrotne, dlatego należy zastosować ogólne działanie 3. Musi być przetworzony przez funkcję VarEction2 0E, jak wskazano w poniższym linku: VarAction2NewSignals.
Dodanie wywołanie zwrotne przesunięcia sprite'a (147)
Dodaj przesunięcie do domyślnej liczby ikonek do narysowania.
Funkcja | Dostępne zmienne |
---|---|
Canals | 80+x zmienne są dostępne przez kanały. Zobacz VarAction2Canals |
Domyślny numer jest dostępny w najniższym bajcie zmiennej 10 (dodatkowe informacje o wywołaniu zwrotnym 1), aby zdecydować, czy numer 'sprite' potrzebuje przesunięcia.
Przyjmowany ładunek obserwowany (148)
Wywoływany, gdy typ ładunku określony w property 20 jest akceptowany przez kafel domu, a ściślej w stacji, która ma kafel domu w swoim obszarze odbioru. Zostanie wywołany dla każdego kafla budynku 'wielokaflowego', ilekroć kafel o właściwości 20 przyjmuje ładunek. Oznacza to, że jeśli więcej niż jeden kafel ma ładunki określone we właściwości 20, 'callback' można wywołać wiele razy na tym samym kaflu w tym samym tiku. Niskie słowo zmiennej 18 zawiera przesunięcie kafla wyzwalającej w stosunku do bieżącego kafla; dolny bajt zawiera przesunięcie X, górny bajt przesunięcie Y. (0 oznacza, że to ten sam kafel, ujemne współrzędne oznaczają, że jest na północ, dodatnie na południe.) Dzięki temu możesz rozróżnić połączenia w ramach tego samego tiku. Wysokie słowo zmiennej 18 zawiera losowe bity, które są takie same dla każdego kafla budynków 'wielokaflowych'.
Zwracane wartości mogą być takie same jak dla wywołania zwrotnego 1B. Podobnie jak wszystkie wywołania zwrotne animacji, jeśli wysoki bajt wyniku jest niezerowy, zostanie on zinterpretowany jako liczba efektów dźwiękowych, a odpowiedni efekt dźwiękowy zostanie odtworzony na kaflu.
Ze względu na szczegóły implementacji między faktyczną akceptacją a wywołaniem tego wywołania zwrotnego może przejść do 250 tyknięć gry.
To wywołanie zwrotne nie jest dostępne, jeśli nie istnieje struktura station2 - więcej informacji można znaleźć we właściwości 20.
Kontrola nachylenia stacji (149)
To 'wywołanie zwrotne' jest wywoływane dla każdego pola, na którym zostanie zbudowana nowa część stacji.
- GRFv≤7 Dla GRF w wersji 7 i niższej zwracane wartości są takie same jak dla callback 28 , ale z bitem 10 odwróconym dla kompatybilności wstecznej. Oznacza to, że sukces jest 0 zamiast 0x400 natomiast teksty zwyczaj GRF zaczynają się 0x400 zamiast 0. Zwracana wartość 1 oznacza "grunty pochylona w złym kierunku" zamiast "Site nieodpowiednim" .
Należy pamiętać, że wcześniejsza wersja OpenTTD przed wersją r22658 i TTDPatch obsługuje tylko 0 dla sukcesu i 1 dla błędu.
- GRFv≥8 Dla GRF w wersji 8 i nowszych zwracane wartości są takie same jak dla callback 28 . Wartość zwracana 401 oznacza "Teren pochylony w złym kierunku" zamiast "Miejsce nieodpowiednie".
- zmienna 18:
numery bitu | Znaczenie |
---|---|
0..7 | przesunięcie bieżącej płytki na platformie, 0 jest najbardziej wysuniętą na północ płytką |
8..15 | bity 8..15: bieżący numer platformy, 0 jest najbardziej wysuniętą na północ platformą |
16..23 | całkowita długość budowanej stacji |
24..31 | całkowita liczba budowanych platform |
- zmienna (variable) 10:
numery bitu | Znaczenie |
---|---|
4..7 |
Informacje o nachyleniu bieżącego kafelka:
|
0..3 | te same informacje, ale "dublowane" (bit 0 i 2 zamienione), jeśli stacja jest wbudowana w orientację NW-SE. Pozwala to na sprawdzanie nachylenia bez wyraźnego sprawdzania orientacji. |
inne bity | zarezerwowane do wykorzystania w przyszłości |
'Callback' jest wywoływane dopiero po normalnym sprawdzeniu przez TTD nachyleń, więc nie jest możliwe zezwolenie na nachylenie, które domyślnie nie jest dozwolone; możesz jedynie zawęzić zestaw dozwolonych stoków. Jeśli 'callback' nie powiedzie się, kafelek zostanie zaakceptowany. Nazywa się to jednak płaskimi kafelkami, więc możesz zmusić swoją stację do nachylenia terenu. Nie możesz uzyskać dostępu do informacji o stacji, nawet jeśli platforma jest dodana do istniejącej stacji kolejowej lub jest nadmierna płytka stacji. To dlatego, że TTD zdecyduje o tym później w kodzie, po tym, jak nachylenie zostanie już zaakceptowane.
Decide industry colour (14A)
To wywołanie zwrotne jest wywoływane podczas budowania branży, aby zastąpić wybrany kolor branży (zmienna A8). Ten kolor zostanie użyty do ikonek płytek, które wymagają zmiany koloru, ale nie podają numeru ikonki koloru. Następujące zmienne branżowe nie są jeszcze wypełnione i zawierają losowe śmieci: 86..87, 93, 9E..A1, A9. (Prawdopodobnie i tak nie musiałbyś czytać niczego oprócz 86..87, ponieważ pola te zawierają informacje o przeszłości, a branża jeszcze nie ma przeszłości.) Kafelki przemysłu też nie są jeszcze umieszczane.
Zmienne A7 i A8 są jednak wypełnione i zawierają przydatne informacje. Zmienna A7 zawiera numer firmy finansującej lub 10 godzin, jeśli branża nie została sfinansowana. Zmienna A8 zawiera liczbę schematów kolorów losowo wybranych przez TTD, między 0 a 15. Jeśli nie chcesz zmieniać domyślnie wybranego koloru, możesz sprawić, że wywołanie zwrotne zakończy się niepowodzeniem lub po prostu zwrócisz zmienną A8 bez zmian.
Wykorzystywane są tylko cztery najniższe bity zwracanej wartości, pozostałe bity są zarezerwowane do wykorzystania w przyszłości. Te cztery bity są kopiowane do zmiennej A8 po powrocie wywołania zwrotnego. Możesz albo użyć przemysłowej zmiennej 45, aby uzyskać firmowy kolor fontera (jeśli istnieje), użyć losowej akcji2, aby wybrać losowy schemat kolorów z danej listy, lub oczywiście zdecydować o zmiennych globalnych, takich jak pozycja lub rok gry.
To wywołanie zwrotne jest dostępne od 2.6 TTDPatch 2.6 r1712 i nowszych
Decide input and output cargo types (14B,14C)
Te wywołania zwrotne są wywoływane, gdy branża jest zbudowana, i pozwalają dynamicznie dostosowywać typy ładunku wejściowego i wyjściowego. Możesz jednak jedynie ograniczyć liczbę przyjętych/wyprodukowanych ładunków. Właściwości przemysłowe 25 i 26 powinny zawsze stanowić nadzbiór zwróconych cargotypów.
Oba wywołania zwrotne są wywoływane wielokrotnie, przy czym najniższy bajt zmiennej 10 zaczyna się od zera i rośnie po każdym wywołaniu; powinieneś za każdym razem zwracać typ ładunku lub FFh, aby zakończyć listę. (Nieudane wywołanie zwrotne również kończy listę.) Obowiązują te same ograniczenia, co w przypadku wywołania zwrotnego 14A: kafelki branżowe nie zostały jeszcze umieszczone, a niektóre zmienne branżowe zawierają śmieci. Możesz jednak użyć losowych akcji 2. Interpretacja zwracanej wartości zależy od dwóch czynników: aktualnego numeru wersji GRF i obecności tabeli translacji ładunku:
GRF version | Posiada tabelę translacji ładunku | Interpretation |
---|---|---|
6 lub poniżej | Zależny od klimatu numer miejsca na cargo slot | |
7 lub powyżej | Nie | Cargo bit |
7 lub powyżej | Tak | Indeks w tabeli translacji |
Wyniki wywołania zwrotnego zastępują zawartość właściwości 25 i 26. Jeśli korzystasz z tych wywołań zwrotnych, zaleca się, aby nie używać właściwości przemysłowych 12..13, 1C..1E i 27..28, które zależą od kolejności cargotypów, ale zamiast tego należy użyć produkcyjnego wywołania zwrotnego w wersji 2.
1.9 Jeśli właściwość przemysłowa 1A flaga 18 jest wyraźna, te wywołania zwrotne są wywoływane co najwyżej dla 3 ładunków wejściowych i 2 wyjściowych. Jeśli ustawiona jest flaga 18, to ograniczenie zgodności jest usuwane, a połączenia zwrotne są wywoływane częściej.
W obu przypadkach zwraca FFh jako ostatni element kończący listy.
House customized building name (14D)
To wywołanie zwrotne jest aktywowane w narzędziu Zapytanie o opis kafelka podczas zapytania o dom. Bit 0 zmiennej 10 zostanie ustawiony na 1, jeśli dom jest kompletny, w przeciwnym razie będzie wynosił 0. Zwracana wartość to "xx" identyfikatora tekstowego D0xx. Jeśli wywołanie zwrotne nie powiedzie się, narzędzie do wysyłania zapytań użyje nazwy domu ustawionej we właściwości 12 (ID nazwy budynku).
- GRFv≥8 W przypadku GRF w wersji 8 i nowszej możesz również zwrócić 400, aby wyświetlić nazwę z właściwości. (zamiast niepowodzenia połączenia zwrotnego).
Ponieważ to wywołanie zwrotne nie jest wykonywane często, nie trzeba określać maski. Zawsze będzie wykonywane, a nazwa zmieni się tylko po pomyślnym zakończeniu.
Dostępne dla OpenTTD od r15172 i dla TTDPatch od TTDPatch 2.6r2249
Extra information about airport layout in the build gui (155)
To wywołanie zwrotne pozwala wyświetlić dodatkowy tekst w GUI kompilacji lotniska. Powinien zwrócić identyfikator łańcucha D0xx.
- GRFv≥8 W przypadku wersji GRF 8 i nowszych możesz zwrócić wartość 400, aby nie wyświetlać tekstu (zamiast niepowodzenia połączenia zwrotnego).
To wywołanie zwrotne jest zawsze wywoływane, gdy jest dostępne, nie trzeba ustawiać bitów w żadnej właściwości action0, aby je włączyć. Dostępne dla OpenTTD od r20272
Airport layout name (156)
To wywołanie zwrotne pozwala pokazać nazwę układu lotniska. Powinien zwrócić identyfikator łańcucha D0xx.
- GRFv≥8 W przypadku wersji GRF 8 i nowszych możesz zwrócić wartość 400, aby nie wyświetlać tekstu (zamiast niepowodzenia połączenia zwrotnego).
To wywołanie zwrotne jest zawsze wywoływane, gdy jest dostępne, nie trzeba ustawiać bitów w żadnej właściwości action0, aby je włączyć. Dostępne dla OpenTTD od r20273.
Sprawdzenie nachylenia obiektu (157)
To 'wywołanie zwrotne' jest 'wywoływane' dla każdego kafla, w którym zostanie zbudowany nowy obiekt.
- GRFv≤7 Dla GRF w wersji 7 i niższej 'zwracane' wartości są takie same jak dla callback 28 , ale z bitem 10 odwróconym dla kompatybilności wstecznej. Oznacza to, że sukces wynosi 0 zamiast 0x400, podczas gdy niestandardowe teksty GRF zaczynają się od 0x400 zamiast 0. Zwracana wartość 1 oznacza "Teren pochylony w złym kierunku" zamiast "Teren nieodpowiedni" .
Należy pamiętać, że wcześniejsza wersja OpenTTD przed wersją r22658 i TTDPatch obsługuje tylko 0 dla sukcesu i 1 dla błędu.
- GRFv≥8 Dla GRF w wersji 8 i nowszych zwracane wartości są takie same jak dla callback 28 . Zwracana wartość 401 oznacza "Grunt nachylony w złym kierunku" zamiast "Miejsce nieodpowiednie" .
- 'Zmienna' 10:
Bity | Znaczenie |
---|---|
0..3 | Względne położenie X kafla w obiekcie |
4..7 | Relatywna pozycja Y kafla w obiekcie |
8..31 | Zarezerwowany; musi być zamaskowany |
- Zmienna 18:
Bity | Znaczenie |
---|---|
0..4 | Nachylenie kafla |
5..31 | Zarezerwowane; musza być zamaskowane |
Decide object colour (15B)
To wywołanie zwrotne pozwala ustawić/zmodyfikować kolor obiektu podczas budowy. Najniższy bajt zmiennej 10 zawiera bieżący kolor firmy lub kolor losowy, gdy nie ma firmy, tj. W edytorze scenariuszy. Jeśli obiekt chce odwzorować kolory 2CC, dwie zmienne, tj. Dwa kolory, są przekazywane w zmiennej 10, w przeciwnym razie jedna zmienna (kolor).
Współczynnik kosztu refit (15E)
To 'wywołanie zwrotne' może być użyte do zastąpienia właściwości kosztów remontu (refit'u) pojazdów. To wywołanie zwrotne będzie również wywoływane w zakresie listy zakupów, więc albo ogranicz używane zmienne do tego, co jest dostępne na liście zakupów, albo gałąź na specjalnym typie ładunku listy zakupów.
Zmienna 10 zawiera informacje o docelowym typie ładunku podobnym do zmiennej 47.
Format: ccccwwtt
Zmienna | Wartość |
---|---|
tt | cargo typ jest doliczany do; 'przetłumaczone', jeśli zainstalowano tabelę translacji' |
ww | Podtyp jest przekieruwany do |
cccc | Wartość cargo class ładunku, który został |
- Bity 0–13: Podpisany współczynnik kosztu refit'u, podstawa kosztu zależy od typu pojazdu i jest taka sama jak dla właściwości kosztu remontu. Negatywne czynniki kosztów pozwalają na przychody z 'refit'.
- Bit 14: Jeśli jest ustawiony, 'refit' jest dozwolony jako 'auto-refit', pod warunkiem, że ustawiony jest również bit 4 różnych flag.
Nie zezwalaj na 'autorefit', jeśli zmieni się długość pojazdu (np. Używając cb36 do ustawienia długości). Długość pojazdu nie może się zmieniać na stacjach.
Jeśli wywołanie zwrotne nie powiedzie się, zostanie użyta wartość właściwości kosztu 'refit'.
Set initial production level on construction (15F)
To wywołanie zwrotne jest wywoływane przy konstruowaniu branż, jeśli ustawiony jest bit 6 property 22 . Podobnie do callback 29 result 0F ustawia poziom produkcji. Możesz użyć variable B3 , aby sprawdzić przyczynę budowy przemysłu.
Zmienna 18 zawiera 32 losowe bity.
Wynik wywołania zwrotnego składa się z:Bity | Znaczenie |
---|---|
0-7 | Poziom produkcji; musi znajdować się w zakresie 04..80h; wartość domyślna, gdy nie jest używane to wywołanie zwrotne jest 10h. |
8-14 | Zastrzeżone, musi być ustawiona na zero. |
Zaawansowane tworzenie efektów (160)
To wywołanie zwrotne jest używane, gdy zaawansowane efekty wizualne są włączone za pomocą właściwości Efektu wizualnego lub (resp.) Callback 10.
'Callback' jest wywoływane za każdym razem, gdy model 'spawnujący' efekt powoduje, że pojazd generuje efekt wizualny. To wywołanie zwrotne decyduje następnie o pozycji, ilości i wyglądzie efektu wizualnego.
Zmienna 10 określa typ generowanego efektu wizualnego:Bity | Znaczenie |
---|---|
0-7 |
Effect
|
8-31 | Zastrzeżone, muszą być zamaskowane. |
Zmienna 18 zawiera 32 losowe bity.
Jeśli callback 'nie powiedzie się', nie zostanie utworzony żaden efekt wizualny. W przeciwnym razie wynik składa się z:Bity | Znaczenie |
---|---|
0-1 | Ilość efektów do odrodzenia (0 do 3), szczegóły są określone przez rejestr 100+x |
2-12 | Zastrzeżone, musi być ustawiona na zero. |
13 | Tylko pociąg i RV: Jeśli jest ustawiony, efekt położenia względem środka pojazdu zamiast względem sprite'a pojazdu. (zachowuje się tak samo w przypadku pojazdów o długości 8/8) |
14 | Jeśli jest ustawiona, wyłącz automatyczne obracanie pozycji efektu wrt. orientacja pojazdu. |
Bity | Znaczenie |
---|---|
0-7 |
Typ efektu
|
8-15 |
|
16-23 |
|
24-31 | Pozycja Z (oznakowana ~signed) |