View difference between Paste ID: jGBDRQ0t and v8rZ5fsk
SHOW: | | - or go back to the newest paste.
1
--//////////////////////////////////
2
--////   Holystone Productions  ////
3
--////       Copy Right         ////
4
--////  Blizzlike Repack v 3.0  ////
5
--//////////////////////////////////
6
7
print("Loading LordMarrowgar")
8
9
--[ Npc's ID's ]--
10
11
  local LordMarrowgar                        = 36612
12
  local ColdFlame                            = 36672
13
  local Spike                                = 38711
14
  
15
--[ Spells ]--
16
17
    -- Lord Marrowgar
18
  
19
  local Spell_Bone_Slice                     = 69055
20
  local Spell_Bone_Storm_10N                 = 69075
21
  local Spell_Bone_Storm_25N                 = 70835
22
  local Spell_Bone_Storm_10HC                = 70835
23
  local Spell_Bone_Storm_25HC                = 70836
24
  local Spell_Spike_Graveyard                = 69057
25
  local Spell_ColdFlame_Normal               = 69140
26
  local Spell_ColdFlame_Storm                = 72705
27
  
28
    -- Bone Spike
29
30
  local Spell_Impale                         = 69065
31
32
    -- ColdFlame
33
	
34
  local Spell_ColdFlame_10N                  = 69146
35
  local Spell_ColdFlame_25N                  = 70823
36
  local Spell_ColdFlame_10HC                 = 70824
37
  local Spell_ColdFlame_25HC                 = 70825
38
  
39
--[ Speaks ]--
40
41
  local Say_Marrowgar_Enter_Zone             = 16950
42
  local Say_Marrowgar_Aggro                  = 16941
43
  local Say_Marrowgar_Bone_Storm             = 16946
44
  local Say_Marrowgar_BoneSpike_One          = 16947
45
  local Say_Marrowgar_BoneSpike_Two          = 16948
46
  local Say_Marrowgar_BoneSpike_Tree         = 16949
47
  local Say_Marrowgar_Kill_One               = 16942
48
  local Say_Marrowgar_Kill_Two               = 16943
49
  local Say_Marrowgar_Death                  = 16944
50
  local Say_Marrowgar_Berserk                = 16945
51
  
52
  
53
  local Say_Marrowgar_Enter_Zone_Speak       = "This is the beginning AND the end, mortals. None may enter the master's sanctum!"
54
  local Say_Marrowgar_Aggro_Speak            = "The Scourge will wash over this world as a swarm of death and destruction!"
55
  local Say_Marrowgar_Bone_Storm_Speak       = "BONE STORM!"
56
  local Say_Marrowgar_BoneSpike_Speak_One    = "Bound by bone!"
57
  local Say_Marrowgar_BoneSpike_Speak_Two    = "Stick Around!"
58
  local Say_Marrowgar_BoneSpike_Speak_Tree   = "The only escape is death!"
59
  local Say_Marrowgar_Kill_Speak_One         = "More bones for the offering!"
60
  local Say_Marrowgar_Kill_Speak_Two         = "Languish in damnation!"
61
  local Say_Marrowgar_Death_Speak            = "I see... only darkness..."
62
  local Say_Marrowgar_Berserk_Speak          = "THE MASTER'S RAGE COURSES THROUGH ME!"
63
  
64
--[ Lord Marrowgar Spawn ]--
65
66
function LordMarrowgar_OnSpawn(punit, event)
67
  local Marrowgar = punit
68
    Marrowgar:GetInstanceID()
69
  local Dungeon = punit:GetDungeonDifficulty()
70
    if Dungeon == 0 then
71
	  Marrowgar:SetCombatCapable(0)
72
	  Marrowgar:SetMaxHealth(6972500)
73
   end
74
    if Dungeon == 1 then
75
      Marrowgar:SetCombatCapable(0)
76
      Marrowgar:SetMaxHealth(10500000)
77
   end
78
    if Dungeon == 2 then
79
      Marrowgar:SetCombatCapable(0)
80
      Marrowgar:SetMaxHealth(23700000)
81
   end
82
    if Dungeon == 3 then
83
      Marrowgar:SetCombatCapable(0)
84
      Marrowgar:SetMaxHealth(31376000)
85
   end
86
    local Player = punit:GetClosestPlayer()
87
      if punit:GetDistanceYards(Player) < 65 then
88
	    Marrowgar:SendChatMessage(14, 0, Say_Marrowgar_Enter_Zone_Speak)
89
		Marrowgar:PlaySoundToSet(Say_Marrowgar_Enter_Zone)
90
	end
91
end
92
93
RegisterUnitEvent(LordMarrowgar, 18, "LordMarrowgar_OnSpawn")
94
95
--[ Lord Marrowgar Combat ]--
96
97
function LordMarrowgar_OnCombat(punit, event)
98
      punit:SendChatMessage(14, 0, Say_Marrowgar_Aggro_Speak)
99
	  punit:PlaySoundToSet(Say_Marrowgar_Aggro)
100
    local Dungeon = punit:GetDungeonDifficulty()
101
	  if Dungeon == 0 then
102
	   punit:RegisterEvent("Marrowgar_Bone_Slice", 10000, 0)
103-
	   punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000))
103+
	   punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000), 0)
104-
	   punit:RegisterEvent("Marrowgar_ColdFlame", math.random (5000, 6000))
104+
	   punit:RegisterEvent("Marrowgar_ColdFlame", math.random (5000, 6000), 0)
105-
	   punit:RegisterEvent("Marrowgar_BoneStorm", math.random (45000, 50000))
105+
	   punit:RegisterEvent("Marrowgar_BoneStorm", math.random (45000, 50000), 0)
106
	end
107
	  if Dungeon == 1 then
108
	   punit:RegisterEvent("Marrowgar_Bone_Slice", 10000, 0)
109-
	   punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000))
109+
	   punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000), 0)
110-
	   punit:RegisterEvent("Marrowgar_ColdFlame", math.random (5000, 6000))
110+
	   punit:RegisterEvent("Marrowgar_ColdFlame", math.random (5000, 6000), 0)
111-
	   punit:RegisterEvent("Marrowgar_BoneStorm", math.random (45000, 50000))
111+
	   punit:RegisterEvent("Marrowgar_BoneStorm", math.random (45000, 50000), 0)
112
	end
113
	  if Dungeon == 2 then
114
	   punit:RegisterEvent("Marrowgar_Bone_Slice", 10000, 0)
115-
	   punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000))
115+
	   punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000), 0)
116-
	   punit:RegisterEvent("Marrowgar_ColdFlame", math.random (5000, 6000))
116+
	   punit:RegisterEvent("Marrowgar_ColdFlame", math.random (5000, 6000), 0)
117-
	   punit:RegisterEvent("Marrowgar_BoneStorm", math.random (45000, 50000))
117+
	   punit:RegisterEvent("Marrowgar_BoneStorm", math.random (45000, 50000), 0)
118
	end
119
	  if Dungeon == 3 then
120
	   punit:RegisterEvent("Marrowgar_Bone_Slice", 10000, 0)
121-
	   punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000))
121+
	   punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000), 0)
122-
	   punit:RegisterEvent("Marrowgar_ColdFlame", math.random (5000, 6000))
122+
	   punit:RegisterEvent("Marrowgar_ColdFlame", math.random (5000, 6000), 0)
123-
	   punit:RegisterEvent("Marrowgar_BoneStorm", math.random (45000, 50000))
123+
	   punit:RegisterEvent("Marrowgar_BoneStorm", math.random (45000, 50000), 0)
124
	end
125
end
126
127
RegisterUnitEvent(LordMarrowgar, 1, "LordMarrowgar_OnCombat")
128
129
function Marrowgar_Bone_Slice(punit, event)
130
  local Player = punit:GetClosestPlayer()
131
   if Player ~= nil then
132
    punit:CastSpellOnTarget(Spell_Bone_Slice, Player)
133
  end
134
end
135
136
function Marrowgar_Bone_Spike_Graveyard(punit, event)
137
   if Dungeon == 0 then
138
     local player10 = punit:GetRandomPlayer(0)
139
	  local x = player:GetX()
140
	  local y = player:GetY()
141
	  local z = player:GetZ()
142
	   punit:SpawnCreature(Spike, x, y, z, o, 21, 650000)
143
end
144
   if Dungeon == 1 then
145
     local player10 = punit:GetRandomPlayer(0)
146
	  local x = player:GetX()
147
	  local y = player:GetY()
148
	  local z = player:GetZ()
149
	   punit:SpawnCreature(Spike, x, y, z, o, 21, 650000)
150
end
151
   if Dungeon == 2 then
152
     local targets = GetThreeRandomEnemies(pUnit)
153
        if(targets) then
154
           for k,v in ipairs(targets) do
155
	  local x = player:GetX()
156
	  local y = player:GetY()
157
	  local z = player:GetZ()
158
	   punit:SpawnCreature(Spike, x, y, z, o, 21, 650000) 
159
	 end
160
  end
161
end
162
   if Dungeon == 3 then
163
     local targets = GetThreeRandomEnemies(pUnit)
164
        if(targets) then
165
           for k,v in ipairs(targets) do
166
	  local x = player:GetX()
167
	  local y = player:GetY()
168
	  local z = player:GetZ()
169
	   punit:SpawnCreature(Spike, x, y, z, o, 21, 650000)
170
	  end
171
    end
172
  end
173
end
174
175
function Marrowgar_ColdFlame(punit, event)
176
   local x = punit:GetX()
177
   local y = punit:GetY()
178
   local z = punit:GetZ()
179
   local o = punit:GetO()
180
    punit:SpawnCreature(ColdFlame, x, y, z, o, 21, 30000)
181
end
182
183
function Marrowgar_BoneStorm(punit, event)
184
    local Dungeon = punit:GetDungeonDifficulty()
185
	  if Dungeon == 0 then
186
	 punit:RemoveEvents()
187
	  punit:Root()
188
	   punit:SetCombatCapable(1)
189
	   punit:FullCastSpell(Spell_Bone_Storm_10N)
190
	   punit:AddAura(Spell_Bone_Storm_10N, 20000)
191
	   punit:RegisterEvent("Event_Marrowgar_Move", 7000, 2)
192
	   punit:RegisterEvent("Event_Marrowgar_Stop", 20000, 1)
193
	end
194
	  if Dungeon == 1 then
195
	 punit:RemoveEvents()
196
	  punit:Root()
197
	   punit:SetCombatCapable(1)
198
	   punit:FullCastSpell(Spell_Bone_Storm_25N)
199
	   punit:AddAura(Spell_Bone_Storm_25N, 30000)
200-
           punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000))
200+
           punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000), 0)
201
	   punit:RegisterEvent("Event_Marrowgar_Move", 10000, 2)
202
	   punit:RegisterEvent("Event_Marrowgar_Stop", 30000, 1)
203
	end
204
	  if Dungeon == 2 then
205
	 punit:RemoveEvents()
206
	  punit:Root()
207
	   punit:SetCombatCapable(1)
208
	   punit:FullCastSpell(Spell_Bone_Storm_10HC)
209
	   punit:AddAura(Spell_Bone_Storm_10HC, 20000)
210-
           punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000))
210+
           punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000), 0)
211
	   punit:RegisterEvent("Event_Marrowgar_Move", 7000, 2)
212
	   punit:RegisterEvent("Event_Marrowgar_Stop", 20000, 1)
213
	end
214
	  if Dungeon == 3 then
215
	 punit:RemoveEvents()
216
	  punit:Root()
217
	   punit:SetCombatCapable(1)
218
	   punit:FullCastSpell(Spell_Bone_Storm_25HC)
219
	   punit:AddAura(Spell_Bone_Storm_25HC, 30000)
220-
           punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000))
220+
           punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000), 0)
221
	   punit:RegisterEvent("Event_Marrowgar_Move", 10000, 2)
222
	   punit:RegisterEvent("Event_Marrowgar_Stop", 30000, 1)
223
	end
224
end
225
226
function Event_Marrowgar_Move(punit, event)
227
   punit:UnRoot()
228
     punit:SetMovementFlags(1)
229
	 punit:ModifyRunSpeed(30)
230
	  local target = punit:GetRandomPlayer(0)
231
	   local x = target:GetX()
232
	   local y = target:GetY()
233
	   local z = target:GetZ()
234
	   local o = target:GetO()
235
	  punit:MoveTo(x, y, z, o)
236
	 punit:Root()
237
end
238
239
function Event_Marrowgar_Stop(punit, event)
240
    local Dungeon = punit:GetDungeonDifficulty()
241
	  if Dungeon == 0 then
242
	    if punit:HasAura(Spell_Bone_Storm_10N) == true then
243
		 punit:RemoveAura(Spell_Bone_Storm_10N)
244
		 punit:UnRoot()
245
		 punit:RemoveEvents()
246
		   punit:RegisterEvent("LordMarrowgar_OnCombat", 1, 1)
247
	  end
248
	end
249
	  if Dungeon == 1 then
250
	    if punit:HasAura(Spell_Bone_Storm_25N) == true then
251
		 punit:RemoveAura(Spell_Bone_Storm_25N)
252
		 punit:UnRoot()
253
		 punit:RemoveEvents()
254
		   punit:RegisterEvent("LordMarrowgar_OnCombat", 1, 1)
255
	  end
256
	end
257
	  if Dungeon == 2 then
258
	    if punit:HasAura(Spell_Bone_Storm_10HC) == true then
259
		 punit:RemoveAura(Spell_Bone_Storm_10HC)
260
		 punit:UnRoot()
261
		 punit:RemoveEvents()
262
		   punit:RegisterEvent("LordMarrowgar_OnCombat", 1, 1)
263
	  end
264
	end
265
	  if Dungeon == 3 then
266
	    if punit:HasAura(Spell_Bone_Storm_25HC) == true then
267
		 punit:RemoveAura(Spell_Bone_Storm_25HC)
268
		 punit:UnRoot()
269
		 punit:RemoveEvents()
270
		   punit:RegisterEvent("LordMarrowgar_OnCombat", 1, 1)
271
		 end
272
	end
273
end
274
275
--[Lord Marrowgar End's & Adds Start]--
276
277
function ColdFlame_OnSpawn(punit, event)
278
  local target = punit:GetRandomPlayer(0)
279
   if target ~= nil then
280
    punit:SetMovementFlags(0)
281
	 punit:ModifyRunSpeed(8)
282
	  local x = target:GetX()
283
      local y = target:GetY()
284
	  local z = target:GetZ()
285
	  local o = target:GetO()
286
	 punit:MoveTo(x+x, y+y, z, o)
287
	  punit:RegisterEvent("Event_ColdFlame_Spell", 200, 0)
288
	end
289
end
290
291
function Event_ColdFlame_Spell(punit, event)
292
    local Dungeon = punit:GetDungeonDifficulty()
293
	  if Dungeon == 0 then
294
        local x = punit:GetX()
295
        local y = punit:GetY()
296
        local z = punit:GetZ()
297
        punit:CastSpellAoF(x, y, z, Spell_ColdFlame_10N)
298
	end
299
	  if Dungeon == 1 then
300
        local x = punit:GetX()
301
        local y = punit:GetY()
302
        local z = punit:GetZ()
303
        punit:CastSpellAoF(x, y, z, Spell_ColdFlame_25N)
304
	end
305
	  if Dungeon == 2 then
306
        local x = punit:GetX()
307
        local y = punit:GetY()
308
        local z = punit:GetZ()
309
        punit:CastSpellAoF(x, y, z, Spell_ColdFlame_10HC)
310
	end
311
	  if Dungeon == 3 then
312
        local x = punit:GetX()
313
        local y = punit:GetY()
314
        local z = punit:GetZ()
315
        punit:CastSpellAoF(x, y, z, Spell_ColdFlame_25HC)
316
	end
317
end
318
319
function Spike_OnSpawn(punit, event)
320
    local Dungeon = punit:GetDungeonDifficulty()
321
	  if Dungeon == 0 then
322
	   punit:SetMaxHealth(46255)
323
        punit:Root
324
         local target = punit:GetClosestPlayer()
325
	      if target ~= nil then
326
		   target:AddAura(Spell_Impale, 0)
327
	    end
328
	      if punit:GetHealthPct() <= 10 then
329
		   target:RemoveAura(Spell_Impale)
330
	    end
331
	end
332
		  if Dungeon == 1 then
333
	   punit:SetMaxHealth(74605)
334
        punit:Root
335
         local target = punit:GetClosestPlayer()
336
	      if target ~= nil then
337
		   target:AddAura(Spell_Impale, 0)
338
	    end
339
	      if punit:GetHealthPct() <= 10 then
340
		   target:RemoveAura(Spell_Impale)
341
	    end
342
	end
343
		  if Dungeon == 2 then
344
	   punit:SetMaxHealth(134289)
345
        punit:Root
346
         local target = punit:GetClosestPlayer()
347
	      if target ~= nil then
348
		   target:AddAura(Spell_Impale, 0)
349
	    end
350
	      if punit:GetHealthPct() <= 10 then
351
		   target:RemoveAura(Spell_Impale)
352
	    end
353
	end
354
		  if Dungeon == 3 then
355
	   punit:SetMaxHealth(129816)
356
        punit:Root
357
         local target = punit:GetClosestPlayer()
358
	      if target ~= nil then
359
		   target:AddAura(Spell_Impale, 0)
360
	    end
361
	      if punit:GetHealthPct() <= 10 then
362
		   target:RemoveAura(Spell_Impale)
363
	    end
364
	end
365
end
366
367
RegisterUnitEvent(ColdFlame, 18, "ColdFlame_OnSpawn")
368
RegisterUnitEvent(Spike, 18, "Spike_OnSpawn")