Untitled

 avatar
unknown
lua
2 years ago
3.0 kB
6
Indexable
local items = {

    [2146] = { -- upgrader item id
        -- (archmages items start) -->
        [2453] = {       --normal wand
            transform_id = 7409, -- rare wand
            transform_chance = 100, -- percent
            transform_cost = 10,

            level_req = 500,
            storage = 2001
        },

        [7409] = {       --rare wand
            transform_id = 8911,
            transform_chance = 100, -- percent
            transform_cost = 80,

            level_req = 700,
            storage = 2002
        },
    }

    [7760] = {-- upgrader item id
        [7409] = {       --rare wand
            transform_id = 8911,
            transform_chance = 100, -- percent
            transform_cost = 80,

            level_req = 700,
            storage = 2002
        },
    }
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)

    local upgrader = items[item:getId()]
    if not upgrader then
        return false
    end

    local data = upgrader[target:getId()]
    if not data then
        return player:sendTextMessage(MESSAGE_INFO_DESCR,"The target item is not upgradeable,\n[This only upgrades rare archmages items]."),
		player:getPosition():sendMagicEffect(232),
		player:getPosition():sendMagicEffect(CONST_ME_POFF)
    end

    if player:getStorageValue(data.storage) > 0 then
        return player:sendTextMessage(MESSAGE_INFO_DESCR,"You have done this upgrading " .. ItemType(data.transform_id):getName() .. " before."),
		player:getPosition():sendMagicEffect(CONST_ME_POFF)
    end

    if player:getLevel() < data.level_req then
        return player:sendTextMessage(MESSAGE_INFO_DESCR,"You need to be at least level " .. data.level_req .. " to upgrade this weapon."),
		player:getPosition():sendMagicEffect(CONST_ME_POFF)
    end

    if not player:removeItem(item:getId(), data.transform_cost) then
        return player:sendTextMessage(MESSAGE_INFO_DESCR,"You need " .. data.transform_cost .. " " .. item:getName() .. "."),
		player:getPosition():sendMagicEffect(CONST_ME_POFF)
    end

    local chance = data.transform_chance
    if math.random(100) > chance then
        return player:sendTextMessage(MESSAGE_INFO_DESCR,"Your upgrade has failed."),
            player:getPosition():sendMagicEffect(230),
			Game.sendAnimatedText("Failed", player:getPosition(), 180)
    end

    target:transform(data.transform_id, 1)
	Game.sendAnimatedText("Success", player:getPosition(), 180)
    player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED)
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "Congratulations! Your weapon " .. ItemType(data.transform_id):getName() .. " has been successfully upgraded.")
	player:sendTextMessage(MESSAGE_INFO_DESCR,"Congratulations! Your weapon " .. ItemType(data.transform_id):getName() .. " has been successfully upgraded.")
    player:setStorageValue(data.storage, 1)
    return true
end
Editor is loading...