local AngelPos_1 = Position(3974, 1842, 14) local AngelPos_2 = Position(4057, 1842, 14) local AngelPos_3 = Position(4140, 1842, 14) local CLEAR_AREA = { [10420] = {POS_X = {x=3938, y=1850, z=14}, POS_Y = {x=3964, y=1861, z=14}, toPos = {x=3953, y=1847, z=14}}; [10564] = {POS_X = {x=4021, y=1850, z=14}, POS_Y = {x=4047, y=1861, z=14}, toPos = {x=4036, y=1847, z=14}}; [10565] = {POS_X = {x=4104, y=1850, z=14}, POS_Y = {x=4130, y=1861, z=14}, toPos = {x=4119, y=1847, z=14}}; } function onUse(player, item, fromPosition, target, toPosition, isHotkey) local party = player:getParty() if CLEAR_AREA[item.uid] then if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) < 02 then if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 01 then local from = CLEAR_AREA[item.uid].POS_X local to = CLEAR_AREA[item.uid].POS_Y local checkArea = 0 for A = from.x, to.x do for B = from.y, to.y do for C = from.z, to.z do local tile = Tile(A, B, C) local creature = tile:getTopCreature() if creature and creature:isMonster() then local master = creature:getMaster() if master and master:isPlayer() then else checkArea = 01 break end end end end end if checkArea == 0 then if not party then player:setStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE, 02) player:getPosition():sendMagicEffect(15) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:setStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE, 02) member:getPosition():sendMagicEffect(15) end end player:sendCancelMessage("@@TutorShow 26") player:teleportTo(CLEAR_AREA[item.uid].toPos) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) return true else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Sacrifício necessário! Elimine todos os monstros dessa área para continuar.") player:getPosition():sendMagicEffect(03) return true end else player:getPosition():sendMagicEffect(03) return true end else if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 02 then player:sendCancelMessage("@@TutorShow 26") end player:teleportTo(CLEAR_AREA[item.uid].toPos) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) return true end end if item.uid == 10429 or item.uid == 10566 or item.uid == 10567 then if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) >= 06 then if item.uid == 10429 then player:teleportTo({x=3958, y=1835, z=14}) elseif item.uid == 10566 then player:teleportTo({x=4041, y=1835, z=14}) elseif item.uid == 10567 then player:teleportTo({x=4124, y=1835, z=14}) end player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 06 then player:sendCancelMessage("@@TutorShow 27") end return true else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Ative todos os crystais de acordo com sua essência.") player:getPosition():sendMagicEffect(03) return true end end if item.uid == 10434 or item.uid == 10568 or item.uid == 10569 then if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 07 then if item.uid == 10434 then player:teleportTo({x=3980, y=1860, z=14}) STEP_1 = 00 elseif item.uid == 10568 then player:teleportTo({x=4063, y=1860, z=14}) STEP_2 = 00 elseif item.uid == 10569 then player:teleportTo({x=4146, y=1860, z=14}) STEP_3 = 00 end player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 07 then player:sendCancelMessage("@@TutorShow 28") end return true else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Toque a sequência no ritmo correto para continuar.") player:getPosition():sendMagicEffect(03) return true end end if item.uid == 10436 or item.uid == 10570 or item.uid == 10571 then if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 08 then if item.uid == 10436 then player:teleportTo({x=3945, y=1840, z=14}) elseif item.uid == 10570 then player:teleportTo({x=4028, y=1840, z=14}) elseif item.uid == 10571 then player:teleportTo({x=4111, y=1840, z=14}) end player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) return true else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Conduza a essência até a estátua usando seu corpo como guia.") player:getPosition():sendMagicEffect(03) return true end end -- SOUND PUZZLE if item.uid == 10430 or item.uid == 10574 or item.uid == 10575 then if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 06 then if player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) < 01 then player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 01) player:getPosition():sendMagicEffect(19) if item.uid == 10430 then AngelPos_1:sendMagicEffect(36) elseif item.uid == 10574 then AngelPos_2:sendMagicEffect(36) elseif item.uid == 10575 then AngelPos_3:sendMagicEffect(36) end return true elseif player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 01 then player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 02) player:getPosition():sendMagicEffect(19) if item.uid == 10430 then AngelPos_1:sendMagicEffect(36) elseif item.uid == 10574 then AngelPos_2:sendMagicEffect(36) elseif item.uid == 10575 then AngelPos_3:sendMagicEffect(36) end return true else player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, nil) player:getPosition():sendMagicEffect(03) if item.uid == 10430 then AngelPos_1:sendMagicEffect(06) elseif item.uid == 10574 then AngelPos_2:sendMagicEffect(06) elseif item.uid == 10575 then AngelPos_3:sendMagicEffect(06) end end else player:getPosition():sendMagicEffect(03) return true end elseif item.uid == 10431 or item.uid == 10576 or item.uid == 10577 then if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 06 then if player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 02 then player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 03) player:getPosition():sendMagicEffect(20) if item.uid == 10431 then AngelPos_1:sendMagicEffect(36) elseif item.uid == 10576 then AngelPos_2:sendMagicEffect(36) elseif item.uid == 10577 then AngelPos_3:sendMagicEffect(36) end return true elseif player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 04 then player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 05) player:getPosition():sendMagicEffect(20) if item.uid == 10431 then AngelPos_1:sendMagicEffect(36) elseif item.uid == 10576 then AngelPos_2:sendMagicEffect(36) elseif item.uid == 10577 then AngelPos_3:sendMagicEffect(36) end return true elseif player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 08 then player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, nil) if item.uid == 10431 then AngelPos_1:sendMagicEffect(36) elseif item.uid == 10576 then AngelPos_2:sendMagicEffect(36) elseif item.uid == 10577 then AngelPos_3:sendMagicEffect(36) end if not party then player:setStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE, 07) player:getPosition():sendMagicEffect(15) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do member:setStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE, 07) member:setStorageValue(_SYSTEM.RECYCLER_STORAGE, nil) member:getPosition():sendMagicEffect(15) end end player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Sinfonia Concluída! Clique na estátua para avançar.") return true else player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, nil) player:getPosition():sendMagicEffect(03) if item.uid == 10431 then AngelPos_1:sendMagicEffect(06) elseif item.uid == 10576 then AngelPos_2:sendMagicEffect(06) elseif item.uid == 10577 then AngelPos_3:sendMagicEffect(06) end return true end return true else player:getPosition():sendMagicEffect(03) return true end elseif item.uid == 10432 or item.uid == 10578 or item.uid == 10579 then if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 06 then if player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 05 then player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 06) player:getPosition():sendMagicEffect(24) if item.uid == 10432 then AngelPos_1:sendMagicEffect(36) elseif item.uid == 10578 then AngelPos_2:sendMagicEffect(36) elseif item.uid == 10579 then AngelPos_3:sendMagicEffect(36) end return true elseif player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 06 then player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 07) player:getPosition():sendMagicEffect(24) if item.uid == 10432 then AngelPos_1:sendMagicEffect(36) elseif item.uid == 10578 then AngelPos_2:sendMagicEffect(36) elseif item.uid == 10579 then AngelPos_3:sendMagicEffect(36) end return true elseif player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 07 then player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 08) player:getPosition():sendMagicEffect(24) if item.uid == 10432 then AngelPos_1:sendMagicEffect(36) elseif item.uid == 10578 then AngelPos_2:sendMagicEffect(36) elseif item.uid == 10579 then AngelPos_3:sendMagicEffect(36) end return true else player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, nil) player:getPosition():sendMagicEffect(03) if item.uid == 10432 then AngelPos_1:sendMagicEffect(06) elseif item.uid == 10578 then AngelPos_2:sendMagicEffect(06) elseif item.uid == 10579 then AngelPos_3:sendMagicEffect(06) end return true end else player:getPosition():sendMagicEffect(03) return true end elseif item.uid == 10433 or item.uid == 10580 or item.uid == 10581 then if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == 06 then if player:getStorageValue(_SYSTEM.RECYCLER_STORAGE) == 03 then player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, 04) player:getPosition():sendMagicEffect(22) if item.uid == 10433 then AngelPos_1:sendMagicEffect(36) elseif item.uid == 10580 then AngelPos_2:sendMagicEffect(36) elseif item.uid == 10581 then AngelPos_3:sendMagicEffect(36) end return true else player:setStorageValue(_SYSTEM.RECYCLER_STORAGE, nil) player:getPosition():sendMagicEffect(03) if item.uid == 10433 then AngelPos_1:sendMagicEffect(06) elseif item.uid == 10580 then AngelPos_2:sendMagicEffect(06) elseif item.uid == 10581 then AngelPos_3:sendMagicEffect(06) end return true end else player:getPosition():sendMagicEffect(03) return true end end local ELEMENTS = { [10421] = {ID = 01, EFFECT = 54, STORAGE_ID = 02, LOOKTYPE = 11}; -- WATER [10422] = {ID = 02, EFFECT = 54, STORAGE_ID = 02, LOOKTYPE = 11}; -- WATER CRYSTAL [10582] = {ID = 01, EFFECT = 54, STORAGE_ID = 02, LOOKTYPE = 11}; -- WATER [10583] = {ID = 02, EFFECT = 54, STORAGE_ID = 02, LOOKTYPE = 11}; -- WATER CRYSTAL [10584] = {ID = 01, EFFECT = 54, STORAGE_ID = 02, LOOKTYPE = 11}; -- WATER [10585] = {ID = 02, EFFECT = 54, STORAGE_ID = 02, LOOKTYPE = 11}; -- WATER CRYSTAL [10423] = {ID = 01, EFFECT = 46, STORAGE_ID = 03, LOOKTYPE = 285}; -- EARTH [10424] = {ID = 02, EFFECT = 46, STORAGE_ID = 03, LOOKTYPE = 285}; -- EARTH CRYSTAL [10586] = {ID = 01, EFFECT = 46, STORAGE_ID = 03, LOOKTYPE = 285}; -- EARTH [10587] = {ID = 02, EFFECT = 46, STORAGE_ID = 03, LOOKTYPE = 285}; -- EARTH CRYSTAL [10588] = {ID = 01, EFFECT = 46, STORAGE_ID = 03, LOOKTYPE = 285}; -- EARTH [10589] = {ID = 02, EFFECT = 46, STORAGE_ID = 03, LOOKTYPE = 285}; -- EARTH CRYSTAL [10425] = {ID = 01, EFFECT = 12, STORAGE_ID = 04, LOOKTYPE = 290}; -- ENERGY [10426] = {ID = 02, EFFECT = 12, STORAGE_ID = 04, LOOKTYPE = 290}; -- ENERGY CRYSTAL [10590] = {ID = 01, EFFECT = 12, STORAGE_ID = 04, LOOKTYPE = 290}; -- ENERGY [10591] = {ID = 02, EFFECT = 12, STORAGE_ID = 04, LOOKTYPE = 290}; -- ENERGY CRYSTAL [10592] = {ID = 01, EFFECT = 12, STORAGE_ID = 04, LOOKTYPE = 290}; -- ENERGY [10593] = {ID = 02, EFFECT = 12, STORAGE_ID = 04, LOOKTYPE = 290}; -- ENERGY CRYSTAL [10427] = {ID = 01, EFFECT = 16, STORAGE_ID = 05, LOOKTYPE = 242}; -- FIRE [10428] = {ID = 02, EFFECT = 16, STORAGE_ID = 05, LOOKTYPE = 242}; -- FIRE CRYSTAL [10594] = {ID = 01, EFFECT = 16, STORAGE_ID = 05, LOOKTYPE = 242}; -- FIRE [10595] = {ID = 02, EFFECT = 16, STORAGE_ID = 05, LOOKTYPE = 242}; -- FIRE CRYSTAL [10596] = {ID = 01, EFFECT = 16, STORAGE_ID = 05, LOOKTYPE = 242}; -- FIRE [10597] = {ID = 02, EFFECT = 16, STORAGE_ID = 05, LOOKTYPE = 242}; -- FIRE CRYSTAL } if ELEMENTS[item.uid] then if ELEMENTS[item.uid].ID == 01 then if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == ELEMENTS[item.uid].STORAGE_ID then if player:getOutfit().lookType ~= ELEMENTS[item.uid].LOOKTYPE then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você tem 15 segundos para clicar no crystal correspondente a esse elemento.") player:getPosition():sendMagicEffect(ELEMENTS[item.uid].EFFECT) local condition = Condition(CONDITION_OUTFIT) condition:setOutfit({lookType = ELEMENTS[item.uid].LOOKTYPE}) condition:setTicks(15000) player:addCondition(condition) else player:getPosition():sendMagicEffect(03) return true end else player:getPosition():sendMagicEffect(ELEMENTS[item.uid].EFFECT) return true end else if player:getStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE) == ELEMENTS[item.uid].STORAGE_ID then if player:getOutfit().lookType == ELEMENTS[item.uid].LOOKTYPE then if not party then if item.uid == 10428 or item.uid == 10595 or item.uid == 10597 then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Todos os Crystal Energizado! Encontre a estátua para continuar.") else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Crystal Energizado!") end player:setStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE, (ELEMENTS[item.uid].STORAGE_ID + 1)) player:getPosition():sendMagicEffect(13) else local members = party:getMembers() members[#members + 1] = party:getLeader() for _, member in ipairs(members) do if item.uid == 10428 or item.uid == 10595 or item.uid == 10597 then member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Todos os Crystal Energizado! Encontre a estátua para continuar.") else member:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Crystal Energizado!") end member:setStorageValue(_SYSTEM.DANGEROUS[10][01].STORAGE, (ELEMENTS[item.uid].STORAGE_ID + 1)) member:getPosition():sendMagicEffect(13) end end else player:getPosition():sendMagicEffect(ELEMENTS[item.uid].EFFECT) return true end else player:getPosition():sendMagicEffect(ELEMENTS[item.uid].EFFECT) return true end end end return true end