Papi62
25.02.2010, 01:50
Vieleicht kann ja mal ein Script-Profi da drüberrutschen, ich seh den Fehler nicht.
Das Script läuft immer nur bis Stage 1 und wiederholt sich, es schaltet nicht auf Stage 2 und weiter.
Ich habe noch andere solche Scripts mit dem selben Aufbau und die funktionieren alle, deswegen bin ich etwas ratlos. :)
scn CNWLightFlickerTrigger01Script
float Timer
short Start
short Stage
short DoOnce
Begin OnTriggerEnter Player
set Start to 1
End
Begin GameMode
if (Timer <=0) && (Start == 1)
set Stage to (Stage + 1)
set DoOnce to 0
else
set Timer to (Timer - GetSecondsPassed)
endif
if DoOnce == 0
if Stage == 1
CNWFXGlowSimpFillRnd02REF.Enable 1
CNWFlickerShackLightKeyWarm03REF.Enable 1
Player.AddItem f 111
set Timer to .3
elseif Stage == 2
CNWFXGlowSimpFillRnd02REF.Disable 1
CNWFlickerShackLightKeyWarm03REF.Disable 1
Player.AddItem f 222
set Timer to 1
elseif Stage == 3
CNWFXGlowSimpFillRnd02REF.Enable 1
CNWFlickerShackLightKeyWarm03REF.Enable 1
Player.AddItem f 333
set Timer to .8
elseif Stage == 4
CNWFXGlowSimpFillRnd02REF.Disable 1
CNWFlickerShackLightKeyWarm03REF.Disable 1
Player.AddItem f 444
set Timer to .5
elseif Stage == 5
CNWFXGlowSimpFillRnd02REF.Enable 1
CNWFlickerShackLightKeyWarm03REF.Enable 1
Player.AddItem f 555
set Timer to 1
elseif Stage == 6
CNWFXGlowSimpFillRnd02REF.Disable 1
CNWFlickerShackLightKeyWarm03REF.Disable 1
Player.AddItem f 666
set Timer to .5
elseif Stage == 7
CNWFXGlowSimpFillRnd02REF.Enable 1
CNWFlickerShackLightKeyWarm03REF.Enable 1
Player.AddItem f 777
set Timer to .3
elseif Stage == 8
CNWFXGlowSimpFillRnd02REF.Disable 1
CNWFlickerShackLightKeyWarm03REF.Disable 1
Player.AddItem f 888
set Timer to .8
elseif Stage == 9
CNWFXGlowSimpFillRnd02REF.Enable 1
CNWFlickerShackLightKeyWarm03REF.Enable 1
Player.AddItem f 999
set Timer to 1
elseif Stage == 10
CNWFXGlowSimpFillRnd02REF.Disable 1
CNWFlickerShackLightKeyWarm03REF.Disable 1
set Stage to 1
set DoOnce to 1
Player.AddItem f 1010
set Timer to .6
endif
endif
End
... und hier hab ich noch so'n Krüppel, das Script liegt auf einem Activator der sich bis zu den Markern bewegen soll. Move wird durch einen Trigger auf 1 gesetzt und das geht weil ich den darin eingebundenen Sound höre.
Ich habe das änliche auf einer Zielscheibe (auch Activator) und die funktioniert problemlos.
scn CNWHumanHanged01Script
short Move
short doOnce
short Stage
float ZAchsePosition
float ZAchse
Begin GameMode
if DoOnce == 0 && Move == 1
Set ZAchsePosition to GetPos Z
Set ZAchse to ZAchsePosition -10
SetPos Z ZAchse
Set DoOnce to 1
endif
if DoOnce == 1 && Move == 1
if GetDistance CNWHanged01MarkerREF <= 10
Set Move to 2
endif
endif
;************************************************* ****************
if DoOnce == 1 && Move == 2
Set ZAchsePosition to GetPos Z
Set ZAchse to ZAchsePosition +6
SetPos Z ZAchse
endif
if DoOnce == 1 && Move == 2
if GetDistance CNWHanged02MarkerREF <= 10
Set Move to 3
endif
endif
;************************************************* ****************
if DoOnce == 1 && Move == 3
Set ZAchsePosition to GetPos Z
Set ZAchse to ZAchsePosition -10
SetPos Z ZAchse
endif
if DoOnce == 1 && Move == 3
if GetDistance CNWHanged01MarkerREF <= 10
Set Move to 0
Set DoOnce to 2
endif
endif
End
Das Script läuft immer nur bis Stage 1 und wiederholt sich, es schaltet nicht auf Stage 2 und weiter.
Ich habe noch andere solche Scripts mit dem selben Aufbau und die funktionieren alle, deswegen bin ich etwas ratlos. :)
scn CNWLightFlickerTrigger01Script
float Timer
short Start
short Stage
short DoOnce
Begin OnTriggerEnter Player
set Start to 1
End
Begin GameMode
if (Timer <=0) && (Start == 1)
set Stage to (Stage + 1)
set DoOnce to 0
else
set Timer to (Timer - GetSecondsPassed)
endif
if DoOnce == 0
if Stage == 1
CNWFXGlowSimpFillRnd02REF.Enable 1
CNWFlickerShackLightKeyWarm03REF.Enable 1
Player.AddItem f 111
set Timer to .3
elseif Stage == 2
CNWFXGlowSimpFillRnd02REF.Disable 1
CNWFlickerShackLightKeyWarm03REF.Disable 1
Player.AddItem f 222
set Timer to 1
elseif Stage == 3
CNWFXGlowSimpFillRnd02REF.Enable 1
CNWFlickerShackLightKeyWarm03REF.Enable 1
Player.AddItem f 333
set Timer to .8
elseif Stage == 4
CNWFXGlowSimpFillRnd02REF.Disable 1
CNWFlickerShackLightKeyWarm03REF.Disable 1
Player.AddItem f 444
set Timer to .5
elseif Stage == 5
CNWFXGlowSimpFillRnd02REF.Enable 1
CNWFlickerShackLightKeyWarm03REF.Enable 1
Player.AddItem f 555
set Timer to 1
elseif Stage == 6
CNWFXGlowSimpFillRnd02REF.Disable 1
CNWFlickerShackLightKeyWarm03REF.Disable 1
Player.AddItem f 666
set Timer to .5
elseif Stage == 7
CNWFXGlowSimpFillRnd02REF.Enable 1
CNWFlickerShackLightKeyWarm03REF.Enable 1
Player.AddItem f 777
set Timer to .3
elseif Stage == 8
CNWFXGlowSimpFillRnd02REF.Disable 1
CNWFlickerShackLightKeyWarm03REF.Disable 1
Player.AddItem f 888
set Timer to .8
elseif Stage == 9
CNWFXGlowSimpFillRnd02REF.Enable 1
CNWFlickerShackLightKeyWarm03REF.Enable 1
Player.AddItem f 999
set Timer to 1
elseif Stage == 10
CNWFXGlowSimpFillRnd02REF.Disable 1
CNWFlickerShackLightKeyWarm03REF.Disable 1
set Stage to 1
set DoOnce to 1
Player.AddItem f 1010
set Timer to .6
endif
endif
End
... und hier hab ich noch so'n Krüppel, das Script liegt auf einem Activator der sich bis zu den Markern bewegen soll. Move wird durch einen Trigger auf 1 gesetzt und das geht weil ich den darin eingebundenen Sound höre.
Ich habe das änliche auf einer Zielscheibe (auch Activator) und die funktioniert problemlos.
scn CNWHumanHanged01Script
short Move
short doOnce
short Stage
float ZAchsePosition
float ZAchse
Begin GameMode
if DoOnce == 0 && Move == 1
Set ZAchsePosition to GetPos Z
Set ZAchse to ZAchsePosition -10
SetPos Z ZAchse
Set DoOnce to 1
endif
if DoOnce == 1 && Move == 1
if GetDistance CNWHanged01MarkerREF <= 10
Set Move to 2
endif
endif
;************************************************* ****************
if DoOnce == 1 && Move == 2
Set ZAchsePosition to GetPos Z
Set ZAchse to ZAchsePosition +6
SetPos Z ZAchse
endif
if DoOnce == 1 && Move == 2
if GetDistance CNWHanged02MarkerREF <= 10
Set Move to 3
endif
endif
;************************************************* ****************
if DoOnce == 1 && Move == 3
Set ZAchsePosition to GetPos Z
Set ZAchse to ZAchsePosition -10
SetPos Z ZAchse
endif
if DoOnce == 1 && Move == 3
if GetDistance CNWHanged01MarkerREF <= 10
Set Move to 0
Set DoOnce to 2
endif
endif
End