From 5c2a19a8041e5b4f67b317da528f353b5f1fc490 Mon Sep 17 00:00:00 2001 From: Dinkledork <118951051+Day36512@users.noreply.github.com> Date: Fri, 3 Feb 2023 10:50:42 -0700 Subject: [PATCH] Update Setnpclevel-Event17.lua --- Setnpclevel-Event17.lua | 82 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/Setnpclevel-Event17.lua b/Setnpclevel-Event17.lua index 92e3b2e..36d4124 100644 --- a/Setnpclevel-Event17.lua +++ b/Setnpclevel-Event17.lua @@ -42,6 +42,32 @@ end -- Function to be executed when an NPC from group 2 is spawned local function CastSpellOnSpawnGroup2(event, creature) +if not creature then-- Table to store NPC IDs for group 1 +local npcIds1 = { +8541, +10417, +4475, +11873, +8531, +11551, +10488, +10487, +1788, +10414, +10407 +} + +-- Table to store NPC IDs for group 2 +local npcIds2 = { +400013, +400014, +68, +1976, +466, +} + +-- Function to be executed when an NPC from group 1 is spawned +local function CastSpellOnSpawnGroup1(event, creature) if not creature then print("Error: creature was not set!") return @@ -51,6 +77,60 @@ local originalLevel = creature:GetLevel() local randomLevel = math.random(25, 30) local levelDiff = originalLevel - randomLevel +creature:SetLevel(randomLevel) +creature:SetMaxHealth(creature:GetMaxHealth() * (1 - levelDiff * 0.015)) +creature:SetHealth(creature:GetMaxHealth()) + +local spellId = 28234 +creature:CastSpell(creature, spellId, true) -- minion visual +end + +-- Function to be executed when an NPC from group 2 is spawned +local function CastSpellOnSpawnGroup2(event, creature) +if not creature then +print("Error: creature was not set!") +return +end + +local originalLevel = creature:GetLevel() +local randomLevel = math.random(25, 30) +local levelDiff = originalLevel - randomLevel + +creature:SetLevel(randomLevel) +creature:SetMaxHealth(creature:GetMaxHealth() * (1 - levelDiff * 0.015)) +creature:SetHealth(creature:GetMaxHealth()) + +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) +if not creature then +print("Error: creature was not set!") +return +end +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 +print("Error: creature was not set!") +return +end + +local originalLevel = creature:GetLevel() +local randomLevel = math.random(25, 30) +local levelDiff = originalLevel - randomLevel + local spellId = 100133 creature:SetLevel(randomLevel) creature:SetMaxHealth(creature:GetMaxHealth() * (1 - levelDiff * 0.015)) @@ -66,4 +146,4 @@ end -- Register the event for NPCs in group 2 for _, npcId in ipairs(npcIds2) do RegisterCreatureEvent(npcId, 5, CastSpellOnSpawnGroup2) -end \ No newline at end of file +end