Add files via upload

This commit is contained in:
Dinkledork
2023-03-10 03:23:34 -07:00
committed by GitHub
parent bb8d26da51
commit e6a5000f2c
12 changed files with 334 additions and 77 deletions

View File

@@ -1,70 +1,84 @@
local Alleria = {};
local function CastRapidShot(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 71251, true)
function Alleria.OnEnterCombat(event, creature, target)
creature:RegisterEvent(Alleria.CastFD, 1, 1)
creature:RegisterEvent(Alleria.CastRoot, 10300, 1)
creature:RegisterEvent(Alleria.CastDisengage, 10400, 1)
creature:RegisterEvent(Alleria.CastRapidShot, 7100, 0)
creature:RegisterEvent(Alleria.CastMultiShot, 6100, 0)
creature:RegisterEvent(Alleria.CastExplosiveShot, 6600, 0)
creature:RegisterEvent(Alleria.CastBlackArrow, 15300, 0)
creature:RegisterEvent(Alleria.CastShoot, 499, 0)
creature:RegisterEvent(Alleria.ForceDespawn, 90000, 1)
end
local function CastShoot(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 39079, true)
function Alleria.OnLeaveCombat(event, creature)
creature:RemoveEvents()
end
local function CastMultiShot(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 59713, false)
function Alleria.OnDied(event, creature, killer)
creature:RemoveEvents()
end
local function CastExplosiveShot(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 60053, false)
function Alleria.CastRapidShot(event, delay, calls, creature)
local victim = creature:GetVictim()
if not creature:IsCasting() or creature:IsCastingSpell(71251) then
creature:CastSpell(victim, 71251, true)
end
end
local function CastBlackArrow(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 63672, false)
function Alleria.CastShoot(event, delay, calls, creature)
local victim = creature:GetVictim()
if not creature:IsCasting() or not creature:IsCastingSpell(71251) then
creature:CastSpell(victim, 39079, true)
end
end
local function CastDisengage(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 57635, false)
function Alleria.CastMultiShot(event, delay, calls, creature)
local victim = creature:GetVictim()
if not creature:IsCasting() or not creature:IsCastingSpell(71251) then
creature:CastSpell(victim, 59713, false)
end
end
local function CastFD(eventId, delay, calls, creature)
function Alleria.CastExplosiveShot(event, delay, calls, creature)
local victim = creature:GetVictim()
if not creature:IsCasting() or not creature:IsCastingSpell(71251) then
creature:CastSpell(victim, 60053, false)
end
end
function Alleria.CastBlackArrow(event, delay, calls, creature)
local victim = creature:GetVictim()
if not creature:IsCasting() or not creature:IsCastingSpell(71251) then
creature:CastSpell(victim, 63672, false)
end
end
function Alleria.CastDisengage(event, delay, calls, creature)
local victim = creature:GetVictim()
if not creature:IsCasting() or not creature:IsCastingSpell(71251) then
creature:CastSpell(victim, 57635, false)
end
end
function Alleria.CastFD(event, delay, calls, creature)
if not creature:IsCasting() or not creature:IsCastingSpell(71251) then
creature:CastSpell(creature, 23604, false)
end
local function CastRoot(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 50762, false)
end
local function ForceDespawn(eventId, delay, calls, creature)
function Alleria.CastRoot(event, delay, calls, creature)
local victim = creature:GetVictim()
if not creature:IsCasting() or not creature:IsCastingSpell(71251) then
creature:CastSpell(victim, 50762, false)
end
end
function Alleria.ForceDespawn(event, delay, calls, creature)
creature:DespawnOrUnsummon(1)
end
local function OnEnterCombat(event, creature, target)
creature:RegisterEvent(CastFD, 1, 1)
creature:RegisterEvent(CastRoot, 10300, 1)
creature:RegisterEvent(CastDisengage, 10400, 1)
creature:RegisterEvent(CastRapidShot, 7100, 0)
creature:RegisterEvent(CastMultiShot, 6100, 0)
creature:RegisterEvent(CastExplosiveShot, 6600, 0)
creature:RegisterEvent(CastBlackArrow, 15300, 0)
creature:RegisterEvent(CastShoot, 499, 0)
creature:RegisterEvent(ForceDespawn, 90000, 1)
end
local function OnLeaveCombat(event, creature)
creature:RemoveEvents()
end
local function OnDied(event, creature, killer)
creature:RemoveEvents()
end
RegisterCreatureEvent(400021, 1, OnEnterCombat)
RegisterCreatureEvent(400021, 2, OnLeaveCombat)
RegisterCreatureEvent(400021, 4, OnDied)
RegisterCreatureEvent(400021, 1, Alleria.OnEnterCombat)
RegisterCreatureEvent(400021, 2, Alleria.OnLeaveCombat)
RegisterCreatureEvent(400021, 4, Alleria.OnDied)

19
BoneWitch.lua Normal file
View File

@@ -0,0 +1,19 @@
local BoneWitch = {};
local function CastBoneShards(eventId, delay, calls, creature)
creature:CastSpell(creature, 17014, true)
end
local function OnSpawn(event, creature, target)
creature:RegisterEvent(CastBoneShards, 100, 1)
creature:RegisterEvent(CastBoneShards, 14000, 0)
end
local function OnDied(event, creature, killer)
creature:DespawnOrUnsummon(25000)
creature:RemoveEvents()
end
RegisterCreatureEvent(16380, 5, OnSpawn)
RegisterCreatureEvent(16380, 4, OnDied)

42
DarkRanger.lua Normal file
View File

@@ -0,0 +1,42 @@
local DarkRanger = {}
local function CastShoot(eventId, delay, calls, creature)
creature:CastSpell(target, 37770, true) -- cast shoot on target
end
local function CastBlackArrow(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 63671, true)
end
local function CastExplodingShot(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 33792, true)
end
local function CastBarrage(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 10188, true)
end
local function OnEnterCombat(event, creature, target)
creature:RegisterEvent(CastShoot, 750, 0)
creature:RegisterEvent(CastBlackArrow, 16000, 0)
creature:RegisterEvent(CastBarrage, 10000, 0)
creature:RegisterEvent(CastExplodingShot, 7000, 0)
end
local function OnLeaveCombat(event, creature)
creature:RemoveEvents()
end
local function OnDied(event, creature, killer)
creature:RemoveEvents()
end
RegisterCreatureEvent(400072, 1, OnEnterCombat)
RegisterCreatureEvent(400072, 2, OnLeaveCombat)
RegisterCreatureEvent(400072, 4, OnDied)
RegisterCreatureEvent(400073, 1, OnEnterCombat)
RegisterCreatureEvent(400073, 2, OnLeaveCombat)
RegisterCreatureEvent(400073, 4, OnDied)

View File

@@ -1,3 +1,4 @@
--lightning
local npcIds1 = {
8541,
10417,
@@ -15,18 +16,18 @@ local npcIds1 = {
400015,
400016,
300018,
400029,
400032,
16383,
16394,
16423,
16422,
400036,
400056,
400049
400049,
400048,
16437,
16438
}
-- Table to store NPC IDs for group 2
-- Rez Visual
local npcIds2 = {
400013,
400014,
@@ -37,7 +38,25 @@ local npcIds2 = {
400019,
400026,
400027,
400033
400033,
400070,
400065,
400042,
400043
}
-- Shadowstep
local npcIds3 = {
400053,
400069,
400055,
400052,
400047,
400056,
400032,
400029,
400073,
400072
}
-- Function to be executed when an NPC from group 1 is spawned
@@ -62,22 +81,28 @@ local spellId = 100133
creature:CastSpell(creature, spellId, true) -- rez visual
end
-- Function to be executed when an NPC from both groups leaves combat
local function CastSpellOnLeaveCombat(event, creature)
-- Function to be executed when an NPC from group 3 is spawned
local function CastSpellOnSpawnGroup3(event, creature)
if not creature then
print("Error: creature was not set!")
return
end
local spellId = 51908
creature:CastSpell(creature, spellId, true) -- shadowstep cosmetic
end
-- Register the event for NPCs in group 1
for _, npcId in ipairs(npcIds1) do
RegisterCreatureEvent(npcId, 5, CastSpellOnSpawnGroup1)
RegisterCreatureEvent(npcId, 21, CastSpellOnLeaveCombat)
end
-- Register the event for NPCs in group 2
for _, npcId in ipairs(npcIds2) do
RegisterCreatureEvent(npcId, 5, CastSpellOnSpawnGroup2)
RegisterCreatureEvent(npcId, 21, CastSpellOnLeaveCombat)
end
-- Register the event for NPCs in group 3
for _, npcId in ipairs(npcIds3) do
RegisterCreatureEvent(npcId, 5, CastSpellOnSpawnGroup3)
end

View File

@@ -11,13 +11,15 @@ local function OnGossipSelect(event, player, item, sender, intid, code)
if (sender == 150) then
-- Show Scourge Event menu
player:GossipMenuAddItem(0, "|TInterface\\icons\\spell_misc_emotionhappy:37:37:-23|t|cff007d45Start Event for Bonus Lich Runes|r", 100, 0)
player:GossipMenuAddItem(0, "|TInterface\\icons\\spell_misc_emotionsad:37:37:-23|t|cffC41F3BStop Event but Die and Suffer|r", 101, 0)
player:GossipMenuAddItem(0, "|TInterface\\icons\\spell_misc_emotionsad:37:37:-23|t|cffC41F3BStop Event but Suffer|r", 101, 0)
player:GossipMenuAddItem(0, "Back", 0, 0)
player:GossipSendMenu(1, item)
return
elseif (sender == 100) then
-- Start the event
if not IsGameEventActive(17) then
if IsGameEventActive(17) then
player:SendBroadcastMessage("The Scourge event is already active.")
else
player:AddItem(43949, 2)
StartGameEvent(17, true)
player:PlayDirectSound(14797)
@@ -25,7 +27,9 @@ end
player:GossipComplete()
elseif (sender == 101) then
-- Stop the event
if IsGameEventActive(17) then
if not IsGameEventActive(17) then
player:SendBroadcastMessage("The Scourge event is not currently active.")
else
StopGameEvent(17, true)
player:CastSpell(player, 15007, true)
player:RemoveItem(43949, 2)

37
Draven.lua Normal file
View File

@@ -0,0 +1,37 @@
local Draven = {};
function Draven.OnEnterCombat(event, creature, target)
creature:RegisterEvent(Draven.CastFanOfKnives, 10000, 0)
creature:RegisterEvent(Draven.CastSaroniteBomb, 7000, 0)
creature:RegisterEvent(Draven.CastCloakOfShadows, 11500, 0)
creature:RegisterEvent(Draven.CastBladeFlurry, 13000, 0)
end
function Draven.OnLeaveCombat(event, creature)
creature:RemoveEvents()
end
function Draven.OnDied(event, creature, killer)
creature:RemoveEvents()
end
function Draven.CastFanOfKnives(event, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 51723, true)
end
function Draven.CastSaroniteBomb(event, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 56350, true)
end
function Draven.CastCloakOfShadows(event, delay, calls, creature)
creature:CastSpell(creature, 31224, true)
end
function Draven.CastBladeFlurry(event, delay, calls, creature)
creature:CastSpell(creature, 13877, true)
end
RegisterCreatureEvent(400069, 1, Draven.OnEnterCombat)
RegisterCreatureEvent(400069, 2, Draven.OnLeaveCombat)
RegisterCreatureEvent(400069, 4, Draven.OnDied)

25
FlameShocker.lua Normal file
View File

@@ -0,0 +1,25 @@
local FlameShocker = {};
local function CastFlameShock(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 10448, true)
end
local function OnEnterCombat(event, creature, target)
creature:RegisterEvent(CastFlameShock, 100, 1)
creature:RegisterEvent(CastFlameShock, 8000, 0)
end
local function OnLeaveCombat(event, creature)
creature:RemoveEvents()
end
local function OnDied(event, creature, killer)
creature:CastSpell(killer, 28323, true)
creature:DespawnOrUnsummon(25000)
creature:RemoveEvents()
end
RegisterCreatureEvent(16383, 1, OnEnterCombat)
RegisterCreatureEvent(16383, 2, OnLeaveCombat)
RegisterCreatureEvent(16383, 4, OnDied)

View File

@@ -6,3 +6,5 @@ creature:SetDisableGravity(true)
end
RegisterCreatureEvent(400057, 5, frostbroodWhelps.OnSpawn)
RegisterCreatureEvent(16531, 5, frostbroodWhelps.OnSpawn)

View File

@@ -1,4 +1,4 @@
local BRAVE_IDS = {5412, 5511, 5512, 957, 7798, 11026, 5518, 5510, 5509, 1416, 5514, 29016, 29019, 3518, 1472, 31423, 3314, 3312, 3323, 5188, 3370, 3368, 3371, 3316, 3405, 11046, 3347, 3348, 6986}
local BRAVE_IDS = {5412, 5614, 5511, 5512, 957, 7798, 11026, 5518, 5510, 5509, 1416, 5514, 29016, 29019, 3518, 1472, 31423, 3314, 3312, 3323, 5188, 3370, 3368, 3371, 3316, 3405, 11046, 3347, 3348, 6986, 31433}
local BRAVERY_DIALOGUE = {
"I fear no enemy!",
"I will fight to the bitter end!",

View File

@@ -3,7 +3,7 @@ local ALLOWED_MAPS = {
1,
}
local ALLOWED_SPELLS = {100150, 100160, 100161, 100177}
local ALLOWED_SPELLS = {100150, 100160, 100161, 100177, 100186}
function table.indexOf(t, value)
for k, v in ipairs(t) do
@@ -19,15 +19,28 @@ local spellId = spell:GetEntry()
local mapId = player:GetMapId()
if table.indexOf(ALLOWED_SPELLS, spellId) ~= -1 then
if table.indexOf(ALLOWED_MAPS, mapId) == -1 then
spell:Cancel()
player:SendBroadcastMessage("You cannot use that here.")
else
if spellId == 100150 then
player:PlayDirectSound(20428)
end
end
if table.indexOf(ALLOWED_MAPS, mapId) == -1 then
spell:Cancel()
player:SendBroadcastMessage("You can't use that here.")
else
if spellId == 100150 then
player:PlayDirectSound(20428)
end
end
end
end
function OnPlayerZoneChange(event, player, newZone, newArea)
local mapId = player:GetMapId()
if table.indexOf(ALLOWED_MAPS, mapId) == -1 then
for i, allowedSpell in ipairs(ALLOWED_SPELLS) do
local aura = player:GetAura(allowedSpell)
if aura then
player:RemoveAura(allowedSpell)
end
end
end
end
RegisterPlayerEvent(27, OnPlayerZoneChange)
RegisterPlayerEvent(5, OnPlayerCastSpell)

View File

@@ -5,7 +5,7 @@ Draven.ITEM_ID = 60114 -- replace with the ID of the item you want to give
-- Register the gossip event for the NPC
function Draven.OnGossipHello(event, player, creature)
player:GossipMenuAddItem(0, "|TInterface\\Icons\\ability_stealth:50:50:-23:0|tPurchase 3 Stealth Potions.|r", 0, 1)
player:GossipMenuAddItem(0, "|TInterface\\Icons\\ability_stealth:50:50:-23:0|tPurchase 3 Stealth Potions for 75 Silver.|r", 0, 1)
player:GossipSendMenu(1, creature)
end
@@ -27,10 +27,10 @@ end
-- Send a unit yell when the NPC spawns
function Draven.OnSpawn(event, creature)
creature:SendUnitYell("", 0)
creature:CastSpell(creature, 20374)
creature:CastSpell(creature, 17683, true)
end
-- Register the gossip events with the NPC
RegisterCreatureGossipEvent(nil, 1, Draven.OnGossipHello)
RegisterCreatureGossipEvent(nil, 2, Draven.OnGossipSelect)
RegisterCreatureEvent(nil, 5, Draven.OnSpawn)
RegisterCreatureGossipEvent(400069, 1, Draven.OnGossipHello)
RegisterCreatureGossipEvent(400069, 2, Draven.OnGossipSelect)
RegisterCreatureEvent(400069, 5, Draven.OnSpawn)

76
Sylvanas.lua Normal file
View File

@@ -0,0 +1,76 @@
local Sylvanas = {};
function Sylvanas.OnEnterCombat(event, creature, target)
creature:RegisterEvent(Sylvanas.CastRapidShot, 7100, 0)
creature:RegisterEvent(Sylvanas.CastMultiShot, 6100, 0)
creature:RegisterEvent(Sylvanas.CastExplosiveShot, 6600, 0)
creature:RegisterEvent(Sylvanas.CastBlackArrow, 15300, 0)
creature:RegisterEvent(Sylvanas.CastShoot, 499, 0)
end
function Sylvanas.OnLeaveCombat(event, creature)
creature:RemoveEvents()
end
function Sylvanas.OnDied(event, creature, killer)
creature:RemoveEvents()
end
function Sylvanas.CastRapidShot(event, delay, calls, creature)
local victim = creature:GetVictim()
if not creature:IsCasting() or creature:IsCasting(71251) then
creature:CastSpell(victim, 71251, true)
end
end
function Sylvanas.CastShoot(event, delay, calls, creature)
local victim = creature:GetVictim()
if not creature:IsCasting() or not creature:IsCasting(71251) then
creature:CastSpell(victim, 39079, true)
end
end
function Sylvanas.CastMultiShot(event, delay, calls, creature)
local victim = creature:GetVictim()
if not creature:IsCasting() or not creature:IsCasting(71251) then
creature:CastSpell(victim, 59713, true)
end
end
function Sylvanas.CastExplosiveShot(event, delay, calls, creature)
local victim = creature:GetVictim()
if not creature:IsCasting() or not creature:IsCasting(71251) then
creature:CastSpell(victim, 60053, true)
end
end
function Sylvanas.CastBlackArrow(event, delay, calls, creature)
local victim = creature:GetVictim()
if not creature:IsCasting() or not creature:IsCasting(71251) then
creature:CastSpell(victim, 63672, true)
end
end
function Sylvanas.OnSpawn(event, creature)
creature:SendUnitSay("Hello Thrall. You didn't think I'd let you have all the fun, did you?", 0)
creature:CastSpell(creature, 51908, true)
end
function Sylvanas.OnHealthCheck(event, creature, attacker, damage)
if (creature:GetHealth() - damage) <= 15 then
creature:RegisterEvent(Sylvanas.Shadowstep, 4800, 1)
end
end
function Sylvanas.Shadowstep(event, delay, calls, creature)
creature:CastSpell(creature, 51908, true)
creature:CastSpell(creature, 58984, true)
creature:SendUnitYell("Thrall...I must be going. Hopefully I thinned enough of the scourge forces for you...now you can handle the rest.", 0)
creature:DespawnOrUnsummon(5000)
end
RegisterCreatureEvent(400071, 9, Sylvanas.OnHealthCheck)
RegisterCreatureEvent(400071, 5, Sylvanas.OnSpawn)
RegisterCreatureEvent(400071, 1, Sylvanas.OnEnterCombat)
RegisterCreatureEvent(400071, 2, Sylvanas.OnLeaveCombat)
RegisterCreatureEvent(400071, 4, Sylvanas.OnDied)