local SPELLUPGRADE_OPCODE = 20
local recipes = {
-- Healing
["Mass Healing"] = { maxLevel = 10, storage = 49998, requiredItems = { {id = 6547, count = 5}, {id = 6549, count = 2} }, vocations = {2,6} },
["Heal Party"] = { maxLevel = 10, storage = 49999, requiredItems = { {id = 6547, count = 5}, {id = 6549, count = 2} }, vocations = {2,6} },
["Divine Healing"] = { maxLevel = 10, storage = 50000, requiredItems = { {id = 6547, count = 5}, {id = 6549, count = 2} }, vocations = {3,7} },
["Light Healing"] = { maxLevel = 10, storage = 50001, requiredItems = { {id = 6547, count = 5}, {id = 6549, count = 2} }, vocations = {1,2,3,5,6,7} },
["Intense Healing"] = { maxLevel = 10, storage = 50002, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {1,2,3,5,6,7} },
["Ultimate Healing"] = { maxLevel = 10, storage = 50003, requiredItems = { {id = 6547, count = 20}, {id = 6549, count = 10} }, vocations = {1,2,5,6} },
["Heal Friend"] = { maxLevel = 10, storage = 50004, requiredItems = { {id = 6547, count = 15}, {id = 6549, count = 8} }, vocations = {2,6} },
-- Attack
["Ice Strike"] = { maxLevel = 10, storage = 50005, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {1,2,5,6} },
["Flame Strike"] = { maxLevel = 10, storage = 50006, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {1,2,5,6} },
["Energy Beam"] = { maxLevel = 10, storage = 50007, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {1,5} },
["Energy Strike"] = { maxLevel = 10, storage = 50008, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {1,2,5,6} },
["Terra Strike"] = { maxLevel = 10, storage = 50009, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {1,2,5,6} },
["Berserk"] = { maxLevel = 10, storage = 50010, requiredItems = { {id = 6547, count = 1}, {id = 6549, count = 1}, {id = 6550, count = 1}, {id = 6551, count = 1} }, vocations = {4,8} },
["Death Strike"] = { maxLevel = 10, storage = 50011, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {1,2,5,6} },
["Divine Caldera"] = { maxLevel = 10, storage = 50012, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {3,7} },
["Divine Missile"] = { maxLevel = 10, storage = 50013, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {3,7} },
["Energy Wave"] = { maxLevel = 10, storage = 50014, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {1,5} },
["Eternal Winter"] = { maxLevel = 10, storage = 50015, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {2,6} },
["Ethereal Spear"] = { maxLevel = 10, storage = 50016, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {3,7} },
["Fierce Berserk"] = { maxLevel = 10, storage = 50017, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {4,8} },
["Groundshaker"] = { maxLevel = 10, storage = 50018, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {4,8} },
["Hells Core"] = { maxLevel = 10, storage = 50019, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {1,5} },
["Ice Wave"] = { maxLevel = 10, storage = 50020, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {2,6} },
["Rage of the Skies"] = { maxLevel = 10, storage = 50021, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {1,5} },
["Terra Wave"] = { maxLevel = 10, storage = 50022, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {2,6} },
["Whirlwind Throw"] = { maxLevel = 10, storage = 50023, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {4,8} },
["Wrath of Nature"] = { maxLevel = 10, storage = 50024, requiredItems = { {id = 6547, count = 10}, {id = 6549, count = 5} }, vocations = {2,6} },
-- Support
["Haste"] = { maxLevel = 10, storage = 50027, requiredItems = { {id = 6547, count = 5}, {id = 6549, count = 2} }, vocations = {1,2,3,4,5,6,7,8} },
["Avalanche"] = { maxLevel = 10, storage = 50031, requiredItems = { {id = 6547, count = 5}, {id = 6549, count = 2} }, vocations = {2,6} }
}
function onExtendedOpcode(player, opcode, buffer)
if opcode ~= SPELLUPGRADE_OPCODE then return false end
local data = json.decode(buffer)
if not data then return true end
if not data.spell then
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Error: spell inválida.")
return true
end
local spellName = data.spell
local spellData = spells[spellName]
if not spellData then
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Error: spell desconocida.")
return true
end
for _, item in ipairs(spellData.requiredItems) do
if player:getItemCount(item.id) < item.count then
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "No tienes suficientes " .. ItemType(item.id):getName() .. ".")
return true
end
end
for _, item in ipairs(spellData.requiredItems) do
player:removeItem(item.id, item.count)
end
player:setStorageValue(spellData.storage, level + 1)
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "La spell " .. spellName .. " ha subido al nivel " .. (level + 1) .. "!")
return true
end