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