Turnstiles und Action/Target
Aus EnigmaWiki
Verfügbare Sprachen: Deutsch, English, Русский
Turnstiles können sowohl per Schalter (Lua Code) rotiert werden, als auch selber etwas auslösen, sobald sie rotiert werden. Folgende Ausführungen benutzen als Beispiele zwar die rote Version, aber es ist alles auch mit der grünen möglich.
Rotieren von Turnstiles per Lua Code
Turnstiles (st-turnstile) kann man per Messages rotieren lassen. Und zwar sowohl im Uhrzeigersinn als auch umgekehrt.
-- Rotieren Turnstile per Lua Code set_stone("st-turnstile", 3, 5, {name="redone"}) set_stone("st-turnstile-n", 3, 4) set_stone("st-switch", 1, 1, {action="callback", target="turn_it_cw"}) set_stone("st-switch", 5, 1, {action="callback", target="turn_it_ccw"}) function turn_it_cw() enigma.SendMessage(enigma.GetNamedObject("redone"), "signal", 0) end function turn_it_ccw() enigma.SendMessage(enigma.GetNamedObject("redone"), "signal", 1) end
Action/Target Paar von Turnstiles
Wenn Turnstiles von einem Actor (oder auch von einem Code, siehe oben) rotiert werden, können sie ein Action/Target Paar ausführen. (Im Beispiel wird ein weiteres Turnstile rotiert.) Dabei kann man je nach Drehrichtung eine Andere Aktion ausführen. So ist es z.B. möglich, den Spieler zu zwingen ein Turnstile in einer bestimmten Richtung zu durchlaufen.
-- Action/Target Paar bei Turnstiles set_stone("st-turnstile", 9, 10, {name="redfull", action="callback", target="rotate_it"}) set_stone("st-turnstile-n", 9, 9) set_stone("st-turnstile-e", 10, 10) set_stone("st-turnstile-s", 9, 11) set_stone("st-turnstile-w", 8, 10) set_stone("st-turnstile", 13, 10, {name="redrotator"}) set_stone("st-turnstile-n", 13, 9) function rotate_it(onoff, sender) if onoff == 1 then enigma.SendMessage(enigma.GetNamedObject("redrotator"), "signal", 1) else enigma.SendMessage(enigma.GetNamedObject("redrotator"), "signal", 0) end end

