Ir para conteúdo
  • 0

Porta entrada event tile


davidjohson

Pergunta

Ai pessoal eu queria um tile q o cara só passa nele se for lvl 50+ e se ficar parado 10 segundos no tile, sendo se mexendo ou parado é jogado pra uma posição ou templo, isso seria mt util pra por na porta do evento pq qnd abre o evento tem uns caras q vao com noob char lvl 8 e lota o evento e tem outros q ficam na porta do evento trapando com anti push

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

um tile teleport também resolveria né se quiser testa ae

 

<movevent type="StepIn" actionid="18004" event="script" value="tileteleport.lua"/>

function onStepIn(cid, item, position, fromPosition)
local tiles = {
 
[18004] = {{x=200, y=54, z=7}}
}
return doTeleportThing(cid, tiles[item.actionid][math.random(#tiles[item.actionid])])
end
Link para o comentário
Compartilhar em outros sites

  • 0

Isso não resolveria meu problema, talvez desse um "jeitinho" nos caras que ficam de anti push, mas msm assim qnd inicia o evento os cara vai lá e fecha o evento com noob char pq tem limite de jogadores, e se aumentar qnd eles n forem com noob char n tem evento, teria q ser um tile com lvl e um tile q n deixa-se mt tempo trapando msm

Link para o comentário
Compartilhar em outros sites

  • 0

Isso não resolveria meu problema, talvez desse um "jeitinho" nos caras que ficam de anti push, mas msm assim qnd inicia o evento os cara vai lá e fecha o evento com noob char pq tem limite de jogadores, e se aumentar qnd eles n forem com noob char n tem evento, teria q ser um tile com lvl e um tile q n deixa-se mt tempo trapando msm

 

é so você colocar level na porta, so passa na porta quem tiver level 50 ou + e coloca o tile teleport embaixo da porta assim noobs level baixo não ficaram na porta e nen outros players poderam ficar trapando a entrada do evento.

 

para colocar level na porta coloque o action id nela 1050. assim so passaram jogadores de level 50 +.

Link para o comentário
Compartilhar em outros sites

  • 0

Vejamos, vá em data/movements/scripts, crie um arquivo chamado eventTile.lua e adicione dentro:

 

 

function onStepIn(cid, pos, fromPosition)
    local ppos = {x = 500, y = 400, z = 7}

    if getPlayerLevel(cid) < 50 then
        doSendMagicEffect(pos, 2)
        doTeleportThing(cid, fromPosition)
        doPlayerSendCancel(cid, "You need level 50, your level is "..getPlayerLevel(cid)..".")
        return true
    end

    leave = addEvent(doTeleportThing, 10 * 1000, cid, ppos)
    return true
end

function onStepOut(cid)

    stopEvent(leave)
    return true
end

 

Em movements.xml adicione esta tag:

 

 

<event type="StepIn" actionid="12369" event="script" value="eventTile.lua"/>
<event type="StepOut" actionid="12369" event="script" value="eventTile.lua"/>

 

No tile do evento, você coloca ActionID 12369 e no código, você muda a ppos para aonde o player será levado, caso fique 10 segundos no tile.

Link para o comentário
Compartilhar em outros sites

  • 0

 

Isso não resolveria meu problema, talvez desse um "jeitinho" nos caras que ficam de anti push, mas msm assim qnd inicia o evento os cara vai lá e fecha o evento com noob char pq tem limite de jogadores, e se aumentar qnd eles n forem com noob char n tem evento, teria q ser um tile com lvl e um tile q n deixa-se mt tempo trapando msm

 

é so você colocar level na porta, so passa na porta quem tiver level 50 ou + e coloca o tile teleport embaixo da porta assim noobs level baixo não ficaram na porta e nen outros players poderam ficar trapando a entrada do evento.

 

para colocar level na porta coloque o action id nela 1050. assim so passaram jogadores de level 50 +.

 

 

Não funcionou, como eu disse bugou a porta e ela bugou aberta.

 

 

Vejamos, vá em data/movements/scripts, crie um arquivo chamado eventTile.lua e adicione dentro:

 

 

function onStepIn(cid, pos, fromPosition)

local ppos = {x = 500, y = 400, z = 7}

 

if getPlayerLevel(cid) < 50 then

doSendMagicEffect(pos, 2)

doTeleportThing(cid, fromPosition)

doPlayerSendCancel(cid, "You need level 50, your level is "..getPlayerLevel(cid)..".")

return true

end

 

leave = addEvent(doTeleportThing, 10 * 1000, cid, ppos)

return true

end

 

function onStepOut(cid)

 

stopEvent(leave)

return true

end

 

Em movements.xml adicione esta tag:

 

 

<event type="StepIn" actionid="12369" event="script" value="eventTile.lua"/>

<event type="StepOut" actionid="12369" event="script" value="eventTile.lua"/>

 

No tile do evento, você coloca ActionID 12369 e no código, você muda a ppos para aonde o player será levado, caso fique 10 segundos no tile.

 

Não funcionou, adicionei tudo em movements, no mapa a action id e tal, não deu erro ao iniciar o sv, mas passei com um char lvl 8, fiquei parado 8 minutos e n fui jogado pra pos

 

 

Link para o comentário
Compartilhar em outros sites

  • 0


function onStepIn(cid, item, position, fromPosition)

if getPlayerLevel(cid) < 50 then

doTeleportThing(cid, fromPosition)

doPlayerSendCancel(cid, "You need level 50, your level is "..getPlayerLevel(cid)..".")

return true

end

function checkpos(cid)

local tile_pos = {x = 160, y = 48, z = 7} -- pos do tile que não poderá ficar parado

if not isCreature(cid) then return LUA_ERROR end

if getCreaturePosition(cid).x == tile_pos.x and getCreaturePosition(cid).y == tile_pos.y then

doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))

end

end

addEvent(checkpos, 10000, cid)

return true

end

Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

  • 0
function onStepIn(cid, item, position, fromPosition)
    if getPlayerLevel(cid) < 50 then
        doTeleportThing(cid, fromPosition)
        doPlayerSendCancel(cid, "You need level 50, your level is "..getPlayerLevel(cid)..".")
        return true
    end
    function checkpos(cid)
    local tile_pos = {x = 160, y = 48, z = 7} -- pos do tile que não poderá ficar parado
          if not isCreature(cid) then return LUA_ERROR end
             if getCreaturePosition(cid).x == tile_pos.x and getCreaturePosition(cid).y == tile_pos.y then
             doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
             end
          end
     addEvent(checkpos, 10000, cid)
    return true
end

 

Como eu faço pra colocar? E pra colocar 3 pisos?

Link para o comentário
Compartilhar em outros sites

  • 0

Faça assim para ser mais simples, substitua o meu código pelo o do Vod, em seguida coloque ActionID 12369 em todos tiles que quiser esta ação.

Link para o comentário
Compartilhar em outros sites

  • 0

 

function onStepIn(cid, item, position, fromPosition)
    if getPlayerLevel(cid) < 50 then
        doTeleportThing(cid, fromPosition)
        doPlayerSendCancel(cid, "You need level 50, your level is "..getPlayerLevel(cid)..".")
        return true
    end
    function checkpos(cid)
    local from, to = {x=160, y=54, z=7}, {x=165, y=55, z=7} -- pos começo e final dos tiles que não poderá ficar parado
          if not isCreature(cid) then return LUA_ERROR end
             if isInRange(getCreaturePosition(cid), from, to) then
             doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
             end
          end
     addEvent(checkpos, 10000, cid)
    return true
end
Link para o comentário
Compartilhar em outros sites

  • 0
function onStepIn(cid, item, position, fromPosition)
    if getPlayerLevel(cid) < 50 then
        doTeleportThing(cid, fromPosition)
        doPlayerSendCancel(cid, "You need level 50, your level is "..getPlayerLevel(cid)..".")
        return true
    end
    function checkpos(cid)
    local from, to = {x=160, y=54, z=7}, {x=165, y=55, z=7} -- pos começo e final dos tiles que não poderá ficar parado
          if not isCreature(cid) then return LUA_ERROR end
             if isInRange(getCreaturePosition(cid), from, to) then
             doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
             end
          end
     addEvent(checkpos, 10000, cid)
    return true
end

 

 

Não funfo

passo em cima n acontece nada, nem erros da

botei assim:

 

 

function onStepIn(cid, item, position, fromPosition)

if getPlayerLevel(cid) < 50 then

doTeleportThing(cid, fromPosition)

doPlayerSendCancel(cid, "You need level 50, your level is "..getPlayerLevel(cid)..".")

return true

end

function checkpos(cid)

local from, to = {x=152, y=47, z=6}, {x=153, y=47, z=6}, {x=154, y=47, z=6} -- pos começo e final dos tiles que não poderá ficar parado

if not isCreature(cid) then return LUA_ERROR end

if isInRange(getCreaturePosition(cid), from, to) then

doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))

end

end

addEvent(checkpos, 10000, cid)

return true

end

Link para o comentário
Compartilhar em outros sites

  • 0

claro amigo, era só para colocar 2 POS, você acabou colocando 3 POS quando se tem só duas variáveis....

 

está aqui amg:

 

function onStepIn(cid, item, position, fromPosition)
    if getPlayerLevel(cid) < 50 then
        doTeleportThing(cid, fromPosition)
        doPlayerSendCancel(cid, "You need level 50, your level is "..getPlayerLevel(cid)..".")
        return true
    end
    function checkpos(cid)
    local from, to = {x=152, y=47, z=6}, {x=154, y=47, z=6}  -- pos começo e final dos tiles que não poderá ficar parado
          if not isCreature(cid) then return LUA_ERROR end
             if isInRange(getCreaturePosition(cid), from, to) then
             doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
             end
          end
     addEvent(checkpos, 10000, cid)
    return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

davidjohson, em 13 Out 2013 - 10:34, disse:

 

A ta, mas n tem como fazer com 3? na entrada do meu evento são 3 sqm

Só você selecionar o primeiro piso e o terceiro piso que o segundo já ficará automaticamente.

Editado por Fawz
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...