Schon mal grundsätzlich: VERWENDE.KEINE.GLOBALINTS! Aus dem Zeitalter sollten wir eigentlich schon lange raus sein. Stattdessen bitte vernüftige Variablen verwenden.
Wenn ich dich richtig verstanden habe, kannst du dein Problem mit einer Integer-Variable lösen. In einer Integer-Variable können ganzzahlige Werte ohne Nachkommastellen gespeichert werden. Also 1,2,42, 1337...etc.
Schreib ins GlobalScript.asc (möglichst weit oben):
[ags]int name;
export name;
[/ags]
Und ins GlobalScript.ash:
[ags]import int name;[/ags]
Einmal compilen und dir steht die Variable "name" überall zu Verfügung.
Als Name kannst du festlegen, was du willst. Zulässig sind lateinische Buchstaben(groß und klein), arabische Ziffern und der Unterstrich( _ ). Leerzeichen sind nicht erlaubt, um längere Namen lesbar zuschreiben wird entweder der Unterstrich verwendet ("ein_langer_name") oder Groß- und Kleinschreibung verwendet ("MeinLangerUndAuchGutLesbarerVariablenName"). Bevorzugt wird letzteres, eine Vermischung wie es die SPs vormachen ist schlechter Stil und zu vermeiden.
Der Variable einen Wert zu zuweisen, ist einfach:
[ags]name=42;[/ags]
Du kannst der Variable auch direkt bei der Deklaration einen Wert zuweisen:
[ags]int antwort=42;[/ags]
In den Rooms fragst du dann den Inhalt der Variable ab.
[ags]
if (antwort == 42) // Wird ausgeführt, wenn antwort den Wert 42 hat.
{
player.Say("Die Antwort ist 42");
}
else if (antwort == 1337) // Wird ausgeführt, wenn antwort den Wert 1337 hat.
{
player.Say("Die Antwort ist 1337");
}
else // Wird ausgeführt, wenn die antwort irgendeinen Wert hat, der NICHT 42 oder 1337 ist.
{
player.Say("Die Antwort ist irgendwas anderes.");
}[/ags]
Wichtig ist hier, dass mit zwei Gleichheitszeichen (==) überprüft wird. Ein einzelnes Gleichheitszeichen weist der Variable einen Wert zu.
Um auf deinen Anwendungsfall zurückzukommen: Leg eine Variable namens "cutscenes" an, wie ich es oben gezeigt habe, schreib in Raum a:
[ags]
if (cutscenes == 0)
{
player.Say("Hallo Welt!");
cCharacter.SetAsPlayer();
}
else if (cutscenes == 1)
{
...
}
[/ags]
In Raum b setzt du dann die Variable auf 1:
[ags]cutscenes = 1;[/ags]
Und bringst wieder in Raum a. Wenn du dann das erste Mal in Raum a bist, wird der erste Block ausgeführt. Wenn du in Raum b warst, wird dann der zweite Block ausgeführt usw.
Ich hoffe, du kannst damit etwas anfangen. Ich merke leider gerade selbst, dass ich das nicht besonders gut erklären kann.