Ir para conteúdo

Featured Replies

Postado

Olá amigos,

Estou com um grande problema e não achei nada parecido aqui no TK.

Segue o exemplo da imagem, o player vai ter um tp no templo e outro na quest, quando ele passar pelo tp1 ele vai ser teleportado para o X na direita do player salvando a sua posição de checkpoint, ao passar pelo tp2 ele irá ser teleportado para o X que será sua posição de checkpoint, o tp2 se encontrará no templo.

 

Consistência:

                    *só pode salvar uma vez, se ele entrar em outro checkpoint ele resetará sua posição para a ultima;

                    *se não houver checkpoint, o player receberá uma mensagem de que não há checkpoint;

                    *em cada tp ao teleportar o player recebe uma mensagem, com qualquer efeito, só pra saber como é o código do efeito;

 

 

12571287_555245157978603_988990226_n.png

 

 

Editado por Shabba (veja o histórico de edições)

Postado

"Data/movements/scripts", checkTeleport.lua:

local t = {
mainTP = 20000, -- Aqui é o uniqueID do teleport que levará ao check point.
resetTP = 20001, -- Caso queira resetar o checkPoint, coloque esse uniqueID e edite a position normalmente pelo RME.
storage = 40945, -- Storage para salvar a position, só mexa se necessário!
    checks = { -- [uniqueid] = {pos = {position do checkPoint}}
        [20002] = {pos = {x = 162, y = 55, z = 7}},
        [20003] = {pos = {x = 163, y = 55, z = 7}},
        [20004] = {pos = {x = 164, y = 55, z = 7}},
},
}

function onStepIn(cid, item, position, fromPosition)
    if not isPlayer(cid) then
        return true
    end

    local checkPos = t.checks[item.uid]
    if checkPos then
        doTeleportThing(cid, checkPos.pos)
        setPlayerStorageValue(cid, t.storage, "{x = ".. checkPos.pos.x ..", y = ".. checkPos.pos.y ..", z = ".. checkPos.pos.z .."}")
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Check point! Agora você pode voltar a esse local pelo teleport localizado no templo.')
        doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)
    elseif item.uid == t.mainTP then
        if getPlayerStorageValue(cid, t.storage) == -1 then
            doTeleportThing(cid, fromPosition)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você não chegou a nenhum check point ainda.')
            doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)
        else
            local nPos = "return ".. getPlayerStorageValue(cid, t.storage)
             doTeleportThing(cid, loadstring(nPos)())
            doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)
        end
    elseif item.uid == t.resetTP then
        setPlayerStorageValue(cid, t.storage, -1)
    end
  return true
end

"Data/movements", movements.xml:

<movevent type="StepIn" uniqueid="20000-20004" event="script" value="checkTeleport.lua"/> 

Não esqueça de aumentar o valor na tag caso adicione mais checks!

Se tiver alguma dúvida ou der algum problema, me avise.

Editado por Wakon (veja o histórico de edições)

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo