Ir para conteúdo
  • Cadastre-se

[Poketíbia] (Pedido) Não poder deslogar estando em: Surf, Ride e Fly!


Posts Recomendados

Registre no creaturescript.xml   ou coloca um return false na sript

Te ajudei? Então Rep + ;)

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

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Nossa, realmente, foi falta de atenção. Fiz o script correndo enquanto estava trocando a tela de um Moto G e depois de pronto, digitando rapidamente aquele "tuto" básico de script e registros.. Aí a

Exato, postei novamente para não confundir o dono do tópico.

Tenho que concordar com o Suicide, pois pelo pouco que sei de scripts, acontecerá da seguinte maneira:   SE colocar o RETURN FALSE na última parte, os players fora do IF de checagem também não

Bom, creio eu que ficaria assim:

 

function onLogout(cid)
    local sto = {17000, 17001, 63215}
    for x = 1, #sto do
        if getPlayerStorageValue(cid, sto[x]) > 0 then
            doPlayerSendCancel(cid, 'You cannot logout when you are in special situations such as surf/ride/fly.')
            return false
        end
    end
    return true
end

 

Boa sorte.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Agora que você postou os códigos do surf, a tabela está completa:

local sto = {17000, 17001, 63215}


Sendo as storages do fly, ride e surf, respectivamente. Tudo certo.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
function onLogout(cid)
    local sto = {17000, 17001, 63215}
    for x = 1, #sto do
        if getPlayerStorageValue(cid, sto[x]) > 0 then
            doPlayerSendCancel(cid, 'You cannot logout when you are in special situations such as surf/ride/fly.')
            return true
        end
    end
    return false
end

só consertando

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

Não funcionou pessoal, fiz tudo o que vocês postaram e nada funcionou! Os players continuam deslogando normalmente estando em fly, ride e surf!

Link para o post
Compartilhar em outros sites
function onLogout(cid)
    local sto = {17000, 17001, 63215}
    for x = 1, #sto do
        if getPlayerStorageValue(cid, sto[x]) > 0 then
            doPlayerSendCancel(cid, 'You cannot logout when you are in special situations such as surf/ride/fly.')
            return true
        end
    end
    return false
end

só consertando

 

 

Retornar true ao callback depois da checagem e retornar false no fim da função, não faz sentido. Isso faria com que o player que possui algumas das storages conseguisse fazer logout e os que não possuem, não.

Você inverteu o correto.

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

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Use este:

function onLogout(cid)
    local sto = {17000, 17001, 63215}
    for x = 1, #sto do
        if getPlayerStorageValue(cid, sto[x]) > 0 then
            doPlayerSendCancel(cid, 'You cannot logout when you are in special situations such as surf/ride/fly.')
            return false
        end
    end
    return true
end

Poste o resultado.

 

 

@Suicide:

Isso que pensei.

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

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Use este:


Embora esteja correto, você não alterou absolutamente nada do script anterior lol

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Embora esteja correto, você não alterou absolutamente nada do script anterior lol

Exato, postei novamente para não confundir o dono do tópico.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Estou formatando um notebook, arrumando um carregador de notebook e um celular, assim que terminar, se ninguém ajudar eu recrio.

 

Abraços e boa sorte.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Teste assim:

 

function onLogout(cid)
    local sto = {17000, 17001, 63215}
    for x = 1, #sto do
        if getPlayerStorageValue(cid, sto[x]) > 0 then
            doPlayerSendCancel(cid, 'You cannot logout when you are in special situations such as surf/ride/fly.')
            return false
        end
    end
end

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

pois creio que os outros já desistiram de ajudar pelo fato de não saberem!


Se eu estou incluso nesses "outros", preste bem atenção.
Não é porquê eu não te respondi mais que eu desisti de te ajudar ou que eu não sei como te ajudar, tenho compromissos e não sou obrigado a ficar atrás de você.
Se quer que alguém faça algo pra você, então ao menos tenha mais respeito.

O script do membro estava correto.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Retornar true ao callback depois da checagem e retornar false no fim da função, não faz sentido. Isso faria com que o player que possui algumas das storages conseguisse fazer logout e os que não possuem, não.

Você inverteu o correto.

se eu coloquei para retornar falso, é pra avisar para a distro que ocorreu algo de errado e ele nao pode deslogar

e se estivesse true o jogador simplesmente desloga sem receber o aviso.

CoMO ESTA O ALGORITIMO

FUNÇAO

LAÇO DE REPETIÇÃO

ESTRUTURA DE DECISAO

RETORNO DO IF

FIM DA ESTRUTURA DA DECISAO

FIM DO LAÇO

RETORNO DA FUNÇÃO

FIM DA FUNÇAO

 

ou seja, se colocar no retorno do if, nao mudara nada, tem qe colocar no retorno da funçao

 

logout

Quando é executada:

- quando um player desloga pelo logout do próprio cliente. Não acontece se o player morrer, for disconectado ou xlogs

Parametros:

- cid = creatureid do player que deslogou

quando está return false:

- Player não vai conseguir deslogar

registra creature event:

- não

http://www.tibiaking.com/forum/topic/34420-callbacks-de-creaturescripts/

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

se eu coloquei para retornar falso, é pra avisar para a distro que ocorreu algo de errado e ele nao pode deslogar e se estivesse true o jogador simplesmente desloga sem receber o aviso.


@narazaky
Amigo, eu não preciso que me explique o que eu já sei.
Se você colocou pra retornar true antes do fim do callback, então de que adiantou fazer a checagem? Não vou ficar dando aulinha.
Se está tão certo dessa sua "lógica", pega e testa você mesmo. Quem sabe tirando a prova, não aprende melhor com seus erros.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Tenho que concordar com o Suicide, pois pelo pouco que sei de scripts, acontecerá da seguinte maneira:

function onLogout(cid) -- FUNÇÃO
    local sto = {17000, 17001, 63215} -- INDIFERENTE
    for x = 1, #sto do  -- FOR
        if getPlayerStorageValue(cid, sto[x]) > 0 then  -- CHECAGEM
            doPlayerSendCancel(cid, 'You cannot logout when you are in special situations such as surf/ride/fly.')  -- MENSAGEM DE NEGAÇÃO
            return false -- NEGANDO A AÇÃO DO PLAYER
        end -- FECHA O IF
    end -- FECHA O FOR

return true -- RETORNA A FUNÇÃO EM QUESTÂO/ESPECÍFICO
end -- FECHA A FUNÇÃO EM QUESTÂO/ESPECÍFICA

 

SE colocar o RETURN FALSE na última parte, os players fora do IF de checagem também não poderão logar.

Quase certeza disso.

 

Faça o teste.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

é de fato encontrei meu erro, porem nao deslogava.......

perdao galera

 

 

@topic

Uma duvida, voce colou isso no seu creatureevent?

	<event type="logout" name="logout" event="script" value="seuscript.lua"/>

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

 

é de fato encontrei meu erro, porem nao deslogava.......

perdao galera

 

 

@topic

Uma duvida, voce colou isso no seu creatureevent?

	<event type="logout" name="logout" event="script" value="seuscript.lua"/>

Coloquei isso e usei o novo scrip, porém ainda não está funcionando o Script!

Link para o post
Compartilhar em outros sites

As storages estão de acordo com o seu sistema, a checagem delas corretas. Estranho.

Que tal fazer com que os players só possam fazer logout se estiverem com a pokeball fora do slot da mesma? (Imagino que eles não possam retirar a pokeball enquanto estão em surf/ride/fly)
Assim resolveria esse problema..

Pelo que vi em alguns servidores de pokemon tibia, o slot da pokeball é o que seria o slot da boots.
Então:

pokelogout.lua

function onLogout(cid)
    if getPlayerSlotItem(cid, CONST_SLOT_FEET).uid ~= 0 then
        doPlayerSendCancel(cid, 'You need to remove your pokeball from the slot to logout.')
        return false
    end
    return true
end




Não se esqueça da tag:

<event type="logout" name="PokeLogout" event="script" value="pokelogout.lua"/>

The corrupt fear us.

The honest support us.

The heroic join us.

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