SelfVariables 2k
- ein Script für den Rm2k -

Beschreibung
Mit der Einführung von SelfSwitches im RPG-Maker XP erhielt jedes Event lokale Switches, die von den globalen Switches unabhängig sind. Dadurch können Events leichter kopiert werden, da den Kopien keine neuen Switches zugewiesen werden müssen. Bei SelfVariables handelt es sich um das gleiche Konzept in Bezug auf Variablen. Jedes Event erhält eigene Variablen, die von den globalen Variablen unabhängig sind, wodurch das Kopieren von Events erleichtert wird.

Besonders praktisch sind SelfVariables z.B. beim Programmieren eines Actionkampfsystems, wo jedes Gegner-Event eine eigene HP-Variable benötigt. Mit herkömmlichen Methoden muss man jedem Gegner eine Variable aus dem globalen Variablenregister zuweisen, sodass sich das Event nicht einfach kopieren lässt ohne nachträglich eine neue HP-Variable festlegen zu müssen. Mit SelfVariables lässt sich hingegen eine eventspezifische HP-Variable definieren, die nicht dem globalen Variablenregister angehört, sondern nur im Kontext des jeweiligen Events existiert. Jede Kopie des Events erhält automatisch eine eigene HP-Variable, sodass keine nachträgliche Variablenzuweisung nötig ist.

Das Anwendungsgebiet für SelfVariables ist natürlich nicht auf Kampfsysteme beschränkt, sondern lässt sich auf beliebige Zwecke ausweiten. Da Kampfsysteme aber vermutlich der Haupteinsatzzweck sind, habe ich in der Demo ein Actionkampfsystem auf Basis von SelfVariables mitgeliefert.

Handhabung
Für jedes Event lassen sich beliebig viele SelfVariables definieren, deren Werte gelesen, geschrieben und durch mathematische Operationen (Addition, Subtraktion, Multiplikation, Division) verändert werden können. Um beispielsweise die SelfVariable "HP" des Events 7 zu lesen, benötigt man folgende Befehle:
Code:
<> Change Variable: [4001: SelfVariable EventID] = 7
<> Comment: $ a[1000] = "HP";
<> Call Event: Common Event "SelfVar Read"
Als erstes gibt man an, auf welches Event man sich bezieht (in diesem Fall Event ID 7). Den Namen der SelfVariable gibt man per DestinyScript in String a[1000] an. Als letztes ruft man das CommonEvent "SelfVar Read" auf. Der Wert der "HP"-SelfVariable wird dann in der Variable [4002: SelfVariable Read] zurückgegeben.

Auf ähnliche Weise funktionieren die mathematischen Operationen und das Schreiben von Werten. Nähere Informationen in der ReadMe.

Variablen initialisieren
Der Initialwert aller SelfVariables ist 0. Will man einen anderen Initialwert haben, kann man dies im Namensfeld des Events definieren.

Der Name eines Events, das SelfVariables nutzt, muss mit einem "!" beginnen. Darauf folgen beliebig viele Variablennamen und deren Initialwerte. Ein Event mit dem Namen "! HP50 MP10" verfügt über die SelfVariables "HP" und "MP" mit den Initialwerten 50 und 10. Da das Namensfeld recht kurz ist (max. 20 Zeichen), sind Leerzeichen optional.

Es müssen nicht alle SelfVariables über das Namensfeld definiert werden, nur solche, denen man einen Initialwert zuweisen will. Während des Spiels lassen sich beliebig viele SelfVariables hinzufügen, indem man das CommonEvent "SelfVar Write" aufruft.

Das Script einbinden
Das Script lässt sich in jedes Rm2k-Projekt einbinden, das mit DestinyScript kompatibel ist. Dazu müssen einige CommonEvents aus der Demo kopiert und ein paar Switches und Variablen angelegt werden. Eine genaue Anleitung in englischer Sprache findet sich hier. Wer das Script nutzen will, sollte die Anleitung mindestens einmal durchlesen, da dort viele wichtige Details besprochen werden. Die Anleitung ist auf Englisch gehalten, damit das Script möglichst vielen Nutzern zugänglich wird.

Kompatibilität
Das Script ist mit allen RPG-Maker 2000-Spielen kompatibel, die mit Bananen-Joe's DestinyScript kompatibel sind. Soweit ich weiß trifft das auf alle Spiele zu, deren RPG_RT.exe mit dem RPG-Maker 2000 v1.07 erzeugt wurde. Mit der auf Steam erhältlichen Version des RPG-Maker 2000 ist der DestinyPatch nicht automatisch kompatibel. Man kann jedoch die RPG_RT.exe durch eine mit v1.07 erzeugte Version ersetzen. Dadurch gehen soweit ich weiß nur ein paar Funktionalitäten bei der Textausgabe im Kampfsystem verloren.

Credits
Wenn du das Script in deinem Spiel verwenden willst, erwähne bitte den Autor (Fauchi) und den Namen des Scripts (SelfVariables 2k). Zusätzlich sollte Bananen-Joe für die Entwicklung des DestinyPatchers Erwähnung finden.

Demo
Eine Demo mit einem auf SelfVariables basierenden AKS steht unten zum Download bereit.

Links


Das war's soweit von mir. Über Feedback freue ich mich immer!