Add files via upload

This commit is contained in:
Dinkledork
2023-02-15 15:04:02 -07:00
committed by GitHub
parent 20cf067590
commit cc5afc7c6c
15 changed files with 430 additions and 23 deletions

View File

@@ -28,12 +28,11 @@ end
local function CastDisengage(eventId, delay, calls, creature) local function CastDisengage(eventId, delay, calls, creature)
local victim = creature:GetVictim() local victim = creature:GetVictim()
creature:CastSpell(victim, 781, false) creature:CastSpell(victim, 57635, false)
end end
local function CastFD(eventId, delay, calls, creature) local function CastFD(eventId, delay, calls, creature)
local victim = creature:GetVictim() creature:CastSpell(creature, 23604, false)
creature:CastSpell(victim, 23604, false)
end end
local function CastRoot(eventId, delay, calls, creature) local function CastRoot(eventId, delay, calls, creature)

30
AlliancePaladin.lua Normal file
View File

@@ -0,0 +1,30 @@
local AlliancePaladin = 400030
local kingsSpell = 25898
local wisdomSpell = 25918
local mightSpell = 25916
local function OnSpawn(event, creature)
creature:CastSpell(creature, kingsSpell, true)
end
local function OnGossipHello(event, player, creature)
player:GossipMenuAddItem(9, "|TInterface\\Icons\\spell_magic_magearmor:50:50:-43:0|tGrant me a Blessing of Kings", 0, 1, false, "", 0)
player:GossipMenuAddItem(9, "|TInterface\\Icons\\spell_holy_sealofwisdom:50:50:-43:0|tGrant me a Blessing of Wisdom", 0, 2, false, "", 0)
player:GossipMenuAddItem(9, "|TInterface\\Icons\\spell_holy_fistofjustice:50:50:-43:0|tGrant me a Blessing of Might", 0, 3, false, "", 0)
player:GossipSendMenu(1, creature)
end
local function OnGossipSelect(event, player, creature, sender, intid, code, menuid)
if intid == 1 then
player:CastSpell(player, kingsSpell, true)
elseif intid == 2 then
player:CastSpell(player, wisdomSpell, true)
elseif intid == 3 then
player:CastSpell(player, mightSpell, true)
end
player:GossipComplete()
end
RegisterCreatureEvent(AlliancePaladin, 5, OnSpawn)
RegisterCreatureGossipEvent(AlliancePaladin, 1, OnGossipHello)
RegisterCreatureGossipEvent(AlliancePaladin, 2, OnGossipSelect)

51
AlliancePaladin2.lua Normal file
View File

@@ -0,0 +1,51 @@
local AlliancePaladin = {}
local function CastCS(eventId, delay, calls, creature)
creature:CastSpell(creature, 35395, true)
end
local function CastCons(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 20924, true)
end
local function CastDS(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 53385, true)
end
local function CastJOL(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 20271, true)
end
local function CastAvengingWrath(event, creature)
creature:CastSpell(creature, 31884, true)
end
local function CastKings(event, creature)
creature:CastSpell(creature, 20217, true)
end
local function OnEnterCombat(event, creature, target)
creature:RegisterEvent(CastCS, 6000, 0)
creature:RegisterEvent(CastCons, 8000, 0)
creature:RegisterEvent(CastDS, 10000, 0)
creature:RegisterEvent(CastJOL, 11000, 0)
creature:RegisterEvent(CastAvengingWrath, 1, 1)
end
local function OnLeaveCombat(event, creature)
creature:RemoveEvents()
end
local function OnDied(event, creature, killer)
creature:RemoveEvents()
end
local function OnSpawn(event, creature)
creature:CastSpell(creature, 20217, true)
end
RegisterCreatureEvent(400030, 1, OnEnterCombat)
RegisterCreatureEvent(400030, 2, OnLeaveCombat)
RegisterCreatureEvent(400030, 4, OnDied)
RegisterCreatureEvent(400030, 5, OnSpawn)

View File

@@ -12,26 +12,10 @@ local function CastSWP(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 27605, true) creature:CastSpell(creature:GetVictim(), 27605, true)
end end
local function CastHeal(eventId, delay, calls, creature)
local friendlyUnit = creature:GetRandomFriendlyUnit(5.0)
if friendlyUnit then
creature:CastSpell(friendlyUnit, 25314, true)
end
end
local function CastRenew(eventId, delay, calls, creature)
local friendlyUnit = creature:GetRandomFriendlyUnit(5.0)
if friendlyUnit then
creature:CastSpell(friendlyUnit, 25315, true)
end
end
local function OnEnterCombat(event, creature, target) local function OnEnterCombat(event, creature, target)
creature:RegisterEvent(CastSmite, 2600, 0) creature:RegisterEvent(CastSmite, 2600, 0)
creature:RegisterEvent(CastHolyFire, 5000, 0) creature:RegisterEvent(CastHolyFire, 5000, 0)
creature:RegisterEvent(CastSWP, 15000, 0) creature:RegisterEvent(CastSWP, 15000, 0)
creature:RegisterEvent(CastHeal, 10000, 0)
creature:RegisterEvent(CastRenew, 7000, 0)
end end
local function OnLeaveCombat(event, creature) local function OnLeaveCombat(event, creature)

26
CreepStalker.lua Normal file
View File

@@ -0,0 +1,26 @@
local CreepStalker = {};
local function CastRake(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 9904, true)
end
local function CastStun(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 34510, true)
end
local function OnEnterCombat(event, creature, target)
creature:RegisterEvent(CastRake, 5000, 0)
creature:RegisterEvent(CastStun, 12000, 0)
end
local function OnLeaveCombat(event, creature)
creature:RemoveEvents()
end
local function OnDied(event, creature, killer)
creature:RemoveEvents()
end
RegisterCreatureEvent(400032, 1, OnEnterCombat)
RegisterCreatureEvent(400032, 2, OnLeaveCombat)
RegisterCreatureEvent(400032, 4, OnDied)

View File

@@ -15,7 +15,8 @@ local npcIds1 = {
400015, 400015,
400016, 400016,
300018, 300018,
400029 400029,
400032
} }
-- Table to store NPC IDs for group 2 -- Table to store NPC IDs for group 2
@@ -28,7 +29,8 @@ local npcIds2 = {
400018, 400018,
400019, 400019,
400026, 400026,
400027 400027,
400033
} }
-- Function to be executed when an NPC from group 1 is spawned -- Function to be executed when an NPC from group 1 is spawned

21
Duthorian.lua Normal file
View File

@@ -0,0 +1,21 @@
local DuthorianRall = {};
local function CastJoL(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 20185, true)
end
local function OnEnterCombat(event, creature, target)
creature:RegisterEvent(CastJoL, 5000, 0)
end
local function OnLeaveCombat(event, creature)
creature:RemoveEvents()
end
local function OnDied(event, creature, killer)
creature:RemoveEvents()
end
RegisterCreatureEvent(6171, 1, OnEnterCombat)
RegisterCreatureEvent(6171, 2, OnLeaveCombat)
RegisterCreatureEvent(6171, 4, OnDied)

21
Laurena.lua Normal file
View File

@@ -0,0 +1,21 @@
local Laurena = {};
local function CastSmite(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 10934, true)
end
local function OnEnterCombat(event, creature, target)
creature:RegisterEvent(CastSmite, 3000, 0)
end
local function OnLeaveCombat(event, creature)
creature:RemoveEvents()
end
local function OnDied(event, creature, killer)
creature:RemoveEvents()
end
RegisterCreatureEvent(376, 1, OnEnterCombat)
RegisterCreatureEvent(376, 2, OnLeaveCombat)
RegisterCreatureEvent(376, 4, OnDied)

23
NPCBrave.lua Normal file
View File

@@ -0,0 +1,23 @@
local BRAVE_IDS = {5412, 5511, 5512, 957, 7798, 11026, 5518, 5510, 5509, 1416, 5514, 29016, 29019}
local BRAVERY_DIALOGUE = {
"I fear no enemy!",
"I will fight to the bitter end!",
"This battle is mine!",
"This is MY city!",
"My courage will never falter!",
"I'll show you what true bravery is!",
"I am unbreakable!",
"This fight is mine to win!",
"I'll fight until my last breath!",
"Pfft, you think you can scare the likes of me!?"
}
local function OnCombat(event, creature, target)
if math.random() < 0.5 then -- 50% chance to trigger dialogue
creature:SendUnitSay(BRAVERY_DIALOGUE[math.random(#BRAVERY_DIALOGUE)], 0)
end
end
for i, id in ipairs(BRAVE_IDS) do
RegisterCreatureEvent(id, 1, OnCombat)
end

29
NPCFreakout.lua Normal file
View File

@@ -0,0 +1,29 @@
local FREAKOUT_NPC = { 30217, 4981, 483, 5193, 1402, 70021, 1257, 1286, 1285, 3520, 3513, 1432, 1402, 1444, 7917, 1212, 6173, 5489, 4982, 5484, 14500, 14450, 14496, 14497, 6579, 5519, 6007, 29152, 9977 }
function OnEnterCombat(event, creature, target)
creature:CastSpell(creature, 31358, true) -- fear spell
local yellOptions = {
"Aaahhh! Somebody help!",
"I can't believe this is happening, why is this happening?!",
"I don't know what to do, I don't know what to do!",
"No! Stay away from me!",
"Please, please let this be a nightmare!",
"I can't handle this, I can't handle this!",
"No, no, no!",
"This can't be happening!",
"I'm not ready for this!",
"This is insane, how did we get here?!",
"Why is this happening to me?!",
"I don't want to die!",
"I'm not prepared for this, I'm not prepared for this at all!",
"Please, someone help me!",
"There's no way this is happening!"
}
local randomIndex = math.random(1, 15)
local selectedYell = yellOptions[randomIndex]
creature:SendUnitYell(selectedYell, 0)
end
for i, id in ipairs(FREAKOUT_NPC) do
RegisterCreatureEvent(id, 1, OnEnterCombat)
end

89
Patchqwerk.lua Normal file
View File

@@ -0,0 +1,89 @@
local Patchqwerk = {}
-- This function is called when Patchqwerk is spawned.
function Patchqwerk.OnSpawn(event, creature)
-- Sends a yell message ("Patchqwerk make Lich King proud! You die now!")
creature:SendUnitYell("Patchqwerk make Lich King proud! You die now!",0)
-- Casts spell 41924 on itself
creature:CastSpell(creature, 41924, true)
end
-- This function is called repeatedly every 7 seconds when Patchqwerk is in combat.
function Patchqwerk.PoisonBoltVolley(eventId, delay, calls, creature)
-- Casts spell 40095 on its current target
creature:CastSpell(creature:GetVictim(), 40095, true)
end
-- This function is called repeatedly every 15 seconds when Patchqwerk is in combat.
function Patchqwerk.CastHatefulStrike(eventId, delay, calls, creature)
-- Casts spell 28308 on its current target
creature:CastSpell(creature:GetVictim(), 28308, true)
end
-- This function is called repeatedly every 20 seconds when Patchqwerk is in combat.
function Patchqwerk.CastGore(eventId, delay, calls, creature)
-- Casts spell 48130 on its current target
creature:CastSpell(creature:GetVictim(), 48130, true)
end
-- This function is called when Patchqwerk enters combat.
function Patchqwerk.OnEnterCombat(event, creature, target)
-- Array of yell options
local yellOptions = { "Patchqwerk huuuuungry!", "Time for a snack!", "You're mine now!", "You look delicious. Patchqwerk eat you now!", "I not eat in days, time to feast!", "Me smash and eat you now!", "Me so hungry, me eat anything... even you!" }
-- Selects a random yell option
local randomIndex = math.random(1, 7)
local selectedYell = yellOptions[randomIndex]
-- Sends the selected yell message
creature:SendUnitYell(selectedYell, 0)
-- Registers the PoisonBoltVolley, CastHatefulStrike, and CastGore functions to be called repeatedly
creature:RegisterEvent(Patchqwerk.PoisonBoltVolley, 7000, 0)
creature:RegisterEvent(Patchqwerk.CastHatefulStrike, 15000, 0)
creature:RegisterEvent(Patchqwerk.CastGore, 20000, 0)
end
-- This function is called when Patchqwerk leaves combat.
function Patchqwerk.OnLeaveCombat(event, creature)
-- Array of yell options
local yellOptions = { "You not so tasty afterall...", "I be back for seconds!", "No more play? Too bad...", "Maybe next time you taste better!","Me still hungry, come back later!","You not enough food, me go find more!", "Aww...You no stay for dinner? You make Patchqwerk sad." }
-- Selects a random yell option
local randomIndex = math.random(1, 7)
local selectedYell = yellOptions[randomIndex]
-- Sends the selected yell message
creature:SendUnitYell(selectedYell, 0)
-- Removes any registered events
creature:RemoveEvents()
end
-- This function is called when Patchqwerk dies.
function Patchqwerk.OnDied(event, creature, killer)
-- Sends a yell message ("Patchqwerk forget to chew...")
creature:SendUnitYell("Patchqwerk forget to chew...", 0)
-- Sends a broadcast message to the player who killed Patchqwerk
if(killer:GetObjectType() == "Player") then
killer:SendBroadcastMessage("You killed " ..creature:GetName().."!")
end
-- Removes any registered events
creature:RemoveEvents()
end
-- This function is called repeatedly when Patchqwerk's health changes.
function Patchqwerk.CheckHealth(event, creature)
-- If its health drops below 20%,
if (creature:HealthBelowPct(20)) then
-- Sends a yell message ("Patchqwerk go berserk!")
creature:SendUnitYell("Patchqwerk go berserk!", 0)
-- Casts spell 41305
creature:CastSpell(creature, 41305, true)
-- If its health rises above 95%,
elseif (creature:HealthAbovePct(95)) then
-- Casts spell 41924
creature:CastSpell(creature, 41924, true)
end
end
-- Registers the functions to be called for various events
RegisterCreatureEvent(400012, 1, Patchqwerk.OnEnterCombat)
RegisterCreatureEvent(400012, 2, Patchqwerk.OnLeaveCombat)
RegisterCreatureEvent(400012, 4, Patchqwerk.OnDied)
RegisterCreatureEvent(400012, 5, Patchqwerk.OnSpawn)
RegisterCreatureEvent(400012, 6, Patchqwerk.CheckHealth)

31
SW-Archer.lua Normal file
View File

@@ -0,0 +1,31 @@
local Archer = {};
local function CastShoot(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 37770, true)
end
local function CastSerpentSting(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 36984, true)
end
local function CastMultiShot(eventId, delay, calls, creature)
creature:CastSpell(creature:GetVictim(), 30990, true)
end
local function OnEnterCombat(event, creature, target)
creature:RegisterEvent(CastShoot, 750, 0)
creature:RegisterEvent(CastShoot, 15000, 0)
creature:RegisterEvent(CastMultiShot, 5000, 0)
end
local function OnLeaveCombat(event, creature)
creature:RemoveEvents()
end
local function OnDied(event, creature, killer)
creature:RemoveEvents()
end
RegisterCreatureEvent(400033, 1, OnEnterCombat)
RegisterCreatureEvent(400033, 2, OnLeaveCombat)
RegisterCreatureEvent(400033, 4, OnDied)

23
SWGKillCred.lua Normal file
View File

@@ -0,0 +1,23 @@
local SWG_IDS = {68, 400033, 4034}
local SPELL_ID = 100141
function OnSpellCast(event, caster, spell)
local target = spell:GetTarget()
if target and spell:GetEntry() == SPELL_ID then
local isValidTarget = false
for _, swgID in ipairs(SWG_IDS) do
if target:GetEntry() == swgID then
isValidTarget = true
break
end
end
if not isValidTarget then
caster:SendBroadcastMessage("Invalid target for this spell.")
spell:Cancel()
else
caster:KilledMonsterCredit(target:GetEntry())
end
end
end
RegisterPlayerEvent(5, OnSpellCast)

View File

@@ -3,8 +3,8 @@
local npcid = 400028 local npcid = 400028
local gossipText = "Get the Stormwind Citizen to calm down..." local gossipText = "Get the Stormwind Citizen to calm down..."
local itemId = 3713 -- Soothing spices as a test, required to interact with the npc. Can set to a given quest item. local itemId = 60083 -- Soothing spices as a test, required to interact with the npc. Can set to a given quest item.
local spellId = 7001 local spellId = 139
-- This function is called when the player first interacts with the NPC -- This function is called when the player first interacts with the NPC
local function OnGossipHello(event, player, creature) local function OnGossipHello(event, player, creature)

78
Shailiea.lua Normal file
View File

@@ -0,0 +1,78 @@
local Hunter = {};
local function CastRapidShot(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 71251, true)
end
local function CastSummonTamedBear(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 7903, true)
end
local function CastWhirlwind(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 1680, false)
end
local function CastExplosiveTrap(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 49066, false)
end
local function CastMortalStrike(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 30330, false)
end
local function CastDisengage(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 57635, false)
end
local function CastRoot(eventId, delay, calls, creature)
local victim = creature:GetVictim()
creature:CastSpell(victim, 50762, false)
end
local function CastFD(eventId, delay, calls, creature)
creature:CastSpell(creature, 23604, false)
end
local function OnEnterCombat(event, creature, target)
local sayings = {
"You dare enter my territory?",
"I'll make sure you never come back!",
"You won't make it out of here alive!",
"You're nothing but prey to me!"
}
local index = math.random(1, #sayings)
creature:SendUnitSay(sayings[index], 0)
creature:RegisterEvent(CastFD, 1, 1)
creature:RegisterEvent(CastRoot, 10300, 0)
creature:RegisterEvent(CastDisengage, 10400, 0)
creature:RegisterEvent(CastRapidShot, 11000, 0)
creature:RegisterEvent(CastWhirlwind, 6100, 0)
creature:RegisterEvent(CastExplosiveTrap, 12600, 0)
creature:RegisterEvent(CastMortalStrike, 5300, 0)
creature:RegisterEvent(CastSummonTamedBear, 5, 1)
end
local function OnLeaveCombat(event, creature)
creature:SendUnitSay("You are not worth my time.", 0)
creature:RemoveEvents()
end
local function OnDied(event, creature, killer)
creature:SendUnitSay("You may have defeated me, but the hunt continues.", 0)
creature:RemoveEvents()
end
local function OnSpawn(event, creature)
creature:SendUnitSay("The hunt begins.", 0)
end
RegisterCreatureEvent(7295, 1, OnEnterCombat)
RegisterCreatureEvent(7295, 2, OnLeaveCombat)
RegisterCreatureEvent(7295, 4, OnDied)
RegisterCreatureEvent(7295, 5, OnSpawn)