SI:Trams/Pl

From OpenTTD
Jump to: navigation, search



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.

Personal tools