Construction Set Skriptthread zum Construction Set

So nun mal das angesagte Skript.


scriptname TholorArenaKampfSchalterScriptTest

short choosing
short button

ref enemy1
ref enemy2
ref enemy3
ref enemy4

Begin OnActivate
set choosing to -1
end

Begin GameMode

if choosing == 0
return
endif

set button to GetButtonPressed


if choosing == -1
messagebox "Wo möchtet ihr kämpfen", "Im Großen Saal", "Ich möchte nicht Kämpfen"
set choosing to 1
endif

if choosing == -2
messagebox "Ihr werdet im Großen Saal gegen 4 Gegner kämpfen. Gegen wenn möchet ihr kämpfen?", "Gegen Zombies", "Gegen Skelette", "Gegen Banditen", "Ich lass es lieber bleiben"
set choosing to 2
endif

if chossing == -21
messagebox "Ihr möchtet im Großen Saal gegen 4 Zombies kämpfen. Wie schwer wollt ihr es haben?", "Leicht", "Mittel", "Schwer", "Oh, lieber nichts"
set choosing to 21
endif

if chossing == -22
messagebox "Ihr möchtet im Großen Saal gegen 4 Skelette kämpfen. Wie schwer wollt ihr es haben?", "Leicht", "Mittel", "Schwer", "Oh, lieber nichts"
set choosing to 22
endif

if chossing == -23
messagebox "Ihr möchtet im Großen Saal gegen 4 Banditen kämpfen. Wie schwer wollt ihr es haben?", "Leicht", "Mittel", "Schwer", "Oh, lieber nichts"
set choosing to 23
endif

if choosing == 1
if button == 0
set choosing to -2
elseif button == 1
set choosing to 0
endif

elseif choosing == 2
if button == 0
set choosing to -21 ; Zombies
elseif button == 1
set choosing to -22 ; Skelette
elseif button == 2
set choosing to -23 ; Banditen
elseif button == 3
set choosing to 0 ; Feiger Hund
endif

elseif choosing == 21
if button == 0
set enemy1 to TholorArenaSkelettLeicht.createfullactorcopy
enemy1.moveto GrosserSaal1
set enemy2 to TholorArenaSkelettLeicht.createfullactorcopy
enemy2.moveto GrosserSaal2
set enemy3 to TholorArenaSkelettLeicht.createfullactorcopy
enemy3.moveto GrosserSaal3
set enemy4 to TholorArenaSkelettLeicht.createfullactorcopy
enemy4.moveto GrosserSaal4
player.moveto GrooserSaalSpieler
set choosing to 0
elseif button == 1
; Summon Zombies Mittel
set choosing to 0
elseif button == 2
; Summon Zombies Schwer
set choosing to 0
elseif button == 3
set choosing to 0
endif


elseif choosing == 22
if button == 0
; Summon Skelette Leicht
set choosing to 0
elseif button == 1
; Summon Skelette Mittel
set choosing to 0
elseif button == 2
; Summon Skelette Schwer
set choosing to 0
elseif button == 3
set choosing to 0
endif

elseif choosing == 22
if button == 0
; Summon Banditen Leicht
set choosing to 0
elseif button == 1
; Summon Banditen Mittel
set choosing to 0
elseif button == 2
; Summon Banditen Schwer
set choosing to 0
elseif button == 3
set choosing to 0
endif
endif

end

Wie tabkir schon sagte : "PlaceAtMe" ist nicht so toll.
Ich würde sowas mit CreateFullActorCopy erledigen.
Dazu ist es notwendig, daß du irgend eine neue InteriorCell anlegst, welche Du nie betreten wirst, in der Du jeweils eine Vorlage deiner Gegner plazierst.
Beim Namen "TholorArenaSkelettLeicht" handelt es sich schon um die konkrete Instanz (Vorlage) der Kreatur.

Es Grüßt die Yolanda 8)
 
mhh wieso sollte sollte getbuttonpressed bei einer neuen messagebox -1 ausgeben?

Das liegt nicht an der neuen Messagebox.
Pro Skriptaufruf liefert "GetButtonPressed" nur einmal einen gültigen Rückgabewert.

Das ist einfach so :roll:


Auszug aus der Wiki (hoffentlich kein Copyrightverstoß)

GetButtonPressed returns numbers from –1 to 9:
-1 means no decision has been made
0 means the player selected the first option
1 for the second
...
9 for the tenth(you can have 10 options at most)

GetButtonPressed will only return the correct button press the first time it's called in a script; any other use of GetButtonPressed will return -1.

Freundliche Grüße von der Yolanda 8)
 
mhh wenn dem so wäre würde sich das tut aber in sich selbst widersprechen....wenn du mal schaust wie oft dort getbuttonpressed vorkommt^^
ich glaube dass sich das eher darauf bezieht, dass man keine if-abfragen mit getbuttonpressed machen kann. also zb
Code:
if (GetButtonPressed == 1)
...
elseif (GetButtonPressed == 2)
 
mhh wenn dem so wäre würde sich das tut aber in sich selbst widersprechen....wenn du mal schaust wie oft dort getbuttonpressed vorkommt^^
ich glaube dass sich das eher darauf bezieht, dass man keine if-abfragen mit getbuttonpressed machen kann. also zb
Code:
if (GetButtonPressed == 1)
...
elseif (GetButtonPressed == 2)

HalloHallo,

Tut ist OK und widerspricht sich überhaupt nicht, da pro Skriptdurchlauf nur eine if-Abfrage in der Art gültig wird, daß GetButtonPressed ausgeführt wird.
Die Abfrage darf 1000-mal in einem Skript programmiert werden.
Ausgeführt aber halt nur einmal pro Durchlauf. Solche If-Abfragen wie Du oben anführst gehören da dazu (zu den Mehrfachaufrufen).

Es grüßt die Yolanda8)
 
Zuletzt bearbeitet:
  • Like
Reaktionen: takbir
Ich habe jetzt das neue Script aktiviert und auch die Wesen in einer extra Celle platziert, aber wenn ich jetzt die stärke der Gegner auswähle passiert Garnichts (weder ich noch die Wesen sind im Großen Saal)
 
Ich habe jetzt das neue Script aktiviert und auch die Wesen in einer extra Celle platziert, aber wenn ich jetzt die stärke der Gegner auswähle passiert Garnichts (weder ich noch die Wesen sind im Großen Saal)

HalloHallo,

hab beim Durchgucken meines Skripts noch einen kleinen Fehler entdeckt.
Die Zeile "set choosing to 0" muß vor die Zeile "player.moveto xxx" stehen.
Wenn "moveto" auf den Player angewandt wird, beendet sich das Skript von selbst. Alle nachfolgenden Zeilen werden also nicht mehr ausgeführt.

Aber das sollte nicht der Grund sein, warum du dich nicht im großen Saal befindest.
Bitte kontrollieren, ob die Marker richtig gesetzt sind.
Zur Kontrolle, ob der Actionbereich im Skript überhaupt angesprungen wird, kannst du ja eine Debug-Variable in einem Questscript auf 1 setzt. Die kannst Du nämlich ganz einfach mit "sqv QUESTNAME" in der Konsole abfragen.
Bitte überprüfen, ob bei den Vorlagenmonster die Checkbox "Persistent Reference" gesetzt ist.

Ich würde noch folgendes empfehlen :
- Setz bei den Vorlagenmonstern die Checkbox Initially Disabled
- Füge nach jedem "enemyX.moveto"-Befehl eine Zeile ein mit "enemyX.enable"

Anbei das angepaßte Skript nochmal als Code angefügt, damit die Struktur besser ersichtlich ist.

Code:
scriptname TholorArenaKampfSchalterScriptTest

short choosing
short button

ref enemy1
ref enemy2
ref enemy3
ref enemy4

Begin OnActivate
	set choosing to -1
end

Begin GameMode

if choosing == 0
    return
endif

set button to GetButtonPressed


if choosing == -1
	messagebox "Wo möchtet ihr kämpfen", "Im Großen Saal", "Ich möchte nicht Kämpfen"
        set choosing to 1
endif

if choosing == -2
	messagebox "Ihr werdet im Großen Saal gegen 4 Gegner kämpfen. Gegen wenn möchet ihr kämpfen?", "Gegen Zombies", "Gegen Skelette", "Gegen Banditen", "Ich lass es lieber bleiben"
        set choosing to 2
endif

if chossing == -21
	messagebox "Ihr möchtet im Großen Saal gegen 4 Zombies kämpfen. Wie schwer wollt ihr es haben?", "Leicht", "Mittel", "Schwer", "Oh, lieber nichts"
        set choosing to 21
endif

if chossing == -22
	messagebox "Ihr möchtet im Großen Saal gegen 4 Skelette kämpfen. Wie schwer wollt ihr es haben?", "Leicht", "Mittel", "Schwer", "Oh, lieber nichts"
        set choosing to 22
endif

if chossing == -23
	messagebox "Ihr möchtet im Großen Saal gegen 4 Banditen kämpfen. Wie schwer wollt ihr es haben?", "Leicht", "Mittel", "Schwer", "Oh, lieber nichts"
        set choosing to 23
endif

if choosing == 1
	if button == 0
		set choosing to -2
        elseif button == 1
                set choosing to 0
        endif

elseif choosing == 2
	if button == 0
		set choosing to -21 ; Zombies
        elseif button == 1
                set choosing to -22 ; Skelette
        elseif button == 2
                set choosing to -23 ; Banditen
        elseif button == 3
                set choosing to 0   ; Feiger Hund
        endif
         
elseif choosing == 21
	if button == 0
        	set enemy1 to TholorArenaSkelettLeicht.createfullactorcopy
                enemy1.moveto GrosserSaal1
                enymy1.enable   
        	set enemy2 to TholorArenaSkelettLeicht.createfullactorcopy
                enemy2.moveto GrosserSaal2
                enymy2.enable   
        	set enemy3 to TholorArenaSkelettLeicht.createfullactorcopy
                enemy3.moveto GrosserSaal3
                enymy3.enable   
        	set enemy4 to TholorArenaSkelettLeicht.createfullactorcopy
                enemy4.moveto GrosserSaal4
                enymy4.enable   
		set choosing to 0
                player.moveto GrosserSaalSpieler
	elseif button == 1
        	; Summon Zombies Mittel
		set choosing to 0
	elseif button == 2
        	; Summon Zombies Schwer
		set choosing to 0
        elseif button == 3
		set choosing to 0
        endif


elseif choosing == 22
	if button == 0
        	; Summon Skelette Leicht
		set choosing to 0
	elseif button == 1
        	; Summon Skelette Mittel
		set choosing to 0
	elseif button == 2
        	; Summon Skelette Schwer
		set choosing to 0
        elseif button == 3
		set choosing to 0
        endif

elseif choosing == 22
	if button == 0
        	; Summon Banditen Leicht
		set choosing to 0
	elseif button == 1
        	; Summon Banditen Mittel
		set choosing to 0
	elseif button == 2
        	; Summon Banditen Schwer
		set choosing to 0
        elseif button == 3
		set choosing to 0
        endif
endif

end

Freundliche Grüße von der Yolanda 8)
 
Zuletzt bearbeitet:
*g* sehr schön wieder was neues gelernt ^^
mhh weißt du evtl auch was ich bei meiner messagebox/ meinem script falsch mache? oO (http://www.scharesoft.de/joomla/forum/showpost.php?p=426883&postcount=1614)

HalloHallo,

auch hier kann geholfen werden.
Ersetz mal den Bereich um "if tbstage == 0" bis zum zugehören endif mit folgendem :

Code:
short InitDone

if InitDone == 0
    set fQuestDelayTime to 0.001
    set InitDone to 1
endif

if tbstage == 0
    if choosing == 0
        messagebox "Bitte wählen sie aus durch welchen Faktor der Spielerlevel geteilt werden soll!(für genauere Details bitte die Readme lesen !!!)" " Faktor 1 (1275/5050)" "Faktor 2 (637/2025)" "Faktor 3 (425/1683)" "Faktor 4 (318/1262)" "Faktor 5 (255/1010)" "Faktor 10 (127/505)" "Faktor 20 (63/252)"
        set choosing to 1
        set choice to getbuttonpressed ; auf diese Zeile verzichte ich immer
    else ; auf elseif kann verzichtet werden, da nicht weiter geschachtelt wird
        set choice to getbuttonpressed
        if choice == 0
            set tbsetting to 1
        elseif choice == 1
            set tbsetting to 2
        elseif choice == 2
            set tbsetting to 3
        elseif choice == 3
            set tbsetting to 4
        elseif choice == 4
            set tbsetting to 5
        elseif choice == 5
            set tbsetting to 10
        elseif choice == 6
            set tbsetting to 20
        endif

        if tbsetting != 0
            set tbtrainingsetting to tbsetting
            set tbstage to 1
        endif
    endif
endif

Es grüßt die Yolanda 8)
 
Zuletzt bearbeitet:
  • Like
Reaktionen: takbir
danke danke danke^^
endlich funzt das :D
aber...oO....ich raff nicht wieso der bei mir die variablen nicht weitergegeben hat oO
könntest du mir das evtl per PN erklären?

mfg takbir
 
danke danke danke^^
endlich funzt das :D
aber...oO....ich raff nicht wieso der bei mir die variablen nicht weitergegeben hat oO
könntest du mir das evtl per PN erklären?

mfg takbir

HalloHallo,

kannst Du dein Skript kommentieren, und es hier veröffentlichen oder per PN zuschicken.

Ich hab nämlich nicht so ganz verstanden, was der Sinn des ganzen Skripts überhaupt ist......
Und so ist's schwierig, eine Diagnose zu erstellen.
Und welche Variablen werden nicht weitergegeben ????????

Es grüßt die Yolanda
 
Ich habe jetzt bei allen Wesen "Persistent Reference" und "Initially Disabled" eingestellt, aber ich komme immer noch nicht weiter.
Wie ich jetzt Kontrolle durch führen kann habe ich nicht verstanden.
 
ich möchte ein Skript auf ein Buch legen, dass aller 10 InGame Minuten (soll konfigurierbar sein, vielleicht auch jede InGame-Stunde) läuft. Dazu habe ich Wiki das Tut über Timer gefunden, aber irgendwie läuft es nicht richtig:

Code:
float currentTimer
float repairTimer

Begin GameMode

  set repairTimer to 600
  set pUser to GetContainer
	
  set currentTimer to (currentTimer - getSecondsPassed)
  MessageEX "Timer: %3.4f" currentTimer ;Zum Test die Ausgabe des Timers
  if currentTimer > 0
    return
  endif
  ....
  set currentTimer to repairTimer
End

Die Timeranzeige läuft nur in den letzten Nachkommastellen langsam runter. Was mache ich da falsch? :huh:
 
Ich habe jetzt bei allen Wesen "Persistent Reference" und "Initially Disabled" eingestellt, aber ich komme immer noch nicht weiter.
Wie ich jetzt Kontrolle durch führen kann habe ich nicht verstanden.

HalloHallo,

Skript korrigiert, alles angeguckt? Funktioniert immer noch nicht? .... Mmmhhh :?
Ich hab das Skript zwar nur mit dem Notepad geschrieben und nicht getestet, mir fällt aber kein richtiger Fehler auf.

Mit Kontrolle hab ich gemeint, daß Du in einem Quest-Skript eine Variable in der Art
Code:
short TholorDebugVar
ref TholorDebubRef
einfügst. Damits später leichter zum angucken geht definiere diese Debug-Variablen als letztes im Skript.

Den Skriptteil
Code:
set choosing to 0
player.moveto GrosserSaalSpieler

paßt Du wie folgt an
Code:
set QUESTNAME.TholorDebugVar to 1
set QUESTNAME.TholorDebugRef to enemy1
set choosing to 0
player.moveto GrosserSaalSpieler

Im Laufenden Spiel kannst Du durch Drücken der Taste "^" eine Komandokonsole zum Debuggen der Software öffnen.
Hier gibst Du einfach folgendes ein
Code:
sqv QUESTNAME
sqv = show quest variables
Daraufhin werden die Werte aller Variablen des Skripts ausgegeben.

Wenn bei "TholorDebugVar" ne "1" ausgegeben wird, dann ist sichergestellt, daß wenigstens das Menü sicher funktioniert.
Zeigt "TholorDebugRef" auch was an, was ungleich Null ist, wurden auch Instanzen deiner Monster erzeugt.

Der ganze Aufwand ist nur deshalb notwendig, da Variablen in Aktivator-Skripts nicht direkt an der Konsole abgefragt werden können. Jedenfalls mir gelingt das nicht.

Probier das mal, dann sehen wir weiter.

Es grüßt die Yolanda 8)
 
Hallo mal wieder, ich brauche ein Skript, welches mir immer, per onactivate, eine Sequenz zeigt, wie spiele ich die ab? geht das mit einem play.XXXXX.bik befehl?

Gleichzeitig soll ein Interior geladen werden...
 
Zuletzt bearbeitet:
Hallo mal wieder, ich brauche ein Skript, welches mir immer, per onactivate, eine Sequenz zeigt, wie spiele ich die ab? geht das mit einem play.XXXXX.bik befehl?

Gleichzeitig soll ein Interior geladen werden...

Code:
scn viech

short Done

Begin OnActivate
 if ( Done == 0 )
  set Done to 1
  [URL="http://cs.elderscrolls.com/constwiki/index.php/PlayBink"]PlayBink[/URL] "Pfad"                  ;Pfad ist relativ zum Oblivion\Data\Video-Ordner. Endung (.bik) muss mit angegeben werden.
 endif
End

Begin OnLoad             ;sollte hier eigentlich funktionieren, falls nicht muss halt doch ein Gamemode-Block herhalten.
 if ( Done )
  set Done to 0              ;diese Zeile weglassen, wenn das ganze nur einmal funktionieren soll.
  Player.MoveTo [ZielRef]                ;Alternativ kann auch [URL="http://cs.elderscrolls.com/constwiki/index.php/PositionCell"]PositionCell[/URL] verwendet werden.
 endif
End
 
  • Like
Reaktionen: elveon
Finde keinen Fehler

Hi! Ich habe 3 Scripts geschrieben, um einige Shader-Effekte auszuprobieren.
Wenn ich den Zauber, auf dem das Script liegt mache, kommt bloß, wie bei manchen anderen zaubern auch, etwas licht und das wars. ich finde keinen fehler. Kann mir jemand helfen?

scriptname xxxShaderScript3

short SHADER

Begin ScriptEffectStart
MessageBox "Shader wählen:", "Wasser", "aus1", "Untot", "aus2", "Shockschild", "aus3"
end

Begin GameMode
set SHADER to getbuttonpressed
if SHADER == 0
;Auswahl 1 Wasser
Player.PlayMagicShaderVisuals testwatershader
elseif SHADER == 1
;Auswahl 2 aus1
Player.StopMagicShaderVisuals testwatershader
elseif SHADER == 2
;Auswahl 3 Untot
Player.PlayMagicShaderVisuals effectTurnUndead
elseif SHADER == 3
;Auswahl 4 aus2
Player.StopMagicShaderVisuals effectTurnUndead
elseif SHADER == 4
;Auswahl 5 Schockschild
Player.PlayMagicShaderVisuals effectShockShield
elseif SHADER == 5
;Auswahl 5 aus3
Player.StopMagicShaderVisuals effectShockShield
endif
End

scriptname xxxShaderScript4

short SHADER2

Begin ScriptEffectStart
MessageBox "Shader wählen:", "Geist", "aus1", "Mystische Morgenröte", "aus2", "Lich", "aus3"
end

Begin GameMode
set SHADER2 to getbuttonpressed
if SHADER2 == 0
;Auswahl 1 Geist
Player.PlayMagicShaderVisuals GhostEffect
elseif SHADER2 == 1
;Auswahl 2 aus1
Player.StopMagicShaderVisuals GhostEffect
elseif SHADER2 == 2
;Auswahl 3 Mystische Morgenröte
Player.PlayMagicShaderVisuals effectSummonMythicDawn
elseif SHADER2 == 3
;Auswahl 4 aus2
Player.StopMagicShaderVisuals effectSummonMythicDawn
elseif SHADER2 == 4
;Auswahl 5 Lich
Player.PlayMagicShaderVisuals creatureEffectLichNether
elseif SHADER2 == 5
;Auswahl 6 aus3
Player.StopMagicShaderVisuals creatureEffectLichNether
endif
End

scriptname xxxShaderScript5

short SHADER3

Begin ScriptEffectStart
MessageBox "Shader wählen:", "Feuer-Drache", "aus1", "Leben entdecken", "aus2", "Illusions Magie", "aus3"

end

Begin GameMode
set SHADER3 to getbuttonpressed
if SHADER3 == 0
;Auswahl 1 Feuer-Drache
Player.PlayMagicShaderVisuals effectFireDragon
elseif SHADER3 == 1
;Auswahl 2 aus1
Player.StopMagicShaderVisuals effectFireDragon
elseif SHADER3 == 2
;Auswahl 3 Leben entdecken
Player.PlayMagicShaderVisuals effectDetectLife
elseif SHADER3 == 3
;Auswahl 4 aus2
Player.StopMagicShaderVisuals effectDetectLife
elseif SHADER3 == 4
;Auswahl 5 Illusions Magie
Player.PlayMagicShaderVisuals effectEnchantIllusion
elseif SHADER3 == 5
;Auswahl 6 aus3
Player.StopMagicShaderVisuals effectEnchantIllusion
endif
End
 
Huhu,
Ich kenn mich mit scripten leider überhaupt nicht aus. Dennoch bräuchte ich einen Script und zwar:
Ich möchte mit einem Schalter(Activator) eine Tür öffnen und kurze zeit später noch eine andere. Ich denke es ist kein schwerer script, nur ich kenn halt die befehle nich dafürxD.

Naja ich vertrau auf eure Hilfe, Vielleicht könnt ihr mir ja auch eine Seite geben, auf der alle Befehle aufgelistet sind. Dann kann ich es selbst versuchen.
 
Hi! Ich habe 3 Scripts geschrieben, um einige Shader-Effekte auszuprobieren.
Wenn ich den Zauber, auf dem das Script liegt mache, kommt bloß, wie bei manchen anderen zaubern auch, etwas licht und das wars. ich finde keinen fehler. Kann mir jemand helfen?

scriptname xxxShaderScript3

short SHADER

Begin ScriptEffectStart
MessageBox "Shader wählen:", "Wasser", "aus1", "Untot", "aus2", "Shockschild", "aus3"
end

Begin GameMode
set SHADER to getbuttonpressed
if SHADER == 0
;Auswahl 1 Wasser
Player.PlayMagicShaderVisuals testwatershader
elseif SHADER == 1
;Auswahl 2 aus1
Player.StopMagicShaderVisuals testwatershader
elseif SHADER == 2
;Auswahl 3 Untot
Player.PlayMagicShaderVisuals effectTurnUndead
elseif SHADER == 3
;Auswahl 4 aus2
Player.StopMagicShaderVisuals effectTurnUndead
elseif SHADER == 4
;Auswahl 5 Schockschild
Player.PlayMagicShaderVisuals effectShockShield
elseif SHADER == 5
;Auswahl 5 aus3
Player.StopMagicShaderVisuals effectShockShield
endif
End

scriptname xxxShaderScript4

short SHADER2

Begin ScriptEffectStart
MessageBox "Shader wählen:", "Geist", "aus1", "Mystische Morgenröte", "aus2", "Lich", "aus3"
end

Begin GameMode
set SHADER2 to getbuttonpressed
if SHADER2 == 0
;Auswahl 1 Geist
Player.PlayMagicShaderVisuals GhostEffect
elseif SHADER2 == 1
;Auswahl 2 aus1
Player.StopMagicShaderVisuals GhostEffect
elseif SHADER2 == 2
;Auswahl 3 Mystische Morgenröte
Player.PlayMagicShaderVisuals effectSummonMythicDawn
elseif SHADER2 == 3
;Auswahl 4 aus2
Player.StopMagicShaderVisuals effectSummonMythicDawn
elseif SHADER2 == 4
;Auswahl 5 Lich
Player.PlayMagicShaderVisuals creatureEffectLichNether
elseif SHADER2 == 5
;Auswahl 6 aus3
Player.StopMagicShaderVisuals creatureEffectLichNether
endif
End

scriptname xxxShaderScript5

short SHADER3

Begin ScriptEffectStart
MessageBox "Shader wählen:", "Feuer-Drache", "aus1", "Leben entdecken", "aus2", "Illusions Magie", "aus3"

end

Begin GameMode
set SHADER3 to getbuttonpressed
if SHADER3 == 0
;Auswahl 1 Feuer-Drache
Player.PlayMagicShaderVisuals effectFireDragon
elseif SHADER3 == 1
;Auswahl 2 aus1
Player.StopMagicShaderVisuals effectFireDragon
elseif SHADER3 == 2
;Auswahl 3 Leben entdecken
Player.PlayMagicShaderVisuals effectDetectLife
elseif SHADER3 == 3
;Auswahl 4 aus2
Player.StopMagicShaderVisuals effectDetectLife
elseif SHADER3 == 4
;Auswahl 5 Illusions Magie
Player.PlayMagicShaderVisuals effectEnchantIllusion
elseif SHADER3 == 5
;Auswahl 6 aus3
Player.StopMagicShaderVisuals effectEnchantIllusion
endif
End

Gamemode durch ScriptEffectUpdate austauschen und Zauber eine ausreichend lange Dauer geben.
Wenn in der MessageBox kein Fehler vorliegt sollte das dann eigentlich funktionieren.
 
@DemonicLord: Ein bisschen genauer sollte es schon sein. Die zweite Tür, soll die mit dem gleichen Schalter geöffnet werden? Soll sie sich nach einiger Zeit automatisch öffnen, wenn die erste auf ist? Soll sie mit nem anderen Schalter geöffnet werden?