function onSay(player, words, param) local split = param:splitTrimmed(" ") local item_1, item_2, item_3, item_4, qnt_1, qnt_2, qnt_3, qnt_4, ext_1, ext_2, ext_3, ext_4, posb1, posb2, posb3, posb4 = false, false, false, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 local oriqnt_1, oriqnt_2, oriqnt_3, oriqnt_4 = 0, 0, 0, 0 if _DEBUG_MODE then print("[TALK - UPGRADE] " ..player:getName().. " - ItemID: " .._ITEMS[tonumber(split[02])].NAME) end if split[01] == "00" then local PlayerCoin = PlayerGoldCoins(player, 00) local ITEM_ID = tonumber(split[02]) local BAG_ID = tonumber(split[03]) local EXT_ID = tonumber(split[04]) local SLOT_ID = tonumber(split[05]) local Temp_StarItem = tonumber(split[06]) local LevelItem = tonumber(split[07]) local IDENTIFICATION = tonumber(split[08]) local target = tonumber(split[09]) local sucessClick = tonumber(split[10]) local rareGun = tonumber(split[11]) for SearchItem = 01, 04 do local ProcurarID = 00 local OriginQnt = 00 local slot = 03 local ext = 00 if IDENTIFICATION == 01 then ProcurarID = _ITEMS[ITEM_ID].NUCLEO[01] OriginQnt = _ITEMS[ITEM_ID].NUCLEO[02] else ProcurarID = _ITEMS[ITEM_ID].UPGRADE[SearchItem][01] OriginQnt = _ITEMS[ITEM_ID].UPGRADE[SearchItem][02] end local RARE_UPGRADE = { [-1] = 03, [00] = 03, [01] = 04, [02] = 05, [03] = 07, [04] = 10, } doBackpack(player, 03, slot, ext, 01, ProcurarID) -- Procurar local QntBag = doBackpack(player, 04) local OrigTemp = 1 --if Temp_StarItem < 1 then Temp_StarItem = 1 end --if LevelItem < 0 then LevelItem = 1 end if IDENTIFICATION == 01 then OrigTemp = OriginQnt--math.floor((OriginQnt * Temp_StarItem) / 2) else --print("((" ..OriginQnt.. " + 05) + " ..LevelItem.. ") * (" ..Temp_StarItem.. " + 01) + " ..RARE_UPGRADE[rareGun].. ")") OrigTemp = ((OriginQnt + 05) + LevelItem + 01) * (Temp_StarItem + 01) + RARE_UPGRADE[rareGun] --OrigTemp = math.floor((OriginQnt * (Temp_StarItem + 01) * (LevelItem + 01))) * 05 end if OrigTemp < 1 then OrigTemp = 1 end local PosBag = doBackpack(player, 05) local ExtBag = doBackpack(player, 06) if SearchItem == 01 then oriqnt_1 = OrigTemp elseif SearchItem == 02 then oriqnt_2 = OrigTemp elseif SearchItem == 03 then oriqnt_3 = OrigTemp elseif SearchItem == 04 then oriqnt_4 = OrigTemp end if _CHEATS.UPGRADE_ITEM_FREE then item_1 = true item_2 = true item_3 = true item_4 = true break else if ProcurarID > 0 then if QntBag >= OrigTemp then if SearchItem == 01 then item_1 = true qnt_1 = QntBag ext_1 = ExtBag posb1 = PosBag if IDENTIFICATION == 01 then item_2 = true item_3 = true item_4 = true break end elseif SearchItem == 02 then item_2 = true qnt_2 = QntBag ext_2 = ExtBag posb2 = PosBag elseif SearchItem == 03 then item_3 = true qnt_3 = QntBag ext_3 = ExtBag posb3 = PosBag elseif SearchItem == 04 then item_4 = true qnt_4 = QntBag ext_4 = ExtBag posb4 = PosBag end end else if SearchItem == 01 then item_1 = true elseif SearchItem == 02 then item_2 = true elseif SearchItem == 03 then item_3 = true elseif SearchItem == 04 then item_4 = true end end end end if item_1 and item_2 and item_3 and item_4 then local ItemPrice = _ITEMS[ITEM_ID].UPGRADE[00][01] local YourChance = math.random(000, 100) local UpgradeCoin = math.floor(((ItemPrice * (Temp_StarItem + 01) * (LevelItem + 01))) * 25) * (rareGun + 01) local rateSucess = 95 - (((LevelItem + 02) * 02) + (Temp_StarItem * 20)) rateSucess = rateSucess + ((sucessClick - 01) * 02) UpgradeCoin = UpgradeCoin * sucessClick if _CHEATS.UPGRADE_COIN_FREE == false then --local UpgradeCoin = math.floor((ItemPrice * (Temp_StarItem/2)) + (LevelItem * (LevelItem * Temp_StarItem))) if PlayerCoin >= UpgradeCoin then PlayerGoldCoins(player, 01, UpgradeCoin) --player:setStorageValue(_SYSTEM.GOLD_COIN, (PlayerCoin - UpgradeCoin)) else player:popupFYI("Você não possui dinheiro suficiente.") return false end end if _CHEATS.UPGRADE_ITEM_FREE == false then if qnt_1 > 0 then if qnt_1 > oriqnt_1 then player:setStorageValue(_BACKPACK[03][ext_1][posb1].UID_04, (qnt_1 - oriqnt_1)) else doBackpack(player, 02, 03, ext_1, posb1) end end if qnt_2 > 0 then if qnt_2 > oriqnt_2 then player:setStorageValue(_BACKPACK[03][ext_2][posb2].UID_04, (qnt_2 - oriqnt_2)) else doBackpack(player, 02, 03, ext_2, posb2) end end if qnt_3 > 0 then if qnt_3 > oriqnt_3 then player:setStorageValue(_BACKPACK[03][ext_3][posb3].UID_04, (qnt_3 - oriqnt_3)) else doBackpack(player, 02, 03, ext_3, posb3) end end if qnt_4 > 0 then if qnt_4 > oriqnt_3 then player:setStorageValue(_BACKPACK[03][ext_4][posb4].UID_04, (qnt_4 - oriqnt_4)) else doBackpack(player, 02, 03, ext_4, posb4) end end end if YourChance <= rateSucess then if rateSucess > 100 then rateSucess = 100 end if IDENTIFICATION == 01 then -- STAR if SLOT_ID == 04 then if target == 00 then if player:getStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_03) < 00 then player:setStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_03, (player:getStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_03) + 2)) else player:setStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_03, (player:getStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_03) + 1)) end player:setStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_07, 0) else if player:getStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_03) < 00 then player:setStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_03, (player:getStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_03) + 2)) else player:setStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_03, (player:getStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_03) + 1)) end player:setStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_07, 0) end else if target == 00 then if player:getStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_03) < 00 then player:setStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_03, (player:getStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_03) + 2)) else player:setStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_03, (player:getStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_03) + 1)) end player:setStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_05, 0) else if player:getStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_03) < 00 then player:setStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_03, (player:getStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_03) + 2)) else player:setStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_03, (player:getStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_03) + 1)) end player:setStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_05, 0) end if player:getStorageValue(_QUESTLOG[75].UID_01) == 02 then player:setStorageValue(_QUESTLOG[75].UID_01, 100) addEvent(function() PlayerGoldCoins(player, 02, 1000) player:addExperience(5000, true, true) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:getPosition():sendMagicEffect(14) player:sendCancelMessage("@LoadQuestWindows") end, 4000) end if player:getStorageValue(_QUESTLOG[102].UID_01) == 01 then if SLOT_ID == 01 then player:setStorageValue(_QUESTLOG[102].UID_01, 100) addEvent(function() PlayerGoldCoins(player, 02, 10000) player:addExperience(55000, true, true) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:getPosition():sendMagicEffect(14) player:sendCancelMessage("@LoadQuestWindows") end, 3 * 1000) end end end player:popupFYI("Item aprimorado com sucesso.") else -- LEVEL local LevelItem = 0 if target == 00 then LevelItem = player:getStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_05) else LevelItem = player:getStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_05) end if SLOT_ID == 04 then if target == 00 then LevelItem = player:getStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_07) else LevelItem = player:getStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_07) end end if LevelItem < 0 then LevelItem = 0 end if SLOT_ID == 04 then if target == 00 then if player:getStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_07) < 00 then player:setStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_07, 01) else player:setStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_07, (LevelItem + 1)) end else if player:getStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_07) < 00 then player:setStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_07, 01) else player:setStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_07, (LevelItem + 1)) end end -- DESAFIO if player:getStorageValue(_DESAFIOS[00].DESAFIO_ID) > 00 then if rareGun < 01 then onPlayerDesafios(player, 86, 01) elseif rareGun == 01 then onPlayerDesafios(player, 87, 01) elseif rareGun == 02 then onPlayerDesafios(player, 88, 01) elseif rareGun == 03 then onPlayerDesafios(player, 89, 01) elseif rareGun == 04 then onPlayerDesafios(player, 90, 01) end end else if target == 00 then if player:getStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_05) < 00 then player:setStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_05, 01) else player:setStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_05, (LevelItem + 1)) end else if player:getStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_05) < 00 then player:setStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_05, 01) else player:setStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_05, (LevelItem + 1)) end end -- DESAFIO if player:getStorageValue(_DESAFIOS[00].DESAFIO_ID) > 00 then if rareGun < 01 then onPlayerDesafios(player, 81, 01) elseif rareGun == 01 then onPlayerDesafios(player, 82, 01) elseif rareGun == 02 then onPlayerDesafios(player, 83, 01) elseif rareGun == 03 then onPlayerDesafios(player, 84, 01) elseif rareGun == 04 then onPlayerDesafios(player, 85, 01) end end end if player:getStorageValue(_QUESTLOG[073].UID_01) == 03 then if target == 00 then player:setStorageValue(_QUESTLOG[73].UID_01, 100) player:setStorageValue(_QUESTLOG[74].UID_01, 01) addEvent(function() player:addExperience(2000, true, true) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:getPosition():sendMagicEffect(14) player:sendCancelMessage("@LoadQuestWindows") end, 3 * 1000) else player:setStorageValue(_QUESTLOG[73].UID_01, 100) player:setStorageValue(_QUESTLOG[74].UID_01, 01) addEvent(function() player:addExperience(2000, true, true) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:getPosition():sendMagicEffect(14) player:sendCancelMessage("@LoadQuestWindows") end, 3 * 1000) end player:sendCancelMessage("@LoadQuestWindows") end if player:getStorageValue(_QUESTLOG[074].UID_01) == 01 then if target == 00 then if player:getStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_05) == 05 then player:setStorageValue(_QUESTLOG[74].UID_01, 100) --player:setStorageValue(_QUESTLOG[75].UID_01, 01) addEvent(function() player:addExperience(10000, true, true) PlayerGoldCoins(player, 02, 2000) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:getPosition():sendMagicEffect(14) player:sendCancelMessage("@LoadQuestWindows") end, 3 * 1000) end else if player:getStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_05) == 05 then player:setStorageValue(_QUESTLOG[74].UID_01, 100) --player:setStorageValue(_QUESTLOG[75].UID_01, 01) addEvent(function() player:addExperience(10000, true, true) PlayerGoldCoins(player, 02, 2000) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:getPosition():sendMagicEffect(14) player:sendCancelMessage("@LoadQuestWindows") end, 3 * 1000) end end player:sendCancelMessage("@LoadQuestWindows") end if player:getStorageValue(_QUESTLOG[100].UID_01) == 01 then if target == 00 then if SLOT_ID == 01 then if player:getStorageValue(_SYSTEM.INVENTARIO[SLOT_ID].UID_05) > 0 then player:setStorageValue(_QUESTLOG[100].UID_01, 100) player:setStorageValue(_QUESTLOG[101].UID_01, 01) --player:setStorageValue(_QUESTLOG[102].UID_01, 01) addEvent(function() player:addExperience(20000, true, true) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:getPosition():sendMagicEffect(14) player:sendCancelMessage("@LoadQuestWindows") end, 4000) end end else if SLOT_ID == 01 then if player:getStorageValue(_BACKPACK[SLOT_ID][EXT_ID][BAG_ID].UID_05) > 0 then player:setStorageValue(_QUESTLOG[100].UID_01, 100) player:setStorageValue(_QUESTLOG[101].UID_01, 01) --player:setStorageValue(_QUESTLOG[102].UID_01, 01) addEvent(function() player:addExperience(20000, true, true) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:getPosition():sendMagicEffect(14) player:sendCancelMessage("@LoadQuestWindows") end, 4000) end end end player:sendCancelMessage("@LoadQuestWindows") end player:popupFYI("Tentativa de upgrade com " ..rateSucess.. "% de chance de sucesso.\n\nItem aprimorado com sucesso.") end player:sendCancelMessage("@AceptUpgrade") if target == 00 then doInventario(player, 00, SLOT_ID, EXT_ID) else doBackpack(player, 00, SLOT_ID, EXT_ID, 01) end if player:getStorageValue(_QUESTLOG[30].UID_01) == 2 then player:setStorageValue(_QUESTLOG[30].UID_01, 03) player:getPosition():sendMagicEffect(14) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") end player:sendCancelMessage("@ReloadBackpack " ..SLOT_ID.. " 01") doBackpack(player, 11) player:sendCancelMessage("@LoadTooltipInv") else player:sendCancelMessage("@AceptUpgrade") player:popupFYI("Tentativa de upgrade com " ..rateSucess.. "% de chance de sucesso.\n\nVocê falhou em aprimorar este item.") player:sendCancelMessage("@ReloadBackpack " ..SLOT_ID.. " 01") doBackpack(player, 11) player:sendCancelMessage("@LoadTooltipInv") end else player:popupFYI("Você não possui os itens necessários.") end end return false end