Advertisement
Rochet2

Activate Sunblade Protector

Feb 6th, 2014
463
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.28 KB | None | 0 0
  1. local NpcId = 25372
  2.  
  3. local function GoProtector(eventId, delay, repeats, creature)
  4.     local target = creature:GetNearestCreature(100, 25507)
  5.     local x, y, z = target:GetRelativePoint(13, target:GetAngle(creature)-target:GetO())
  6.     if(not creature:IsWithinLoS(x, y, z)) then
  7.         creature:RemoveFlag(59, 0x00020000) -- Remove pacify
  8.         creature:RemoveFlag(60, 0x00008000) -- Remove turn disable
  9.         creature:MoveChase(creature:GetVictim()) -- Chase victim (return combat movement)
  10.         return
  11.     end
  12.     creature:MoveExpire() -- Disable waypoint movement
  13.     creature:MoveIdle() -- Disable waypoint movement
  14.     creature:MoveStop() -- Stop moving
  15.     creature:SetWalk(false) -- Run
  16.     creature:MoveTo(1, x, y, z)
  17. end
  18.  
  19. local function OnEnterCombat(event, creature, player)
  20.     creature:SendUnitYell("HaHa", 0)
  21.     creature:SetFlag(59, 0x00020000) -- Pacify
  22.     creature:SetFlag(60, 0x00008000) -- Disable turn
  23.     creature:RegisterEvent(GoProtector, 0, 1)
  24. end
  25.  
  26. local function Enable(eventId, delay, repeats, creature)
  27.     creature:RemoveFlag(59, 0x00020000) -- Remove pacify
  28.     creature:RemoveFlag(60, 0x00008000) -- Remove turn disable
  29.     creature:MoveChase(creature:GetVictim()) -- Chase victim (return combat movement)
  30. end
  31.  
  32. local function OnWp(event, creature, type, id)
  33.     if (type == 8 and id == 1) then
  34.         creature:SetWalk(true)
  35.         local target = creature:GetNearestCreature(100, 25507) -- get closest protector
  36.         if(target) then
  37.             creature:RegisterEvent(Enable, 6000, 1)
  38.             creature:CastSpell(target, 46475) -- Cast spell
  39.         end
  40.     end
  41. end
  42.  
  43. local function OnLeaveCombat(event, creature)
  44.     creature:RemoveEvents()
  45.     creature:MoveHome() -- Restart waypoint movement
  46.     creature:MoveWaypoint() -- Restart waypoint movement
  47. end
  48.  
  49. local function OnDeath(event, creature)
  50.     creature:RemoveEvents()
  51.     creature:MoveStop()
  52. end
  53.  
  54. local function OnReset(event, creature)
  55.     creature:RemoveFlag(59, 0x00020000) -- Remove pacify
  56.     creature:RemoveFlag(60, 0x00008000) -- Remove turn disable
  57. end
  58.  
  59. RegisterCreatureEvent(NpcId, 1, OnEnterCombat)
  60. RegisterCreatureEvent(NpcId, 2, OnLeaveCombat)
  61. RegisterCreatureEvent(NpcId, 4, OnDeath)
  62. RegisterCreatureEvent(NpcId, 6, OnWp)
  63. RegisterCreatureEvent(NpcId, 23, OnReset)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement