TestAI
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

Pliki te są w pełni funkcjonalną, ale bezużyteczną sztuczną inteligencją, która ma stanowić bazę dla nowych sztucznej inteligencji.

info.nut

 
 class TestAI extends AIInfo 
 {
   function GetAuthor()      { return "Author Name"; }
   function GetName()        { return "TestAI"; }
   function GetDescription() { return "Testing AI"; }
   function GetVersion()     { return 1; }
   function GetDate()        { return "2009-07-29"; }
   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 Started.");
   SetCompanyName();
  
   //set a legal railtype. 
   local types = AIRailTypeList();
   AIRail.SetCurrentRailType(types.Begin());
       
   //Keep running. If Start() exits, the AI dies.
   while (true) {
     this.Sleep(100);
     AILog.Warning("TODO: Add functionality to the AI.");
   }
 }
 
 function TestAI::Save()
 {
   local table = {};	
   //TODO: Add your save data to the table.
   return table;
 }
 
 function TestAI::Load(version, data)
 {
   AILog.Info(" Loaded");
   //TODO: Add your loading routines.
 }
 
 
 function TestAI::SetCompanyName()
 {
   if(!AICompany.SetName("Testing AI")) {
     local i = 2;
     while(!AICompany.SetName("Testing AI #" + i)) {
       i = i + 1;
       if(i > 255) break;
     }
   }
   AICompany.SetPresidentName("P. Resident");
 }