Ir para conteúdo
  • Cadastre-se

(Resolvido)Teleportar player automático quando alcançar um certo level!


Ir para solução Resolvido por Dwarfer,

Posts Recomendados

Olá, 
Alguém ai consegue fazer um script que quando o player alcançar um level 100 por exemplo ele seja teleportado automaticamente para uma posicão x , y , z ?
Estou utilizando tfs 1.2
Desde já agradeço.

Gostou ? Rep + :P

Link para o post
Compartilhar em outros sites

cara, ja pensou em fazer de outro jeito ? um tp em algum lugar que so lvl 100 entra e tal, pq imagina o cara la caçando suavao e não quer ir pra esse lugar assim que pega 100, saca ?

mas se preferir desse jeito, irei testar aqui algum script que funcione.

Link para o post
Compartilhar em outros sites
18 minutos atrás, mateusfn disse:

cara, ja pensou em fazer de outro jeito ? um tp em algum lugar que so lvl 100 entra e tal, pq imagina o cara la caçando suavao e não quer ir pra esse lugar assim que pega 100, saca ?

mas se preferir desse jeito, irei testar aqui algum script que funcione.

 

Eu utilizo um map custom, e na real o level 100 é só um exemplo.
O verdadeiro level que será 20, e esse script fará o  player ficar nessa newbee ilha, ou seja, ele inicia level 1 e pode ficar caçando nesse lugar até level 20, depois ele é teleportado para uma cordenada x, y, z (que eu irei por) na qual ele terá que decidir o que deseja fazer, se continua na ilha passando um tp que eu ja fiz ou vai para outra ilha passando em outro tp .

Agradeço desde já pela sua resposta, mas preciso que seja em script e nao em tp ou npc, pois ao checar no level 20 o player tem que ser teleportado para essa posição.

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

Gostou ? Rep + :P

Link para o post
Compartilhar em outros sites

Em creaturescripts/scripts crie um arquivo:

 

advancetp.lua

 

Spoiler

local level = 100
local newpos = Position(1,1,1) -- posição para qual o player será teleportado

function onAdvance(player, skill, oldlevel, newlevel)
    if skill == SKILL_LEVEL and newlevel >= level then
        if player:getStorageValue(65770) == -1 then
            player:teleportTo(newpos)
            newpos:sendMagicEffect(CONST_ME_TELEPORT)
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "Due to reach level " .. level .. " you were teleported to this room!")
            player:setStorageValue(65770, 1)
        end
    end
return true
end

 

 

No login.lua, registre o evento: player:registerEvent("AdvanceTeleport")

 

Em creaturescripts.xml, adicione a tag: <event type="advance" name="AdvanceTeleport" script="advancetp.lua" />

Contato:

 

Link para o post
Compartilhar em outros sites
1 hora atrás, Dwarfer disse:

Em creaturescripts/scripts crie um arquivo:

 

advancetp.lua

 

  Mostrar conteúdo oculto


local level = 100
local newpos = Position(1,1,1) -- posição para qual o player será teleportado

function onAdvance(player, skill, oldlevel, newlevel)
    if skill == SKILL_LEVEL and newlevel >= level then
        if player:getStorageValue(65770) == -1 then
            player:teleportTo(newpos)
            newpos:sendMagicEffect(CONST_ME_TELEPORT)
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "Due to reach level " .. level .. " you were teleported to this room!")
            player:setStorageValue(65770, 1)
        end
    end
return true
end

 

 

No login.lua, registre o evento: player:registerEvent("AdvanceTeleport")

 

Em creaturescripts.xml, adicione a tag: <event type="advance" name="AdvanceTeleport" script="advancetp.lua" />


Muito obrigado @Dwarfer, o script funcionou, teleportou o player certinho, o único detalhe que eu não diria um erro é que a mensagem não apareceu, mas o restante funcionou perfeitamente.
Teria como mudar a mensagem para uma vermelha ou branca no centro da tela?

player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "Due to reach level " .. level .. " you were teleported to this room!")

Gostou ? Rep + :P

Link para o post
Compartilhar em outros sites
  • Solução

A mensagem aparece sim, no entanto, no Local Chat. Tinha colocado assim porque já ia aparecer a mensagem que o player avançou de level. Enfim, mensagem branca no meio da tela:

 

Spoiler

local level = 100
local newpos = Position(1,1,1) -- posição para qual o player será teleportado

function onAdvance(player, skill, oldlevel, newlevel)
    if skill == SKILL_LEVEL and newlevel >= level then
        if player:getStorageValue(65770) == -1 then
            player:teleportTo(newpos)
            newpos:sendMagicEffect(CONST_ME_TELEPORT)
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Due to reach level " .. level .. " you were teleported to this room!")
            player:setStorageValue(65770, 1)
        end
    end
return true
end

 

 

Contato:

 

Link para o post
Compartilhar em outros sites
5 minutos atrás, Dwarfer disse:

A mensagem aparece sim, no entanto, no Local Chat. Tinha colocado assim porque já ia aparecer a mensagem que o player avançou de level. Enfim, mensagem branca no meio da tela:

 

  Ocultar conteúdo


local level = 100
local newpos = Position(1,1,1) -- posição para qual o player será teleportado

function onAdvance(player, skill, oldlevel, newlevel)
    if skill == SKILL_LEVEL and newlevel >= level then
        if player:getStorageValue(65770) == -1 then
            player:teleportTo(newpos)
            newpos:sendMagicEffect(CONST_ME_TELEPORT)
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Due to reach level " .. level .. " you were teleported to this room!")
            player:setStorageValue(65770, 1)
        end
    end
return true
end

 

 

 

 

Perfeito amigo, muito obrigado, agora funcionou perfeitamente!!!

Gostou ? Rep + :P

Link para o post
Compartilhar em outros sites

exatamente oq o colega falou, todo script que vc for usar que precisar ser atualizado na hr (avançar de lvl, ao logar tal coisa, ao deslogar tal coisa) tudo vc mexe no creaturescript =D
da rep+ pro colega e coloca como melhor resposta para o tópico ficar resolvido =D

Link para o post
Compartilhar em outros sites
2 minutos atrás, mateusfn disse:

exatamente oq o colega falou, todo script que vc for usar que precisar ser atualizado na hr (avançar de lvl, ao logar tal coisa, ao deslogar tal coisa) tudo vc mexe no creaturescript =D
da rep+ pro colega e coloca como melhor resposta para o tópico ficar resolvido =D

 

Maravilha, obrigado pela resposta, já dei rep+ e defini a melhor resposta, obrigado :D

Gostou ? Rep + :P

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo