Advertisement
Rochet2

Whitemane crap

Jul 15th, 2012
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- The script was fixed and made working by Rochet2 of AcWeb
  2.  
  3. local T = {} -- The script saves info about whether the script is running in an instance or not
  4.  
  5. -- First quest outside, it just gives the player some food and water
  6. local function Accept90000(event, pPlayer, QuestId, pQuestGiver)
  7.     if QuestId == 90000 then
  8.         pPlayer:AddItem(159, 4)
  9.         pPlayer:AddItem(4540, 4)
  10.     end
  11. end
  12.  
  13. -- First quest inside
  14. function Complete90001(event, pPlayer, QuestId, pUnit)
  15.     local ID = pUnit:GetInstanceID() -- Get the instance ID for the table that saves data for the spesific instances.
  16.     if(QuestId == 90001 and not T[ID]) then -- If the quest completed is 90001 and none of the other quests have been done and they are not running, then
  17.         local Whitemane = pPlayer:GetCreatureNearestCoords(199.408005, 121.653, 134.910004, 90010)
  18.         if(Whitemane) then --If the selected npc is Whitemane the script continues.
  19.             T[ID] = {1, true} -- Save that quest 1 was activated and that it is running. NOTE! The quests should be chained and the NPCs spawned to the right positions with the right quests
  20.             Whitemane:SetNPCFlags(4) -- Disable talking and make the NPC not be able to give or complete quests while walking and talking
  21.             Whitemane:SendChatMessage(12, 7, "Follow me.")
  22.             local Player = Whitemane:GetClosestPlayer()
  23.             Player:CastSpellOnTarget(5406, pPlayer)
  24.             Player:CastSpellOnTarget(49, pPlayer)
  25.             Whitemane:RegisterEvent("Move01_Whitemane90001", 1000, 1) --In 1 second "1000ms" the function "Move01_Whitemane" will run.
  26.         end
  27.     end
  28. end
  29.  
  30. function Move01_Whitemane90001(Whitemane, event)
  31.     Whitemane:MoveTo(199.556656, 108.91169, 128.522507, 4.753242)
  32.     Whitemane:RegisterEvent("Move02_Whitemane90001", 4000, 1)
  33. end
  34.  
  35. function Move02_Whitemane90001(Whitemane, event)
  36.     Whitemane:MoveTo(201.447388, 52.051525, 128.766281, 4.742254)
  37.     Whitemane:RegisterEvent("Move03_Whitemane90001", 24000, 1)
  38. end
  39.  
  40. function Move03_Whitemane90001(Whitemane, event)
  41.     Whitemane:MoveTo(209.785873, 51.152771, 128.840088, 6.267476)
  42.     Whitemane:RegisterEvent("Move04_Whitemane90001", 3000, 1)
  43. end
  44.  
  45. function Move04_Whitemane90001(Whitemane, event)
  46.     Whitemane:MoveTo(236.721359, 50.011505, 115.708603, 0.027489)
  47.     Whitemane:RegisterEvent("Move05_Whitemane90001", 12000, 1)
  48. end
  49.  
  50. function Move05_Whitemane90001(Whitemane, event)
  51.     Whitemane:MoveTo(233.375031, 41.485565, 115.707848, 4.374668)
  52.     Whitemane:RegisterEvent("Move06_Whitemane90001", 3000, 1)
  53. end
  54.  
  55. function Move06_Whitemane90001(Whitemane, event)
  56.     Whitemane:MoveTo(201.992569, 12.324375, 115.707878, 1.586526)
  57.     Whitemane:RegisterEvent("Talk01_Whitemane90001", 19000, 1)
  58. end
  59.  
  60. function Talk01_Whitemane90001(Whitemane, event)
  61.     Whitemane:SendChatMessage(12, 7, "Here we are, speak with me to begin your next test.")
  62.     Whitemane:SetNPCFlags(3) -- Set the NPC to be able to give quests and talk again.
  63.     T[Whitemane:GetInstanceID()][2] = false -- You can now launch the next quest
  64.     -- !!NOTE!! You can no longer start or restart quest 1.
  65. end
  66.  
  67.  
  68. -- Second quest
  69. function OnQuestAccept_Whitemane90002(event, pPlayer, QuestId, pUnit)
  70.     local ID = pUnit:GetInstanceID() -- Get the instance ID for the table that saves data for the spesific instances.
  71.     if(QuestId == 90002 and T[ID] and T[ID][1] == 1 and T[ID][2] == false) then -- If the quest accepted is 90002 and quest 90001 has been completed in the instance, then
  72.         T[ID] = {2, true, 0} -- Save that quest 2 was activated and that it is running. NOTE! The quests should be chained and the NPCs spawned to the right positions with the right quests. The 0 is for counting the killed undead, when it hits 5 the event finished down below.
  73.         pUnit:RegisterEvent("Quest01_Whitemane90002", 5000, 1) -- We use the questgiver (pUnit) to register events since we need him later to do stuff in the script
  74.     end
  75. end
  76.  
  77. function Quest01_Whitemane90002(Whitemane, event)
  78.     local Portal = Whitemane:SpawnCreature(37227, 200.697739, 59.384331, 115.708244, 1.576423, 694, 180000, 0, 0, 0, 1, 0) -- Spawns the portal
  79.     Whitemane:SendChatMessage(42, 0, "The undead are coming, prepare yourself!") -- Questgiver says
  80.     Whitemane:RegisterEvent("Spawn_Timer_Whitemane90002", 4000, 1) -- Spawns an NPC after 4 seconds
  81. end
  82.  
  83. function Spawn_Timer_Whitemane90002(Whitemane, event)
  84.     Whitemane:RegisterEvent("Spawn01_Whitemane90002", 13000, 5) -- Spawn an NPC after 13 seconds 4 times.
  85. end
  86.  
  87. function Spawn01_Whitemane90002(Whitemane, event) -- The function that spawns the NPCs
  88.     Whitemane:SpawnCreature(90012, 200.697739, 59.384331, 115.708244, 4.644086, 14, 120000, 0, 0, 0, 1, 0) -- Sets the spawned creature to the MindlessGhoul variable. (locally, so it will only exist in this function. The variable I mean.)
  89.     Whitemane:RegisterEvent("Move_Ghoul90002", 2000, 1)
  90. end
  91.  
  92. function Move_Ghoul90002(Whitemane, event) -- Sends the spawned Ghoul closer to Whitemane as to make the player engage combat
  93.     local Ghoul = Whitemane:GetCreatureNearestCoords(200.697739, 59.384331, 115.708244, 90012)
  94.     Ghoul:MoveTo(201.975159, 21.787292, 114.983719, 4.718697)
  95. end
  96.  
  97. function Spawn_On_Death(pUnit, event, pPlayer)
  98.     local ID = pUnit:GetInstanceID()
  99.     if(T[ID] and T[ID][1] == 2 and T[ID][2] == true and T[ID][3]) then
  100.         T[ID][3] = T[ID][3] + 1
  101.         if(T[ID][3] >= 5) then
  102.             local Whitemane = pPlayer:GetCreatureNearestCoords(201.992569, 12.324375, 115.707878, 90010)
  103.             local Portal = Whitemane:GetCreatureNearestCoords(200.697739, 59.384331, 115.708244, 37227)
  104.             Portal:Despawn(1000, 0)
  105.             Whitemane:SendChatMessage(12, 7, "On to the next test, follow me.")
  106.             local Player = Whitemane:GetClosestPlayer()
  107.             Player:CastSpellOnTarget(5406, Whitemane:GetClosestPlayer())
  108.             Player:CastSpellOnTarget(49, Whitemane:GetClosestPlayer())
  109.             Whitemane:SetNPCFlags(4) -- Disable talking and make the NPC not be able to give or complete quests while walking and talking
  110.             Whitemane:RegisterEvent("Move01_Whitemane90002", 1000, 1)
  111.         end
  112.     end
  113. end
  114.  
  115. function Move01_Whitemane90002(Whitemane, event)
  116.     Whitemane:MoveTo(247.740143, 37.573757, 115.717438, 0.002345)
  117.     Whitemane:RegisterEvent("Move02_Whitemane90002", 21000, 1)
  118. end
  119.  
  120. function Move02_Whitemane90002(Whitemane, event)
  121.     Whitemane:MoveTo(262.464417, 37.656471, 115.727440, 1.606948)
  122.     Whitemane:RegisterEvent("Move03_Whitemane90002", 6000, 1)
  123. end
  124.  
  125. function Move03_Whitemane90002(Whitemane, event)
  126.     Whitemane:MoveTo(262.334930, 60.696800, 109.974747, 1.598312)
  127.     Whitemane:RegisterEvent("Move04_Whitemane90002", 7000, 1)
  128. end
  129.  
  130. function Move04_Whitemane90002(Whitemane, event)
  131.     Whitemane:MoveTo(262.259644, 101.386047, 109.971985, 1.610067)
  132.     Whitemane:RegisterEvent("Move05_Whitemane90002", 20000, 1)
  133. end
  134.  
  135. function Move05_Whitemane90002(Whitemane, event)
  136.     Whitemane:SetNPCFlags(3)
  137.     Whitemane:SendChatMessage(12, 7, "Here we are, don't worry about the Necromancers they won't attack you for now...")
  138. end
  139.  
  140. -------------Everything Below here is untested and probably not working as intended-----------------
  141.  
  142. function OnQuestAccept_Whitemane90003(event, pPlayer, QuestId, pUnit)
  143.     if QuestId == 90003 then
  144.         local Whitemane = pPlayer:GetCreatureNearestCoords(262.259644, 101.386047, 109.971985, 90010)
  145.         Whitemane:SendChatMessage(42, 0, "The Necromancers have been released!")
  146.         Whitemane:SetFaction(11)
  147.         Whitemane:CastSpell(43202)
  148.         pUnit:RegisterEvent("Spawn_Timer_Whitemane90003", 5000, 1) -- We use the questgiver (pUnit) to register events since we need him later to do stuff in the script
  149.     end
  150. end
  151.  
  152. function Spawn_Timer_Whitemane90003(Whitemane, event)
  153.     Whitemane:RegisterEvent(function() Whitemane:FullCastSpell(26573) end, 10000, 2)
  154.     Whitemane:RegisterEvent("Spawn_Whitemane90003", 2000, 20) -- Spawn an NPC after 2 seconds 19 times.
  155. end
  156.  
  157. function Spawn_Whitemane90003(Whitemane, event)
  158.     local choice = math.random(1,6)
  159.     if choice ==1 then
  160.         Whitemane:SpawnCreature(90034, 246.671005, 81.976799, 110.250999, 0.931493, 14, 120000, 0, 0, 0, 1, 0):ModThreat(Whitemane, 100)
  161.     elseif choice == 2 then
  162.         Whitemane:SpawnCreature(90034, 247.867828, 84.609749, 109.903709, 0.862092, 14, 120000, 0, 0, 0, 1, 0):ModThreat(Whitemane, 100)
  163.     elseif choice == 3 then
  164.         Whitemane:SpawnCreature(90034, 247.351852, 101.655975, 110.166222, 6.175311, 14, 120000, 0, 0, 0, 1, 0):ModThreat(Whitemane, 100)
  165.     elseif choice == 4 then
  166.         Whitemane:SpawnCreature(90034, 275.648315, 101.904953, 109.98517, 3.175088, 14, 120000, 0, 0, 0, 1, 0):ModThreat(Whitemane, 100)
  167.     elseif choice == 5 then
  168.         Whitemane:SpawnCreature(90034, 246.627472, 118.120979, 110.091766, 5.504576, 14, 120000, 0, 0, 0, 1, 0):ModThreat(Whitemane, 100)
  169.     elseif choice == 6 then
  170.         Whitemane:SpawnCreature(90034, 275.929443, 118.208099, 109.920647, 3.988760, 14, 120000, 0, 0, 0, 1, 0):ModThreat(Whitemane, 100)
  171.     end
  172. end
  173.  
  174. --[[
  175. function END_Whitemane90001(pUnit) -- DO NOT RUN THIS UNTIL THE PLAYER HAS FINISHED THE ENTIRE QUEST CHAIN
  176.     pUnit:Despawn(0, 0)
  177.     table.remove(T, ID) -- Quest chain can now be re-triggered
  178. end
  179. ]]
  180.  
  181. RegisterServerHook(14, Accept90000)
  182. RegisterServerHook(22, Complete90001)
  183. RegisterServerHook(14, "OnQuestAccept_Whitemane90002")
  184. RegisterServerHook(14, "OnQuestAccept_Whitemane90003")
  185. RegisterUnitEvent(90012, 4, "Spawn_On_Death")
  186. RegisterUnitEvent(90010, 18, function() return end) -- This allows the use of :RegisterEvent() for Whitemane
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement