Grundlagen für In-Game Skripte


Programmaufbau

Der Grundlegende Programmaufbau besteht aus drei Methoden. Diese werden auch standardmäßig im Code-Editor des programmierbaren Blocks eingefügt, wenn er neu gebaut wird. Die Kommentare (Zeilen die mit // beginnen) wurde zur besseren Übersicht weggelassen:

public Program()
{

} 

public void Save()
{

} 

public void Main(string argument, UpdateType updateType)
{   

}

Der Konstruktor

public Program() 
{

}

Der Kontruktor wird für die einmalige Initialisierung Deines Skripts verwendet und einmalig ausgeführt, wenn Dein Skript instanziiert wird. Das bedeutet, dass es einmal ausgeführt wird, nachdem Dein Spiel geladen wurde, oder nachdem Du das Skript neu kompiliert hast. Die Neukompilierung erfolgt, wenn Sie Ihr Skript bearbeitet haben oder wenn Sie auf die Schaltfläche Neu kompilieren klicken. Der Konstruktor ist optional und wird nicht benötigt, um ein Skript ausführen zu können.


Die Speicher Methode

public void Save() 
{

}

Die Speicher-Methode wird immer dann aufgerufen, wenn das Spiel gespeichert wird, oder kurz bevor Du Dein Skript neu kompilierst. Hier kannst Du alle Daten speichern, die Du zwischen den Spielsitzungen erhalten möchtest. Weitere Informationen dazu findest Du unter im Kapitel "Der Speicher String".

Die Speicher-Methode ist ebenfalls optional.


Die Haupt-Methode

Die Main-Methode

public void Main(string argument, UpdateType updateType) 
{

}

// oder ohne Argument-Aufruf:

public void Main() 
{

}

Die Haupt-Methode ist der Haupteingangspunkt des Skripts. Es kann während der Lebensdauer eines Skripts mehrmals aufgerufen werden, je nachdem, was Dein Skript tut und wie es eingerichtet ist. Diese Methode ist zwingend erforderlich. Das Argument wird vom Spiel (abhängig von Deiner Symbolleistenkonfiguration) an Dein Skript weitergegeben, so dass ein einzelnes Skript eine Reihe verschiedener Dinge ausführen kann. Du kannst dieses Argument setzen, indem Sie Ihren programmierbaren Block auf eine Tastenleiste, Sensor- oder Timer-Symbolleiste (oder eine andere Gerätesymbolleiste außer Ihrer Farbe) ziehen und "Ausführen" wählen. Du erhälst ein Eingabefeld, in dem Du eingeben kannst, was an Dein Skript übergeben werden soll. Das zweite Argument updateType vom Typ UpdateType wird im Kapitel "Programmierbare Blöcke dauerhaft und wiederkehrend ausführen" genauer erläutert.


Begrenzungen beim Programmieren

Es gibt drei verschiedene Einschränkungen für Skripte von Programmierbaren Blöcken:

  1. Das erste ist die Größe des Skripts selbst. Skripte dürfen nicht mehr als 100.000 Zeichen lang sein. Der aktuelle "Verbrauch" wird Dir aber im Code-Editor angezeigt.
     
  2. Die zweite ist der so genannte "Befehlszähler". Du darfst in Deinen Skript maximal 50.000 Code-Übergänge pro einzelnem Durchlauf haben. Das beinhaltet Dinge wie Methodenaufrufe, Switches, Bedingungen (Conditions), Schleifen und ähnliches. Einfache Anweisungen wie Additionen und mathematische Operationen etc erhöhen diese Anzahl nicht.
     
  3. Die dritte Einschränkung ist der Zugriff auf die Klassen und Bibliotheken des .NET-Frameworks. Da es viel zu gefährlich wäre, den vollen Zugriff auf das .NET-Framework zu gestatten, hat Keen hier eine sogenannte "Whitelist" eingebaut. Alles was auf dieser Whitelist steht darf beim programmieren benutzt werden. Der Rest wirft einen Fehler aus. Schau dir dazu gerne die Liste der erlaubten .NET-Bibliotheken an.

Blanko Datei für Visual Studio