Postado Julho 8, 2020 4 anos estou usando tfs 0.4 Citar Você tem o código disponível? Se tiver publique-o aqui: local t = { lvl = 8, Time = 10, -- em minutos entrada = { {x = 15, y = 53, z = 13}, -- pos players {x = 16, y = 53, z = 13}, }, saida = { {x = 18, y = 60, z = 13}, -- pos para onde eles irão {x = 21, y = 60, z = 13}, }, monstros = { {{x = 122, y = 10, z = 9}, "Rabbit"}, -- defina pos dos montros e nomes {{x = 123, y = 10, z = 9}, "Deer"}, {{x = 124, y = 10, z = 9}, "Parrot"}, {{x = 125, y = 10, z = 9}, "Cat"}, {{x = 122, y = 13, z = 9}, "Dog"}, {{x = 124, y = 14, z = 9}, "Bear"}, {{x = 124, y = 15, z = 9}, "Spider"} } } function VarAnihiPlayer(cid) if not isCreature(cid) then return LUA_ERROR end if isInRange(getPlayerPosition(cid), t.saida[1], t.saida[#t.saida]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end end function getPlayersInArea(fromPos, toPos) local players = {} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), fromPos, toPos) then table.insert(players, pid) end end return players end function onUse(cid, item, fromPosition, itemEx, toPosition) local check = {} if #getPlayersInArea(t.saida[1], t.saida[#t.saida]) > 0 then doPlayerSendCancel(cid, 'please, wait') return true end 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 doPlayerSendCancel(cid, 'É necessário ter 2 players para o duelo e ser level'..t.lvl..' ou mais.') return true end table.insert(check, x) end for _, summon in pairs(t.monstros) do local creature = getTopCreature(summon[1]).uid if(creature > 0 and not isPlayer(creature)) then doRemoveCreature(creature) end doCleanTile(summon[1]) doCreateMonster(summon[2], summon[1]) end for i, tid in ipairs(check) do doSendMagicEffect(t.entrada[i], CONST_ME_POFF) doTeleportThing(tid, t.saida[i], false) addEvent(VarAnihiPlayer, t.Time*60*1000, tid) doSendMagicEffect(t.saida[i], CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end Olá, boa quarentena a todos, tudo bem? Eu preciso de um suporte a respeito deste script... Estou usando ele em meu ot para teleportar os players para uma sala do famoso ''frodo'' onde os players adoram brincar de push, então coloquei este script para apenas entrar 2 players de uma vez e assim duelar sem interferência de terceiros. Até ai tudo ok. O problema está dando quando os dois players saem do sqm que foram teleportados (em vermelho) e andam 1 sqm, isso faz com que libere a alavanca para outros players entrar na mesma hora sem precisar aguardar eles sair. O meu pedido em resumo seria para que o script checasse a sala toda para saber se há players nela ou não... Porque o script já está reconhecendo os 2 sqm's de destino e não deixa usar a alavanca enquanto tiver player neles (tile em vermelho), porém ele ignora o restante. Acho que consegui explicar bem detalhado rsrs. Alguém consegue me ajudar? (a versão é 8.60) Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. mídias sociais talk to me vídeos
Postado Julho 8, 2020 4 anos @Rogex Joyz A fromPos e toPos da função #getPlayersInArea(t.saida[1], t.saida[#t.saida]) estão erradas, cria uma parte nova na tabela e configura com as posições que eu vou deixar na imagem:
Postado Julho 8, 2020 4 anos Autor @Storm e como faço isso? eu sou extremamente leigo em questão de scripts. Eu entendi o que você quis dizer porque eu uso um script assim nos trainers do meu ot, porém eu não sei o que escrever e onde colocar. E para caso alguém futuramente tenha dúvidas no script, tem monstros sendo sumonados nele porque é uma adaptação da anihi e eu não consegui remover os monstros rsrsrs Mas isso não vem ao caso haha mídias sociais talk to me vídeos
Postado Julho 8, 2020 4 anos Solução @Rogex Joyz Spoiler local t = { lvl = 8, Time = 10, -- em minutos entrada = { {x = 15, y = 53, z = 13}, -- pos players {x = 16, y = 53, z = 13}, }, saida = { {x = 18, y = 60, z = 13}, -- pos para onde eles irão {x = 21, y = 60, z = 13}, }, area = { -- fromPos e toPos {x = 18, y = 60, z = 13}, {x = 21, y = 60, z = 13}, }, monstros = { {{x = 122, y = 10, z = 9}, "Rabbit"}, -- defina pos dos montros e nomes {{x = 123, y = 10, z = 9}, "Deer"}, {{x = 124, y = 10, z = 9}, "Parrot"}, {{x = 125, y = 10, z = 9}, "Cat"}, {{x = 122, y = 13, z = 9}, "Dog"}, {{x = 124, y = 14, z = 9}, "Bear"}, {{x = 124, y = 15, z = 9}, "Spider"} } } function VarAnihiPlayer(cid) if not isCreature(cid) then return LUA_ERROR end if isInRange(getPlayerPosition(cid), t.saida[1], t.saida[#t.saida]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end end function getPlayersInArea(fromPos, toPos) local players = {} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), fromPos, toPos) then table.insert(players, pid) end end return players end function onUse(cid, item, fromPosition, itemEx, toPosition) local check = {} if #getPlayersInArea(t.area[1], t.area[2]) > 0 then doPlayerSendCancel(cid, 'please, wait') return true end 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 doPlayerSendCancel(cid, 'É necessário ter 2 players para o duelo e ser level'..t.lvl..' ou mais.') return true end table.insert(check, x) end for _, summon in pairs(t.monstros) do local creature = getTopCreature(summon[1]).uid if(creature > 0 and not isPlayer(creature)) then doRemoveCreature(creature) end doCleanTile(summon[1]) doCreateMonster(summon[2], summon[1]) end for i, tid in ipairs(check) do doSendMagicEffect(t.entrada[i], CONST_ME_POFF) doTeleportThing(tid, t.saida[i], false) addEvent(VarAnihiPlayer, t.Time*60*1000, tid) doSendMagicEffect(t.saida[i], CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end Configure as posições que eu mostrei na imagem acima, nessa parte aqui: area = { -- fromPos e toPos {x = 18, y = 60, z = 13}, {x = 21, y = 60, z = 13}, },
Postado Julho 8, 2020 4 anos Autor @Storm deu certo ? Muito obrigado pela ajuda!! Passei a tarde toda quebrando a cabeça nisso. Vou tentar te reputar, até agora não achei esse botão no fórum. Muito obrigado mesmo. mídias sociais talk to me vídeos
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.