Ir para conteúdo

Posts Recomendados

Boa tarde galera.
Eu tenho uma alavanca de quest tipo a anihilator mas ela tem um pequeno problema....
Se 4 players entrarem na alavanca a quest irá começar td blz... Porém se outros 4 players que estiverem do lado de fora também puxarem a alavanca, irão sumonar mais monstros e terão 8 players na quest.
O que eu quero?
Eu gostaria que se tivesse algum desses 4 players vivo na quest, ninguém pudesse entrar por cima (Talvez via globalstorage).

Segue minha action da alavanca

 

  Mostrar conteúdo oculto
  Ocultar conteúdo

  

local t = {
lvl = 1,
entrada =
{
{x = 1791, y = 1413, z = 8}, -- pos players
{x = 1790, y = 1414, z = 8},
{x = 1791, y = 1414, z = 8},
{x = 1792, y = 1414, z = 8},
{x = 1790, y = 1415, z = 8},
{x = 1791, y = 1415, z = 8},
{x = 1792, y = 1415, z = 8},
{x = 1790, y = 1416, z = 8},
{x = 1791, y = 1416, z = 8},
{x = 1792, y = 1416, z = 8},
{x = 1790, y = 1417, z = 8},
{x = 1791, y = 1417, z = 8},
{x = 1792, y = 1417, z = 8}
},
saida =
{
{x = 1811, y = 1443, z = 9}, -- pos para onde eles irão
{x = 1810, y = 1444, z = 9},
{x = 1811, y = 1444, z = 9},
{x = 1812, y = 1444, z = 9},
{x = 1810, y = 1445, z = 9},
{x = 1811, y = 1445, z = 9},
{x = 1812, y = 1445, z = 9},
{x = 1810, y = 1446, z = 9},
{x = 1811, y = 1446, z = 9},
{x = 1812, y = 1446, z = 9},
{x = 1810, y = 1447, z = 9},
{x = 1811, y = 1447, z = 9},
{x = 1812, y = 1447, z = 9}
},
monstros =
{
{{x = 1737, y = 1420, z = 9}, "rata"}, -- defina pos dos montros e nomes
{{x = 1737, y = 1421, z = 9}, "rata"},

}
function onUse(cid, item, fromPosition, itemEx, toPosition)
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
doPlayerSendCancel(cid, 'Está faltando player ou alguém não possui 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, CONST_ME_POFF)
doTeleportThing(tid, t.saida, false)
doSendMagicEffect(t.saida, CONST_ME_ENERGYAREA)
end
doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
return true
end

 


Valeu e REP+ pra quem ajudar.

Link para o comentário
https://xtibia.com/forum/topic/246715-encerrado-alavanca-quest/
Compartilhar em outros sites

Adiciona essa função em alguma lib.

 

  Mostrar conteúdo oculto

 

Seu codigo:

  Mostrar conteúdo oculto

 

Editando a área:

Onde fromx, fromy, fromz é a </\ e tox, toy, toz é \/> dá área tipo para fazer um quadrado.

  Mostrar conteúdo oculto

 

Link para o comentário
https://xtibia.com/forum/topic/246715-encerrado-alavanca-quest/#findComment-1724140
Compartilhar em outros sites

Puts irmão, me desculpa.

Eu te passei o script errado.

O correto seria esse:

  Mostrar conteúdo oculto

Editado por Allangod
Link para o comentário
https://xtibia.com/forum/topic/246715-encerrado-alavanca-quest/#findComment-1724143
Compartilhar em outros sites

  Em 28/11/2017 em 21:39, Allangod disse:

                 for k, tid in ipairs(check) do 
                 doSendMagicEffect(getCreaturePosition(tid), CONST_ME_POFF)
                 doTeleportThing(tid, t[k].Pos[2]) 
                 doSendMagicEffect(getCreaturePosition(tid), CONST_ME_TELEPORT)
                  end

Expand  

Troca isso por isso

 

for k, tid in ipairs(check do

  if #getPlayerInArea(area) < 4 then

                 doSendMagicEffect(getCreaturePosition(tid), CONST_ME_POFF)
                 doTeleportThing(tid, t[k].Pos[2]) 
                 doSendMagicEffect(getCreaturePosition(tid), CONST_ME_TELEPORT)

  else

                 doPlayerSendCancel(cid, "Já tem players na área")

      end

end

Link para o comentário
https://xtibia.com/forum/topic/246715-encerrado-alavanca-quest/#findComment-1725348
Compartilhar em outros sites

  Em 29/11/2017 em 20:22, kttallan disse:

Troca isso por isso

 

 

for k, tid in ipairs(check do

  if #getPlayerInArea(area) < 4 then

                 doSendMagicEffect(getCreaturePosition(tid), CONST_ME_POFF)
                 doTeleportThing(tid, t[k].Pos[2]) 
                 doSendMagicEffect(getCreaturePosition(tid), CONST_ME_TELEPORT)

  else

                 doPlayerSendCancel(cid, "Já tem players na área")

      end

end

Expand  

Então mano, deu esse erro abaixo:

 

[Error - LuaScriptInterface::loadFile] data/actions/scripts/partegrama.lua:10: u
nexpected symbol near '='
[Warning - Event::loadScript] Cannot load script (data/actions/scripts/partegram
a.lua)
data/actions/scripts/partegrama.lua:10: unexpected symbol near '='

 

Meu script ficou assim:

  Mostrar conteúdo oculto

 

Editado por Allangod
Link para o comentário
https://xtibia.com/forum/topic/246715-encerrado-alavanca-quest/#findComment-1725349
Compartilhar em outros sites

Esse bug não tem haver com o que te passei, como não tou em casa não tem como eu checar já que esse script tá uma bagunça. É na linha 10.

Link para o comentário
https://xtibia.com/forum/topic/246715-encerrado-alavanca-quest/#findComment-1725352
Compartilhar em outros sites

Estranho porque sem essas alterações o script funciona.
O problema é que podem entrar um por cima do outro.

Queria saber tirar esse negocio de vocação, pra todas as vocações puderem entrar lá...
Esse script limita somente as vocações citadas ali, e como tinha isso, tive que citar todas as minhas.

Editado por Allangod
Link para o comentário
https://xtibia.com/forum/topic/246715-encerrado-alavanca-quest/#findComment-1725354
Compartilhar em outros sites

  • 4 months later...
Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...