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 619: | Line 619: | ||
{The actual target we're shooting at} | {The actual target we're shooting at} | ||
Bool Property SpawnNode Auto | Bool Property SpawnNode = false Auto | ||
{Do we spawn a target? If not, zap the nearest valid target.} | {Do we spawn a target? If not, zap the nearest valid target.} | ||
| Line 632: | Line 632: | ||
Event OnInit() | Event OnInit() | ||
float newXOffset = XOffSet + RandomFloat(0.0, RandomOffsetX / 2) | |||
float newYOffset = YOffSet + RandomFloat(0.0, RandomOffsetY / 2) | |||
float newZOffset = ZOffSet + RandomFloat(0.0, RandomOffsetZ / 2) | |||
if SpawnNode && !CurrentTarget | if SpawnNode && !CurrentTarget | ||
CurrentTarget = PlaceAtme(TargetType | CurrentTarget = PlaceAtme(TargetType) | ||
CurrentTarget.MoveTo(Self, | CurrentTarget.MoveTo(Self, newXOffSet, newYOffSet, newZOffSet) | ||
endif | endif | ||
RegisterForSingleUpdate(PulseRate) | RegisterForSingleUpdate(PulseRate) | ||
| Line 640: | Line 643: | ||
Event OnUpdate() | Event OnUpdate() | ||
; find something nearby to shoot at if we're not making our own target. | |||
if !SpawnNode && !TargetTypeList && GetDistance(Game.GetPlayer()) < SeekRange ; No list given, Default to the player if he is in range. | |||
CurrentTarget = Game.GetPlayer() | |||
elseif TargetTypeList | |||
CurrentTarget = Game.FindClosestReferenceOfAnyTypeInListfromRef(TargetTypeList,Self,SeekRange) | |||
endif | endif | ||
if CurrentTarget | if CurrentTarget ; it's possible that there is no target | ||
Zap.Cast(Self,CurrentTarget) | Zap.Cast(Self,CurrentTarget) | ||
endif | endif | ||