Tramways
Framework NonIA

Page principale NonIA

Développement

Jalons de développement
Suggestion de changements de l'API

Programmation de l'IA

Documentation API
Introduction
Fichier info.nut
Fichier main.nut
Principes de base
Détermination de chemin routier
Détermination de chemin ferroviaire
Sauver / Charger des données
Choses à savoir
Squirrel
Page principale
Erreurs courantes
Listes
Traiter les erreurs OTTD
Tramways
Bibliothèques de l'IA
Forum
FAQ du forum
Comportement de l'IA

IAs

TestAI
WrightAI
Convoy
Voir le forum
Voir BaNaNaS
Tous les articles de la catégorie NonIA

Les tramways sont, du point de vue de l'IA, similaires, comme pour tout autre joueur, aux véhicules routiers. En construisant quelque chose dans AIRoad, vous spécifiez si vous voulez construire des objets de route, ou des objets de tramway, via AIRoad.SetCurrentRoadType. Par exemple, pour basculer vers la construction de tramway:

AIRoad.SetCurrentRoadType(AIRoad.ROADTYPE_TRAM);

et inversement, revenir aux véhicules routiers:

AIRoad.SetCurrentRoadType(AIRoad.ROADTYPE_ROAD);

Maintenant, si vous faites:

AIRoad.BuildRoad(33412, 33413);

Sur ces cases, une voie de tramway sera construite. Comme vous pouvez le comprendre, il est imprtant de garder trace du mode dans lequel vous êtes; sinon, vous pourriez avoir des surprises. ;)

Comme attendu, AIEngine et AIVehicle ont une fonction: GetRoadType, qui renvoie soit AIRoad.ROADTYPE_INVALID si l'objet n'est pas un objet de route, ou sinon si c'est un tramway ou une route. Il est donc facile de trouver et de choisir la locomotive ou le véhicule que vous voulez.

AIRoad peut aussi vérifier si une case est soit une case de route, soit une case de tramway. C'est la même chose pour AIStation. Utilisez HasRoadType pour vérifier si la case/station est une case/station pour véhicule routier ou pour tramway.

ATTENTION

Vous devez faire attention si vous voulez faire une IA qui supporte les tramways. Comme vous pouvez le voir, il suffit d'une simple bascule pour passer des routes aux tramways, et en termes de jeu, il n'y a pas tellement de différence entre les véhicules routiers et les tramways, à part le fait que les tramways sont jolis! Le problème avec les tramways est que vous avez besoin d'un grf séparé pour les faire fonctionner. Tout le monde n'a pas ce grf; il est donc possible que quand vous essayez:

AIRoad.IsRoadTypeAvailable(AIRoad.ROADTYPE_TRAM);

sur votre ordinateur, vous obteniez: true, et sur un autre: false. Donc, ne faites jamais dépendre votre IA des tramways, et assurez-vous de vérifier si les tramways sont disponibles avant de les utiliser. Bien entendu, il est parfaitement acceptable de se replier sur les routes si les tramways ne sont pas disponibles. Cela ne change rien dans les faits.