Ir para conteúdo
  • Cadastre-se

(Resolvido)entrar no teleport por determinado tempo e depois ser teleportado depois de 10m


Ir para solução Resolvido por Vodkart,

Posts Recomendados

como faço pra quando o player entrar no teleport
ai dps de 10 minutos se ele nao entrar no outro teleport (dentro da sala) ele fosse jogado pra outra position automatico? (tipo se ele ficasse afk)

Link para o post
Compartilhar em outros sites
  • Respostas 17
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

@poko360 Acredito que agora vai funcionar   1 - Apague o script do globalevent/scripts e exclua a linha do globalevents.XML   2 - Vá em creatureevents/scripts e crie um arquivo chamado teleportSala.lua e cole isso:   2.1 - Registre o evento no creatureevents.XML e no Login.lua em creatureevents/scripts:   3 - Altere o script que esta em movements/scripts para este:  

-------------   creaturescript   roomkick.lua function onLogin(cid) registerCreatureEvent(cid, "RoomKickCheck") return true end function onThink(cid, interval) if getPlayerStorageValue(cid, 982301) > 0 and getPlayerStorageValue(cid, 982300) - os.time() <= 0 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, 982301, 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"seu tempo na s

@poko360 Testei aqui e funcionou.   18:33 [Vodkart]:  Iniciou uma hunt em Nishapur 1 [PVP]  18:34 seu tempo na sala acabou   e fui jogado para o Templo.   Unica coisa que esqueci foi de colocar no TP final a coordenadas para sair...    Use assim os movements   roomkick1.lua function onStepIn(cid, item, position, fromPosition)     local getP = getPoints(cid)     local minutos = 1 -- 1 minuto          if not isPlayer(cid) then         return

faz uma função para checar se está na sala ainda, se estiver só jogar pra position inicial(configuravel)

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

@poko360 

Veja se é isso que você quer.

 

1 - Vá em data/globalevents crie um arquivo chamado salaTempo.lua e adicione isso dentro: 


x_inicial = 158 -- Posição X inicial da sala
x_final = 161 -- Posição X final da sala 
y_inicial = 52 -- Posição Y inicial da sala 
y_final = 55 -- Posição Y final da sala
z_andar = 7 -- Andar da sala (Posição Z)

teleport_effect = 10 -- Efeito do teleport
position_teleport = {x=164,y=54,z=7}-- Posição aonde o player será teleportado depois dos 10 minutos.

function onThink(interval, lastExecution)
    
    for i = x_inicial, x_final do
        for j = y_inicial, y_final do

            local position = {x=i,y=j,z=z_andar,stackpos=STACKPOS_TOP_CREATURE}
            local player = getTopCreature(position)
            if (isPlayer(player.uid)) then
                local newPos = doTeleportThing(player.uid, position_teleport)
                doSendMagicEffect(getThingPos(player.uid), teleport_effect)
                break
            end
        end
    end
    return true
end  

 

2 - Vá em data/globalevents e abra o arquivo globalevents.xml e cole essa linha dentro dele: 

<globalevent name="tempoSala" interval="600" script="tempoSala.lua" />

 

Configurando: 

 

(Pense em um retângulo, o retângulo seria a sala)

 

x_inicial é o começo do retângulo.

x_final é o final do retângulo.

y_inicial é o ponto em cima do retângulo.

y_final é o ponto em baixo do retângulo.

z_andar é o andar que esta a sala.

 

Link para o post
Compartilhar em outros sites

@Vodkart 
eu tentei fazer pelo "addevent" mas n consegui remover a storage quando o player saisse da sala manualmente
(n conheço mt a função addevent)

@MatteusDeli
 mas tipo, como eu coloco pra zerar a storage caso o player saia da sala manualmente? queria tipo pro script so funcionar se ele passasse 10min la dentro sem sair por si só, nesse script q vc colocou, o player vai ser jogado a cada 10m (sem o tempo inicial que o player entra na sala =/ )

script original (sem o addevent)

Spoiler

function onStepIn(cid, item, position, fromPosition)
local getP = getPoints(cid)
if getPoints(cid) >= 800 then
doTeleportThing(cid, {x=56, y=1463, z=7})
doPlayerRemovePoints(cid, 800)
doBroadcastMessage("["..getCreatureName(cid).."]: \ Iniciou uma hunt em Nishapur 1 [PVP] \n Gastou: 800x Online coins \n Account balance: [".. getP .."] online coins", 25)
doBroadcastMessage("["..getCreatureName(cid).."]: \ Iniciou uma hunt em Nishapur 1 [PVP] \n Gastou: 800x Online coins \n Account balance: [".. getP .."] online coins", MESSAGE_STATUS_CONSOLE_BLUE)
else
doCreatureSay(cid, "Voce nao possui 800 online coins na sua account.", TALKTYPE_ORANGE_1)
doTeleportThing(cid, fromPosition, true)
end
return true
end

 

Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@poko360 Veja se eu entendi o que voce quer, testa ai:

 

Em globalevents altere o script para este

Citar


x_inicial = 265 -- Posição X inicial da sala
x_final = 268 -- Posição X final da sala 
y_inicial = 580 -- Posição Y inicial da sala 
y_final = 582 -- Posição Y final da sala
z_andar = 9 -- Andar da sala (Posição Z)

teleport_effect = 10 -- Efeito do teleport
position_teleport = {x=164,y=54,z=7}-- Posição aonde o player será teleportado depois dos 10 minutos.
storageInRoom = 88774 -- o mesmo storage que voce colocou no script moveevent

function onThink(interval, lastExecution)
    
    for i = x_inicial, x_final do
        for j = y_inicial, y_final do

            local position = {x=i,y=j,z=z_andar,stackpos=STACKPOS_TOP_CREATURE}
            local player = getTopCreature(position)
            if (isPlayer(player.uid)) then
                if (getPlayerStorageValue(player.uid, storageInRoom) < os.time()) then
                    local newPos = doTeleportThing(player.uid, position_teleport)
                    doSendMagicEffect(getThingPos(player.uid), teleport_effect)
                    setPlayerStorageValue(player.uid, storageInRoom, -1)
                    break
                end
            end
        end
    end
    return true
end  

 

No globalevent.xml altere para essa linha: 

Citar

	<globalevent name="tempoSala" interval="1" script="tempoSala.lua" />

 

Altere seu script em moveevents para este:

Citar

storageInRoom = 88776
time = 10 -- tempo em minutos que o player podera ficar na sala

function onStepIn(cid, item, pos)

local getP = getPoints(cid)

    if getP >= 800 then
        if (isPlayer(cid)) then
            if (getPlayerStorageValue(cid, storageInRoom) < os.time()) then
                setPlayerStorageValue(cid, storageInRoom, os.time() + (time * 60))
            end
        end
        
        doTeleportThing(cid, {x=56, y=1463, z=7})
        doPlayerRemovePoints(cid, 800)
        doBroadcastMessage("["..getCreatureName(cid).."]: \ Iniciou uma hunt em Nishapur 1 [PVP] \n Gastou: 800x Online coins \n Account balance: [".. getP .."] online coins", 25)
        doBroadcastMessage("["..getCreatureName(cid).."]: \ Iniciou uma hunt em Nishapur 1 [PVP] \n Gastou: 800x Online coins \n Account balance: [".. getP .."] online coins", MESSAGE_STATUS_CONSOLE_BLUE)
    else
        doCreatureSay(cid, "Voce nao possui 800 online coins na sua account.", TALKTYPE_ORANGE_1)
        doTeleportThing(cid, fromPosition, true)
    end
    
return TRUE
end

 

 

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.

  • Estatísticas dos Fóruns

    96847
    Tópicos
    519607
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo