Ir para conteúdo
  • 0

Player em tal area ser teleportado!


UroTTa

Pergunta

7 respostass a esta questão

Posts Recomendados

  • 0

 

local t = {
[3950] = { -- Area
pos = {x=33182, y=32714, z=14},
done = {x=33231, y=32705, z=8},
storage = 82341
}
}

function onStepIn(cid, item, position, fromPosition)
local v = t[item.actionid]
doSendMagicEffect(position, CONST_ME_TELEPORT)
if getPlayerStorageValue(cid, v.storage) == -1 and doPlayerRemoveItem(cid, v.item, 1) then
doTeleportThing(cid, v.pos)
doSendMagicEffect(v.pos, CONST_ME_TELEPORT)
setPlayerStorageValue(cid, v.storage, 1)
else
doTeleportThing(cid, v.done)
doSendMagicEffect(v.done, CONST_ME_TELEPORT)
end
end

 

 

Testa ae não testei aqui, se der erro avisa aqui

 

tenho este que uso no meu server, teste ele também.

 

function onStepIn(cid, item, pos)
-- teleporte para a area desejada
teleport1 ={x=1024, y=1024, z=7}
if isPlayer(cid) then
if item.actionid == 3540 then
player = getPlayerStorageValue(cid,3540)
if player == -1 then
doPlayerSendCancel(cid,"Mensagem")
doTeleportThing(cid,teleport1)
else
end
end
end
end
Editado por dyego2008
Link para o comentário
Compartilhar em outros sites

  • 0

Não é isso, você não entendeu, o script funciona totalmente diferente, irei explicar:

 

Um jogador que esta caçando em uma area EXLUSIVA e perde seu acesso a essa area (storage) e gostaria que ele automaticamente tomase teleport para o templo.

Link para o comentário
Compartilhar em outros sites

  • 0

Variáveis:

upperr = {x = x, y = y, z = z}    --Coordenadas da posição superior esquerda da área.
lowerr = {x = x, y = y, z = z}    --Coordenadas da posição inferior direita da área.
Função:
function getPlayersFromAreaWithoutSto(up, low, storage)
local players = {}
    for x = up.x, low.x do
        for y = up.y, low.y do
            for z = up.z, low.z do
                local pos = {x = x, y = y, z = z}
                local cid = getTopCreature(pos).uid
                if isPlayer(cid) then
                    if getPlayerStorageValue(cid, storage) < 1 then
                        table.insert(players, cid)
                    end
                end
            end
        end
    end
    return #players ~= 0 and players or false
end    
Modo de usar:
if getPlayersFromAreaWithoutSto(upperr, lowerr, sto) then
        for a, b in pairs(getPlayersFromAreaWithoutSto(upperr, lowerr, sto)) do
            doTeleportThing(b, getTownTemplePosition(getPlayerTown(b)))
        end
    end

Recomendo colocar a função e as variáveis em algum arquivo de data/lib.

PS: Recomendaria que a área fosse semelhante à uma "arena". Assim, as coordenadas definidas nas variáveis poderiam verificar todos os SQMs de lá.

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

  • 0

Não entendi muito bem como instalar esse script, as funções e variaveis eu posso botar em data/lib/050-function, correto? O modo de usar onde eu ponho e como eu registro?

Link para o comentário
Compartilhar em outros sites

  • 0

Você pode criar um arquivo em lib com um nome qualquer, e colocar a função junto com variáveis. Aquele modo de usar, você não precisa registrar em nada. Onde colocar, é no código referente à seu pedido (só fiz a função, não o código completo).

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

×
×
  • Criar Novo...