Trams
NoAI Framework

NoAI Strona główna

Rozwój

Kamienie Milowe rozwoju
Sugerowane zmiany API

Programowanie SI

Dokumentacja API
Wprowadzenie
plik info.nut
plik main.nut
Podstawy
Poszukiwacz drogi
Użycie pathfinder`a kolei
Zapis / Odczyt danych
Dobrze wiedzieć
Squirrel
Home page
Typowe błędy
Listy
Poradnik na błędy OTTD
Trams
Biblioteki SI
Forum
Forum FAQ
Zachowanie SI
Użycie krótkich nazw

SIy

TestAI
WrightAI
Convoy
SimpleAI
Porównanie AI
Zobacz forum
Zobacz BaNaNaS
Wszystko kategorii NoAI

Tramwaje są, z punktu widzenia AI, podobne dla każdego gracza do pojazdów drogowych. Podczas tworzenia czegoś w AIRoad określasz, czy chcesz budować obiekty drogowe, czy tramwajowe za pośrednictwem AIRoad.SetCurrentRoadType. Na przykład, aby przejść do budynku Tramwaj:

AIRoad.SetCurrentRoadType(AIRoad.ROADTYPE_TRAM);

i odwrotnie, aby wrócić do pojazdów drogowych :

AIRoad.SetCurrentRoadType(AIRoad.ROADTYPE_ROAD);

Teraz jeśli tak:

AIRoad.BuildRoad(33412, 33413);

Na tych kafelkach powstanie tor tramwajowy. Jak możesz zrozumieć, ważne jest, aby śledzić, w jakim trybie jesteś, w przeciwnym razie możesz być zaskoczony ;)

Jak można się spodziewać, AIEngine i AIVehicle mają funkcję: GetRoadType, która zwraca AIRoad.ROADTYPE_INVALID, jeśli obiekt nie jest obiektem drogowym, ani też tramwajem ani drogą. Łatwo jest więc znaleźć i wybrać silnik lub pojazd, który chcesz/lubisz.

AIRoad ma również możliwość sprawdzenia dowolnego kafelka, jeśli jest to kafelek drogowy lub kafelek tramwajowy. To samo dotyczy AIStation . Użyj HasRoadType, aby sprawdzić, czy kafelek/stacja ma kafelek/stację dla drogi lub tramwaju (Tram) .

OSTRZEŻENIE

Musisz być ostrożny, jeśli chcesz stworzyć sztuczną inteligencję, która obsługuje tramwaje. Jak widać, przejście z drogi na tramwaj jest proste, a pod względem gry nie ma dużej różnicy między pojazdami drogowymi i tramwajowymi, poza tym tramwaje wyglądają fajnie! Problem z tramwajami polega na tym, że do działania potrzebny jest osobny GRF. Nie każdy ma ten grf. Możliwe więc, że kiedy spróbujesz:

AIRoad.IsRoadTypeAvailable(AIRoad.ROADTYPE_TRAM);

Na twoim komputerze mówi ci: prawda, a na innym komputerze mówi ci: fałsz. Dlatego nigdy nie uzależniaj AI od tramwajów i zawsze upewnij się, że tramwaje są dostępne przed ich użyciem. Oczywiście całkowicie dopuszczalne jest cofnięcie się na drogę, jeśli tramwaj nie jest dostępny. Nic tak naprawdę się nie zmienia.