Callback
en
EN
pl
PL

nfo

Contents

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.

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.

Aby sprawdzić określone 'callback', użyj VariationalAction2 lub VarAction2Advanced , aby sprawdzić zmienną 0C .

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] Obsługiwane przez OpenTTD 1.2 (r23144)1.2 Obsługiwane przez TTDPatch 2.6 (r821)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 Obsługiwane przez OpenTTD 1.1 (r19197)1.1 Nieobsługiwane przez TTDPatch Decyduje rysowanie domyślnych fundamentów
152 Kafle lotniskowe Obsługiwane przez OpenTTD 1.1 (r19197)1.1 Nieobsługiwane przez TTDPatch Kontrola animacji
153 Kafle lotniskowe Obsługiwane przez OpenTTD 1.1 (r19197)1.1 Nieobsługiwane przez TTDPatch Następna ramka animacji
154 Kafle lotniskowe Obsługiwane przez OpenTTD 1.1 (r19197)1.1 Nieobsługiwane przez TTDPatch Długość klatki animacji
155 Lotniska Obsługiwane przez OpenTTD 1.1 (r20373)1.1 Nieobsługiwane przez TTDPatch Dodatkowe informacje o układzie lotniska w GUI budowy
156 Lotniska Obsługiwane przez OpenTTD 1.1 (r20373)1.1 Nieobsługiwane przez TTDPatch 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 Obsługiwane przez OpenTTD 1.2 (r23124)1.2 Nieobsługiwane przez TTDPatch Współczynnik kosztu 'refit`u
15F Branże Obsługiwane przez OpenTTD 1.3 (r24186)1.3 Nieobsługiwane przez TTDPatch Ustaw początkowy poziom produkcji na budowie
160 Pojazdy Obsługiwane przez OpenTTD 1.5 (r26747)1.5 Nieobsługiwane przez TTDPatch Zaawansowane tworzenie efektów
  1. 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 ( Obsługiwane przez OpenTTD 1.1 (r21238)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.

Obsługiwane przez OpenTTD 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)

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)

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.

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ść. Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch 2.5 (alpha 40)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. Obsługiwane przez OpenTTD 1.21.2 Nieobsługiwane przez TTDPatch 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 .

Obsługiwane przez TTDPatch 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.

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.

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.

Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.5 (beta 8)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.

Obsługiwane przez OpenTTD 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'.

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. 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:

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.

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.

GRFv≤7 Dla GRF w wersji 7 i niższej prawidłowe wartości zwracane to:
00..FE Użyj podtypu z tekstu D0xx (D000..D0FE)
FF Stop wywołania (calling).
GRFv≥8 Dla GRF w wersji 8 i wyższej prawidłowe wartości zwracane to:
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.

Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch 2.5 (beta 2)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)
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

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.

Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch 2.5 (alpha 46)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:

GRFv≤7 Dla GRF w wersji 7 i niższej prawidłowe wartości zwracane to:
'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)
GRFv≥8 Dla GRF w wersji 8 i wyższej prawidłowe wartości zwracane to:
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. 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.

Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch 2.5 (alpha 67)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ąć.

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.

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.

Obsługiwane przez OpenTTD 1.2 (r23045)1.2 Nieobsługiwane przez TTDPatch 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

Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Niedostępne
5F

Obsługiwane przez OpenTTD 1.1 (19744)1.1 Nieobsługiwane przez TTDPatch Losowe bity, od których przemysł zaczyna się po zakończeniu budowy. Dostępne również przez RandomAction2.
60+x

Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Tylko var. 62 i vars 64..68 może być użyty
80 W Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Współrzędne wybranej pozycji
86 B Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Numer wybranego układu, zgodnie z właściwością 0A
87 B Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Typ terenu w wybranym miejscu (szczegółowe informacje można znaleźć w canal variable 81 )
88 B Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Strefa miejscowości wybranego miejsca (detale patrz zmienna domu 42) house variable 42 )
89 B Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Odległość między najbliższym miastem a wybraną pozycją.
8A B Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Wysokość najniższego narożnika kafla
  • GRFv≤7 Dla wersji GRF 7 i starszych: wielokrotność 8.
  • GRFv≥8 Dla wersji GRF 8 i nowszych: wielokrotność 1.
8B W Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch 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 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Kwadrat odległości euklidesowej między najbliższym miastem a wybraną pozycją
8F D Obsługiwane przez OpenTTD 0.6 (r11985)0.6 Obsługiwane przez TTDPatch 2.6 (r1816)2.6 32 losowe bity
O ile wyraźnie nie zaznaczono, odległości są odległością 'Manhattanu', a nie odległości euklidesowej, tj. |x-x0|+|y-y0| zamiast sqrt((x-x0)^2+(y-y0)^2)

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.

Obsługiwane przez OpenTTD 1.1 (r20942)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:

Wartość Wersja Znaczenie
0000-03ff Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Przedsiębiorstwa nie da się zbudować, pokaż różne rzeczy. Tekst GRF Dxxx jako komunikat o błędzie
0400 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Przedsiębiorstwa można budować
0401 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Nie można zbudować przedsiębiorstwa, wyświetl domyślny komunikat o błędzie "witryna nieodpowiednia".
0402 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Nie można budować przedsiębiorstwa, wyświetla komunikat o błędzie "... można budować tylko na obszarach lasów deszczowych".
0403 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Nie można budować przedsiębiorstwa, wyświetla komunikat o błędzie "... można budować tylko na obszarach pustynnych".
0404 Obsługiwane przez OpenTTD 1.2 (r22657)1.2 Nieobsługiwane przez TTDPatch Nie można zbudować przedsiębiorstwa, wyświetl komunikat o błędzie "... można zbudować tylko powyżej linii śniegu".
0405 Obsługiwane przez OpenTTD 1.2 (r22657)1.2 Nieobsługiwane przez TTDPatch Nie można zbudować przedsiębiorstwa, wyświetl komunikat o błędzie "... można zbudować tylko poniżej linii śniegu".
0406 Obsługiwane przez OpenTTD 1.2 (r22657)1.2 Nieobsługiwane przez TTDPatch Nie można zbudować przedsiębiorstwa, wyświetl komunikat o błędzie "… nie można budować na otwartym morzu".
0407 Obsługiwane przez OpenTTD 1.2 (r22657)1.2 Nieobsługiwane przez TTDPatch Nie można zbudować przedsiębiorstwa, wyświetl komunikat o błędzie "... nie można budować na kanale".
0408 Obsługiwane przez OpenTTD 1.2 (r22657)1.2 Nieobsługiwane przez TTDPatch Nie można zbudować przedsiębiorstwa, wyświetl komunikat o błędzie "… nie można zbudować na rzece".

Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.6 (r1755)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:

Wartość Wersja Znaczenie
00 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Nic nie robi

01 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Zmniejszyć o połowę produkcję przemysłową. Jeśli produkcja spadnie poniżej jednej czwartej wartości domyślnej, branża zostanie zamknięta, tak jakbyś zwrócił 03.

02 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Podwójna produkcja przemysłowa, jeśli nie osiągnęła jeszcze ośmiokrotnie większej niż oryginał.

03 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Branża ogłasza rychłe zamknięcie i jest fizycznie usuwana z mapy w przyszłym miesiącu.

04 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Wykonaj standardową, losową zmianę produkcji, tak jakby ta branża była głównym.

05 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Divide production by 4

06 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Podziel produkcję przez 8

07 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Divide production by 16

08 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Divide production by 32

09 Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Multiply production by 4

0A Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Pomnóż produkcję przez 8

0B Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Multiply production by 16

0C Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch Multiply production by 32

0D Obsługiwane przez OpenTTD 0.6 (r11532)0.6 Obsługiwane przez TTDPatch 2.6 (r2046)2.6 Zmniejsz produkcję o 1
0E Obsługiwane przez OpenTTD 0.6 (r11532)0.6 Obsługiwane przez TTDPatch 2.6 (r2046)2.6 Zwiększ produkcję o 1
0F Obsługiwane przez OpenTTD 0.7 (r14561)0.7 Obsługiwane przez TTDPatch 2.6 (r2068)2.6 Ustaw produkcję jako zwróconą w bitach 16..23 rejestru 0x100 (zaciśnięta do 4..128)

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
Jeśli wywołanie zwrotne nie powiedzie się, odpowiednie wartości z właściwości 1E zostaną użyte zamiast domów, a właściwości 0A..0C dla 'kafli' przemysłowych. To wywołanie zwrotne jest najbardziej przydatne w połączeniu z wywołaniem zwrotnym 1F/2B, dzięki czemu możesz w pełni kontrolować akceptację swojego domu/branży, nawet pozwalając na dynamiczne zmiany
GRFv≥7 Od wersji 7 i wyższych GRF zmienia się interpretacja zwracanej wartości: zamiast numerów szczelin ładunkowych zależnych od klimatu, musisz zwrócić niezależne od klimatu ID`y ładunku. Jeśli twój GRF ma tabelę translacji ładunku, wówczas ten ID jest indeksem w tej tabeli; w przeciwnym razie jest to kawałek ładunku. Odbiór aktualnie nieobecnych ładunków zostanie automatycznie wyłączony.

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.
GRFv≥7 Począwszy od wersji 7 GRF i wyższej interpretacja wysokiego bajtu w zwracanej wartości zmienia się: zamiast zależna od klimatu numer przedziału ładunkowego, musisz zwrócić niezależny od klimatu identyfikator ładunku. Jeśli twój GRF ma tabelę translacji ładunku, to ten ID jest indeksem w tej tabeli; w przeciwnym razie jest to kawałek ładunku. Próba wyprodukowania ładunku, którego obecnie nie ma, nie jest błędem, ale zostanie zignorowana.

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.

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.

Obsługiwane przez OpenTTD 1.1 (r19744)1.1 Nieobsługiwane przez TTDPatch 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.

Obsługiwane przez OpenTTD Obsługiwane przez TTDPatch 2.6 (r1728)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.

Obsługiwane przez OpenTTD 1.1 (r20942)1.1 Nieobsługiwane przez TTDPatch 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

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

Obsługiwane przez TTDPatch 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.

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).
GRFv≤7 Dla GRF w wersji 7 i niższej prawidłowe wartości zwracane to:
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.
GRFv≥8 Dla GRF w wersji 8 i wyższej prawidłowe wartości zwracane to:
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) Obsługiwane przez OpenTTD 1.21.2 Nieobsługiwane przez TTDPatch GRFv≥8 07 ( Ilość ładowania ) Zobacz też callback 12

Obsługiwane przez OpenTTD 0.6 (r9671)0.6 Obsługiwane przez TTDPatch 2.5 (beta 6)2.5 09 (Prędkość)

Obsługiwane przez OpenTTD 0.6 (r9671)0.6 Obsługiwane przez TTDPatch 2.5 (beta 6)2.5 0B (Moc)

Obsługiwane przez OpenTTD 0.6 (r9671)0.6 Obsługiwane przez TTDPatch 2.6 (r1420)2.6 0D (Współczynnik kosztów eksploatacji)

Obsługiwane przez OpenTTD 0.6 (r9828)0.6 Obsługiwane przez TTDPatch 2.6 (r1966)2.6 14 (Pojemność ładunkowa) Zobacz też callback 15

Obsługiwane przez OpenTTD 0.6 (r9780)0.6 Obsługiwane przez TTDPatch 2.5 (r1887)2.5 16 (Waga)

Obsługiwane przez OpenTTD 0.6 (r9806)0.6 Nieobsługiwane przez TTDPatch 17 (Koszt (..factor))

Obsługiwane przez OpenTTD 0.6 (r9671)0.6 Obsługiwane przez TTDPatch 2.5 (beta 6)2.5 1F (Siła pociągowa)

Obsługiwane przez OpenTTD 1.21.2 Nieobsługiwane przez TTDPatch GRFv≥8 21 (Krótkie wagony) [1] Zobacz też callback 11

Nieobsługiwane przez OpenTTD Nieobsługiwane przez TTDPatch 22 (Efekt wizualny & wagony napędzane) Zmieniane via callback 10

Obsługiwane przez OpenTTD 0.6 (r11431)0.6 Obsługiwane przez TTDPatch 2.5 (beta 6)2.5 25 (Dane użytkownika)

Obsługiwane przez OpenTTD 1.2 (r22713)1.2 Nieobsługiwane przez TTDPatch 2B (Niestandardowy okres 'dojrzewania' ładunku)

Pojazdy drogowe (01) Obsługiwane przez OpenTTD 1.21.2 Nieobsługiwane przez TTDPatch GRFv≥8 07 ( Ilość ładowania ) Zobacz też callback 12

Obsługiwane przez OpenTTD 1.0 (r18011)1.0 Nieobsługiwane przez TTDPatch 09 (Współczynnik kosztów eksploatacji)

Obsługiwane przez OpenTTD 0.6 (r9828)0.6 Nieobsługiwane przez TTDPatch 0F (Pojemność ładunkowa) Zobacz też callback 15

Obsługiwane przez OpenTTD 0.6 (r9806)0.6 Nieobsługiwane przez TTDPatch 11 (Faktor kosztu)

Obsługiwane przez OpenTTD 1.1 (r21058)1.1 Nieobsługiwane przez TTDPatch 13 (Moc)

Obsługiwane przez OpenTTD 1.1 (r21058)1.1 Nieobsługiwane przez TTDPatch 14 (Waga)

Obsługiwane przez OpenTTD 1.1 (r21100)1.1 Nieobsługiwane przez TTDPatch 15 (Prędkość)

Obsługiwane przez OpenTTD 1.1 (r21058)1.1 Nieobsługiwane przez TTDPatch 18 (Siła pociągowa)

Nieobsługiwane przez OpenTTD Nieobsługiwane przez TTDPatch 21 (Visual effect) Zmieniane via callback 10

Obsługiwane przez OpenTTD 1.2 (r22713)1.2 Nieobsługiwane przez TTDPatch 22 (Niestandardowy okres 'ageing' ładunku)

Obsługiwane przez OpenTTD 1.21.2 Nieobsługiwane przez TTDPatch GRFv≥8 23 (Krótkie wagony)[1] Zobacz też callback 11
Statki (02) Obsługiwane przez OpenTTD 1.21.2 Nieobsługiwane przez TTDPatch GRFv≥8 07 ( Ilość ładowania ) Zobacz też callback 12

Obsługiwane przez OpenTTD 0.6 (r9806)0.6 Obsługiwane przez TTDPatch 2.6 (r1990)2.6 0A (Faktor kosztu)

Obsługiwane przez OpenTTD 0.6 (r9671)0.6 Obsługiwane przez TTDPatch 2.5 (beta 6)2.5 0B (Prędkość)

Obsługiwane przez OpenTTD 0.6 (r9828)0.6 Obsługiwane przez TTDPatch 2.6 (r1990)2.6 0D (Pojemnośc ładunku) Zobacz też callback 15

Obsługiwane przez OpenTTD 0.6 (r9808)0.6 Obsługiwane przez TTDPatch 2.6 (r1510)2.6 0F (Współczynnik kosztów eksploatacji)

Nieobsługiwane przez OpenTTD Nieobsługiwane przez TTDPatch 1C (Visual effect) Zmieniane via callback 10

Obsługiwane przez OpenTTD 1.2 (r22713)1.2 Nieobsługiwane przez TTDPatch 1D (Niestandardowy okres 'dojrzewania' ładunku)

Samoloty (03) Obsługiwane przez OpenTTD 1.21.2 Nieobsługiwane przez TTDPatch GRFv≥8 07 ( Ilość ładowania ) Zobacz też callback 12

Obsługiwane przez OpenTTD 0.6 (r9806)0.6 Nieobsługiwane przez TTDPatch 0B (Faktor kosztu)

Obsługiwane przez OpenTTD 0.6 (r9671)0.6 Obsługiwane przez TTDPatch 2.5 (beta 6)2.5 0C (Prędkość)

Obsługiwane przez OpenTTD 0.6 (r9678)0.6 Obsługiwane przez TTDPatch 2.6 (r1507)2.6 0E (Współczynnik kosztów eksploatacji)

Obsługiwane przez OpenTTD 1.0 (r19218)1.0 Nieobsługiwane przez TTDPatch 0F (Pierwotna ładowność) Zobacz też callback 15

Obsługiwane przez OpenTTD 1.0 (r19218)1.0 Nieobsługiwane przez TTDPatch 11 (Dodatkowa ładowność)

Obsługiwane przez OpenTTD 1.2 (r22713)1.2 Nieobsługiwane przez TTDPatch 1C (Niestandardowy okres dojrzewania ładunku)

Obsługiwane przez OpenTTD 1.2 (r23504)1.2 Nieobsługiwane przez TTDPatch 1F (Zasięg samolotów)

  1. 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.
GRFv≤7 Dla GRF w wersji 7 i niższej prawidłowe wartości zwracane to:
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.
GRFv≥8 Dla GRF w wersji 8 i wyższej prawidłowe wartości zwracane to:
00..3FF Wyświetlacz D0xx (D000.. D3FF). Wyświetl kwotę oczekiwania, jeśli używana jest produkcja CB.
400 Nie wyświetla tekstu. Wyświetl kwotę oczekiwania, jeśli używana jest produkcja CB.
401 Obsługiwane przez OpenTTD 1.7 (r27751)1.7 Nieobsługiwane przez TTDPatch Wyświetlanie braku kwoty oczekiwania i tekstu.
800..BFF Obsługiwane przez OpenTTD 1.7 (r27751)1.7 Nieobsługiwane przez TTDPatch Wyświetlacz D0xx (D000.. D3FF) tekst bez kwoty oczekiwania.

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:
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ć.
Bity 8..15 z var. 18 może mieć następujące wartości:
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.

Obsługiwane przez OpenTTD 1.0 (r17802)1.0 Nieobsługiwane przez TTDPatch 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.

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.

Obsługiwane przez OpenTTD 0.6 (r11987)0.6 Nie są zwracane dane (przekroczony limit czasu wysyłania danych)..

Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.6 (r1370)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 Obsługiwane przez TTDPatch 2.52.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).

To wywołanie zwrotne jest dostępne z Obsługiwane przez TTDPatch 2.52.5 TTDPatch 2.0.1 a73 i powyżej

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.

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 Obsługiwane przez TTDPatch 2.52.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:

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

  • Bity 0..2: Terrain type: 0 normal (grass), 1 desert, 2 'rainforest', 4 na lub powyżej linii śniegu.
  • Bity 3..5: GRFv≥8 Water class: 0 - nieokreślony / teren; 1 - sea; 2 - canal; 3 - river.

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%)
Oznacza to, że gracze AI oszukują, aby uzyskać dobre oceny swoich martwych mózgów tras.

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

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.

Obsługiwane przez TTDPatch 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.

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.

Ponieważ stacja nie została jeszcze zbudowana, nie można uzyskać dostępu do zmiennych 8x. Tylko zmienne 43 i 67 będą działać na podstawie zmiennych 4x i 6x. Otrzymasz jednak następujące informacje:
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
numery bitu Znaczenie
4..7 Informacje o nachyleniu bieżącego kafelka:
  • bit 7 - N narożnik jest podniesiony
  • bit 6 - E corner is elevated
  • bit 5 - S corner is elevated
  • bit 4 - W corner is elevated
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 Obsługiwane przez TTDPatch 2.62.6 TTDPatch 2.6 r1712 i nowszych

Decide input and output cargo types (14B,14C)

Obsługiwane przez OpenTTD 0.6 (r11177)0.6 Obsługiwane przez TTDPatch 2.6 (r1718)2.6

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.

Obsługiwane przez OpenTTD 1.9 (e66cec8f)1.9 Nieobsługiwane przez TTDPatch 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).

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.

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.

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.

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.

Ponieważ obiekt nie został jeszcze zbudowany, dostępne są tylko niektóre zmienne. W OpenTTD są to: 41, 42, 44, 45, 46, 48, 60 - 62 i 64. Dodatkowo otrzymujesz następujące informacje:
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
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ł
Zwracane wartości:

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)

Obsługiwane przez OpenTTD 1.3 (r24186)1.3 Nieobsługiwane przez TTDPatch

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)

Obsługiwane przez OpenTTD 1.5 (r26747)1.5 Nieobsługiwane przez TTDPatch

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
  • 00: Normalny efekt wizualny podczas jazdy.
  • 01-FF: Reserved
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.
Rejestry 100+x określają wygląd X-tego efektu (kwota określona poprzez wynik wywołania zwrotnego):

Bity Znaczenie
0-7 Typ efektu
  • 00-EF: 'Rezerwowane'
  • F0: Rezerwowane
  • F1: Domyślny efekt 'pary'.
  • F2: Domyślny efekt 'diesla'.
  • F3: Domyślny efekt 'elektryczny'.
  • F4-F9: Rezerwowane
  • FA: Domyślny efekt 'zepsuty samolot'.
  • FB-FE: Rezerwowane
  • FF: Brak efektu.
8-15
  • Jeśli wynik bit 14 jest wyczyszczony: Pozycja wzdłużna ('podpisana')
  • Jeśli wynik bit 14 jest ustawiony: Pozycja X ('podpisana')
16-23

  • Jeśli wynik bit 14 jest wyczyszczony: Pozycja poprzeczne ('znakowana')
  • Jeśli wynik bit 14 jest ustawiony: Pozycja Y ('znakowana')
24-31 Pozycja Z (oznakowana ~signed)