E
Ehemaliger Benutzer
Gast
Wieso kann man nicht tausend mal auf danke drücken?
Ich versteh zwar fast nichts vom Script aber es klingt gut :good:
Ich versteh zwar fast nichts vom Script aber es klingt gut :good:
Bräuchte auch etwas Hilfe.
Ich will, dass beim Tod eines Gegners ein Zauber auf den Spieler gelegt wird.
Allerdings noch einige Extrabedingungen ...
Weiß jemand, wie ich das bewerkstelligen soll.
- Das alles soll über eine Verzauberung geschehen, was etwas problematisch ist, weil der Tod ja quasi als Script-Ende gilt, oder verstehe ich das falsch.
- der Zauber soll nur eine einzige Sekunde auf dem Player liegen.
:bye:
SCN FlammenScript
Ref myself
short activated
long xpos
long ypos
long zpos
float xrot
float yrot
float zrot
Begin OnActivate
Set myself to getself
If Player.IsSneaking
Flamme01.MoveTo myself 0, 0, Z-Koordinate
Flamme01.enable
set activated to 1
Else
Flamme01.disable
set activated to 0
activate player
Endif
End
;Update flame- position and rotation
Begin GameMode
if activated == 0
return
Else
set xpos to myself.getpos x
set ypos to myself.getpos y
set zpos to myself.getpos z
set xrot to myself.getangle x
set yrot to myself.getangle y
set zrot to myself.getangle z
Flame01.setpos x, xpos
Flame01.setpos y, ypos
Flame01.setpos z, zpos
Flame01.setAngle x, xrot
Flame01.setAngle y, yrot
Flame01.setAngle z, zrot
endif
end
SCN DeathScript
Begin OnDeath
MoveTo <MarkerRefInDummy-Cell>
ressurect
End
Ich wusste nicht, ob ich eine Variable einfügen sollte. Habs dann einfach mit Variable gemacht. Aber funktionieren würde es trotzdem, weil des "ElseIf" auch ausgeführt wird, da Next vorher auf 1 gesetzt wurde.
Ich habs jetzt nochnich ausprobiert, aber muss ich noch was anderes einfügen als die z koordinate?
und die flamme liegt ja eigentlich auf der seite wenn man sie Causm Objektfenster zieht darum muss ich drehung x noch auf -90.0000 oder 270.0000
set xrot to myself.getangle x -90
SCN FlammenScript
Ref myself
short activated
long xpos
long ypos
long zpos
float xrot
float yrot
float zrot
Begin OnActivate
Set myself to getself
If (Player.IsSneaking) && (activated == 0)
Flamme01.MoveTo myself 0, 0, Z-Koordinate
Flamme01.enable
set activated to 1
Elseif (Player.IsSneaking) && (activated)
Flamme01.disable
set activated to 0
Else
Flamme01.disable
set activated to 0
activate player
Endif
End
;Update flame- position and rotation
Begin GameMode
if activated == 0
return
Else
set xpos to myself.getpos x
set ypos to myself.getpos y
set zpos to myself.getpos z
set xrot to myself.getangle x
set yrot to myself.getangle y
set zrot to myself.getangle z
Flame01.setpos x, xpos
Flame01.setpos y, ypos
Flame01.setpos z, zpos
Flame01.setAngle x, xrot
Flame01.setAngle y, yrot
Flame01.setAngle z, zrot
endif
end
<Schwert-Ref>.pms <Schader-ID> <Dauer (wenn nicht angegeben, endlos)>
scn 000ZaubereffektFlammenschwertZauber
short delay
short HabDich
;###################
;Zauber wird gestartet
;###################
Begin ScriptEffectStart
If (player.getitemcount 0ZauberFlammenschwert00Waffe == 0)
player.addItem 0ZauberFlammenschwert00Waffe 1
set HabDich to 1
Elseif (player.getitemcount 0ZauberFlammenschwert00Waffe >= 1)
player.removeitem 0ZauberFlammenschwert00Waffe 1
set HabDich to 0
Endif
end
;##################
;Zauber wird beendet
;##################
Begin ScriptEffectFinish
set delay to 0
end
;#########################
;Zauber wird aufrecht erhalten
;##########################
Begin ScriptEffectUpdate
If (HabDich == 1)
If delay == 0
set delay to 1
Elseif delay == 1
player.equipItem 0ZauberFlammenschwert00Waffe 1
Else
return
Endif
Endif
End
scn 000ZaubereffektFlammenschwertZauber
short delay
Short First
short HabDich
Ref PlayerWeapon
;###################
;Zauber wird gestartet
;###################
Begin ScriptEffectStart
If (First == 0)
If (player.getitemcount 0ZauberFlammenschwert00Waffe == 0)
player.addItem 0ZauberFlammenschwert00Waffe 1
Set PlayerWeapon to Player.GetEquippedObject 16
Player.RemoveItem PlayerWeapon 1
set HabDich to 1
Set first to 1
Elseif (player.getitemcount 0ZauberFlammenschwert00Waffe >= 1)
player.removeitem 0ZauberFlammenschwert00Waffe 1
Player.AddItem PlayerWeapon 1
set HabDich to 0
set First to 0
Return
endif
Endif
end
;##################
;Zauber wird beendet
;##################
Begin ScriptEffectFinish
set delay to 0
end
;#########################
;Zauber wird aufrecht erhalten
;##########################
Begin ScriptEffectUpdate
If (HabDich == 1)
If delay == 0
set delay to 1
Elseif delay == 1
player.equipItem 0ZauberFlammenschwert00Waffe 1
Else
return
Endif
Endif
End
ref weapon
Begin ScriptEffectStart
set weapon to getEquippedObject 16
...
end
Begin ScriptEffectFinish
equipItem weapon
...
end
SCN TriggerzoneScript ; Dürfte klar sein
Short Next ; Variable
Begin OnTriggerActor Player ; Beginnt nur, wenn der Spieler durch die Triggerzone läuft.
If (Next == 0) ; Falls die Variable auf 0 ist.
MessageBox "Text" ; Dürfte auch klar sein
Set Next to 1 ; Die Variable wird zu 1 gesetzt, damit dieses Skript nicht mehr durchlaufen wird.
Endif ; Ende der If-Klammer
End ; Schluss
Player.MoveTo <MarkerRef>