PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Globale Variablen Definieren



SilberWolf
06.04.2009, 16:24
Ich möchte die Laufrichtung des Spielers ermitteln

wenn er von links nach rechts läuft durch den gang, dann erscheint ein NPC hinter Ihm welcher ihn dann anspricht.
Wenn der Spieler von Rechts nach links durch den Gang geht dann soll nichts passieren.

Dazu habe ich in die box die er von rechts->Links durchlaufen muss das Skript:


scn SilberModAssassinSpawn01Direction

Begin onTriggerEnter player
Short DirectionTrigger

Set DirectionTrigger to 1

End


Und in der Box von links->Rechts dieses:


scn SilberModAssassinSpawn01

Begin onTriggerEnter player

Short DirectionTrigger
if DirectionTrigger == 0
SilberModWhitePhexSpawn1.enable
else

endif
Set DirectionTrigger to 0


End

gelegt.
Praktisches problem: DirectionTrigger in Box1 ist != mit DirectionTrigger aus Box2
Die beiden können sich nicht gegenseitig lesen. Daher brauche ich eine Globale Variable.. wie kann ich die definieren über ein skript?

Edit: Laut der geck-referenz (http://geck.bethsoft.com/index.php/Declaring_Variables) gibt es nicht mal die Short Variable.. lol

SilberWolf
06.04.2009, 17:31
Lol, also da Remote Activator verboten wurden muss ich improvisieren.
Für alle die also mein Problem haben und mit meiner Technik zufrieden sind:

3 Boxen anlegen -> Schmale gänge / Tunnel oder irgentwo, wo man eine laufrichtung festlegen kann. In Offenen gebieten ist das fast unmöglich.

1. Box (Spieler kommt aus der Falschen richtung -> Skript soll nicht ausgeführt werden.) Skript:


scn DirectionTriggerInCorrect
Begin onTriggerEnter player
SpawnBox.disable
End


Dann den eigendlichen Aktivator, der das skript ausführt wenn alles stimmt.



scn SpawnActivatorScript
Begin onTriggerEnter player

-Irgendwas was des Skript tun soll wenn der Spieler von der richtigen Seite kommt. -

end


Und zuguterletzt noch die Box für die richtige Richtung:


scn DirectionTriggerCorrect
Begin onTriggerEnter player
SpawnBox.enable
End


So funktionierts.. leider seh ich keine elegantere Lösung

EMOD
06.04.2009, 20:09
Globale Variable ist ganz einfach:

Menü Gameplay > Globals > der Rest erklärt sich selbst

Die Reservierung short kannst du dann aus deinem Skript rausnehmen, beim Speichern meckert er nicht mehr, wenn die globale tatsächlich übereinstimmt mit den Aufrufen/Abfragen.

Wenn du eine globale VAR löschen willst, delete, speichern, Geck beenden, neu laden und weg ist sie.


Was ist ein Remote Aktivator ?


Geht es nicht einfacher:

Box 1 aus der richtigen Richtung aktiviert direkt den NPC.
Box 2 aus der falschen Richtung deaktiviert Box 1

Wenn der NPC nicht gleich kommen soll, Timer rein und danach Box 1 disablen.