diff --git a/LUA/AquamancerScroll.lua b/LUA/AquamancerScroll.lua index f7ad638..2429617 100644 --- a/LUA/AquamancerScroll.lua +++ b/LUA/AquamancerScroll.lua @@ -1,75 +1,95 @@ -local ITEM_ENTRY = 500500 -- Aquamancer Scroll Item ID - --- Map of class IDs to their specific spells -local SPELLS_BY_CLASS = { - [1] = { -- Warrior (Rage) - frostbolt = 8675300, - summon_aqua_guardian = 8675303 - }, - [2] = { -- Paladin (Mana) - frostbolt = 9672, - summon_aqua_guardian = 8372 - }, - [3] = { -- Hunter (Mana/Focus) - frostbolt = 9672, - summon_aqua_guardian = 8372 - }, - [4] = { -- Rogue (Energy) - frostbolt = 8675301, - summon_aqua_guardian = 8675304 - }, - [5] = { -- Priest (Mana) - frostbolt = 9672, - summon_aqua_guardian = 8372 - }, - [6] = { -- Death Knight (Runic Power) - frostbolt = 8675302, - summon_aqua_guardian = 8675305 - }, - [7] = { -- Shaman (Mana) - frostbolt = 9672, - summon_aqua_guardian = 8372 - }, - [8] = { -- Mage (Mana) - frostbolt = 9672, - summon_aqua_guardian = 8372 - }, - [9] = { -- Warlock (Mana) - frostbolt = 9672, - summon_aqua_guardian = 8372 - }, - [11] = { -- Druid (Mana) - frostbolt = 9672, - summon_aqua_guardian = 8372 - } -} - --- Function triggered when the item is used -local function OnUseAquamancerScroll(event, player, item, target) - local class = player:GetClass() -- Get player's class ID - local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class - - if spells then - local learned = false -- Track if any new spells are learned - - -- Loop through the spell list for the class - for _, spell in pairs(spells) do - if not player:HasSpell(spell) then - player:LearnSpell(spell) -- Teach the spell - learned = true - end - end - - if learned then - player:RemoveItem(item:GetEntry(), 1) -- Consume the item - player:SendBroadcastMessage("You have learned the secrets of the Aquamancer!") - else - player:SendBroadcastMessage("You already know all the spells this scroll teaches.") - end - else - player:SendBroadcastMessage("Your class cannot use this scroll.") - end -end - --- Register the script to the item -RegisterItemEvent(ITEM_ENTRY, 2, OnUseAquamancerScroll) +local ITEM_ENTRY = 500500 -- Aquamancer Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + frostbolt = 8675300, + summon_aqua_guardian = 8675303, + water_bolt = 8675306, + aqua_jet = 8675309 + }, + [2] = { -- Paladin (Mana) + frostbolt = 9672, + summon_aqua_guardian = 8372, + water_bolt = 71686, + aqua_jet = 13586 + }, + [3] = { -- Hunter (Mana/Focus) + frostbolt = 9672, + summon_aqua_guardian = 8372, + water_bolt = 71686, + aqua_jet = 13586 + }, + [4] = { -- Rogue (Energy) + frostbolt = 8675301, + summon_aqua_guardian = 8675304, + water_bolt = 8675307, + aqua_jet = 8675310 + }, + [5] = { -- Priest (Mana) + frostbolt = 9672, + summon_aqua_guardian = 8372, + water_bolt = 71686, + aqua_jet = 13586 + }, + [6] = { -- Death Knight (Runic Power) + frostbolt = 8675302, + summon_aqua_guardian = 8675305, + water_bolt = 8675308, + aqua_jet = 8675311 + }, + [7] = { -- Shaman (Mana) + frostbolt = 9672, + summon_aqua_guardian = 8372, + water_bolt = 71686, + aqua_jet = 13586 + }, + [8] = { -- Mage (Mana) + frostbolt = 9672, + summon_aqua_guardian = 8372, + water_bolt = 71686, + aqua_jet = 13586 + }, + [9] = { -- Warlock (Mana) + frostbolt = 9672, + summon_aqua_guardian = 8372, + water_bolt = 71686, + aqua_jet = 13586 + }, + [11] = { -- Druid (Mana) + frostbolt = 9672, + summon_aqua_guardian = 8372, + water_bolt = 71686, + aqua_jet = 13586 + } +} + +-- Function triggered when the item is used +local function OnUseAquamancerScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have learned the secrets of the Aquamancer!") + else + player:SendBroadcastMessage("You already know all the spells this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the power of the Aquamancer Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseAquamancerScroll) diff --git a/LUA/ArcanistScroll.lua b/LUA/ArcanistScroll.lua new file mode 100644 index 0000000..8887f4e --- /dev/null +++ b/LUA/ArcanistScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500503 -- Arcanist Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + arcane_missiles = 8675336, + energy_surge = 8675339, + force_blast = 8675342, + der_izu_forces = 8675345 + }, + [2] = { -- Paladin (Mana) + arcane_missiles = 33832, + energy_surge = 36508, + force_blast = 39039, + der_izu_forces = 32936 + }, + [3] = { -- Hunter (Mana/Focus) + arcane_missiles = 33832, + energy_surge = 36508, + force_blast = 39039, + der_izu_forces = 32936 + }, + [4] = { -- Rogue (Energy) + arcane_missiles = 8675337, + energy_surge = 8675340, + force_blast = 8675343, + der_izu_forces = 8675346 + }, + [5] = { -- Priest (Mana) + arcane_missiles = 33832, + energy_surge = 36508, + force_blast = 39039, + der_izu_forces = 32936 + }, + [6] = { -- Death Knight (Runic Power) + arcane_missiles = 8675338, + energy_surge = 8675341, + force_blast = 8675344, + der_izu_forces = 8675347 + }, + [7] = { -- Shaman (Mana) + arcane_missiles = 33832, + energy_surge = 36508, + force_blast = 39039, + der_izu_forces = 32936 + }, + [8] = { -- Mage (Mana) + arcane_missiles = 33832, + energy_surge = 36508, + force_blast = 39039, + der_izu_forces = 32936 + }, + [9] = { -- Warlock (Mana) + arcane_missiles = 33832, + energy_surge = 36508, + force_blast = 39039, + der_izu_forces = 32936 + }, + [11] = { -- Druid (Mana) + arcane_missiles = 33832, + energy_surge = 36508, + force_blast = 39039, + der_izu_forces = 32936 + } +} + +-- Function triggered when the item is used +local function OnUseArcanistScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have unlocked the arcane secrets of the Arcanist!") + else + player:SendBroadcastMessage("You already know all the spells this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the power of the Arcanist Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseArcanistScroll) diff --git a/LUA/AstromancerScroll.lua b/LUA/AstromancerScroll.lua index 4c80a27..fd61fd9 100644 --- a/LUA/AstromancerScroll.lua +++ b/LUA/AstromancerScroll.lua @@ -1,95 +1,95 @@ -local ITEM_ENTRY = 500501 -- Astromancer Scroll Item ID - --- Map of class IDs to their specific spells -local SPELLS_BY_CLASS = { - [1] = { -- Warrior (Rage) - astral_focus = 8675306, - fiery_intellect = 8675309, - scorch = 8675312, - rain_of_fire = 8675315 - }, - [2] = { -- Paladin (Mana) - astral_focus = 35914, - fiery_intellect = 35917, - scorch = 38391, - rain_of_fire = 37279 - }, - [3] = { -- Hunter (Mana/Focus) - astral_focus = 35914, - fiery_intellect = 35917, - scorch = 38391, - rain_of_fire = 37279 - }, - [4] = { -- Rogue (Energy) - astral_focus = 8675307, - fiery_intellect = 8675310, - scorch = 8675313, - rain_of_fire = 8675316 - }, - [5] = { -- Priest (Mana) - astral_focus = 35914, - fiery_intellect = 35917, - scorch = 38391, - rain_of_fire = 37279 - }, - [6] = { -- Death Knight (Runic Power) - astral_focus = 8675308, - fiery_intellect = 8675311, - scorch = 8675314, - rain_of_fire = 8675317 - }, - [7] = { -- Shaman (Mana) - astral_focus = 35914, - fiery_intellect = 35917, - scorch = 38391, - rain_of_fire = 37279 - }, - [8] = { -- Mage (Mana) - astral_focus = 35914, - fiery_intellect = 35917, - scorch = 38391, - rain_of_fire = 37279 - }, - [9] = { -- Warlock (Mana) - astral_focus = 35914, - fiery_intellect = 35917, - scorch = 38391, - rain_of_fire = 37279 - }, - [11] = { -- Druid (Mana) - astral_focus = 35914, - fiery_intellect = 35917, - scorch = 38391, - rain_of_fire = 37279 - } -} - --- Function triggered when the item is used -local function OnUseAstromancerScroll(event, player, item, target) - local class = player:GetClass() -- Get player's class ID - local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class - - if spells then - local learned = false -- Track if any new spells are learned - - -- Loop through the spell list for the class - for _, spell in pairs(spells) do - if not player:HasSpell(spell) then - player:LearnSpell(spell) -- Teach the spell - learned = true - end - end - - if learned then - player:RemoveItem(item:GetEntry(), 1) -- Consume the item - player:SendBroadcastMessage("You have learned the secrets of the Astromancer!") - else - player:SendBroadcastMessage("You already know all the spells this scroll teaches.") - end - else - player:SendBroadcastMessage("Your class cannot use this scroll.") - end -end - --- Register the script to the item -RegisterItemEvent(ITEM_ENTRY, 2, OnUseAstromancerScroll) +local ITEM_ENTRY = 500501 -- Astromancer Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + astral_focus = 8675312, + fiery_intellect = 8675315, + scorch = 8675318, + rain_of_fire = 8675321 + }, + [2] = { -- Paladin (Mana) + astral_focus = 35914, + fiery_intellect = 35917, + scorch = 38391, + rain_of_fire = 37279 + }, + [3] = { -- Hunter (Mana/Focus) + astral_focus = 35914, + fiery_intellect = 35917, + scorch = 38391, + rain_of_fire = 37279 + }, + [4] = { -- Rogue (Energy) + astral_focus = 8675313, + fiery_intellect = 8675316, + scorch = 8675319, + rain_of_fire = 8675322 + }, + [5] = { -- Priest (Mana) + astral_focus = 35914, + fiery_intellect = 35917, + scorch = 38391, + rain_of_fire = 37279 + }, + [6] = { -- Death Knight (Runic Power) + astral_focus = 8675314, + fiery_intellect = 8675317, + scorch = 8675320, + rain_of_fire = 8675323 + }, + [7] = { -- Shaman (Mana) + astral_focus = 35914, + fiery_intellect = 35917, + scorch = 38391, + rain_of_fire = 37279 + }, + [8] = { -- Mage (Mana) + astral_focus = 35914, + fiery_intellect = 35917, + scorch = 38391, + rain_of_fire = 37279 + }, + [9] = { -- Warlock (Mana) + astral_focus = 35914, + fiery_intellect = 35917, + scorch = 38391, + rain_of_fire = 37279 + }, + [11] = { -- Druid (Mana) + astral_focus = 35914, + fiery_intellect = 35917, + scorch = 38391, + rain_of_fire = 37279 + } +} + +-- Function triggered when the item is used +local function OnUseAstromancerScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have learned the secrets of the Astromancer!") + else + player:SendBroadcastMessage("You already know all the spells this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the power of the Astromancer Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseAstromancerScroll) \ No newline at end of file diff --git a/LUA/CenturionScroll.lua b/LUA/CenturionScroll.lua new file mode 100644 index 0000000..f70758a --- /dev/null +++ b/LUA/CenturionScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500504 -- Centurion Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + arcane_flurry = 8675348, + blood_heal = 8675351, + spellbreaker = 35871, -- Warriors use default Spellbreaker + sonic_strike = 8675357 + }, + [2] = { -- Paladin (Mana) + arcane_flurry = 37268, + blood_heal = 36476, + spellbreaker = 8675354, -- Corrected Spellbreaker for Mana users + sonic_strike = 41168 + }, + [3] = { -- Hunter (Mana/Focus) + arcane_flurry = 37268, + blood_heal = 36476, + spellbreaker = 8675354, -- Corrected Spellbreaker for Mana users + sonic_strike = 41168 + }, + [4] = { -- Rogue (Energy) + arcane_flurry = 8675349, + blood_heal = 8675352, + spellbreaker = 8675355, -- Rogues use Energy version + sonic_strike = 8675358 + }, + [5] = { -- Priest (Mana) + arcane_flurry = 37268, + blood_heal = 36476, + spellbreaker = 8675354, -- Corrected Spellbreaker for Mana users + sonic_strike = 41168 + }, + [6] = { -- Death Knight (Runic Power) + arcane_flurry = 8675350, + blood_heal = 8675353, + spellbreaker = 8675356, -- Death Knights use Runic Power version + sonic_strike = 8675359 + }, + [7] = { -- Shaman (Mana) + arcane_flurry = 37268, + blood_heal = 36476, + spellbreaker = 8675354, -- Corrected Spellbreaker for Mana users + sonic_strike = 41168 + }, + [8] = { -- Mage (Mana) + arcane_flurry = 37268, + blood_heal = 36476, + spellbreaker = 8675354, -- Corrected Spellbreaker for Mana users + sonic_strike = 41168 + }, + [9] = { -- Warlock (Mana) + arcane_flurry = 37268, + blood_heal = 36476, + spellbreaker = 8675354, -- Corrected Spellbreaker for Mana users + sonic_strike = 41168 + }, + [11] = { -- Druid (Mana) + arcane_flurry = 37268, + blood_heal = 36476, + spellbreaker = 8675354, -- Corrected Spellbreaker for Mana users + sonic_strike = 41168 + } +} + +-- Function triggered when the item is used +local function OnUseCenturionScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have unlocked the battle-hardened techniques of the Centurion!") + else + player:SendBroadcastMessage("You already know all the spells this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the power of the Centurion Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseCenturionScroll) diff --git a/LUA/ChaplainScroll.lua b/LUA/ChaplainScroll.lua new file mode 100644 index 0000000..7aafe13 --- /dev/null +++ b/LUA/ChaplainScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500502 -- Chaplain Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + inner_fire = 8675324, + power_word_shield = 8675327, + renew = 8675330, + power_of_prayer = 8675333 + }, + [2] = { -- Paladin (Mana) + inner_fire = 1006, + power_word_shield = 6066, + renew = 8362, + power_of_prayer = 323267 + }, + [3] = { -- Hunter (Mana/Focus) + inner_fire = 1006, + power_word_shield = 6066, + renew = 8362, + power_of_prayer = 323267 + }, + [4] = { -- Rogue (Energy) + inner_fire = 8675325, + power_word_shield = 8675328, + renew = 8675331, + power_of_prayer = 8675334 + }, + [5] = { -- Priest (Mana) + inner_fire = 1006, + power_word_shield = 6066, + renew = 8362, + power_of_prayer = 323267 + }, + [6] = { -- Death Knight (Runic Power) + inner_fire = 8675326, + power_word_shield = 8675329, + renew = 8675332, + power_of_prayer = 8675335 + }, + [7] = { -- Shaman (Mana) + inner_fire = 1006, + power_word_shield = 6066, + renew = 8362, + power_of_prayer = 323267 + }, + [8] = { -- Mage (Mana) + inner_fire = 1006, + power_word_shield = 6066, + renew = 8362, + power_of_prayer = 323267 + }, + [9] = { -- Warlock (Mana) + inner_fire = 1006, + power_word_shield = 6066, + renew = 8362, + power_of_prayer = 323267 + }, + [11] = { -- Druid (Mana) + inner_fire = 1006, + power_word_shield = 6066, + renew = 8362, + power_of_prayer = 323267 + } +} + +-- Function triggered when the item is used +local function OnUseChaplainScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have learned the divine teachings of the Chaplain!") + else + player:SendBroadcastMessage("You already know all the blessings this scroll provides.") + end + else + player:SendBroadcastMessage("Your class cannot harness the power of the Chaplain Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseChaplainScroll) diff --git a/LUA/CryomancerScroll.lua b/LUA/CryomancerScroll.lua new file mode 100644 index 0000000..61f035c --- /dev/null +++ b/LUA/CryomancerScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500505 -- Cryomancer Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + frost_mist = 8675360, + frost_armor = 8675363, + frost_nova = 8675366, + frost_shock = 8675369 + }, + [2] = { -- Paladin (Mana) + frost_mist = 29292, + frost_armor = 31256, + frost_nova = 36989, + frost_shock = 37865 + }, + [3] = { -- Hunter (Mana/Focus) + frost_mist = 29292, + frost_armor = 31256, + frost_nova = 36989, + frost_shock = 37865 + }, + [4] = { -- Rogue (Energy) + frost_mist = 8675361, + frost_armor = 8675364, + frost_nova = 8675367, + frost_shock = 8675370 + }, + [5] = { -- Priest (Mana) + frost_mist = 29292, + frost_armor = 31256, + frost_nova = 36989, + frost_shock = 37865 + }, + [6] = { -- Death Knight (Runic Power) + frost_mist = 8675362, + frost_armor = 8675365, + frost_nova = 8675368, + frost_shock = 8675371 + }, + [7] = { -- Shaman (Mana) + frost_mist = 29292, + frost_armor = 31256, + frost_nova = 36989, + frost_shock = 37865 + }, + [8] = { -- Mage (Mana) + frost_mist = 29292, + frost_armor = 31256, + frost_nova = 36989, + frost_shock = 37865 + }, + [9] = { -- Warlock (Mana) + frost_mist = 29292, + frost_armor = 31256, + frost_nova = 36989, + frost_shock = 37865 + }, + [11] = { -- Druid (Mana) + frost_mist = 29292, + frost_armor = 31256, + frost_nova = 36989, + frost_shock = 37865 + } +} + +-- Function triggered when the item is used +local function OnUseCryomancerScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have mastered the chilling arts of the Cryomancer!") + else + player:SendBroadcastMessage("You already know all the spells this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the icy power of the Cryomancer Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseCryomancerScroll) diff --git a/LUA/GeomancerScroll.lua b/LUA/GeomancerScroll.lua new file mode 100644 index 0000000..ee70b5b --- /dev/null +++ b/LUA/GeomancerScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500506 -- Geomancer Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + quick_flame_ward = 8675372, + razor_mane = 8675375, + lightning_bolt = 8675378, + summon_earth_rumbler = 8675381 + }, + [2] = { -- Paladin (Mana) + quick_flame_ward = 4979, + razor_mane = 5280, + lightning_bolt = 9532, + summon_earth_rumbler = 8270 + }, + [3] = { -- Hunter (Mana/Focus) + quick_flame_ward = 4979, + razor_mane = 5280, + lightning_bolt = 9532, + summon_earth_rumbler = 8270 + }, + [4] = { -- Rogue (Energy) + quick_flame_ward = 8675373, + razor_mane = 8675376, + lightning_bolt = 8675379, + summon_earth_rumbler = 8675382 + }, + [5] = { -- Priest (Mana) + quick_flame_ward = 4979, + razor_mane = 5280, + lightning_bolt = 9532, + summon_earth_rumbler = 8270 + }, + [6] = { -- Death Knight (Runic Power) + quick_flame_ward = 8675374, + razor_mane = 8675377, + lightning_bolt = 8675380, + summon_earth_rumbler = 8675383 + }, + [7] = { -- Shaman (Mana) + quick_flame_ward = 4979, + razor_mane = 5280, + lightning_bolt = 9532, + summon_earth_rumbler = 8270 + }, + [8] = { -- Mage (Mana) + quick_flame_ward = 4979, + razor_mane = 5280, + lightning_bolt = 9532, + summon_earth_rumbler = 8270 + }, + [9] = { -- Warlock (Mana) + quick_flame_ward = 4979, + razor_mane = 5280, + lightning_bolt = 9532, + summon_earth_rumbler = 8270 + }, + [11] = { -- Druid (Mana) + quick_flame_ward = 4979, + razor_mane = 5280, + lightning_bolt = 9532, + summon_earth_rumbler = 8270 + } +} + +-- Function triggered when the item is used +local function OnUseGeomancerScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have mastered the elemental forces of the Geomancer!") + else + player:SendBroadcastMessage("You already know all the spells this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the power of the Geomancer Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseGeomancerScroll) diff --git a/LUA/HarpoonerScroll.lua b/LUA/HarpoonerScroll.lua new file mode 100644 index 0000000..89c12f6 --- /dev/null +++ b/LUA/HarpoonerScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500507 -- Harpooner Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + hooked_net = 8675384, -- Intercept (20 Rage) + poisoned_harpoon = 8675387, -- Shockwave (25 Rage) + olufs_harpoon = 8675390, -- Heroic Throw (20 Rage) + net = 8675393 -- Hamstring (15 Rage) + }, + [2] = { -- Paladin (Mana) + hooked_net = 40082, + poisoned_harpoon = 5208, + olufs_harpoon = 43325, + net = 38661 + }, + [3] = { -- Hunter (Mana/Focus) + hooked_net = 40082, + poisoned_harpoon = 5208, + olufs_harpoon = 43325, + net = 38661 + }, + [4] = { -- Rogue (Energy) + hooked_net = 8675385, -- Shadowstep (35 Energy) + poisoned_harpoon = 8675388, -- Cheap Shot (40 Energy) + olufs_harpoon = 8675391, -- Shiv (35 Energy) + net = 8675394 -- Crippling Poison (25 Energy) + }, + [5] = { -- Priest (Mana) + hooked_net = 40082, + poisoned_harpoon = 5208, + olufs_harpoon = 43325, + net = 38661 + }, + [6] = { -- Death Knight (Runic Power) + hooked_net = 8675386, -- Death Grip (30 RP) + poisoned_harpoon = 8675389, -- Chains of Ice (35 RP) + olufs_harpoon = 8675392, -- Icy Touch (30 RP) + net = 8675395 -- (Specify equivalent for DK if needed) + }, + [7] = { -- Shaman (Mana) + hooked_net = 40082, + poisoned_harpoon = 5208, + olufs_harpoon = 43325, + net = 38661 + }, + [8] = { -- Mage (Mana) + hooked_net = 40082, + poisoned_harpoon = 5208, + olufs_harpoon = 43325, + net = 38661 + }, + [9] = { -- Warlock (Mana) + hooked_net = 40082, + poisoned_harpoon = 5208, + olufs_harpoon = 43325, + net = 38661 + }, + [11] = { -- Druid (Mana) + hooked_net = 40082, + poisoned_harpoon = 5208, + olufs_harpoon = 43325, + net = 38661 + } +} + +-- Function triggered when the item is used +local function OnUseHarpoonerScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have mastered the lethal precision of the Harpooner!") + else + player:SendBroadcastMessage("You already know all the abilities this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the techniques of the Harpooner Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseHarpoonerScroll) diff --git a/LUA/HydromancerScroll.lua b/LUA/HydromancerScroll.lua new file mode 100644 index 0000000..d7c3d6d --- /dev/null +++ b/LUA/HydromancerScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500508 -- Hydromancer Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + water_nova = 8675396, + tidal_burst = 39878, -- Warriors don't have a custom version, defaulting to mana-based + watery_grave = 8675402, + water_blast = 8675405 + }, + [2] = { -- Paladin (Mana) + water_nova = 38237, + tidal_burst = 39878, + watery_grave = 38049, + water_blast = 54237 + }, + [3] = { -- Hunter (Mana/Focus) + water_nova = 38237, + tidal_burst = 39878, + watery_grave = 38049, + water_blast = 54237 + }, + [4] = { -- Rogue (Energy) + water_nova = 8675397, + tidal_burst = 8675400, + watery_grave = 8675403, + water_blast = 8675406 + }, + [5] = { -- Priest (Mana) + water_nova = 38237, + tidal_burst = 39878, + watery_grave = 38049, + water_blast = 54237 + }, + [6] = { -- Death Knight (Runic Power) + water_nova = 8675398, + tidal_burst = 8675401, + watery_grave = 8675404, + water_blast = 8675407 + }, + [7] = { -- Shaman (Mana) + water_nova = 38237, + tidal_burst = 39878, + watery_grave = 38049, + water_blast = 54237 + }, + [8] = { -- Mage (Mana) + water_nova = 38237, + tidal_burst = 39878, + watery_grave = 38049, + water_blast = 54237 + }, + [9] = { -- Warlock (Mana) + water_nova = 38237, + tidal_burst = 39878, + watery_grave = 38049, + water_blast = 54237 + }, + [11] = { -- Druid (Mana) + water_nova = 38237, + tidal_burst = 39878, + watery_grave = 38049, + water_blast = 54237 + } +} + +-- Function triggered when the item is used +local function OnUseHydromancerScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have mastered the flowing power of the Hydromancer!") + else + player:SendBroadcastMessage("You already know all the spells this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the power of the Hydromancer Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseHydromancerScroll) diff --git a/LUA/MonkScroll.lua b/LUA/MonkScroll.lua new file mode 100644 index 0000000..0a8ad61 --- /dev/null +++ b/LUA/MonkScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500509 -- Monk Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + kick = 8675408, + storm_punch = 8675411, + ringing_slap = 8675414, + head_butt = 8675417 + }, + [2] = { -- Paladin (Mana) + kick = 8675409, + storm_punch = 56352, + ringing_slap = 59606, + head_butt = 8675418 + }, + [3] = { -- Hunter (Mana/Focus) + kick = 8675409, + storm_punch = 56352, + ringing_slap = 59606, + head_butt = 8675418 + }, + [4] = { -- Rogue (Energy) + kick = 29586, -- Default Kick for Rogues + storm_punch = 8675412, + ringing_slap = 8675415, + head_butt = 25788 -- Default Head Butt for Rogues + }, + [5] = { -- Priest (Mana) + kick = 8675409, + storm_punch = 56352, + ringing_slap = 59606, + head_butt = 8675418 + }, + [6] = { -- Death Knight (Runic Power) + kick = 8675410, + storm_punch = 8675413, + ringing_slap = 8675416, + head_butt = 8675419 + }, + [7] = { -- Shaman (Mana) + kick = 8675409, + storm_punch = 56352, + ringing_slap = 59606, + head_butt = 8675418 + }, + [8] = { -- Mage (Mana) + kick = 8675409, + storm_punch = 56352, + ringing_slap = 59606, + head_butt = 8675418 + }, + [9] = { -- Warlock (Mana) + kick = 8675409, + storm_punch = 56352, + ringing_slap = 59606, + head_butt = 8675418 + }, + [11] = { -- Druid (Mana) + kick = 8675409, + storm_punch = 56352, + ringing_slap = 59606, + head_butt = 8675418 + } +} + +-- Function triggered when the item is used +local function OnUseMonkScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have embraced the martial techniques of the Monk!") + else + player:SendBroadcastMessage("You already know all the abilities this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the skills of the Monk Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseMonkScroll) diff --git a/LUA/NecromancerScroll.lua b/LUA/NecromancerScroll.lua new file mode 100644 index 0000000..c404f3b --- /dev/null +++ b/LUA/NecromancerScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500510 -- Necromancer Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + cripple = 8675420, + bone_armor = 8675423, + power_release = 8675426, + summon_skeleton = 8675429 + }, + [2] = { -- Paladin (Mana) + cripple = 20812, + bone_armor = 50324, + power_release = 51431, + summon_skeleton = 8853 + }, + [3] = { -- Hunter (Mana/Focus) + cripple = 20812, + bone_armor = 50324, + power_release = 51431, + summon_skeleton = 8853 + }, + [4] = { -- Rogue (Energy) + cripple = 8675421, + bone_armor = 8675424, + power_release = 8675427, + summon_skeleton = 8675430 + }, + [5] = { -- Priest (Mana) + cripple = 20812, + bone_armor = 50324, + power_release = 51431, + summon_skeleton = 8853 + }, + [6] = { -- Death Knight (Runic Power) + cripple = 8675422, + bone_armor = 8675425, + power_release = 8675428, + summon_skeleton = 8675431 + }, + [7] = { -- Shaman (Mana) + cripple = 20812, + bone_armor = 50324, + power_release = 51431, + summon_skeleton = 8853 + }, + [8] = { -- Mage (Mana) + cripple = 20812, + bone_armor = 50324, + power_release = 51431, + summon_skeleton = 8853 + }, + [9] = { -- Warlock (Mana) + cripple = 20812, + bone_armor = 50324, + power_release = 51431, + summon_skeleton = 8853 + }, + [11] = { -- Druid (Mana) + cripple = 20812, + bone_armor = 50324, + power_release = 51431, + summon_skeleton = 8853 + } +} + +-- Function triggered when the item is used +local function OnUseNecromancerScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have mastered the forbidden arts of the Necromancer!") + else + player:SendBroadcastMessage("You already know all the abilities this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the powers of the Necromancer Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseNecromancerScroll) diff --git a/LUA/NethermancerScroll.lua b/LUA/NethermancerScroll.lua new file mode 100644 index 0000000..fc990cc --- /dev/null +++ b/LUA/NethermancerScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500511 -- Nethermancer Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + bloodcrystal_surge = 8675432, + drain_life = 8675435, + nether_shock = 8675438, + netherbreath = 8675441 + }, + [2] = { -- Paladin (Mana) + bloodcrystal_surge = 35778, + drain_life = 17173, + nether_shock = 35334, + netherbreath = 36631 + }, + [3] = { -- Hunter (Mana/Focus) + bloodcrystal_surge = 35778, + drain_life = 17173, + nether_shock = 35334, + netherbreath = 36631 + }, + [4] = { -- Rogue (Energy) + bloodcrystal_surge = 8675433, + drain_life = 8675436, + nether_shock = 8675439, + netherbreath = 8675442 + }, + [5] = { -- Priest (Mana) + bloodcrystal_surge = 35778, + drain_life = 17173, + nether_shock = 35334, + netherbreath = 36631 + }, + [6] = { -- Death Knight (Runic Power) + bloodcrystal_surge = 8675434, + drain_life = 8675437, + nether_shock = 8675440, + netherbreath = 8675443 + }, + [7] = { -- Shaman (Mana) + bloodcrystal_surge = 35778, + drain_life = 17173, + nether_shock = 35334, + netherbreath = 36631 + }, + [8] = { -- Mage (Mana) + bloodcrystal_surge = 35778, + drain_life = 17173, + nether_shock = 35334, + netherbreath = 36631 + }, + [9] = { -- Warlock (Mana) + bloodcrystal_surge = 35778, + drain_life = 17173, + nether_shock = 35334, + netherbreath = 36631 + }, + [11] = { -- Druid (Mana) + bloodcrystal_surge = 35778, + drain_life = 17173, + nether_shock = 35334, + netherbreath = 36631 + } +} + +-- Function triggered when the item is used +local function OnUseNethermancerScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have unlocked the secrets of the Nethermancer!") + else + player:SendBroadcastMessage("You already know all the abilities this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the powers of the Nethermancer Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseNethermancerScroll) diff --git a/LUA/PyromancerScroll.lua b/LUA/PyromancerScroll.lua new file mode 100644 index 0000000..a264473 --- /dev/null +++ b/LUA/PyromancerScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500512 -- Pyromancer Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + ancient_fire = 8675444, + flame_shock = 8675447, + mark_of_flames = 8675450, + summon_fire_elemental = 8675453 + }, + [2] = { -- Paladin (Mana) + ancient_fire = 37986, + flame_shock = 15096, + mark_of_flames = 15128, + summon_fire_elemental = 63774 + }, + [3] = { -- Hunter (Mana/Focus) + ancient_fire = 37986, + flame_shock = 15096, + mark_of_flames = 15128, + summon_fire_elemental = 63774 + }, + [4] = { -- Rogue (Energy) + ancient_fire = 8675445, + flame_shock = 8675448, + mark_of_flames = 8675451, + summon_fire_elemental = 8675454 + }, + [5] = { -- Priest (Mana) + ancient_fire = 37986, + flame_shock = 15096, + mark_of_flames = 15128, + summon_fire_elemental = 63774 + }, + [6] = { -- Death Knight (Runic Power) + ancient_fire = 8675446, + flame_shock = 8675449, + mark_of_flames = 8675452, + summon_fire_elemental = 8675455 + }, + [7] = { -- Shaman (Mana) + ancient_fire = 37986, + flame_shock = 15096, + mark_of_flames = 15128, + summon_fire_elemental = 63774 + }, + [8] = { -- Mage (Mana) + ancient_fire = 37986, + flame_shock = 15096, + mark_of_flames = 15128, + summon_fire_elemental = 63774 + }, + [9] = { -- Warlock (Mana) + ancient_fire = 37986, + flame_shock = 15096, + mark_of_flames = 15128, + summon_fire_elemental = 63774 + }, + [11] = { -- Druid (Mana) + ancient_fire = 37986, + flame_shock = 15096, + mark_of_flames = 15128, + summon_fire_elemental = 63774 + } +} + +-- Function triggered when the item is used +local function OnUsePyromancerScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have mastered the blazing arts of the Pyromancer!") + else + player:SendBroadcastMessage("You already know all the abilities this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the fiery powers of the Pyromancer Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUsePyromancerScroll) diff --git a/LUA/ShadowmancerScroll.lua b/LUA/ShadowmancerScroll.lua new file mode 100644 index 0000000..adac3a6 --- /dev/null +++ b/LUA/ShadowmancerScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500513 -- Shadowmancer Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + dark_mending = 8675456, + shadow_blast = 8675459, + shadowguard = 8675462, + shadow_nova = 8675465 + }, + [2] = { -- Paladin (Mana) + dark_mending = 19775, + shadow_blast = 38085, + shadowguard = 38379, + shadow_nova = 33846 + }, + [3] = { -- Hunter (Mana/Focus) + dark_mending = 19775, + shadow_blast = 38085, + shadowguard = 38379, + shadow_nova = 33846 + }, + [4] = { -- Rogue (Energy) + dark_mending = 8675457, + shadow_blast = 8675460, + shadowguard = 8675463, + shadow_nova = 8675466 + }, + [5] = { -- Priest (Mana) + dark_mending = 19775, + shadow_blast = 38085, + shadowguard = 38379, + shadow_nova = 33846 + }, + [6] = { -- Death Knight (Runic Power) + dark_mending = 8675458, + shadow_blast = 8675461, + shadowguard = 8675464, + shadow_nova = 8675467 + }, + [7] = { -- Shaman (Mana) + dark_mending = 19775, + shadow_blast = 38085, + shadowguard = 38379, + shadow_nova = 33846 + }, + [8] = { -- Mage (Mana) + dark_mending = 19775, + shadow_blast = 38085, + shadowguard = 38379, + shadow_nova = 33846 + }, + [9] = { -- Warlock (Mana) + dark_mending = 19775, + shadow_blast = 38085, + shadowguard = 38379, + shadow_nova = 33846 + }, + [11] = { -- Druid (Mana) + dark_mending = 19775, + shadow_blast = 38085, + shadowguard = 38379, + shadow_nova = 33846 + } +} + +-- Function triggered when the item is used +local function OnUseShadowmancerScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have embraced the shadows of the Shadowmancer!") + else + player:SendBroadcastMessage("You already know all the abilities this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the dark powers of the Shadowmancer Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseShadowmancerScroll) diff --git a/LUA/SirenScroll.lua b/LUA/SirenScroll.lua new file mode 100644 index 0000000..2872719 --- /dev/null +++ b/LUA/SirenScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500514 -- Siren Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + banshee_shriek = 8675468, + enveloping_winds = 8675471, + ribbon_of_souls = 8675474, + viscous_shield = 8675477 + }, + [2] = { -- Paladin (Mana) + banshee_shriek = 29505, + enveloping_winds = 15535, + ribbon_of_souls = 16243, + viscous_shield = 38026 + }, + [3] = { -- Hunter (Mana/Focus) + banshee_shriek = 29505, + enveloping_winds = 15535, + ribbon_of_souls = 16243, + viscous_shield = 38026 + }, + [4] = { -- Rogue (Energy) + banshee_shriek = 8675469, + enveloping_winds = 8675472, + ribbon_of_souls = 8675475, + viscous_shield = 8675478 + }, + [5] = { -- Priest (Mana) + banshee_shriek = 29505, + enveloping_winds = 15535, + ribbon_of_souls = 16243, + viscous_shield = 38026 + }, + [6] = { -- Death Knight (Runic Power) + banshee_shriek = 8675470, + enveloping_winds = 8675473, + ribbon_of_souls = 8675476, + viscous_shield = 8675479 + }, + [7] = { -- Shaman (Mana) + banshee_shriek = 29505, + enveloping_winds = 15535, + ribbon_of_souls = 16243, + viscous_shield = 38026 + }, + [8] = { -- Mage (Mana) + banshee_shriek = 29505, + enveloping_winds = 15535, + ribbon_of_souls = 16243, + viscous_shield = 38026 + }, + [9] = { -- Warlock (Mana) + banshee_shriek = 29505, + enveloping_winds = 15535, + ribbon_of_souls = 16243, + viscous_shield = 38026 + }, + [11] = { -- Druid (Mana) + banshee_shriek = 29505, + enveloping_winds = 15535, + ribbon_of_souls = 16243, + viscous_shield = 38026 + } +} + +-- Function triggered when the item is used +local function OnUseSirenScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have unlocked the enchanting powers of the Siren!") + else + player:SendBroadcastMessage("You already know all the abilities this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the mystical powers of the Siren Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseSirenScroll) diff --git a/LUA/SoothsayerScroll.lua b/LUA/SoothsayerScroll.lua new file mode 100644 index 0000000..5f10cee --- /dev/null +++ b/LUA/SoothsayerScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500515 -- Soothsayer Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + darkened_vision = 8675480, + dark_whispers = 8675483, + impending_coma = 8675486, + time_lapse = 8675489 + }, + [2] = { -- Paladin (Mana) + darkened_vision = 5514, + dark_whispers = 16587, + impending_coma = 34800, + time_lapse = 51020 + }, + [3] = { -- Hunter (Mana/Focus) + darkened_vision = 5514, + dark_whispers = 16587, + impending_coma = 34800, + time_lapse = 51020 + }, + [4] = { -- Rogue (Energy) + darkened_vision = 8675481, + dark_whispers = 8675484, + impending_coma = 8675487, + time_lapse = 8675490 + }, + [5] = { -- Priest (Mana) + darkened_vision = 5514, + dark_whispers = 16587, + impending_coma = 34800, + time_lapse = 51020 + }, + [6] = { -- Death Knight (Runic Power) + darkened_vision = 8675482, + dark_whispers = 8675485, + impending_coma = 8675488, + time_lapse = 8675491 + }, + [7] = { -- Shaman (Mana) + darkened_vision = 5514, + dark_whispers = 16587, + impending_coma = 34800, + time_lapse = 51020 + }, + [8] = { -- Mage (Mana) + darkened_vision = 5514, + dark_whispers = 16587, + impending_coma = 34800, + time_lapse = 51020 + }, + [9] = { -- Warlock (Mana) + darkened_vision = 5514, + dark_whispers = 16587, + impending_coma = 34800, + time_lapse = 51020 + }, + [11] = { -- Druid (Mana) + darkened_vision = 5514, + dark_whispers = 16587, + impending_coma = 34800, + time_lapse = 51020 + } +} + +-- Function triggered when the item is used +local function OnUseSoothsayerScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have unlocked the prophetic powers of the Soothsayer!") + else + player:SendBroadcastMessage("You already know all the abilities this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the visions of the Soothsayer Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseSoothsayerScroll) diff --git a/LUA/SurveyorScroll.lua b/LUA/SurveyorScroll.lua new file mode 100644 index 0000000..0db7c86 --- /dev/null +++ b/LUA/SurveyorScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500516 -- Surveyor Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + edwards_insight = 8675492, + sand_breath = 8675495, + crypt_scarabs = 8675498, + stasis_field = 8675501 + }, + [2] = { -- Paladin (Mana) + edwards_insight = 60318, + sand_breath = 20717, + crypt_scarabs = 54311, + stasis_field = 40835 + }, + [3] = { -- Hunter (Mana/Focus) + edwards_insight = 60318, + sand_breath = 20717, + crypt_scarabs = 54311, + stasis_field = 40835 + }, + [4] = { -- Rogue (Energy) + edwards_insight = 8675493, + sand_breath = 8675496, + crypt_scarabs = 8675499, + stasis_field = 8675502 + }, + [5] = { -- Priest (Mana) + edwards_insight = 60318, + sand_breath = 20717, + crypt_scarabs = 54311, + stasis_field = 40835 + }, + [6] = { -- Death Knight (Runic Power) + edwards_insight = 8675494, + sand_breath = 8675497, + crypt_scarabs = 8675500, + stasis_field = 8675503 + }, + [7] = { -- Shaman (Mana) + edwards_insight = 60318, + sand_breath = 20717, + crypt_scarabs = 54311, + stasis_field = 40835 + }, + [8] = { -- Mage (Mana) + edwards_insight = 60318, + sand_breath = 20717, + crypt_scarabs = 54311, + stasis_field = 40835 + }, + [9] = { -- Warlock (Mana) + edwards_insight = 60318, + sand_breath = 20717, + crypt_scarabs = 54311, + stasis_field = 40835 + }, + [11] = { -- Druid (Mana) + edwards_insight = 60318, + sand_breath = 20717, + crypt_scarabs = 54311, + stasis_field = 40835 + } +} + +-- Function triggered when the item is used +local function OnUseSurveyorScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have unlocked the ancient knowledge of the Surveyor!") + else + player:SendBroadcastMessage("You already know all the abilities this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the wisdom of the Surveyor Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseSurveyorScroll) diff --git a/LUA/TimeBenderScroll.lua b/LUA/TimeBenderScroll.lua new file mode 100644 index 0000000..b001739 --- /dev/null +++ b/LUA/TimeBenderScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500517 -- Time Bender Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + haste_other = 8675504, + slow = 8675507, + time_shock = 8675510, + time_stop = 8675513 + }, + [2] = { -- Paladin (Mana) + haste_other = 34186, + slow = 6146, + time_shock = 60076, + time_stop = 47736 + }, + [3] = { -- Hunter (Mana/Focus) + haste_other = 34186, + slow = 6146, + time_shock = 60076, + time_stop = 47736 + }, + [4] = { -- Rogue (Energy) + haste_other = 8675505, + slow = 8675508, + time_shock = 8675511, + time_stop = 8675514 + }, + [5] = { -- Priest (Mana) + haste_other = 34186, + slow = 6146, + time_shock = 60076, + time_stop = 47736 + }, + [6] = { -- Death Knight (Runic Power) + haste_other = 8675506, + slow = 8675509, + time_shock = 8675512, + time_stop = 8675515 + }, + [7] = { -- Shaman (Mana) + haste_other = 34186, + slow = 6146, + time_shock = 60076, + time_stop = 47736 + }, + [8] = { -- Mage (Mana) + haste_other = 34186, + slow = 6146, + time_shock = 60076, + time_stop = 47736 + }, + [9] = { -- Warlock (Mana) + haste_other = 34186, + slow = 6146, + time_shock = 60076, + time_stop = 47736 + }, + [11] = { -- Druid (Mana) + haste_other = 34186, + slow = 6146, + time_shock = 60076, + time_stop = 47736 + } +} + +-- Function triggered when the item is used +local function OnUseTimeBenderScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have unlocked the mysterious powers of the Time Bender!") + else + player:SendBroadcastMessage("You already know all the abilities this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the powers of the Time Bender Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseTimeBenderScroll) diff --git a/LUA/VenomancerScroll.lua b/LUA/VenomancerScroll.lua new file mode 100644 index 0000000..58137b8 --- /dev/null +++ b/LUA/VenomancerScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500518 -- Venomancer Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + poison_bolt = 8675516, + poison_shield = 8675519, + poisoned_thrust = 8675522, + leech_poison = 8675525 + }, + [2] = { -- Paladin (Mana) + poison_bolt = 30917, + poison_shield = 39027, + poisoned_thrust = 30822, + leech_poison = 31288 + }, + [3] = { -- Hunter (Mana/Focus) + poison_bolt = 30917, + poison_shield = 39027, + poisoned_thrust = 30822, + leech_poison = 31288 + }, + [4] = { -- Rogue (Energy) + poison_bolt = 8675517, + poison_shield = 8675520, + poisoned_thrust = 8675523, + leech_poison = 8675526 + }, + [5] = { -- Priest (Mana) + poison_bolt = 30917, + poison_shield = 39027, + poisoned_thrust = 30822, + leech_poison = 31288 + }, + [6] = { -- Death Knight (Runic Power) + poison_bolt = 8675518, + poison_shield = 8675521, + poisoned_thrust = 8675524, + leech_poison = 8675527 + }, + [7] = { -- Shaman (Mana) + poison_bolt = 30917, + poison_shield = 39027, + poisoned_thrust = 30822, + leech_poison = 31288 + }, + [8] = { -- Mage (Mana) + poison_bolt = 30917, + poison_shield = 39027, + poisoned_thrust = 30822, + leech_poison = 31288 + }, + [9] = { -- Warlock (Mana) + poison_bolt = 30917, + poison_shield = 39027, + poisoned_thrust = 30822, + leech_poison = 31288 + }, + [11] = { -- Druid (Mana) + poison_bolt = 30917, + poison_shield = 39027, + poisoned_thrust = 30822, + leech_poison = 31288 + } +} + +-- Function triggered when the item is used +local function OnUseVenomancerScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have embraced the toxic power of the Venomancer!") + else + player:SendBroadcastMessage("You already know all the abilities this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the venomous magic of the Venomancer Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseVenomancerScroll) diff --git a/LUA/WitchDoctorScroll.lua b/LUA/WitchDoctorScroll.lua new file mode 100644 index 0000000..dfe5d2e --- /dev/null +++ b/LUA/WitchDoctorScroll.lua @@ -0,0 +1,95 @@ +local ITEM_ENTRY = 500519 -- Witch Doctor Scroll Item ID + +-- Map of class IDs to their specific spells +local SPELLS_BY_CLASS = { + [1] = { -- Warrior (Rage) + hex = 8675528, + healing_ward = 8675531, + ward_of_laze = 8675534, + voodoo_doll = 8675537 + }, + [2] = { -- Paladin (Mana) + hex = 11641, + healing_ward = 11899, + ward_of_laze = 3827, + voodoo_doll = 52695 + }, + [3] = { -- Hunter (Mana/Focus) + hex = 11641, + healing_ward = 11899, + ward_of_laze = 3827, + voodoo_doll = 52695 + }, + [4] = { -- Rogue (Energy) + hex = 8675529, + healing_ward = 8675532, + ward_of_laze = 8675535, + voodoo_doll = 8675538 + }, + [5] = { -- Priest (Mana) + hex = 11641, + healing_ward = 11899, + ward_of_laze = 3827, + voodoo_doll = 52695 + }, + [6] = { -- Death Knight (Runic Power) + hex = 8675530, + healing_ward = 8675533, + ward_of_laze = 8675536, + voodoo_doll = 8675539 + }, + [7] = { -- Shaman (Mana) + hex = 11641, + healing_ward = 11899, + ward_of_laze = 3827, + voodoo_doll = 52695 + }, + [8] = { -- Mage (Mana) + hex = 11641, + healing_ward = 11899, + ward_of_laze = 3827, + voodoo_doll = 52695 + }, + [9] = { -- Warlock (Mana) + hex = 11641, + healing_ward = 11899, + ward_of_laze = 3827, + voodoo_doll = 52695 + }, + [11] = { -- Druid (Mana) + hex = 11641, + healing_ward = 11899, + ward_of_laze = 3827, + voodoo_doll = 52695 + } +} + +-- Function triggered when the item is used +local function OnUseWitchDoctorScroll(event, player, item, target) + local class = player:GetClass() -- Get player's class ID + local spells = SPELLS_BY_CLASS[class] -- Get spell list for the class + + if spells then + local learned = false -- Track if any new spells are learned + + -- Loop through the spell list for the class + for _, spell in pairs(spells) do + if not player:HasSpell(spell) then + player:LearnSpell(spell) -- Teach the spell + learned = true + end + end + + if learned then + player:RemoveItem(item:GetEntry(), 1) -- Consume the item + player:SendBroadcastMessage("You have embraced the dark magic of the Witch Doctor!") + else + player:SendBroadcastMessage("You already know all the abilities this scroll teaches.") + end + else + player:SendBroadcastMessage("Your class cannot harness the dark magic of the Witch Doctor Scroll.") + end +end + +-- Register the script to the item +RegisterItemEvent(ITEM_ENTRY, 2, OnUseWitchDoctorScroll)