Construction Set Transport-Skriptproblem

Kensen

Abenteurer
Hallo

Für mein Plugin, ein Spielerhaus, das mit zunehmendem Fortschritt wächst, habe ich einen Teleporterring geplant, der einen von jedem beliebigen Ort ins Haus teleportiert. Ein Kristall im Haus soll einen dann wieder an den Ausgangspunkt zurückbringen. Da ich keine Möglichkeit gefunden habe, den aktuellen Zellennamen (bei Interiors) in einer Variable abzulegen - und damit auch keine Möglichkeit "PositionCell" zu verwenden - habe ich mir mit einem Trick beholfen: Der Ring verwendet eine "Fähigkeit" (Zauber), die "Markieren" bzw. "Rückkehr" mit "Always Succeds" wirkt. Ich muss dies kurz erwähnen, da sonst unweigerlich die Frage aufkommen würde, was für ein Spruch "dap_mark" ist.

Hier jetzt erstmals das Script, Problembeschreibung folgt darunter:
begin dap_anw_mark

short transport
short wahl
short zeit
short OnPCEquip

If (MenuMode)
return
Endif

If (OnPCEquip == 1)
If (transport == 0)
set transport to 1
set OnPCEquip to 0
Endif
Endif

If (transport == 1)
Player->addspell,dap_mark
set transport to 2
Endif

If (transport == 2)
set zeit to (zeit + GetSecondsPassed)
If (zeit > 1.2)
set transport to 3
Endif
Endif

If (transport == 3)
Player->Removespell, dap_mark
set transport to 4
Endif

If (transport == 4)
Player->PositionCell,-320,32,-200,90,"Gehöft, Hauptgebäude"
set transport to 0
Endif

end dap_anw_mark

Die Markierung wird gesetzt (äh, bitte nicht missverstehen :-D ), aber es erfolgt kein Teleport ins Haus. Ich vermute, die Abfrage des Timers (Variable "zeit") ist irgendwie fehlerhaft und alles danach wird nicht mehr ausgeführt.
Sieht irgendjemand grade, was ich da falsch gemacht habe?

Gruss
Kensen
 
Das Script ist OK, der Haken ist:

Position bzw PositionCell funktionieren wie ein "return"-Befehl und das Script wird dann verlassen. Du musst lediglich die letzten Zeilen austauschen uund solltest vieleicht zuvor "Zeit" löschen:

If (transport == 4)
set Zeit to 0
set transport to 0
Player->PositionCell,-320,32,-200,90,"Gehöft, Hauptgebäude"

Endif
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Kensen
Danke für Deine Hilfe, ReneMiner, aber das Problem war ein anderes :) Schau dir mal genau das Script an, Stichwort: Variablentypen... Ich habe "zeit", worin ja GetSecondsPassed zusammengezählt wird, als "short" definiert... :roll:

*kopfgegendiewandschlag*

Gruss
Kensen

//edit
Jetzt funktioniert's problemlos ^^