local function getAmountPlayersInArea(from, to, from2, to2, from3, to3)
local t = 0
for _, pid in pairs(getPlayersOnline()) do
if isInRange(getCreaturePosition(pid), from, to) or isInRange(getCreaturePosition(pid), from2, to2) or isInRange(getCreaturePosition(pid), from3, to3) then
t = t + 1
end
end
return t
end
local config = {
questlevel = 400, -- level para fazer a quest
actionid = 23930, -- actionid e uniqueid da alavanca
time = 10, -- tempo limite pra fazer a quest
storage = 62799, -- storage para fazer a quest apenas uma vez Aviso esta desativado para ativar basta remover os comentários
efeito = 9, -- efeito quando os jogadores forem teleportados para a quest
efeito2 = 469, -- efeito quando os jogadores chegarem na quest
efeito3 = 621, -- efeito que vai mostrar caso tiver alguem na quest
from = {x = 896, y = 987, z = 8}, -- lado superior esquerdo
to = {x = 920, y = 1042, z = 8}, -- lado inferior direito
from2 = {x = 920, y = 1032, z = 8}, -- lado superior esquerdo
to2 = {x = 935, y = 1043, z = 8}, -- lado inferior direito
from3 = {x = 921, y = 1026, z = 7}, -- lado superior esquerdo
to3 = {x = 943, y = 1053, z = 7}, -- lado inferior direito
fail = {x = 916, y = 990, z = 7}, -- Posição que os jogadores vão caso o tempo da quest chegar no limite
limit = 1, -- nao mexer
}
function onUse(cid, item, frompos, item2, topos)
if getAmountPlayersInArea(config.from, config.to, config.from2, config.to2, config.from3, config.to3) >= config.limit then
doPlayerPopupFYI(cid, 'Aguarde, tem jogadores desafiando o deidara.') -- Mensagem caso tiver jogadores na quest
doSendMagicEffect(getThingPos(cid), config.efeito3) return true
end
if item.uid == config.actionid then
if item.itemid == 1945 then
player1pos = {x=913, y=987, z=7, stackpos=253} -- posição do jogador que vai puxar a alanvaca
player1 = getThingfromPos(player1pos)
player2pos = {x=913, y=988, z=7, stackpos=253} -- posição do jogador
player2 = getThingfromPos(player2pos)
player3pos = {x=913, y=989, z=7, stackpos=253} -- posição do jogador
player3 = getThingfromPos(player3pos)
player4pos = {x=913, y=990, z=7, stackpos=253} -- posição do jogador
player4 = getThingfromPos(player4pos)
if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
player1level = getPlayerLevel(player1.uid)
player2level = getPlayerLevel(player2.uid)
player3level = getPlayerLevel(player3.uid)
player4level = getPlayerLevel(player4.uid)
if player1level >= config.questlevel and player2level >= config.questlevel and player3level >= config.questlevel and player4level >= config.questlevel then
-- PARA ATIVAR A VERIFICAÇÃO DE STORAGE BASTA REMOVER OS COMENTARIOS --
--queststatus1 = getPlayerStorageValue(player1.uid,config.storage)
--queststatus2 = getPlayerStorageValue(player2.uid,config.storage)
--queststatus3 = getPlayerStorageValue(player3.uid,config.storage)
--queststatus4 = getPlayerStorageValue(player4.uid,config.storage)
--if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then
-- PARA ATIVAR A VERIFICAÇÃO DE STORAGE BASTA REMOVER OS COMENTARIOS --
local t = {
monstros =
{
{{x = 932, y = 1035, z = 7}, "Deidara Boss"}, -- defina pos dos montros e nomes
{{x = 930, y = 1037, z = 8}, "C4 Spider Kumo"},
{{x = 916, y = 1037, z = 8}, "C4 Spider"},
{{x = 914, y = 1038, z = 8}, "C4 Spider"},
{{x = 912, y = 1035, z = 8}, "C4 Spider"},
{{x = 905, y = 1029, z = 8}, "C4 Spider"},
{{x = 902, y = 1026, z = 8}, "C4 Spider"},
{{x = 900, y = 1023, z = 8}, "C4 Spider"},
{{x = 898, y = 1018, z = 8}, "C4 Spider"},
{{x = 897, y = 1015, z = 8}, "C4 Spider"},
{{x = 899, y = 1012, z = 8}, "C4 Spider"},
{{x = 902, y = 1008, z = 8}, "C4 Spider"},
{{x = 904, y = 1005, z = 8}, "C4 Spider"},
{{x = 908, y = 1005, z = 8}, "C4 Spider"},
{{x = 909, y = 1002, z = 8}, "C4 Spider"},
{{x = 912, y = 1000, z = 8}, "C4 Spider"},
{{x = 911, y = 997, z = 8}, "C4 Spider"},
{{x = 913, y = 994, z = 8}, "C4 Spider"}
}
}
nplayer1pos = {x=915, y=990, z=8} -- posição que o jogador vai ser teleportado quando for pra quest
nplayer2pos = {x=915, y=991, z=8} -- posição que o jogador vai ser teleportado quando for pra quest
nplayer3pos = {x=915, y=992, z=8} -- posição que o jogador vai ser teleportado quando for pra quest
nplayer4pos = {x=915, y=993, z=8} -- posição que o jogador vai ser teleportado quando for pra quest
doSendMagicEffect(player1pos,config.efeito)
doSendMagicEffect(player2pos,config.efeito)
doSendMagicEffect(player3pos,config.efeito)
doSendMagicEffect(player4pos,config.efeito)
doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)
doTeleportThing(player3.uid,nplayer3pos)
doTeleportThing(player4.uid,nplayer4pos)
doPlayerPopupFYI(cid,"Boa sorte!\nVoce tem "..config.time.." minutos para terminar a quest.") -- mensagem que vai mandar para o jogador que puxar a alavanca
for _, summon in pairs(t.monstros) do
doCreateMonster(summon[2], summon[1])
end
doSendMagicEffect(nplayer1pos,config.efeito2)
doSendMagicEffect(nplayer2pos,config.efeito2)
doSendMagicEffect(nplayer3pos,config.efeito2)
doSendMagicEffect(nplayer4pos,config.efeito2)
doTransformItem(item.uid,item.itemid+0)
----------- Verificação remover jogador ------------
addEvent(function(removerjogador)
if not isPlayer(cid) then
return
end
for index, cid in ipairs(getPlayersOnline()) do
if isInArea(getThingPos(cid), config.from, config.to, config.from2, config.to2, config.from3, config.to3) then
doTeleportThing(cid, config.fail)
doPlayerPopupFYI(cid, 'O tempo se esgotou voce e sua equipe voltou para o ponto inicial.')
end
end
return true
end, config.time*60*1000, cid)
----------- Verificação remover monstro -------------
addEvent(function (removeMonsterInArea)
if not isCreature(cid) then
return
end
local positionsCheck = {}
for i = config.from.x, config.to.x do
positionsCheck[#positionsCheck+1] = {x=i, y = config.from.y, z = config.from.z, stackpos = 0}
for j = config.from.y+1, config.to.y do
positionsCheck[#positionsCheck+1] = {x=i, y = j, z = config.from.z, stackpos = 0}
end
end
for j=1, #positionsCheck do
for i = 0, 255 do
positionsCheck[j].stackpos = i
local tile = getTileThingByPos(positionsCheck[j])
if isMonster(tile.uid) then
doRemoveCreature(tile.uid)
end
end
end
return true
end, config.time*60*1000, cid)
----------- Verificação remover monstro -------------
addEvent(function (removeMonsterInArea2)
if not isCreature(cid) then
return
end
local positionsCheck = {}
for i = config.from2.x, config.to2.x do
positionsCheck[#positionsCheck+1] = {x=i, y = config.from2.y, z = config.from2.z, stackpos = 0}
for j = config.from2.y+1, config.to2.y do
positionsCheck[#positionsCheck+1] = {x=i, y = j, z = config.from2.z, stackpos = 0}
end
end
for j=1, #positionsCheck do
for i = 0, 255 do
positionsCheck[j].stackpos = i
local tile = getTileThingByPos(positionsCheck[j])
if isMonster(tile.uid) then
doRemoveCreature(tile.uid)
end
end
end
return true
end, config.time*60*1000, cid)
----------- Verificação remover monstro -------------
addEvent(function (removeMonsterInArea3) -- by Jamison
if not isCreature(cid) then
return
end
local positionsCheck = {}
for i = config.from3.x, config.to3.x do
positionsCheck[#positionsCheck+1] = {x=i, y = config.from3.y, z = config.from3.z, stackpos = 0}
for j = config.from3.y+1, config.to3.y do
positionsCheck[#positionsCheck+1] = {x=i, y = j, z = config.from3.z, stackpos = 0}
end
end
for j=1, #positionsCheck do
for i = 0, 255 do
positionsCheck[j].stackpos = i
local tile = getTileThingByPos(positionsCheck[j])
if isMonster(tile.uid) then
doRemoveCreature(tile.uid)
end
end
end
return true
end, config.time*60*1000, cid)
----------- Verificação fim da verificação -------------
-- PARA ATIVAR A VERIFICAÇÃO DE STORAGE BASTA REMOVER OS COMENTARIOS --
--else
--doPlayerPopupFYI(cid,"Alguem do seu time já fez essa quest.")
--end
-- PARA ATIVAR A VERIFICAÇÃO DE STORAGE BASTA REMOVER OS COMENTARIOS --
else
doPlayerPopupFYI(cid,"Alguem não possui level 400 ou mais.")
end
else
doPlayerPopupFYI(cid,"Voce não possui membros o suficiente.")
end
elseif item.itemid == 1946 then
doTransformItem(item.uid,item.itemid-1)
end
return 1
end
end