Benutzer-Werkzeuge

Webseiten-Werkzeuge


Dies ist eine alte Version des Dokuments!


Was sind Variablen überhaupt?

Sie können in IF-Abfragen benutzt werden, und zwar vor allem da, wo das Arbeiten mit „normalen“ Abfragen (HasItems, KnowsInfo, etc.) zu kompliziert ist oder schlichtweg nicht möglich ist.

Stellt euch Variablen als eine Art Zwischenspeicher vor, in denen Zahlen oder Daten gespeichert werden können.


Wie erstellt man Variablen?

Man schreibt zuerst in den Script Story_Globals.d (Scripts → Content → Story):


var int NpcGetAngry;


womit sie praktisch schon erstellt wurde. Der Variablenname kann alles sein, zum Beispiel NpcGetAngry, ICHLIEBEMEINENSCHATZ oder auch Gothicmoddingrulezzzzzzz, das liegt ganz allein beim Scripter selbst, da sie im eigentlichen Spiel nicht angezeigt werden.
Empfohlen sind aber solche Namen, die auch zur jeweiligen Verwendung passen, wie z.B. das Erste Beispiel.


Verwendung von Variablen

Nun hat man eine Variable, schön und gut, nutzt einem so aber trotzdem nichts. Verwendet werden die nämlich in einem beliebigen Dialog, und zwar in der FUNC VOID:


FUNC VOID Dr_Test_110_Bloedmann
{
AI_Output(other,self,„Dr_Test_110_Bloedmann_01_00“); Hey, du bist ein Blödmann!
AI_Output(self,other,„Dr_Test_110_Bloedmann_01_01“);
Achja? Böser Junge!
Jetzt der wichtige Teil, die Variable wird auf TRUE gesetzt!
NpcGetAngry = TRUE;
};
———

Nun hat man die Variable auf TRUE gesetzt. Man kann das zum Beispiel so verwenden, dass der NPC nur Informationen gibt, wenn diese Variable nicht auf TRUE steht, zum Beispiel so:

———
FUNC VOID Dr_Test_110_Infos
{
AI_Output(other,self,„Dr_Test_110_Infos_01_00“);
Krieg ich die ultrahochgeheimen Informationen über die Sprengstofffleischwanze?
IF (NpcGetAngry == TRUE) Hier wird abgefragt, ob die Variable auf TRUE steht.
{
AI_Output(self,other,„Dr_Test_110_Infos_01_01“);
Nein, du hast mich Blödmann genannt! (wein)
}
else Wenn die obere Bedingung nicht erfüllt ist, also die Variable auf 0 steht (Also wenn man den armen Dr. Test nicht beleidigt hat) kommen die folgenden Funktionen. Sollte man aber wissen.
{
AI_Output(self,other,„Dr_Test_110_Infos_01_02“);
Ja, die sind in dem Buch da vorne auf dem Tisch!
};
};


Das war ein einfaches Beispiel zu den Variablen. Wer diese inhaltliche Idee in seiner Mod verwenden will, soll sich keinen Zwang antun. So toll ist sie nicht ;)


Möglichkeiten mit Variablen

In Variablen lassen sich eine ganze Menge Sachen anstellen.
Neben dem Beispiel hier kann man auch erwirken, dass ein Dialog erst am nächsten Tag erscheint oder dass ein Dialog verschwindet, wenn ein bestimmter anderer aktiviert wurde´, und und und…
Kurz, es gibt eine ganze Vielzahl von Möglichkeiten, die ich hier nicht alle aufzählen kann. Hier habe ich aber eine kleine Liste zusammengestellt für alle Neulinge. Die Liste wird mit der zeit etwas länger.

[http://upload.worldofplayers.de/files/p2DxLQkbnH0BNextDay.txt Dialog soll am nächstem Tag erscheinen]


Konstanten

Neben Variablen existieren auch noch Konstanten, die mit dem Schlüsselwort const eingeleitet werden:


const int KonstantenTest = 5;


Somit legt man eine Integer (int)-Konstante an, die den Wert 5 bekommt. Konstanten kann man im Nachhinein nicht mehr verändern, was auch ihr Sinn ist und ihren Namen erklärt. Deshalb MUSS man Konstanten auch IMMER sofort bei der Deklarierung ein Wert zugewiesen werden, sonst meckert der Parser.

Immer, wenn man möchte, dass ein Wert nicht verändert werden soll, sollte man Konstanten verwenden. So verhindert man später Bugs in der Mod, denn ein Fehler, den der Parser meldet, ist immer besser, als ein Fehler im Spiel selbst, den vielleicht sogar noch die Tester übersehen. Und das ich dann bestimmt nicht allzu schön.


Falls noch weitere Fragen auftauchen, schaut einfach mal im Editing-Forum vorbei!

quickstart/skripte/variablen.1439928953.txt.gz · Zuletzt geändert: 2016/02/07 19:00 (Externe Bearbeitung)