TestAI
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

Ces fichiers forment une IA fonctionnant parfaitement mais ne faisant rien, servant de base pour de nouvelles IAs.

Info.nut

 
 class TestAI extends AIInfo 
 {
   function GetAuthor()      { return "Nom de l'auteur"; }
   function GetName()        { return "TestAI"; }
   function GetDescription() { return "IA de test"; }
   function GetVersion()     { return 1; }
   function GetDate()        { return "29/07/2009"; }
   function CreateInstance() { return "TestAI"; }
   function GetShortName()   { return "TEST"; }
   
   function GetSettings() 
   {
     AddSetting({name = "bool_setting",
                 description = "a bool setting, default off", 
                 easy_value = 0, 
                 medium_value = 0, 
                 hard_value = 0, 
                 custom_value = 0, 
                 flags = AICONFIG_BOOLEAN});
                 
     AddSetting({name = "bool2_setting", 
                description = "a bool setting, default on", 
                easy_value = 1, 
                medium_value = 1, 
                hard_value = 1, 
                custom_value = 1, 
                flags = AICONFIG_BOOLEAN});
                
     AddSetting({name = "int_setting", 
                 description = "an int setting", 
                 easy_value = 30, 
                 medium_value = 20, 
                 hard_value = 10, 
                 custom_value = 20, 
                 flags = 0, 
                 min_value = 1, 
                 max_value = 100});    	
   }
 }
 
 RegisterAI(TestAI());

Main.nut

 
 class TestAI extends AIController
 {
   constructor()
   {
   } 
 }
 
 
 function TestAI::Start()
 {
   AILog.Info("TestAI démarré.");
   SetCompanyName();
  
   //fixe un type de voie légal. 
   local types = AIRailTypeList();
   AIRail.SetCurrentRailType(types.Begin());
       
   //Continue à tourner. Si Start() se termine, l'IA meurt.
   while (true)
   {
     this.Sleep(100);
     AILog.Warning("TODO: Ajouter des fonctionnalités à l'IA.");
   }
 }
 
 function TestAI::Stop()
 {
 }
 
 function TestAI::Save()
 {
   local table = {};	
   //TODO: Ajoutez vos données à sauvegarder dans la table.
   return table;
 }
 
 function TestAI::Load(version, data)
 {
   AILog.Info(" chargé");
   //TODO: Ajoutez vos routines de chargement.
 }
 
 
 function TestAI::SetCompanyName()
 {
   if(!AICompany.SetName("Test de l'IA")) {
     local i = 2;
     while(!AICompany.SetName("Teste l'IA #" + i)) {
       i = i + 1;
       if(i > 255) break;
     }
   }
   AICompany.SetPresidentName("P. Résident");
 }