local GateTime = 0 local PillarTime = 0 local PASSIVE_LEVEL = 0 local PillarEvent = nil local function onGetPassivas(player, id) if player:getStorageValue(_SYSTEM.POINTS_ATR[01]) == id then PASSIVE_LEVEL = player:getStorageValue(_SYSTEM.POINTS_ATR[08]) return true elseif player:getStorageValue(_SYSTEM.POINTS_ATR[02]) == id then PASSIVE_LEVEL = player:getStorageValue(_SYSTEM.POINTS_ATR[09]) return true elseif player:getStorageValue(_SYSTEM.POINTS_ATR[03]) == id then PASSIVE_LEVEL = player:getStorageValue(_SYSTEM.POINTS_ATR[10]) return true elseif player:getStorageValue(_SYSTEM.POINTS_ATR[04]) == id then PASSIVE_LEVEL = player:getStorageValue(_SYSTEM.POINTS_ATR[11]) return true elseif player:getStorageValue(_SYSTEM.POINTS_ATR[05]) == id then PASSIVE_LEVEL = player:getStorageValue(_SYSTEM.POINTS_ATR[12]) return true elseif player:getStorageValue(_SYSTEM.POINTS_ATR[06]) == id then PASSIVE_LEVEL = player:getStorageValue(_SYSTEM.POINTS_ATR[13]) return true else PASSIVE_LEVEL = 00 return false end end local function onPillarFortune() if Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_STEP) > 00 then if PillarTime > 00 then if PillarTime == 01 then for X = 01, 05 do local POS_PILLAR = Tile(_GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_POS[X].TILE[01], _GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_POS[X].TILE[02], _GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_POS[X].TILE[03]) local CHECK_PILLAR = POS_PILLAR:getTopCreature() if CHECK_PILLAR and CHECK_PILLAR:isMonster() then doRemoveCreature(CHECK_PILLAR:getId()) end end Game.setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_STEP, nil) local players = Game.getPlayers() for _, targetPlayer in ipairs(players) do targetPlayer:sendTextMessage(MESSAGE_STATUS_WARNING, "O servidor falhou em eliminar os pilares dentro do tempo.\nNova tentativa ap�s o ServerSave.") targetPlayer:sendCancelMessage("@RemoveMarkMap") end return false end PillarTime = PillarTime - 01 addEvent(onPillarFortune, 1000) end end end local function onRemoveSelectItem(pos, item, id) local item = Tile(pos):getItemById(id) if GateTime > 0 then GateTime = GateTime - 1 addEvent(onRemoveSelectItem, 1000, pos, item) else Game.createItem(1546, 1, pos) pos:sendMagicEffect(CONST_ME_POFF) end end local function onTPPlayer(cid) local player = Player(cid) player:teleportTo({x=3999, y=991, z=07}) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:setStorageValue(_SYSTEM.TASK[00].TIMER, nil) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendCancelMessage("@DGTime 0 0 0") player:sendCancelMessage("@ResetDG") player:setTown(Town(01)) end local function onEspecialistaPlayer(cid) local player = Player(cid) player:teleportTo({x=3281, y=1632, z=7}) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendCancelMessage("@StarCliente") player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Desafio Finalizado!\nNivel de especialista aumentado. Acesse seu Menu, na aba STATUS para mais informa��es.") end local function onLoadQuest(cid, id) local player = Player(cid) if player then if id then if _QUESTLOG[id] then if _QUESTLOG[id].Type == "HUNT" then player:sendCancelMessage("@QuestAbertas " .._QUESTLOG[id].Type.. " " ..id.. " " ..player:getStorageValue(_QUESTLOG[id].UID_01).. " " ..player:getStorageValue(_QUESTLOG[id].Value[01]).. " " .._QUESTLOG[id].Value[02]) end end else for X = 01, #_QUESTLOG do if _QUESTLOG[X].Type == "NORMAL" then player:sendCancelMessage("@QuestAbertas " .._QUESTLOG[X].Type.. " " ..X.. " " ..player:getStorageValue(_QUESTLOG[X].UID_01)) elseif _QUESTLOG[X].Type == "HUNT" then player:sendCancelMessage("@QuestAbertas " .._QUESTLOG[X].Type.. " " ..X.. " " ..player:getStorageValue(_QUESTLOG[X].UID_01).. " " ..player:getStorageValue(_QUESTLOG[X].Value[01]).. " " .._QUESTLOG[X].Value[02]) else player:sendCancelMessage("@QuestAbertas " .._QUESTLOG[X].Type.. " " ..X.. " " ..player:getStorageValue(_QUESTLOG[X].UID_01).. " " ..onGetBackpackItem(player, _QUESTLOG[X].Value[01]).. " " .._QUESTLOG[X].Value[02]) end end end end return true end function onKill(player, target) local Name = target:getName() if not target:isMonster() then return true end local master = target:getMaster() if master then return true end local mpos = target:getPosition() player:sendCancelMessage("@Analyser#05") if player:getStorageValue(_SYSTEM.INVENTARIO[07].UID_01) == 7000 then -- Chance de ganhar muni��o ao eliminar monstros. local RingRA = player:getStorageValue(_SYSTEM.INVENTARIO[07].UID_02) local RingST = player:getStorageValue(_SYSTEM.INVENTARIO[07].UID_03) local RingLV = player:getStorageValue(_SYSTEM.INVENTARIO[07].UID_05) local ChanceRandom = math.random(200) if RingRA < 0 then RingRA = 0 end if RingST < 0 then RingST = 0 end if RingLV < 0 then RingLV = 0 end local AmmoGain = 05 * (RingRA + 01) if player:getStorageValue(_SYSTEM.MAESTRIA[01]) == 05 then if player:getStorageValue(_SYSTEM.MAESTRIA[04]) > 0 then ChanceRandom = 00 AmmoGain = AmmoGain * player:getStorageValue(_SYSTEM.MAESTRIA[02]) end end if ChanceRandom <= _AMULET_CHANCE_MODE[RingRA] then if player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01) > 0 then local AtrAmmo = player:getStorageValue(_SYSTEM.TASK[00].RANK) if AtrAmmo < 00 then AtrAmmo = 01 end AtrAmmo = AtrAmmo * 500 local LimitBullet = AtrAmmo if player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_10) < LimitBullet then if AmmoGain > (LimitBullet - player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_10)) then AmmoGain = LimitBullet - player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_10) end player:setStorageValue(_SYSTEM.INVENTARIO[04].UID_10, (player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_10) + AmmoGain)) player:sendCancelMessage("@LoadAmmo " ..player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_10)) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[RING] Muni��o encontrada: x" ..AmmoGain) end end end end if _GLOBAL_RANDOM.COLISEUM.NAME[Name] then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Voc� venceu o combate!\nClique na est�tua para finalizar o desafio.") return false end if Name == "Joker" then if player:isPlayer() then local lootIds = {} local itemId = player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01) or 0 if itemId > 00 then for X = 01, #_ITEMS[itemId].UPGRADE do if _ITEMS[itemId].UPGRADE[X][01] > 00 then table.insert(lootIds, _ITEMS[itemId].UPGRADE[X][01]) end end end if #lootIds > 00 then local chooses = math.random(01, #lootIds) local chooseIds = lootIds[chooses] local chooseQnt = 01 local rare = _ITEMS[chooseIds].RARE local rateChance = 30 local dropChance = math.random(00, 100) if dropChance < rateChance then if doBackpack(player, 00, 03, 00, 01) then player:sendCancelMessage("@Analyser#02#" ..chooseIds.. "#" ..chooseQnt.. "#" ..rare) doBackpack(player, 03, 03, 00, 01, chooseIds) -- Procurar if doBackpack(player, 01, 03, 00, 0, chooseIds, rare, 00, chooseQnt) then end else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Sua Backpack esta cheia.") end end end end return false end if Name == "Mercenario" then if player:getStorageValue(_QUESTLOG[197].UID_01) == 03 then if player:getStorageValue(11034) == 05 then player:setStorageValue(11034, nil) player:setStorageValue(_QUESTLOG[197].UID_01, 04) doBackpack(player, 12) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:sendCancelMessage("@LoadQuestWindows") else player:setStorageValue(11034, (player:getStorageValue(11034) + 1)) end return true end if player:getStorageValue(_QUESTLOG[198].UID_01) == 02 then if player:getStorageValue(11034) == 15 then player:setStorageValue(11034, nil) local SummPos = player:getSummons() addEvent(function() SummPos[01]:say('VITORIA!', TALKTYPE_SAY) addEvent(function() for X = 02, #player:getSummons() do local Ruge = math.random(00, 01) if Ruge == 01 then local talk_con = { [01] = 'AEEEE!', [02] = 'CONSEGUIMOS!', [03] = 'Eu sabia que dava pra ganhar!', [04] = '� ISSO A�, TIME!', [05] = '� assim que se faz!', [06] = 'Boa galera!', } SummPos[X]:say(talk_con[math.random(01, 06)], TALKTYPE_SAY) end end addEvent(function() player:setStorageValue(_QUESTLOG[198].UID_01, 03) player:setStorageValue(_SYSTEM.DANGEROUS[01][01].STORAGE, nil) player:teleportTo({x=3862, y=1762, z=06}) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) addEvent(function() doBackpack(player, 12) player:getPosition():sendMagicEffect(13) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:sendCancelMessage("@LoadQuestWindows") end, 3000) end, 7000) end, 1000) end, 3000) else player:setStorageValue(11034, (player:getStorageValue(11034) + 1)) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[QUEST]: Mercen�rios eliminados: " ..player:getStorageValue(11034).. "/16") end return true end end if Name == "Mortal Target" then if player:getStorageValue(_QUESTLOG[187].UID_01) == 02 then player:setStorageValue(_QUESTLOG[187].UID_01, 100) player:setStorageValue(_QUESTLOG[188].UID_01, 001) player:setStorageValue(_SYSTEM.DANGEROUS[01][01].STORAGE, nil) player:teleportTo({x=3281, y=1632, z=7}) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) doBackpack(player, 12) player:sendCancelMessage("@DGTime 0 0 0") player:sendCancelMessage("@ResetDG") addEvent(function() player:addExperience(55000, true, true) PlayerGoldCoins(player, 02, 5000) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") end, 1000) return true end end if Name == "Pillar of Fortune" then if Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_ID) == 11 then local players = Game.getPlayers() if Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_STEP) == 01 then Game.setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_STEP, 02) for _, targetPlayer in ipairs(players) do targetPlayer:sendTextMessage(MESSAGE_EVENT_ADVANCE, "O servidor possui 05 minutos para destruir todos os 04 pilares restantes.") end PillarTime = 300 PillarEvent = addEvent(onPillarFortune, 1000) return false elseif Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_STEP) == 05 then Game.setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_STEP, 06) stopEvent(PillarEvent) for _, targetPlayer in ipairs(players) do targetPlayer:sendTextMessage(MESSAGE_INFO_DESCR, "Objetivo do evento concluido com sucesso.\n[ O dobro de Gold Coins de todas as criaturas at� o pr�ximo ServerSave ]") targetPlayer:sendCancelMessage("@RemoveMarkMap") end return false elseif Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_STEP) < 06 then Game.setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_STEP, (Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_STEP) + 01)) for _, targetPlayer in ipairs(players) do targetPlayer:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Pilares destruidos:\n[ 0" ..(Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_STEP) - 01).. " / 05 ]") end end return false end end if Name == "Orc Warlord" then if player:getStorageValue(_QUESTLOG[172].UID_01) == 03 then if player:getStorageValue(11001) == 19 then player:setStorageValue(11001, nil) player:setStorageValue(_QUESTLOG[172].UID_01, 04) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[QUEST]: Orc Warlods eliminados: 20/20") player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[QUEST]: Todos foram eliminados.") doBackpack(player, 12) player:sendCancelMessage("@LoadQuestWindows") else player:setStorageValue(11001, (player:getStorageValue(11001) + 1)) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[QUEST]: Orc Warlods eliminados: " ..player:getStorageValue(11001).. "/20") onLoadQuest(player) end end end if Name == "Blood Beast" then if player:getStorageValue(_QUESTLOG[166].UID_01) == 02 then if player:getStorageValue(10993) == 17 then player:teleportTo({x=3651, y=1707, z=07}) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:setStorageValue(10993, nil) addEvent(function() player:setStorageValue(_QUESTLOG[166].UID_01, 100) player:setStorageValue(_QUESTLOG[167].UID_01, 01) player:setStorageValue(_QUESTLOG[168].UID_01, 01) player:getPosition():sendMagicEffect(14) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:addExperience(53000, true, true) doBackpack(player, 12) end, 3000) return true else if player:getStorageValue(10993) < 01 then player:setStorageValue(10993, 01) else player:setStorageValue(10993, (player:getStorageValue(10993) + 1)) end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[NINHO]: Blood Beast restantes: " ..player:getStorageValue(10993).. "/18") end end end if Name == "Ashmunrah" then local party = player:getParty() if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) == 06 then if not party then player:teleportTo({x=4098, y=1359, z=8}) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Encontre a sala de recompensas.") player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 06) player:setStorageValue(_SYSTEM.DANGEROUS[06][01].RECOMPENSA[01], _SYSTEM.DANGEROUS[06][01].RECOMPENSA[02]) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:teleportTo({x=4098, y=1359, z=8}) member:getPosition():sendMagicEffect(CONST_ME_TELEPORT) member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Encontre a sala de recompensas.") member:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 06) member:setStorageValue(_SYSTEM.DANGEROUS[06][01].RECOMPENSA[01], _SYSTEM.DANGEROUS[06][01].RECOMPENSA[02]) end end return true end if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) < 00 then if not party then player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 01) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 01) end end else if not party then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Selo Ancestral Obtido:\n[ 0" ..player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE).. "/06 ]") player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, (player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) + 1)) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Selo Ancestral Obtido:\n[ 0" ..player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE).. "/06 ]") member:setStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE, (player:getStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE) + 1)) end end end return true end if Name == "Dipthrah" then local party = player:getParty() if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) == 06 then if not party then player:teleportTo({x=4098, y=1359, z=8}) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Encontre a sala de recompensas.") player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 06) player:setStorageValue(_SYSTEM.DANGEROUS[06][01].RECOMPENSA[01], _SYSTEM.DANGEROUS[06][01].RECOMPENSA[02]) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:teleportTo({x=4098, y=1359, z=8}) member:getPosition():sendMagicEffect(CONST_ME_TELEPORT) member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Encontre a sala de recompensas.") member:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 06) member:setStorageValue(_SYSTEM.DANGEROUS[06][01].RECOMPENSA[01], _SYSTEM.DANGEROUS[06][01].RECOMPENSA[02]) end end return true end if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) < 00 then if not party then player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 01) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 01) end end else if not party then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Selo Ancestral Obtido:\n[ 0" ..player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE).. "/06 ]") player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, (player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) + 1)) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Selo Ancestral Obtido:\n[ 0" ..player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE).. "/06 ]") member:setStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE, (player:getStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE) + 1)) end end end return true end if Name == "Rahemos" then local party = player:getParty() if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) == 06 then if not party then player:teleportTo({x=4098, y=1359, z=8}) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Encontre a sala de recompensas.") player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 06) player:setStorageValue(_SYSTEM.DANGEROUS[06][01].RECOMPENSA[01], _SYSTEM.DANGEROUS[06][01].RECOMPENSA[02]) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:teleportTo({x=4098, y=1359, z=8}) member:getPosition():sendMagicEffect(CONST_ME_TELEPORT) member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Encontre a sala de recompensas.") member:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 06) member:setStorageValue(_SYSTEM.DANGEROUS[06][01].RECOMPENSA[01], _SYSTEM.DANGEROUS[06][01].RECOMPENSA[02]) end end return true end if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) < 00 then if not party then player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 01) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 01) end end else if not party then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Selo Ancestral Obtido:\n[ 0" ..player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE).. "/06 ]") player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, (player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) + 1)) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Selo Ancestral Obtido:\n[ 0" ..player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE).. "/06 ]") member:setStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE, (player:getStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE) + 1)) end end end return true end if Name == "Morguthis" then local party = player:getParty() if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) == 06 then if not party then player:teleportTo({x=4098, y=1359, z=8}) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Encontre a sala de recompensas.") player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 06) player:setStorageValue(_SYSTEM.DANGEROUS[06][01].RECOMPENSA[01], _SYSTEM.DANGEROUS[06][01].RECOMPENSA[02]) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:teleportTo({x=4098, y=1359, z=8}) member:getPosition():sendMagicEffect(CONST_ME_TELEPORT) member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Encontre a sala de recompensas.") member:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 06) member:setStorageValue(_SYSTEM.DANGEROUS[06][01].RECOMPENSA[01], _SYSTEM.DANGEROUS[06][01].RECOMPENSA[02]) end end return true end if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) < 00 then if not party then player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 01) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 01) end end else if not party then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Selo Ancestral Obtido:\n[ 0" ..player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE).. "/06 ]") player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, (player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) + 1)) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Selo Ancestral Obtido:\n[ 0" ..player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE).. "/06 ]") member:setStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE, (player:getStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE) + 1)) end end end return true end if Name == "Glooth Fairy" then local party = player:getParty() if not party then player:setStorageValue(_SYSTEM.DANGEROUS[06][01].RECOMPENSA[01], _SYSTEM.DANGEROUS[06][01].RECOMPENSA[02]) if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 01 then player:teleportTo({x=3987, y=1535, z=14}) elseif player:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 02 then player:teleportTo({x=4095, y=1535, z=14}) elseif player:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 03 then player:teleportTo({x=4203, y=1535, z=14}) end player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do if member:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 01 then member:teleportTo({x=3987, y=1535, z=14}) elseif member:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 02 then member:teleportTo({x=4095, y=1535, z=14}) elseif member:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 03 then member:teleportTo({x=4203, y=1535, z=14}) end member:setStorageValue(_SYSTEM.DANGEROUS[06][01].RECOMPENSA[01], _SYSTEM.DANGEROUS[06][01].RECOMPENSA[02]) member:getPosition():sendMagicEffect(CONST_ME_TELEPORT) end end end if Name == "Protetor" then local party = player:getParty() if not party then if player:getStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE) >= 05 then if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 01 then player:teleportTo({x=4045, y=1738, z=14}) elseif player:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 02 then player:teleportTo({x=4186, y=1738, z=14}) elseif player:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 03 then player:teleportTo({x=4327, y=1738, z=14}) end player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Todos os protetores foram destruidos.\nColete sua recompensa.") player:setStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE, 05) player:setStorageValue(_SYSTEM.DANGEROUS[04][01].RECOMPENSA[01], _SYSTEM.DANGEROUS[04][01].RECOMPENSA[02]) else player:setStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE, (player:getStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE) + 1)) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Protetor Destruido [ 0" ..(player:getStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE) - 01).. "/05 ]") end else if player:getStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE) >= 05 then local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do if member:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 01 then member:teleportTo({x=4045, y=1738, z=14}) elseif member:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 02 then member:teleportTo({x=4186, y=1738, z=14}) elseif member:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 03 then member:teleportTo({x=4327, y=1738, z=14}) end member:getPosition():sendMagicEffect(CONST_ME_TELEPORT) member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Todos os protetores foram destruidos.\nColete sua recompensa.") member:setStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE, 05) member:setStorageValue(_SYSTEM.DANGEROUS[04][01].RECOMPENSA[01], _SYSTEM.DANGEROUS[04][01].RECOMPENSA[02]) end else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:setStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE, (member:getStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE) + 1)) member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Protetor Destruido [ 0" ..(member:getStorageValue(_SYSTEM.DANGEROUS[04][01].STORAGE) - 01).. "/05 ]") end end end return true end if Name == "Dimensional Pilar" then local party = player:getParty() if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) == 05 then if not party then player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 06) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "O Boss foi invocado.") player:getPosition():sendMagicEffect(13) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:getPosition():sendMagicEffect(13) member:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 06) member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "O Boss foi invocado.") end end if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 01 then Game.createMonster("Glooth Fairy", {x=3995, y=1539, z=14}) elseif player:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 02 then Game.createMonster("Glooth Fairy", {x=4103, y=1539, z=14}) elseif player:getStorageValue(_SYSTEM.DANGEROUS[06][01].INDEX) == 03 then Game.createMonster("Glooth Fairy", {x=4211, y=1539, z=14}) end return true end if player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) < 00 then if not party then player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 01) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, 01) end end else if not party then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Pillar Dimensional Destruido [ 0" ..(player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE)).. "/05 ]") player:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, (player:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) + 1)) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Pillar Dimensional Destruido [ 0" ..(member:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE)).. "/05 ]") member:setStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE, (member:getStorageValue(_SYSTEM.DANGEROUS[06][01].STORAGE) + 1)) end end end return true end if Name == "Seagull" then if mpos.x == 3955 and mpos.y == 1077 and mpos.z == 06 then local CorpsePos = Position(3955, 1078, 7) local itemCorpse = Game.createItem(6076, 1, CorpsePos) local GatePos = Position(3982, 1082, 7) local GateThing = Tile(GatePos):getItemById(1546) if GateThing then GateThing:remove() GatePos:sendMagicEffect(CONST_ME_POFF) GateTime = 25 onRemoveSelectItem(GatePos, GateThing, 1546) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[ Bot�o acionado ]\nSela aberta.") player:getPosition():sendMagicEffect(14) end end return true end if Name == "Ghastly Dragon" then if player:getStorageValue(_SYSTEM.ESPECIALISTA[02]) < 06 then if player:getStorageValue(_SYSTEM.ESPECIALISTA[03]) == 02 then if mpos.x == 3868 and mpos.y == 1067 and mpos.z == 10 or mpos.x == 3893 and mpos.y == 1060 and mpos.z == 12 then if player:getStorageValue(_SYSTEM.ESPECIALISTA[04]) == 04 then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Sacrificio Aceito [ 05/05 ]") player:setStorageValue(_SYSTEM.ESPECIALISTA[02], (player:getStorageValue(_SYSTEM.ESPECIALISTA[02]) + 1)) player:setStorageValue(_SYSTEM.ESPECIALISTA[03], nil) player:setStorageValue(_SYSTEM.ESPECIALISTA[04], nil) if player:getStorageValue(_QUESTLOG[159].UID_01) == 02 then addEvent(function() player:setStorageValue(_QUESTLOG[159].UID_01, 100) player:setStorageValue(_QUESTLOG[160].UID_01, 01) player:getPosition():sendMagicEffect(14) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:addExperience(200000, true, true) doBackpack(player, 12) end, 5000) end addEvent(onEspecialistaPlayer, 3000, player.uid) else player:setStorageValue(_SYSTEM.ESPECIALISTA[04], (player:getStorageValue(_SYSTEM.ESPECIALISTA[04]) + 1)) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Sacrificio Aceito [ 0" ..player:getStorageValue(_SYSTEM.ESPECIALISTA[04]).. "/05 ]") doBackpack(player, 12) end end end end end if Name == "Nucleo Dimensional" then if player:getStorageValue(_SYSTEM.FENDAS_DIMENSIONAL[01]) > 00 then local X = player:getStorageValue(_SYSTEM.FENDAS_DIMENSIONAL[01]) player:teleportTo(_GLOBAL_RANDOM.FENDAS_DIMENSIONAIS[X].OUT) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendCancelMessage("@DGTime 0 0 0") player:sendTextMessage(MESSAGE_INFO_DESCR, "[ FENDA DIMENSIONAL ]\nVoc� obteve x10 Criptomoedas por selar essa fenda.") PlayerFendasDimensionais(player, 1000, 01, X) player:setStorageValue(_SYSTEM.FENDAS_DIMENSIONAL[01], nil) if player:getStorageValue(_SYSTEM.CRIPTOMOEDA) < 00 then player:setStorageValue(_SYSTEM.CRIPTOMOEDA, ((player:getStorageValue(_SYSTEM.CRIPTOMOEDA) + 10) + 01)) else player:setStorageValue(_SYSTEM.CRIPTOMOEDA, (player:getStorageValue(_SYSTEM.CRIPTOMOEDA) + 10)) end doBackpack(player, 11) player:sendCancelMessage("@LootMSG 3297 4 3 10") addEvent(function() if player:getStorageValue(_QUESTLOG[167].UID_01) == 02 then player:setStorageValue(_QUESTLOG[167].UID_01, 100) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") end end, 5000) else player:teleportTo({x=3999, y=991, z=07}) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) end if player:getStorageValue(_QUESTLOG[167].UID_01) == 03 then player:setStorageValue(_QUESTLOG[167].UID_01, 100) addEvent(function() player:addExperience(550000, true, true) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") doBackpack(player, 12) end, 5000) end if player:getStorageValue(_QUESTLOG[118].UID_01) == 02 then player:setStorageValue(_QUESTLOG[118].UID_01, 03) addEvent(function() player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") end, 2 * 1000) end end if player:isPlayer() then -- NINHOS if player:getStorageValue(_SYSTEM.GLOBAL_INDEX[04]) == 01 then local NINHO_DIFICULTY = { [01] = {"FACIL", 00}; [02] = {"MEDIO", 01}; [03] = {"DIFICIL", 02}; [04] = {"IMPOSSIVEL", 03}; } local QNT = _SYSTEM.GLOBAL_INDEX[03] local HARD = NINHO_DIFICULTY[player:getStorageValue(_SYSTEM.GLOBAL_INDEX[01])][01] local INDEX = player:getStorageValue(_SYSTEM.GLOBAL_INDEX[02]) local TOTAL_NINHO = _GLOBAL_RANDOM.NINHOS[HARD][INDEX].TOTAL if player:getStorageValue(_SYSTEM.GLOBAL_INDEX[03]) > 1 then player:setStorageValue(QNT, (player:getStorageValue(QNT) - 1)) player:sendCancelMessage("@TaskMSG-0-" ..Name.. "-" ..player:getStorageValue(QNT).. "-" ..TOTAL_NINHO.. "-NINHO") player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[NINHO]: " ..Name .. " restantes: " ..player:getStorageValue(QNT).. "/" ..TOTAL_NINHO) else player:setStorageValue(_SYSTEM.GLOBAL_INDEX[04], nil) player:setStorageValue(QNT, nil) player:sendCancelMessage("@TaskMSG-1-fin-0-0".. "-NINHO") player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Encontre o portal para sair da �rea.") player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[NINHO]: Todos os monstros foram eliminados") end end -- DESAFIO ESPECIALISTA #04 if player:getStorageValue(_SYSTEM.ESPECIALISTA[02]) < 06 then if player:getStorageValue(_SYSTEM.ESPECIALISTA[03]) == 04 then local QNT = _SYSTEM.ESPECIALISTA[04] local TOTAL_DESAFIO = 100 if player:getStorageValue(_SYSTEM.ESPECIALISTA[04]) < 99 then player:setStorageValue(QNT, (player:getStorageValue(QNT) + 1)) player:sendCancelMessage("@TaskMSG-0-Drakens-" ..player:getStorageValue(QNT).. "-" ..TOTAL_DESAFIO.. "-QUEST") player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[QUEST]: Drakens eliminados: " ..player:getStorageValue(QNT).. "/" ..TOTAL_DESAFIO) else player:setStorageValue(QNT, (player:getStorageValue(QNT) + 1)) player:sendCancelMessage("@TaskMSG-0-Drakens-" ..player:getStorageValue(QNT).. "-" ..TOTAL_DESAFIO.. "-QUEST") player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[QUEST]: Drakens eliminados: " ..player:getStorageValue(QNT).. "/" ..TOTAL_DESAFIO) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Encontre o Portal para enfrentar o Boss.") player:setStorageValue(QNT, nil) player:setStorageValue(_SYSTEM.ESPECIALISTA[03], 05) end doBackpack(player, 12) elseif player:getStorageValue(_SYSTEM.ESPECIALISTA[03]) == 05 then if Name == "Zulazza The Corruptor" then player:setStorageValue(_SYSTEM.ESPECIALISTA[02], (player:getStorageValue(_SYSTEM.ESPECIALISTA[02]) + 1)) player:setStorageValue(_SYSTEM.ESPECIALISTA[03], nil) player:setStorageValue(_SYSTEM.ESPECIALISTA[04], nil) if player:getStorageValue(_QUESTLOG[161].UID_01) == 02 then addEvent(function() player:setStorageValue(_QUESTLOG[161].UID_01, 100) player:setStorageValue(_QUESTLOG[162].UID_01, 01) player:getPosition():sendMagicEffect(14) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") player:addExperience(300000, true, true) doBackpack(player, 12) end, 5000) end addEvent(onEspecialistaPlayer, 3000, player.uid) end end end -- COLISEU WAVES if player:getStorageValue(_SYSTEM.COLISEU[05]) > 00 then if player:getStorageValue(_SYSTEM.COLISEU[08]) < 06 then if player:getStorageValue(_SYSTEM.COLISEU[05]) == 01 then if player:getStorageValue(_SYSTEM.COLISEU[08]) < 05 then local WAVE = player:getStorageValue(_SYSTEM.COLISEU[08]) local HARD = player:getStorageValue(_SYSTEM.COLISEU[06]) local CATEGORY = 02 local INDEX = player:getStorageValue(_SYSTEM.COLISEU[07]) player:setStorageValue(_SYSTEM.COLISEU[08], (player:getStorageValue(_SYSTEM.COLISEU[08]) + 01)) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ONDA [ 0" ..player:getStorageValue(_SYSTEM.COLISEU[08]).. "/05 ]\nPrepare-se!") addEvent(function() local MonsterName = _GLOBAL_RANDOM.COLISEUM.ORDER[HARD][CATEGORY][INDEX].NAME for M = 01, #_GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY][WAVE + 01] do Game.createMonster(MonsterName, _GLOBAL_RANDOM.COLISEUM.ORDER[00][CATEGORY][WAVE + 01][M]) player:setStorageValue(_SYSTEM.COLISEU[05], M) end end, 5000) else player:setStorageValue(_SYSTEM.COLISEU[08], 06) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Voc� finalizou todas as Waves.\nClique na est�tua central para finalizar.") end else player:setStorageValue(_SYSTEM.COLISEU[05], (player:getStorageValue(_SYSTEM.COLISEU[05]) - 01)) end end return false end end if _MONSTER_LOOT[Name] then doRemoveCreature(target:getId()) local cids = {} for cid, damage in pairs(target:getDamageMap()) do local killer = Creature(cid) if killer and killer:isPlayer() and target:isMonster() then table.insert(cids, killer) end end -- EVENTOS if Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_ID) > 0 then local IDD = Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_ID) if IDD == 01 then -- BEN��O DOS DEUSES if _MONSTER_LOOT[Name][00].Task_ID[01] == Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_3) or _MONSTER_LOOT[Name][00].Task_ID[01] == Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_6) or _MONSTER_LOOT[Name][00].Task_ID[01] == Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_9) then if math.random(00, 100) < 50 then if player:getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[IDD].GOLD_TOKEN) < 0 then player:setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[IDD].GOLD_TOKEN, 01) else player:setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[IDD].GOLD_TOKEN, (player:getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[IDD].GOLD_TOKEN) + 01)) end player:sendCancelMessage("@LootMSG 3046 3 3 1") player:sendCancelMessage("@ReloadEvents 01 " ..player:getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[IDD].GOLD_TOKEN)) end end end if IDD == 02 then -- MODO ONLINE local QntMonster = Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_1) if QntMonster < 5000 then if QntMonster < 0 then Game.setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_1, 01) else Game.setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_1, (QntMonster + 01)) end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[EVENTO]: Monstros para a meta: " ..(QntMonster + 01).. "/5000.") player:sendCancelMessage("@ReloadEvents 02 " ..(QntMonster + 01)) end end if IDD == 03 then -- CRYPTBLOOD local QntMonster = Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_1) if QntMonster < 49999 then if QntMonster < 0 then Game.setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_1, 01) else Game.setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_1, (QntMonster + 01)) end player:sendCancelMessage("@ReloadEvents 03 " ..(QntMonster + 01)) end end if IDD == 04 then -- ESS�NCIAS ELEMENTAIS local chanceDrop = math.random(00, 100) if chanceDrop < 25 then if doBackpack(player, 00, 03, 00, 01) then local itemid = math.random(3161, 3164) local qnt = 01 local rare = 0 local ext = 0 local star = 0 player:sendCancelMessage("@Analyser#02#" ..itemid.. "#" ..qnt.. "#" ..rare) doBackpack(player, 03, 03, ext, 01, itemid) -- Procurar if doBackpack(player, 01, 03, ext, 0, itemid, rare, star, qnt) then end end end end if IDD == 12 then -- OS ESCOLHIDOS local CM_UM = Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_1) local CM_DO = Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_2) local CM_TR = Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_3) local TYPE = _MONSTER_LOOT[Name][00].Type local CLASSES_IMG = { [01] = {NAME = 'Dragon', IMG = '/images/custom/Spells/Passiva/passive_4019'}; [02] = {NAME = 'Magica', IMG = '/images/custom/Spells/Passiva/passive_4026'}; [03] = {NAME = 'Repteis', IMG = '/images/custom/Spells/Passiva/passive_4036'}; [04] = {NAME = 'Aquatico', IMG = '/images/custom/Spells/Passiva/passive_4046'}; [05] = {NAME = 'Morto-Vivo', IMG = '/images/custom/Spells/Passiva/passive_4049'}; [06] = {NAME = 'Vermes', IMG = '/images/custom/Spells/Passiva/passive_4020'}; [07] = {NAME = 'Mamiferos', IMG = '/images/custom/Spells/Passiva/passive_4015'}; [08] = {NAME = 'Demon', IMG = '/images/custom/Spells/Passiva/passive_4030'}; [09] = {NAME = 'Gigantes', IMG = '/images/custom/Spells/Passiva/passive_4033'}; [10] = {NAME = 'Constructos', IMG = '/images/custom/Spells/Passiva/passive_4001'}; [11] = {NAME = 'Humanoide', IMG = '/images/custom/Spells/Passiva/passive_4005'}; [12] = {NAME = 'Dimensionais', IMG = '/images/custom/Spells/Passiva/passive_4012'}; } if TYPE == CLASSES_IMG[CM_UM].NAME or TYPE == CLASSES_IMG[CM_DO].NAME or TYPE == CLASSES_IMG[CM_TR].NAME then if Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_4) < 2000 then if Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_4) < 0 then Game.setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_4, 01) else Game.setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_4, (Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_4) + 01)) end end else if Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_4) > 0 then Game.setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_4, (Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_4) - 01)) end end player:sendCancelMessage("@ReloadEvents " ..IDD.. " " ..Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_4)) end end -- BOSS [BLACKLIST] if _MONSTER_LOOT[Name][00].Type == "Boss" then local party = player:getParty() local RANK_EXP = _MONSTER_LOOT[Name][00].Task_ID[04] local MONSTER_RANK = _MONSTER_LOOT[Name][00].QuestKill[01] local eventKey = false if Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_ID) == 10 then local PlayerRank = player:getStorageValue(_SYSTEM.TASK[00].RANK) local chancEvent = math.random(000, 100) local EXP = 00 if PlayerRank < 1 then PlayerRank = 1 end if PlayerRank == 01 then EXP = 20 elseif PlayerRank == 02 then EXP = 30 elseif PlayerRank == 03 then EXP = 40 elseif PlayerRank == 04 then EXP = 50 elseif PlayerRank == 05 then EXP = 60 elseif PlayerRank == 06 then EXP = 70 elseif PlayerRank == 07 then EXP = 80 elseif PlayerRank == 08 then EXP = 90 elseif PlayerRank == 09 then EXP = 99 end if chancEvent < EXP then eventKey = true end end if not party then local PlayerRank = player:getStorageValue(_SYSTEM.TASK[00].RANK) if PlayerRank < 1 then PlayerRank = 1 end if eventKey then if player:getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[10].KEYS_EVENT) < 00 then player:setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[10].KEYS_EVENT, 01) else player:setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[10].KEYS_EVENT, (player:getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[10].KEYS_EVENT) + 01)) end player:sendCancelMessage("@LootMSG 3298 03 03 01") player:sendCancelMessage("@ReloadEvents 10 " ..player:getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[10].KEYS_EVENT)) end -- GANHANDO PONTOS if PlayerRank < 09 then if MONSTER_RANK == PlayerRank then if player:getStorageValue(_SYSTEM.TASK[00].EXP) < 0 then player:setStorageValue(_SYSTEM.TASK[00].EXP, 0) end -- DESAFIO if player:getStorageValue(_DESAFIOS[00].DESAFIO_ID) > 00 then if _MONSTER_LOOT[Name][00].QuestKill[01] == 01 then onPlayerDesafios(player, 35, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 02 then onPlayerDesafios(player, 36, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 03 then onPlayerDesafios(player, 37, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 04 then onPlayerDesafios(player, 38, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 05 then onPlayerDesafios(player, 39, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 06 then onPlayerDesafios(player, 40, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 07 then onPlayerDesafios(player, 41, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 08 then onPlayerDesafios(player, 42, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 09 then onPlayerDesafios(player, 43, 01) end end player:setStorageValue(_SYSTEM.TASK[00].EXP, (player:getStorageValue(_SYSTEM.TASK[00].EXP) + RANK_EXP)) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BLACKLIST]: Voc� obteve " ..RANK_EXP.. " de EXP.") doBackpack(player, 11) else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Voc� n�o ganha pontos ao matar bosses inferior ao seu rank.") end end -- AVAN�ANDO DE RANK local checkEXPRank = player:getStorageValue(_SYSTEM.TASK[00].EXP) if PlayerRank < 09 then if checkEXPRank >= _SYSTEM.TASK.BOSSES[PlayerRank].QNT_RANK then if player:getStorageValue(_SYSTEM.TASK[00].RANK) < 1 then player:setStorageValue(_SYSTEM.TASK[00].RANK, 02) else player:setStorageValue(_SYSTEM.TASK[00].RANK, (player:getStorageValue(_SYSTEM.TASK[00].RANK) + 01)) end player:setStorageValue(_SYSTEM.TASK[00].EXP, 00) doBackpack(player, 11) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Sua muni��o m�xima aumentou.") player:sendCancelMessage("@QuestBlock 02") end end if player:getStorageValue(_QUESTLOG[28].UID_01) == 02 then player:setStorageValue(_QUESTLOG[28].UID_01, 03) addEvent(function() player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") end, 2 * 1000) end addEvent(onTPPlayer, 2000, player.uid) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do local PlayerRank = member:getStorageValue(_SYSTEM.TASK[00].RANK) if PlayerRank < 1 then PlayerRank = 1 end if eventKey then if member:getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[10].KEYS_EVENT) < 00 then member:setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[10].KEYS_EVENT, 01) else member:setStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[10].KEYS_EVENT, (member:getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[10].KEYS_EVENT) + 01)) end member:sendCancelMessage("@LootMSG 3298 03 03 01") player:sendCancelMessage("@ReloadEvents 10 " ..player:getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[10].KEYS_EVENT)) end -- GANHANDO PONTOS if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 07 then RANK_EXP = RANK_EXP + 01 end if PlayerRank < 09 then if MONSTER_RANK == PlayerRank then if member:getStorageValue(_SYSTEM.TASK[00].EXP) < 0 then member:setStorageValue(_SYSTEM.TASK[00].EXP, 0) end if member:getStorageValue(_DESAFIOS[00].DESAFIO_ID) > 00 then if _MONSTER_LOOT[Name][00].QuestKill[01] == 01 then onPlayerDesafios(member, 35, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 02 then onPlayerDesafios(member, 36, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 03 then onPlayerDesafios(member, 37, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 04 then onPlayerDesafios(member, 38, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 05 then onPlayerDesafios(member, 39, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 06 then onPlayerDesafios(member, 40, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 07 then onPlayerDesafios(member, 41, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 08 then onPlayerDesafios(member, 42, 01) elseif _MONSTER_LOOT[Name][00].QuestKill[01] == 09 then onPlayerDesafios(member, 43, 01) end end member:setStorageValue(_SYSTEM.TASK[00].EXP, (member:getStorageValue(_SYSTEM.TASK[00].EXP) + RANK_EXP)) member:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BLACKLIST]: Voc� obteve " ..RANK_EXP.. " de EXP.") doBackpack(member, 11) else member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Voc� n�o ganha pontos ao matar bosses inferior ao seu rank.") end end -- AVAN�ANDO DE RANK local checkEXPRank = member:getStorageValue(_SYSTEM.TASK[00].EXP) if PlayerRank < 09 then if checkEXPRank >= _SYSTEM.TASK.BOSSES[PlayerRank].QNT_RANK then if member:getStorageValue(_SYSTEM.TASK[00].RANK) < 1 then member:setStorageValue(_SYSTEM.TASK[00].RANK, 02) else member:setStorageValue(_SYSTEM.TASK[00].RANK, (member:getStorageValue(_SYSTEM.TASK[00].RANK) + 01)) end member:setStorageValue(_SYSTEM.TASK[00].EXP, 00) doBackpack(member, 11) member:sendCancelMessage("@QuestBlock 02") end end if member:getStorageValue(_QUESTLOG[28].UID_01) == 02 then member:setStorageValue(_QUESTLOG[28].UID_01, 03) addEvent(function() member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") end, 2 * 1000) end addEvent(onTPPlayer, 2000, member.uid) end end if Name == "Demodras" then if player:getStorageValue(_QUESTLOG[168].UID_01) == 02 then addEvent(function() player:setStorageValue(_QUESTLOG[168].UID_01, 100) player:setStorageValue(_QUESTLOG[169].UID_01, 001) player:setStorageValue(_QUESTLOG[170].UID_01, 001) player:addExperience(58000, true, true) PlayerGoldCoins(player, 02, 8000) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") end, 5000) end end end if #cids > 0 then for P = 01, #cids do local pid = Creature(cids[P]) local _cid = pid:getId() -- DESAFIO if pid:getStorageValue(_DESAFIOS[00].DESAFIO_ID) > 00 then if _MONSTER_LOOT[Name][00].Type == "Dragon" then onPlayerDesafios(pid, 08, 01) elseif _MONSTER_LOOT[Name][00].Type == "Magica" then onPlayerDesafios(pid, 09, 01) elseif _MONSTER_LOOT[Name][00].Type == "Repteis" then onPlayerDesafios(pid, 10, 01) elseif _MONSTER_LOOT[Name][00].Type == "Aquatico" then onPlayerDesafios(pid, 11, 01) elseif _MONSTER_LOOT[Name][00].Type == "Morto-Vivo" then onPlayerDesafios(pid, 12, 01) elseif _MONSTER_LOOT[Name][00].Type == "Vermes" then onPlayerDesafios(pid, 13, 01) elseif _MONSTER_LOOT[Name][00].Type == "Mamiferos" then onPlayerDesafios(pid, 14, 01) elseif _MONSTER_LOOT[Name][00].Type == "Demon" then onPlayerDesafios(pid, 15, 01) elseif _MONSTER_LOOT[Name][00].Type == "Gigantes" then onPlayerDesafios(pid, 16, 01) elseif _MONSTER_LOOT[Name][00].Type == "Constructos" then onPlayerDesafios(pid, 17, 01) elseif _MONSTER_LOOT[Name][00].Type == "Humanoide" then onPlayerDesafios(pid, 18, 01) elseif _MONSTER_LOOT[Name][00].Type == "Dimensionais" then onPlayerDesafios(pid, 19, 01) end end if Name == "Devovorga" then local chooseBuff = math.random(01, #_SHOP_PRODUCTS[03]) if pid:getStorageValue(_GLOBAL_RANDOM.BUFFS[chooseBuff].STORAGE) > 00 then pid:getPosition():sendMagicEffect(CONST_ME_POFF) else pid:setStorageValue(_GLOBAL_RANDOM.BUFFS[chooseBuff].STORAGE, 1800) pid:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Voc� obteve [ " .._SHOP_PRODUCTS[03][chooseBuff].NAME.. " ] por 30 minutos.") pid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Buff Ativado: [ " .._SHOP_PRODUCTS[03][chooseBuff].NAME.. " ] por 30 minutos.") pid:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) doInventario(pid, 05) end end -- PASSIVA if onGetPassivas(pid, 09) then local Percent = _PASSIVES[09].POWER_BASE + (_PASSIVES[09].POWER_FOR_LEVEL * (PASSIVE_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[09].CATEGORY then Percent = Percent + _PASSIVES[09].BOOST end end pid:setStorageValue(_SYSTEM.PASSIVA[01], 05) pid:sendCancelMessage("@IndividualStatus 01 " ..Percent) end if onGetPassivas(pid, 19) then local Percent = _PASSIVES[19].POWER_BASE + (_PASSIVES[19].POWER_FOR_LEVEL * (PASSIVE_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[19].CATEGORY then Percent = Percent + _PASSIVES[19].BOOST end end pid:setStorageValue(_SYSTEM.PASSIVA[02], 05) pid:sendCancelMessage("@IndividualStatus 02 " ..Percent) end -- TASK if pid:getStorageValue(_SYSTEM.TASK[00].TASK_ATIVA) > 0 then if _MONSTER_LOOT[Name][00].Type ~= "Boss" then if pid:getStorageValue(_SYSTEM.TASK[00].TASK_ATIVA) == _MONSTER_LOOT[Name][00].Task_ID[01] then local QNT = _SYSTEM.TASK[00].QNT_ATIVA local TOTAL_TASK = _MONSTER_LOOT[Name][00].Task_ID[02] if pid:getStorageValue(_DESAFIOS[00].DESAFIO_TYPE) == 01 then TOTAL_TASK = TOTAL_TASK * 2 end if pid:getStorageValue(QNT) == -1 then pid:setStorageValue(QNT, (pid:getStorageValue(QNT) + 2)) pid:sendCancelMessage("@TaskMSG-0-" ..Name.. "-" ..pid:getStorageValue(QNT).. "-" ..TOTAL_TASK.. "-TASK") pid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[TASK]: " ..Name.. " eliminado(a): " ..pid:getStorageValue(QNT).. "/" ..TOTAL_TASK) doBackpack(pid, 11) else pid:setStorageValue(QNT, (pid:getStorageValue(QNT) + 1)) pid:sendCancelMessage("@TaskMSG-0-" ..Name.. "-" ..pid:getStorageValue(QNT).. "-" ..TOTAL_TASK.. "-TASK") pid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[TASK]: " ..Name .. " eliminado(a): " ..pid:getStorageValue(QNT).. "/" ..TOTAL_TASK) doBackpack(pid, 11) end if pid:getStorageValue(QNT) >= TOTAL_TASK then local TOKEN_MULT = 1 local GOLD_GAIN = _MONSTER_LOOT[Name][00].Task_ID[05] local TokensGain = _MONSTER_LOOT[Name][00].Task_ID[04] local checkNexus = pid:getStorageValue(_SYSTEM.TASK[00].NEXUS) if pid:getStorageValue(_SYSTEM.SHOP_WARZONE) == 06 then TOKEN_MULT = 2 end if checkNexus > 00 then if Game.getStorageValue(_SYSTEM.TASK.MONSTER[checkNexus][00].BOOSTER) > 00 then if pid:getStorageValue(_SYSTEM.TASK[00].TASK_ATIVA) == Game.getStorageValue(_SYSTEM.TASK.MONSTER[checkNexus][00].BOOSTER) then TokensGain = TokensGain + 01 end end end -- DESAFIO SHOP if pid:getStorageValue(_DESAFIOS[00].DESAFIO_TYPE) == 01 then if pid:getStorageValue(_DESAFIOS[00].DESAFIO_SHOP) > 00 then TOKEN_MULT = TOKEN_MULT + 01 GOLD_GAIN = GOLD_GAIN * 2 if pid:getStorageValue(_DESAFIOS[00].DESAFIO_SHOP) == 01 then pid:setStorageValue(_DESAFIOS[00].DESAFIO_TYPE, nil) pid:setStorageValue(_DESAFIOS[00].DESAFIO_SHOP, nil) pid:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[EXTENSOR TASK]: FINALIZADO!") else pid:setStorageValue(_DESAFIOS[00].DESAFIO_SHOP, (pid:getStorageValue(_DESAFIOS[00].DESAFIO_SHOP) - 01)) pid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[EXTENSOR TASK]: Ainda resta " ..pid:getStorageValue(_DESAFIOS[00].DESAFIO_SHOP).. ".") end end end pid:setStorageValue(_SYSTEM.TASK[00].TASK_ATIVA, nil) pid:setStorageValue(_SYSTEM.TASK[00].QNT_ATIVA, nil) pid:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[TASK]: FINALIZADA! Voc� obteve " .. GOLD_GAIN .. " gold | " .. (TokensGain * TOKEN_MULT) .." Tokens.") pid:sendCancelMessage("@TaskMSG-1-fin-" .. GOLD_GAIN.. "-" ..(TokensGain * TOKEN_MULT).. "-TASK") PlayerGoldCoins(pid, 02, GOLD_GAIN) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 07 then local party = player:getParty() if party then TokensGain = TokensGain + 01 end end PlayerTokenCoins(pid, _MONSTER_LOOT[Name][00].Task_ID[03], TokensGain, TOKEN_MULT) -- DESAFIO if pid:getStorageValue(_DESAFIOS[00].DESAFIO_ID) > 00 then onPlayerDesafios(pid, 06, 01) end if pid:getStorageValue(_QUESTLOG[27].UID_01) == 02 then pid:setStorageValue(_QUESTLOG[27].UID_01, 03) addEvent(function() pid:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") end, 2 * 1000) end end end end end -- QUEST if _MONSTER_LOOT[Name][00].QuestKill[01] ~= nil then if _MONSTER_LOOT[Name][00].QuestKill[01] > 0 then if pid:getStorageValue(_MONSTER_LOOT[Name][00].QuestKill[02]) > 0 and pid:getStorageValue(_MONSTER_LOOT[Name][00].QuestKill[02]) < 100 then local ST = _MONSTER_LOOT[Name][00].QuestKill[03] local VL = _MONSTER_LOOT[Name][00].QuestKill[04] or 0 if pid:getStorageValue(ST) == (VL - 01) then pid:setStorageValue(ST, (pid:getStorageValue(ST) + 1)) pid:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[QUEST]: QUEST FINALIZADA! Todos foram derrotados.") pid:sendCancelMessage("@TaskMSG-1-fin-" .. _MONSTER_LOOT[Name][00].QuestKill[04].. "-0".. "-QUEST") if pid:getStorageValue(_QUESTLOG[078].UID_01) == 01 then pid:setStorageValue(_QUESTLOG[078].UID_01, 100) doBackpack(pid, 12) addEvent(function() pid:addExperience(15000, true, true) end, 3 * 1000) addEvent(function() PlayerGoldCoins(pid, 02, 2900) end, 3 * 1000) addEvent(function() pid:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Seu Quest Log foi atualizado.") end, 3 * 1000) end else if pid:getStorageValue(ST) < VL then if pid:getStorageValue(ST) == -1 then pid:setStorageValue(ST, (pid:getStorageValue(ST) + 2)) pid:sendCancelMessage("@TaskMSG-0-" ..Name.. "-" ..pid:getStorageValue(ST).. "-" ..VL.. "-QUEST") pid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[QUEST]: " ..Name.. " eliminado(a): " ..pid:getStorageValue(ST).. "/" ..VL) else pid:setStorageValue(ST, (pid:getStorageValue(ST) + 1)) pid:sendCancelMessage("@TaskMSG-0-" ..Name.. "-" ..pid:getStorageValue(ST).. "-" ..VL.. "-QUEST") pid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "[QUEST]: " ..Name.. " eliminado(a): " ..pid:getStorageValue(ST).. "/" ..VL) end end end onLoadQuest(player, _MONSTER_LOOT[Name][00].QuestKill[01]) end end end local AtrDropChance = pid:getStorageValue(_SYSTEM.ATR_VALUES[02]) or 0 local GoldAtrDrop = pid:getStorageValue(_SYSTEM.ATR_VALUES[03]) or 0 local AmuletDrop = 0 local CountCoin = 00 local GoldMult = 1 local RankPid = 1 if pid:getStorageValue(_SYSTEM.AMULET_VALUES[00][02]) == 08 then AmuletDrop = pid:getStorageValue(_SYSTEM.AMULET_VALUES[00][03]) or 0 end local lootsId = { [01] = {UID = 0000, SLOT = 0000, RARE = 0000, STAR = 0000, QNT = 0000}, [02] = {UID = 0000, SLOT = 0000, RARE = 0000, STAR = 0000, QNT = 0000}, [03] = {UID = 0000, SLOT = 0000, RARE = 0000, STAR = 0000, QNT = 0000}, [04] = {UID = 0000, SLOT = 0000, RARE = 0000, STAR = 0000, QNT = 0000}, [05] = {UID = 0000, SLOT = 0000, RARE = 0000, STAR = 0000, QNT = 0000}, [06] = {UID = 0000, SLOT = 0000, RARE = 0000, STAR = 0000, QNT = 0000}, [07] = {UID = 0000, SLOT = 0000, RARE = 0000, STAR = 0000, QNT = 0000}, [08] = {UID = 0000, SLOT = 0000, RARE = 0000, STAR = 0000, QNT = 0000}, [09] = {UID = 0000, SLOT = 0000, RARE = 0000, STAR = 0000, QNT = 0000}, [10] = {UID = 0000, SLOT = 0000, RARE = 0000, STAR = 0000, QNT = 0000}, } local chance = math.random(00, 100) - AmuletDrop - AtrDropChance if _BONUS_EXTRA_TABLE[_cid] then local ID_BONUS = 33 if _BONUS_EXTRA_TABLE[_cid][ID_BONUS] > 00 then chance = chance - _BONUS_EXTRA_TABLE[_cid][ID_BONUS] end end if _CHEATS.GOLD_MINER_UNLOCK then GoldMult = GoldMult * 2 end if Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[11].PILLAR_STEP) == 06 then GoldMult = GoldMult * 2 end if pid:getStorageValue(_SYSTEM.SHOP_WARZONE) == 05 then GoldMult = GoldMult * 2 end if _MONSTER_LOOT[Name][00].Type == "Boss" and chance > 00 then local RANK_SELECT = pid:getStorageValue(_SYSTEM.COLISEU[06]) local BOSS_SELECT = pid:getStorageValue(_SYSTEM.COLISEU[07]) if RANK_SELECT < 00 then RANK_SELECT = 01 end if BOSS_SELECT < 00 then BOSS_SELECT = 01 end if RANK_SELECT <= 03 then RankPid = 01 CountCoin = pid:getStorageValue(_SYSTEM.TASK[00].COUNT_WHITE) elseif RANK_SELECT <= 06 then RankPid = 02 CountCoin = pid:getStorageValue(_SYSTEM.TASK[00].COUNT_YELLOW) else RankPid = 03 CountCoin = pid:getStorageValue(_SYSTEM.TASK[00].COUNT_BLUE) end if CountCoin >= ((RANK_SELECT + 17) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 80 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 80%.") elseif CountCoin >= ((RANK_SELECT + 16) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 75 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 75%.") elseif CountCoin >= ((RANK_SELECT + 15) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 70 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 70%.") elseif CountCoin >= ((RANK_SELECT + 14) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 65 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 65%.") elseif CountCoin >= ((RANK_SELECT + 13) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 60 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 60%.") elseif CountCoin >= ((RANK_SELECT + 12) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 55 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 55%.") elseif CountCoin >= ((RANK_SELECT + 11) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 50 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 50%.") elseif CountCoin >= ((RANK_SELECT + 10) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 45 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 45%.") elseif CountCoin >= ((RANK_SELECT + 09) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 40 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 40%.") elseif CountCoin >= ((RANK_SELECT + 08) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 35 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 35%.") elseif CountCoin >= ((RANK_SELECT + 07) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 30 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 30%.") elseif CountCoin >= ((RANK_SELECT + 06) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 25 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 25%.") elseif CountCoin >= ((RANK_SELECT + 05) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 20 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 20%.") elseif CountCoin >= ((RANK_SELECT + 04) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 15 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 15%.") elseif CountCoin >= ((RANK_SELECT + 03) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 10 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 10%.") elseif CountCoin >= ((RANK_SELECT + 02) * _SYSTEM.TASK.BOSSES[RANK_SELECT].BOSS[BOSS_SELECT].NEED_INN) then chance = chance - 05 player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[BOSS DROP]: Auxilio de chance de drope de armas: 05%.") end pid:setStorageValue(_SYSTEM.COLISEU[06], nil) pid:setStorageValue(_SYSTEM.COLISEU[07], nil) end for X = 01, #_MONSTER_LOOT[Name] do local SelectItem = math.random(01, #_MONSTER_LOOT[Name]) local SYSTEM = _MONSTER_LOOT[Name][SelectItem] if chance <= SYSTEM.Chance then if SYSTEM.ItemID[01] == _SYSTEM.GOLD_COIN then local GoldQnt = math.random(01, SYSTEM.Qnt) * GoldMult if pid:getStorageValue(_SYSTEM.INVENTARIO[01].UID_01) > 0 then if pid:getStorageValue(_SYSTEM.INVENTARIO[01].UID_01) == 1009 then local rareAmulet = pid:getStorageValue(_SYSTEM.INVENTARIO[01].UID_02) GoldQnt = GoldQnt * (rareAmulet + 02) end end if _BONUS_EXTRA_TABLE[_cid] then local ID_BONUS = 08 if _BONUS_EXTRA_TABLE[_cid][ID_BONUS] > 00 then GoldQnt = GoldQnt + (math.floor(_BONUS_EXTRA_TABLE[_cid][ID_BONUS] * (GoldQnt / 100))) end end if GoldAtrDrop > 0 then GoldQnt = GoldQnt + math.random(05, (GoldAtrDrop + 05)) end for _ADD = 01, #lootsId do if lootsId[_ADD].UID == 3001 then lootsId[_ADD].QNT = lootsId[_ADD].QNT + GoldQnt break elseif lootsId[_ADD].UID <= 0 then lootsId[_ADD].UID = 3001 lootsId[_ADD].QNT = GoldQnt break end end else local itemid = SYSTEM.ItemID[01] local slot = SYSTEM.ItemID[02] local SET_RARE = 0 if _ITEMS[itemid].RARE then SET_RARE = _ITEMS[itemid].RARE end local ext = 0 local rare = SET_RARE local star = SYSTEM.ItemID[04] local qnt = math.random(01, SYSTEM.Qnt) if itemid >= 10500 and itemid <= 10569 then -- Dificultando o Drop de livros de Skills if math.random(01, 100) > 10 then break end end if _MONSTER_LOOT[Name][00].Type == "Boss" then if slot == 4 then if RankPid == 01 then pid:setStorageValue(_SYSTEM.TASK[00].COUNT_WHITE, nil) elseif RankPid == 02 then pid:setStorageValue(_SYSTEM.TASK[00].COUNT_YELLOW, nil) else pid:setStorageValue(_SYSTEM.TASK[00].COUNT_BLUE, nil) end local GlobalChance = 01 local RankBlacklist = pid:getStorageValue(_SYSTEM.TASK[00].RANK) if RankBlacklist < 01 then RankBlacklist = 01 end local MaxRank = _SYSTEM.TASK.BOSSES[RankBlacklist].QNT_RANK local RankMonster = _MONSTER_LOOT[Name][00].QuestKill[01] if RankBlacklist == 09 then MaxRank = 10 elseif RankBlacklist == RankMonster then local EXP = pid:getStorageValue(_SYSTEM.TASK[00].EXP) GlobalChance = GlobalChance + math.floor((EXP / 05)) elseif RankBlacklist > _MONSTER_LOOT[Name][00].QuestKill[01] then MaxRank = _SYSTEM.TASK.BOSSES[RankMonster].QNT_RANK GlobalChance = GlobalChance + math.floor((MaxRank / 05)) end local LendRandom = math.random(00, MaxRank) if LendRandom <= GlobalChance then rare = math.random(00, 04) else local EpicRandom = math.random(00, MaxRank) if EpicRandom <= GlobalChance then rare = math.random(00, 03) else local RareRandom = math.random(00, MaxRank) if RareRandom <= GlobalChance then rare = math.random(00, 02) else local MelRandom = math.random(00, MaxRank) if MelRandom <= GlobalChance then rare = math.random(00, 01) else rare = 00 end end end end end end for _ADD = 01, #lootsId do if lootsId[_ADD].UID > 0000 then if lootsId[_ADD].UID == itemid then break end else lootsId[_ADD].UID = itemid lootsId[_ADD].SLOT = slot lootsId[_ADD].RARE = rare lootsId[_ADD].STAR = star lootsId[_ADD].QNT = qnt break end end end end end for _DELIVERY = 1, #lootsId do local item = lootsId[_DELIVERY] if item and item.UID > 0 then if item.UID == 3001 then PlayerGoldCoins(pid, 2, item.QNT) else local itemid = item.UID local slot = item.SLOT local ext = 0 local rare = item.RARE local star = item.STAR local qnt = item.QNT if doBackpack(pid, 0, slot, ext, 1) then if slot == 3 then pid:sendCancelMessage("@Analyser#02#" ..itemid.. "#" ..qnt.. "#" ..rare) doBackpack(pid, 3, slot, ext, 1, itemid) if doBackpack(pid, 1, slot, ext, 0, itemid, rare, star, qnt) then end else pid:sendCancelMessage("@Analyser#02#" ..itemid.. "#01".. "#" ..rare) if doBackpack(pid, 1, slot, ext, 0, itemid, rare, star) then end end else pid:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Su Backpack esta llena.") break end end end end end end end return true end