Ir para conteúdo

[OTC] Adaptando seu OTC para aceitar a função doCreatureSetHideHealth


Posts Recomendados

Boa noite galera,

 

Estou a alguns dias tentando resolver um problema que tive com o OTC: ao usar a função doCreatureSetHideHealth simplesmente o player trava e não consegue fazer nada até o hidehealth ser desfeito.

Isso ocorre porque, na source do OTC, a declaração de morte é feita baseada em porcentagem de vida e essa inexiste quando o hideHealth é acionado, somente a vida total e a vida máxima é que continuam com valores relevantes.

 

Então, o OTC simplesmente te considera como um morto vivo quando você usa hideHealth e você não pode realizar nenhuma ação no jogo a não ser deslogar.

 

Após alguns dias fuçando consegui finalmente resolver o problema e vim compartilhar a solução com vocês.

 

1) Na source do seu OTC vá em creatures.cpp.

 

Crie as funções abaixo:

double Creature::getLocalPlayerHealth()
{
    return g_game.getLocalPlayer()->getHealth();
}
 
bool Creature::isDead()
{
    if (!isLocalPlayer()) return m_healthPercent <= 0;
    double m_health = getLocalPlayerHealth();
    return m_health <= 0;
}

Substitua:

if(m_healthPercent < 1) // creature is dead
    return;

por

if(m_healthPercent < 1) // creature is dead
    if (!isLocalPlayer()) return;

2) Vá em creature.h e troque a declaração da função isDead() por:

bool isDead();

3) Em game.cpp troque a função proccessDeath por:

void Game::processDeath(int deathType, int penality)
{
    if (m_localPlayer->getHealth() > 0){
        m_dead = true;
        m_localPlayer->stopWalk();
         
        g_lua.callGlobalField("g_game", "onDeath", deathType, penality);
    }
}

Pronto, o seu OTC agora suporta a função doCreatureSetHideHealth (e de bônus você consegue enxergar o seu player com uma barra preta e seu nome, apesar dos outros não te verem).

 

Bom é simples, mas útil espero que ajude.

Abraços,

Pô muito bom @@Skulls, tá trazendo conteúdos bem legais, continue assim :D

com certeza irei usar quando começar a trabalhar com OTClient.

Pô muito bom @@Skulls, tá trazendo conteúdos bem legais, continue assim :D

com certeza irei usar quando começar a trabalhar com OTClient.

Obrigado! Começa sim, te abre um leque enorme de possibilidades!

 

Belo tutorial, parabéns Skulls.

Obrigado!

Obrigado! Vou aprendendo, ai trago coisas mais complexas mais pra frente! :p

Qualquer coisa man e so chamar q eu ajudo com oq eu souber

Qualquer coisa man e so chamar q eu ajudo com oq eu souber

O cara muito obrigado, pode deixar que precisando vou te amolar sim :p

  • 1 month later...

O que isso faz? Tem alguma imagem?

Não, pois na verdade é só um bug fix. Existe uma função no TFS chamada creatureHideHealth que faz com que a vida da criatura não apareça e que funciona bem para cipclient. Porém, o OTC para de responder quando usado com ela e só volta quando a vida da criatura voltar a aparecer. Isso pq ele considera que o player estava morto e, portanto, não responde a suas ações. Esse tópico resolve esse problema e torna o hidehealth funcional para otc.

Não, pois na verdade é só um bug fix. Existe uma função no TFS chamada creatureHideHealth que faz com que a vida da criatura não apareça e que funciona bem para cipclient. Porém, o OTC para de responder quando usado com ela e só volta quando a vida da criatura voltar a aparecer. Isso pq ele considera que o player estava morto e, portanto, não responde a suas ações. Esse tópico resolve esse problema e torna o hidehealth funcional para otc.

 

Ah sim, agora eu entendi, parabéns cara!

 

Saberia me dizer por que os mods que baixo, nenhum funciona? Apenas um "funcionou", mas tem um erro e por isso não funcionou.

 

Ah sim, agora eu entendi, parabéns cara!

 

Saberia me dizer por que os mods que baixo, nenhum funciona? Apenas um "funcionou", mas tem um erro e por isso não funcionou.

Bom, tem N fatores que podem fazer o mod não funcionar. É muito dificil dizer, ainda mais cada mod comportando de um jeito diferente. Apresentam algum erro ou algum comportamento diferente ou simplesmente não dão sinal de vida?

Bom, tem N fatores que podem fazer o mod não funcionar. É muito dificil dizer, ainda mais cada mod comportando de um jeito diferente. Apresentam algum erro ou algum comportamento diferente ou simplesmente não dão sinal de vida?

Simplesmente não da sinal de vida, nem erro da kkk

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...