- 0
suporte otserv ajuda com anihi bloqueada
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
- 1 resposta
- 975 visualizações
-
- 12 respostas
- 4294 visualizações
-
- 0 respostas
- 773 visualizações
-
- 2 respostas
- 1307 visualizações
-
- 0 respostas
- 1166 visualizações
-
Pergunta
gabrielbuff 0
Esse script funciona desta maneira, é uma anihi que precisam de 5 jogadores, ao entrar na quest, os jogadores tem 120 segundos para matarem os bichos, caso não consigam serão levados ao templo, e ao puxar a alavanca fica uma contagem de 120 ao 0... porem ao terminar a contagem ninguem consegue mais entrar, fica bloqueada e não esta teletransportando os player para x posição desejada não ocorre nenhum erro no distro.
function isOnSameFloor(fromPos, toPos)
return fromPos.z == toPos.z and true or false
end
function isEven(arg)
return arg % 2 == 0 and true or false
end
function getMiddlePos(fromPos, toPos)
if not isOnSameFloor(fromPos, toPos) then
return false
end
local middle = {x = 0, y = 0, z = 0}
middle.x = isEven(fromPos.x + toPos.x) and (fromPos.x + toPos.x)/2 or math.floor((fromPos.x + toPos.x)/2) + 1
middle.y = isEven(fromPos.y + toPos.y) and (fromPos.y + toPos.y)/2 or math.floor((fromPos.y + toPos.y)/2) + 1
middle.z = fromPos.z or toPos.z
return middle
end
function getDistanceRadius(fromPos, toPos)
if not isOnSameFloor(fromPos, toPos) then
return false
end
local distance = getDistanceBetween(fromPos, toPos)
return isEven(distance) and (distance/2) or math.floor(distance/2) + 1
end
function clearArea(middlePos, rangex, rangey)
local final = {x=1382, y=837, z=8} -- Posição onde será teleportado quando acabar o tempo
for i = -rangex, rangex do
for j = -rangey, rangey do
pos = {x = middlePos.x + i, y = middlePos.y + j, z = middlePos.z}
creature = getTopCreature(pos).uid
if isMonster(creature) then
doSendMagicEffect(getThingPos(creature), 14)
doRemoveCreature(creature)
elseif isPlayer(creature) then
doSendMagicEffect(getThingPos(creature), 10)
doTeleportThing(creature, final)
end
end
end
setGlobalStorageValue(sto, -1)
return true
end
local t = {
lvl = 100,
entrada = {
{x = 1427, y = 824, z = 7}, -- pos players
{x = 1426, y = 824, z = 7}, -- pos players
{x = 1425, y = 824, z = 7}, -- pos players
{x = 1424, y = 824, z = 7}, -- pos players
{x = 1423, y = 824, z = 7}, -- pos players
},
saida = {
{x = 1440, y = 824, z = 7}, -- pos para onde eles irão
{x = 1439, y = 824, z = 7}, -- pos para onde eles irão
{x = 1438, y = 824, z = 7}, -- pos para onde eles irão
{x = 1437, y = 824, z = 7}, -- pos para onde eles irão
{x = 1436, y = 824, z = 7}, -- pos para onde eles irão
},
monstros = {
{{x = 1434, y = 822, z = 7}, "Demon"}, -- defina pos dos montros e nomes
{{x = 1434, y = 824, z = 7}, "Demon"}, -- defina pos dos montros e nomes
{{x = 1434, y = 826, z = 7}, "Demon"}, -- defina pos dos montros e nomes
{{x = 1442, y = 822, z = 7}, "Demon"}, -- defina pos dos montros e nomes
{{x = 1442, y = 824, z = 7}, "Demon"}, -- defina pos dos montros e nomes
{{x = 1442, y = 826, z = 7}, "Demon"}, -- defina pos dos montros e nomes
}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
local configure = {
fromPos = {x=1433, y=820, z=7}, -- posição superior esquerda do mapa, da area em que esta mapeado a area.
toPos = {x=1443, y=828, z=7}, -- posição inferior direita do mapa, da area em que esta mapeado a area.
boss = "Demon" -- Aqui você bota o nome do monstro que você quer remover
}
local config = {
position = {x=1428, y=824, z=7}, -- Contagem
position1 = {x=1434, y=821, z=7}, -- Contagem
position2 = {x=1434, y=827, z=7}, -- Contagem
position3 = {x=1442, y=821, z=7}, -- Contagem
position4 = {x=1442, y=827, z=7}, -- Contagem
fromPosition = {x=1433, y=820, z=7},
toPosition = {x=1443, y=828, z=7},
id = 1498,
time = 1 -- tempo que o teleport ira sumir em minutos
}
local time = 60
local sto = 5973
local check = {}
for _, k in ipairs(t.entrada) do
local x = getTopCreature(k).uid
if(x == 0 or not isPlayer(x) or getPlayerLevel(x) < t.lvl) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você precisa de 5 jogadores para entrar na quest.")
return true
end
if getGlobalStorageValue(sto) == 1 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde até que seja liberada.")
return true
end
table.insert(check,
end
for _, summon in pairs(t.monstros) do
local creature = getTopCreature(summon[1]).uid
doCreateMonster(summon[2], summon[1])
end
for i, tid in ipairs(check) do
doTeleportThing(tid, t.saida, false)
doSendMagicEffect(t.saida, 10)
doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
end
for i = 1,time do
formula = time - 1*i
addEvent(doSendAnimatedText, i*1000, config.position, formula, TEXTCOLOR_RED)
addEvent(doSendAnimatedText, i*1000, config.position1, formula, TEXTCOLOR_RED)
addEvent(doSendAnimatedText, i*1000, config.position2, formula, TEXTCOLOR_RED)
addEvent(doSendAnimatedText, i*1000, config.position3, formula, TEXTCOLOR_RED)
addEvent(doSendAnimatedText, i*1000, config.position4, formula, TEXTCOLOR_RED)
end
setGlobalStorageValue(sto, 1)
local rx = getDistanceRadius(configure.fromPos, configure.toPos)
addEvent(clearArea, config.time * 60 * 1000, getMiddlePos(configure.fromPos, configure.toPos), rx, rx)
return true
end
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados