Ir para conteúdo

Featured Replies

Postado

Olá caros!


Atualmente utilizo um TFS 0.4 3777 já muito editado por mim. 
Eu considero ele 99% perfeito para minhas necessidades, portanto troca-lo não é uma opção.

Infelizmente tenho um problema grave e não acho solução:

Quando jogadores morrem, e unicamente quando morrem, a stamina enche em media 3-4 horas.
Esse problema ocorre com alguns jogadores e em determinados momentos. 
Pelas minhas teorias, o servidor não salva a stamina no momento correto e a mesma é setada para o ultimo login.

 

Esse problema já foi mencionado por diversos topicos mas nenhum deu uma solução adequada.
A solução apresentada abaixo não funciona:

Citar

 


Eu gostaria de resolver esse problema diretamente na "raiz" ou seja, na source.. mas caso isso nao seja possivel, tentaremos via script LUA.

Obrigado desde já!


 

 

Postado

vc pode criar um evento preparedeath que guarda a stamina do player em uma storage e ao login trocar a stamina atual pelo valor da storage

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

Postado
  • Autor
2 horas atrás, Gabrieldsadaxas disse:

vc pode criar um evento preparedeath que guarda a stamina do player em uma storage e ao login trocar a stamina atual pelo valor da storage

Bom dia Gabriel!

2 fatores a serem considerados:

1° - caso o jogador esteja com 20h de stamina e morra, fique 2 dias sem logar. Ele volta com a stamina setada novamente em 20h e isso é errado.
2° - eu criei um evento onPrepareDeath como disse acima no post. Naquele caso, a stamina seria setada já com a diferença de tempo entre logout e login.
Infelizmente desse jeito não funciona. De algum modo o servidor sobrescreve a stamina.
Muito provavelmente o topico foi fechado como "resolvido" pq o autor não testou direito. Alguns jogadores morrem e voltam com a stamina correta, então ele pode ter sido enganado por isso.

Eu pensei em criar um db.query que salvaria a stamina do player ao morrer diretamente, mas não sei se isso é possivel.

Postado
  • Autor

Consegui resolver!

Aos muitos que tem o mesmo problema no TFS 0.4:

Vá até a pasta de sua source e abra o arquivo player.cpp.
Encontre:
 

Citar

void Player::onCreatureDisappear(const Creature* creature, bool isLogout)
{
    Creature::onCreatureDisappear(creature, isLogout);
    if(creature != this)
        return;

    if(isLogout)
    {
        loginPosition = getPosition();
        lastLogout = time(NULL);
    }

Substitua por:
 

Citar

void Player::onCreatureDisappear(const Creature* creature, bool isLogout)
{
    Creature::onCreatureDisappear(creature, isLogout);
    if(creature != this)
        return;
    
    lastLogout = time(NULL);   

    if(isLogout)
    {
        loginPosition = getPosition();
    }

 

  • 4 months later...
Postado

meu jogo n tem source e tipo antigamente eu n tinha esse bug, fiz alguma alteração e do nada quando morre a stamina sobe sozinha, ja vi em outros dbos, oq poderia ser, ja q n tenho source

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.7k

Informação Importante

Confirmação de Termo