Der_W@ldmeister
Freund des Hauses
Damit die Fehlermeldung nicht kommt muss das Boot bereits mit Script im WorldSpace platziert sein und eine REF haben
scn peeceeTriggerTimerScript
Short Act
Float Timer
Begin OnTrigger Player
if (Act == 0)
Set Act to 1
Set Timer to <X>
PlaySound <XYZXYZ>
else
return
endif
end
Begin GameMode
if Act == 1
Set Timer to Timer - GetSecondsPassed
if (Timer <= <Y1> && Act == 1)
pcStaubwolkenREF.playgroup forward
if (Timer <= <Y2> && Act == 1)
pcStaubwolkenREF.playgroup forward
if (Timer <= <Y3> && Act == 1)
pcStaubwolkenREF.playgroup forward
if (Timer <= 0 && Act == 1)
GanzesTorREF.disable
KaputtesTorREF.enable
MonsterREF.enable
Set Act to 2
endif
endif
endif
endif
endif
end
Habe mich mal daran versucht.
Ich denke es dürfte alles enthalten sein, was du gefordert hast. Wenn nicht, sag bescheid.
Die entsprechenden Werte und Variablen musst du dann noch eintragen.Code:scn peeceeTriggerTimerScript Short Act Float Timer Begin OnTrigger Player if (Act == 0) Set Act to 1 Set Timer to <X> PlaySound <XYZXYZ> else return endif end Begin GameMode if Act == 1 Set Timer to Timer - GetSecondsPassed if (Timer <= <Y1> && Act == 2) pcStaubwolkenREF.playgroup forward if (Timer <= <Y2> && Act == 2) pcStaubwolkenREF.playgroup forward if (Timer <= <Y3> && Act == 2) pcStaubwolkenREF.playgroup forward if (Timer <= 0 && Act == 2) GanzesTorREF.disable KaputtesTorREF.enable MonsterREF.enable Set Act to 2 endif endif endif endif endif end
MfG Master of Worlds
Musst das jetzt auch noch sein? Da Act erst gegen Ende hochgeschalten wird?Also musst Du statt "if(act == 1) ein "if(act)" hinsetzen.
scn aaDRCyra0NQ05Pruefung03AlbtraumsgegnerSCRIPT
short count
short once
float scale ;durch den Scale-Unterschied ersetzen
float seconds ;die Sekunden, die für den Scale-Unterschied benötigt werden
float timer ;wird auf die Variable "seconds" gesetzt
float secondsPassed
float scale_mod
Begin onHit player
If (count < 20)
set count to (count + 1)
modScale 0.02
resetHealth
Elseif (count >= 20) && (once == 0)
Set once to 1
setStage aaDRCyra105 45
Endif
End
Begin GameMode
If (Once == 0) ;Essenz der Angst wurde noch keine 20 Mal getroffen
Return
Elseif (Once == 1)
set timer to (timer + getsecondspassed)
set Once to 2
Elseif (Once == 2)
set timer to 10
set Once to 3
Elseif (Once == 3)
;Hier jetzt in 10 Sekunden um insgesamt 2 Scalewerte runterskalieren.
Endif
End
Begin onDeath
If (Once == 0) ;Irrtümlich gestorben
Resurrect 1
EVP
Elseif (Once == 3)
SetStage aaDRCyra105 45
Let Once := 4
Endif
End
SetScale reicht nur von 0.5 bis 2. Wenn du also die Kreatur zB. auf eine scale von 0.2 oder 3 setzen möchtest, wird die scale in echt nur auf 0.5 bzw. 2 gesetzt. Eine Größenänderung von 2 ist also nicht möglich, außer durch den OBSE Befehl setScaleEx. Nachteil: setScaleEx speichert die Änderung im Savegame.;Hier jetzt in 10 Sekunden um insgesamt 2 Scalewerte runterskalieren.
scn TriggerboxScript
short once
begin ontrigger player
if once==0
setweather clear
set gamehour to 19
set once to 1
endif
end
scn PCPQ01ST20soundeffectcorpse
;Written by Diarrhoe
;09/2010
;Makes the player once look at the trigger's parent
short doonce
ref target
float pi
float a0
float a1
float a2
float a3
short triggered
short finished
float timer
float ang_x
float ang_z
float eye_height
float sin
float n
float sqrt
float headingAngle_x
float diff_ang_x
float diff_ang_z
float secondsPassed
Begin onTriggerActor player
if doonce == 0
set doonce to 1
set target to getParentRef
set pi to 3.1415927
set a0 to 1.5707288
set a1 to -0.2121144
set a2 to 0.0742610
set a3 to -0.0187293
endif
if triggered == 0
set ang_x to player.getAngle x
set ang_z to player.getAngle z
set eye_height to (player.getScale * (115 - 20 *player.isSneaking))
set sin to ((player.getPos z + eye_height - target.getPos z) / target.getDistance player)
set n to (1 - sin)
set sqrt to (n / 2)
set sqrt to ((sqrt + n/sqrt) / 2)
set sqrt to ((sqrt + n/sqrt) / 2)
set sqrt to ((sqrt + n/sqrt) / 2)
set sqrt to ((sqrt + n/sqrt) / 2)
set sqrt to ((sqrt + n/sqrt) / 2)
set sqrt to ((sqrt + n/sqrt) / 2)
set sqrt to ((sqrt + n/sqrt) / 2)
set headingAngle_x to (180 / pi * (pi/2 - sqrt*(a0 + a1*sin + a2*sin*sin + a3*sin*sin*sin)))
set diff_ang_x to (headingAngle_x - ang_x)
set diff_ang_z to player.getHeadingAngle target
disablePlayerControls
Playsound PCPDreamyGhost
PCPGoblin01REF.enable
PCPGoblin02REF.enable
PCPGoblin03REF.enable
PCPGoblin01REF.startcombat player
PCPGoblin02REF.startcombat player
PCPGoblin03REF.startcombat player
set triggered to 1
set finished to 0
set timer to 1 ;hier kann eingestellt werden, wie lange die Blickbewegung dauern soll (in Sekunden)
return
endif
end
Begin GameMode
if finished
return
endif
if triggered
set secondsPassed to getSecondsPassed
if timer >= 0
set timer to (timer - secondsPassed)
else
enablePlayerControls
set finished to 1
return
endif
set ang_x to (ang_x + diff_ang_x*secondsPassed/timer)
player.setAngle x ang_x
set ang_z to (ang_z + diff_ang_z*secondsPassed/timer)
player.setAngle z ang_z
return
endif
end
scn ...
Begin onActivate
MessageBox "Blabla"
End
scn ...
Begin onTriggerActor player
Message "Blubb" ;MessageBox wäre unpraktisch, weil du unmittelbar nach dem wegklicken wieder ne neue hättest.
End
scn 01IvellonTorchActivatorScript
short IT
float angle
begin onActivate
if player.isactorusingatorch == 0
message "Mithilfe einer anderen Fackel könntet Ihr diese hier entzünden."
else
set angle to GetAngle z
PlaceAtMe XFackel 1 0 0
Disable
if angle == 0
PlaceAtMe 01IvellonTorchLight 1 15 2
elseif angle == 90
PlaceAtMe 01IvellonTorchLight 1 15 0
elseif angle == 180 || angle == -180
PlaceAtMe 01IvellonTorchLight 1 15 4
elseif angle == 270 || angle == -90
PlaceAtMe 01IvellonTorchLight 1 15 1
else
PlaceAtMe 01IvellonTorchLight 1 0 0
endif
endif
end
begin OnMagicEffectHit FIDG
set angle to GetAngle z
PlaceAtMe XFackel 1 0 0
Disable
if angle == 0
PlaceAtMe 01IvellonTorchLight 1 15 2
elseif angle == 90
PlaceAtMe 01IvellonTorchLight 1 15 0
elseif angle == 180 || angle == -180
PlaceAtMe 01IvellonTorchLight 1 15 4
elseif angle == 270 || angle == -90
PlaceAtMe 01IvellonTorchLight 1 15 1
else
PlaceAtMe 01IvellonTorchLight 1 0 0
endif
end
begin GameMode
if IvellonTorch == 1 && IT == 0
set angle to GetAngle z
PlaceAtMe XFackel 1 0 0
set IT to 1
Disable
if angle == 0
PlaceAtMe 01IvellonTorchLight 1 15 2
elseif angle == 90
PlaceAtMe 01IvellonTorchLight 1 15 0
elseif angle == 180 || angle == -180
PlaceAtMe 01IvellonTorchLight 1 15 4
elseif angle == 270 || angle == -90
PlaceAtMe 01IvellonTorchLight 1 15 1
else
PlaceAtMe 01IvellonTorchLight 1 0 0
endif
endif
end
Auf diese Frage hätte ich Lust "gar nicht" zu antworten...Kann mir jemand erklären, wie der funktioniert, und wie ich den dann einsetze?