Complete Example Scripts: Difference between revisions
Jump to navigation
Jump to search
→Script to make an item cast a spell
imported>Threedee |
imported>Threedee |
||
| Line 641: | Line 641: | ||
Event OnUpdate() | Event OnUpdate() | ||
if !SpawnNode | if !SpawnNode | ||
; find something nearby to shoot at if we're not making our own target. | ; find something nearby to shoot at if we're not making our own target. | ||
if !TargetTypeList && GetDistance(Game.GetPlayer()) < SeekRange ; No list given, Default to the player. | if !TargetTypeList && GetDistance(Game.GetPlayer()) < SeekRange ; No list given, Default to the player. | ||
CurrentTarget = Game.GetPlayer() | CurrentTarget = Game.GetPlayer() | ||
endif | elseif TargetTypeList | ||
CurrentTarget = Game.FindClosestReferenceOfAnyTypeInListfromRef(TargetTypeList,Self,SeekRange) | |||
endif | |||
else | else | ||
float newXOffset = XOffSet + RandomFloat(0.0, RandomOffsetX / 2) | |||
float newYOffset = YOffSet + RandomFloat(0.0, RandomOffsetY / 2) | |||
float newZOffset = ZOffSet + RandomFloat(0.0, RandomOffsetZ / 2) | |||
CurrentTarget.MoveTo(Self, newXOffSet, newYOffSet, newZOffSet) | |||
endif | endif | ||
Zap.Cast(Self,CurrentTarget) | Zap.Cast(Self,CurrentTarget) | ||
RegisterForSingleUpdate(PulseRate+RandomFloat(0.0,RandomRate)) | RegisterForSingleUpdate(PulseRate + RandomFloat(0.0, RandomRate)) | ||
EndEvent | EndEvent | ||
</Source> | </Source> | ||
| Line 665: | Line 667: | ||
*If you want it to look for targets nearby, set SpawnNode to false and put a formlist of the valid targets in the TargetTypeList. If no Formlist is given, it will default to trying to shoot the player. | *If you want it to look for targets nearby, set SpawnNode to false and put a formlist of the valid targets in the TargetTypeList. If no Formlist is given, it will default to trying to shoot the player. | ||
= Script for a quest with time limit = | = Script for a quest with time limit = | ||