Advertisement
blackwolfsden

complexShamanBoss

Dec 9th, 2013
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.38 KB | None | 0 0
  1. -- Hard Shaman Boss (Complex)
  2. -- by tommyrego of ac-web.org
  3. -- Elemental Lord
  4.  
  5. function Elemental_OnCombat(pUnit, Event)
  6. pUnit:SendChatMessage(14, 0, "Thunder will destroy you!")
  7. pUnit:RegisterEvent("Elemental_Arc", 2000, 0)
  8. pUnit:RegisterEvent("Elemental_Chain", 20000, 0)
  9. pUnit:RegisterEvent("Elemetal_Shield", 10000, 0)
  10. pUnit:RegisterEvent("SummonThunder", 3000, 1)
  11. pUnit:RegisterEvent("Phase2", 1000, 0)
  12. end
  13.  
  14. function Phase2(pUnit, Event)
  15. if pUnit:GetHealthPct() < 90 then
  16. pUnit:RemoveEvents();
  17. pUnit:RegisterEvent("Elemental_Arc", 2000, 0)
  18. pUnit:RegisterEvent("Elemental_Chain", 20000, 0)
  19. pUnit:RegisterEvent("Elemental_Nova", 30000, 0)
  20. pUnit:RegisterEvent("Phase3", 1000, 0)
  21. end
  22. end
  23.  
  24. function Phase3(pUnit, Event)
  25. if pUnit:GetHealthPct() < 75 then
  26. pUnit:RemoveEvents();
  27. pUnit:SendChatMessage(14, 0, "Water! Make me powerfull.")
  28. pUnit:CastSpell(36881)
  29. pUnit:RegisterEvent("SummonWater",1000, 1)
  30. pUnit:RegisterEvent("Elemental_Blast", 5000, 0)
  31. pUnit:RegisterEvent("Elemental_Bolt", 10000, 0)
  32. pUnit:RegisterEvent("Elemental_Frost", 2000, 0)
  33. pUnit:RegisterEvent("Phase4", 1000, 0)
  34. end
  35. end
  36.  
  37. function Phase4(pUnit, Event)
  38. if pUnit:GetHealthPct() < 50 then
  39. pUnit:RemoveEvents();
  40. pUnit:SendChatMessage(14, 0, "Earth! Protect me!")
  41. pUnit:CastSpell(51489)
  42. pUnit:RegisterEvent("Elemental_Charred", 20000, 0)
  43. pUnit:RegisterEvent("Elemental_Shock", 2500, 0)
  44. pUnit:RegisterEvent("Elemetal_Earth", 15000, 0)
  45. pUnit:RegisterEvent("SummonEarth", 2000, 1)
  46. pUnit:RegisterEvent("Phase5", 1000, 0)
  47. end
  48. end
  49.  
  50. function Phase5(pUnit, Event)
  51. if pUnit:GetHealthPct() < 31 then
  52. pUnit:RemoveEvents();
  53. pUnit:SendChatMessage(14, 0, "Wind! Destroy that stupid Heroes!")
  54. pUnit:CastSpell(54589)
  55. pUnit:RegisterEvent("Elemental_Fury",15000, 0)
  56. pUnit:RegisterEvent("Elemental_Wind",20000, 0)
  57. pUnit:RegisterEvent("Elemental_Burning",16000, 0)
  58. pUnit:RegisterEvent("Elemental_Shear",8000, 0)
  59. pUnit:RegisterEvent("Elemental_Tendrils",50000, 0)
  60. pUnit:RegisterEvent("Elemental_Thunder",40000, 0)
  61. pUnit:RegisterEvent("Elemental_Blade",20000, 0)
  62. end
  63. end
  64.  
  65. RegisterUnitEvent(NPCIDHERE, 1, "Elemental_OnCombat")
  66. RegisterUnitEvent(NPCIDHERE, 2, "Elemental_OnLeaveCombat")
  67. RegisterUnitEvent(NPCIDHERE, 3, "Elemental_OnKilledTarget")
  68. RegisterUnitEvent(NPCIDHERE, 4, "Elemental_OnDied")
  69.  
  70.  
  71. function Elemental_Arc(pUnit, Event)
  72. pUnit:FullCastSpellOnTarget(52921, pUnit:GetRandomPlayer(0))
  73. end
  74.  
  75.  
  76. function Elemental_Chain(pUnit, Event)
  77. pUnit:FullCastSpellOnTarget(59082, pUnit:GetRandomPlayer(0))
  78. end
  79.  
  80.  
  81. function Elemental_Frost(pUnit, Event)
  82. pUnit:FullCastSpellOnTarget(41384, pUnit:GetRandomPlayer(0))
  83. end
  84.  
  85.  
  86. function Elemental_Nova(pUnit, Event)
  87. pUnit:CastSpell(59835)
  88. end
  89.  
  90.  
  91. function Elemental_Shear(pUnit, Event)
  92. pUnit:CastSpell(52870)
  93. end
  94.  
  95.  
  96. function Elemetal_Shield(pUnit, Event)
  97. pUnit:CastSpell(51620, pUnit:GetRandomPlayer(0))
  98. end
  99.  
  100.  
  101. function Elemental_Blast(pUnit, Event)
  102. pUnit:FullCastSpellOnTarget(59520, pUnit:GetRandomPlayer(0))  
  103. end
  104.  
  105.  
  106. function Elemental_Bolt(pUnit, Event)
  107. pUnit:FullCastSpellOnTarget(37138, pUnit:GetRandomPlayer(0))
  108. end
  109.  
  110.  
  111. function Elemental_Charred(pUnit, Event)
  112. pUnit:CastSpell(30129)
  113. end
  114.  
  115.  
  116. function Elemental_Shock(pUnit, Event)
  117. pUnit:FullCastSpellOnTarget(43305, pUnit:GetRandomPlayer(0))
  118. end
  119.  
  120.  
  121. function Elemental_Wind(pUnit, Event)
  122. pUnit:FullCastSpellOnTarget(25189, pUnit:GetRandomPlayer(0))
  123. end
  124.  
  125.  
  126. function Elemental_Burning(pUnit, Event)
  127. pUnit:FullCastSpellOnTarget(17293, pUnit:GetRandomPlayer(0))
  128. end
  129.  
  130.  
  131. function Elemental_Tendrils(pUnit, Event)
  132. pUnit:FullCastSpellOnTarget(23009, pUnit:GetRandomPlayer(0))
  133. end
  134.  
  135.  
  136. function Elemental_Blade(pUnit, Event)
  137. pUnit:FullCastSpellOnTarget(55866, pUnit:GetRandomPlayer(0))
  138. end
  139.  
  140.  
  141. function Elemetal_Earth(pUnit, Event)
  142. pUnit:CastSpell(33919)
  143. end
  144.  
  145.  
  146. function Elemental_Rain(pUnit, Event)
  147. pUnit:CastSpell(34435)
  148. end
  149.  
  150.  
  151. function Elemental_Fury(pUnit, Event)
  152. pUnit:CastSpell(38229)
  153. end
  154.  
  155.  
  156. function Elemental_Thunder(pUnit, Event)
  157. pUnit:CastSpell(53630)
  158. end
  159.  
  160. function Elemental_OnLeaveCombat(pUnit, Event)
  161. pUnit:RemoveEvents();
  162. pUnit:SendChatMessage(14, 0, "Ahah! Your so weak!")
  163. end
  164.  
  165.  
  166. function Elemental_OnDied(pUnit, Event)
  167. pUnit:RemoveEvents();
  168. pUnit:SendChatMessage(14, 0, "This is impossible! The Elements can't be  
  169.  
  170. destroyed!")
  171. end
  172.  
  173.  
  174. function Elemental_OnKilledTarget(pUnit, Event)
  175. pUnit:CastSpell(55948)
  176. pUnit:CastSpell(50363)
  177. pUnit:SendChatMessage(14, 0, "One more down! Soon you will be all dead.")
  178. end
  179.  
  180. function SummonWater(pUnit,event)
  181. x = pUnit:GetX()
  182. y = pUnit:GetY()
  183. z = pUnit:GetZ()
  184. o = pUnit:GetO()
  185. pUnit:SpawnCreature(30419, x+5, y, z, o, 14, 30000)
  186. pUnit:SpawnCreature(30419, x+10, y, z, o, 14, 30000)
  187. end
  188.  
  189. function SummonThunder(pUnit,event)
  190. x = pUnit:GetX()
  191. y = pUnit:GetY()
  192. z = pUnit:GetZ()
  193. o = pUnit:GetO()
  194. pUnit:SpawnCreature(28825, x+5, y, z, o, 14, 30000)
  195. pUnit:SpawnCreature(28825, x+10, y, z, o, 14, 30000)
  196. end
  197.  
  198. function SummonEarth(pUnit,event)
  199. x = pUnit:GetX()
  200. y = pUnit:GetY()
  201. z = pUnit:GetZ()
  202. o = pUnit:GetO()
  203. pUnit:SpawnCreature(28584, x+5, y, z, o, 14, 30000)
  204. pUnit:SpawnCreature(28584, x+10, y, z, o, 14, 30000)
  205. end
  206.  
  207. function Earth_OnCombat(Unit, Event)
  208. Unit:RegisterEvent("Earth_Stone", 6000, 0)
  209. end
  210.  
  211. function Earth_Stone(pUnit, Event)
  212. pUnit:FullCastSpellOnTarget(59742, pUnit:GetRandomPlayer(0))
  213. end
  214.  
  215. function Earth_OnLeaveCombat(Unit, Event)
  216. Unit:RemoveEvents();
  217. end
  218.  
  219. function Earth_OnDied(Unit, Event)
  220. Unit:RemoveEvents();
  221. end
  222.  
  223. function Earth_OnKilledTarget(Unit, Event)
  224. Unit:SendChatMessage(11, 0, "I killed him, master.")
  225. end
  226.  
  227. RegisterUnitEvent(28584, 1, "Earth_OnCombat")
  228. RegisterUnitEvent(28584, 2, "Earth_OnLeaveCombat")
  229. RegisterUnitEvent(28584, 3, "Earth_OnKilledTarget")
  230. RegisterUnitEvent(28584, 4, "Earth_OnDied")
  231.  
  232. function Frostele_OnCombat(Unit, Event)
  233. Unit:RegisterEvent("Frostele_Nova", 10000, 0)
  234. Unit:RegisterEvent("Frostele_Bolt", 2000, 0)
  235. Unit:RegisterEvent("Frostele_Cone", 8000, 0)
  236. end
  237.  
  238. function Frostele_Nova(pUnit, Event)
  239. pUnit:CastSpell(57668)
  240. end
  241.  
  242. function Frostele_Bolt(pUnit, Event)
  243. pUnit:FullCastSpellOnTarget(36990, pUnit:GetRandomPlayer(0))
  244. end
  245.  
  246. function Frostele_Cone(pUnit, Event)
  247. pUnit:CastSpell(29717)
  248. end
  249.  
  250. function Frostele_OnLeaveCombat(Unit, Event)
  251. Unit:RemoveEvents();
  252. end
  253.  
  254. function Frostele_OnDied(Unit, Event)
  255. Unit:RemoveEvents();
  256. end
  257.  
  258. function Frostele_OnKilledTarget(Unit, Event)
  259. Unit:SendChatMessage(11, 0, "I killed him, master.")
  260. end
  261.  
  262. RegisterUnitEvent(30419, 1, "Frostele_OnCombat")
  263. RegisterUnitEvent(30419, 2, "Frostele_OnLeaveCombat")
  264. RegisterUnitEvent(30419, 3, "Frostele_OnKilledTarget")
  265. RegisterUnitEvent(30419, 4, "Frostele_OnDied")
  266.  
  267. function Thunderele_OnCombat(Unit, Event)
  268. Unit:RegisterEvent("Thunderele_Light", 2000, 0)
  269. Unit:RegisterEvent("Thunderele_Breath", 4000, 0)
  270. end
  271.  
  272. function Thunderele_Light(pUnit, Event)
  273. pUnit:FullCastSpellOnTarget(43301, pUnit:GetRandomPlayer(0))
  274. end
  275.  
  276. function Thunderele_Breath(pUnit, Event)
  277. pUnit:CastSpell(38193)
  278. end
  279.  
  280. function Thunderele_OnLeaveCombat(Unit, Event)
  281. Unit:RemoveEvents();
  282. end
  283.  
  284. function Thunderele_OnDied(Unit, Event)
  285. Unit:RemoveEvents();
  286. end
  287.  
  288. function Thunderele_OnKilledTarget(Unit, Event)
  289. Unit:SendChatMessage(11, 0, "I killed him, master.")
  290. end
  291.  
  292. RegisterUnitEvent(28825, 1, "Thunderele_OnCombat")
  293. RegisterUnitEvent(28825, 2, "Thunderele_OnLeaveCombat")
  294. RegisterUnitEvent(28825, 3, "Thunderele_OnKilledTarget")
  295. RegisterUnitEvent(28825, 4, "Thunderele_OnDied")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement