diff --git a/SetnpclevelScourgeTrash.lua b/SetnpclevelScourgeTrash.lua index 8c78a13..6318c86 100644 --- a/SetnpclevelScourgeTrash.lua +++ b/SetnpclevelScourgeTrash.lua @@ -62,6 +62,34 @@ print("Error: creature was not set!") return end +-- Get the original level of the creature +local originalLevel = creature:GetLevel() +-- Generate a random level between 25 and 30 +local randomLevel = math.random(25, 30) +-- Calculate the level difference between original and random levels-- Table to store NPC IDs for CastSpellOnSpawn1 +local npcIds1 = { +-- Add NPC IDs that will use CastSpellOnSpawn1 function here +8541, +10417, +4475, +11873, +8531, +11551, +10488, +10487, +1788, +10414, +10407 +} + +-- Function to handle NPC spawn event for CastSpellOnSpawn1 +local function CastSpellOnSpawn1(event, creature) +-- Check if the creature was set +if not creature then +print("Error: creature was not set!") +return +end + -- Get the original level of the creature local originalLevel = creature:GetLevel() -- Generate a random level between 25 and 30 @@ -84,6 +112,63 @@ for _, npcId in ipairs(npcIds1) do RegisterCreatureEvent(npcId, 5, CastSpellOnSpawn1) end + +-- Table to store NPC IDs for CastSpellOnSpawn2 +local npcIds2 = { +-- Add NPC IDs that will use CastSpellOnSpawn2 function here +400013, +400014, +68, +1976, +466, +} + +-- Function to handle NPC spawn event for CastSpellOnSpawn2 +local function CastSpellOnSpawn2(event, creature) +-- Check if the creature was set +if not creature then +print("Error: creature was not set!") +return +end + +-- Get the original level of the creature +local originalLevel = creature:GetLevel() +-- Generate a random level between 25 and 30 +local randomLevel = math.random(25, 30) +-- Calculate the level difference between original and random levels +local levelDiff = originalLevel - randomLevel + +-- Set the level of the creature to the random level +creature:SetLevel(randomLevel) +-- Reduce the creature's max health by the level difference multiplied by 0.03 +creature:SetMaxHealth(creature:GetMaxHealth() * (1 - levelDiff * 0.03)) +-- Set the creature's health to its max health +creature:SetHealth(creature:GetMaxHealth()) +-- Cast spell 100133 (teleport visual) on the creature +creature:CastSpell(creature, 100133, true) +end + +-- Register CastSpellOnSpawn2 function to be called when an NPC with the specified NPC IDs +for _, npcId in ipairs(npcIds2) do +RegisterCreatureEvent(npcId, 5, CastSpellOnSpawn2) +end +local levelDiff = originalLevel - randomLevel + +-- Set the level of the creature to the random level +creature:SetLevel(randomLevel) +-- Reduce the creature's max health by the level difference multiplied by 0.03 +creature:SetMaxHealth(creature:GetMaxHealth() * (1 - levelDiff * 0.03)) +-- Set the creature's health to its max health +creature:SetHealth(creature:GetMaxHealth()) +-- Cast spell 41236 (teleport visual) on the creature +creature:CastSpell(creature, 41236, true) +end + +-- Register CastSpellOnSpawn1 function to be called when an NPC with the specified NPC IDs is spawned +for _, npcId in ipairs(npcIds1) do +RegisterCreatureEvent(npcId, 5, CastSpellOnSpawn1) +end + -- Table to store NPC IDs for CastSpellOnSpawn2 local npcIds2 = { -- Add NPC IDs that will use CastSpellOnSpawn2 function here @@ -120,7 +205,6 @@ creature:CastSpell(creature, 100133, true) end -- Register CastSpellOnSpawn2 function to be called when an NPC with the specified NPC IDs -spawned -for _, npcId in ipairs(npcIds1) do +for _, npcId in ipairs(npcIds2) do RegisterCreatureEvent(npcId, 5, CastSpellOnSpawn2) end