Ir para conteúdo
  • 0

Vida e mana por porcentagem tfs 1.2


julhinhuu

Pergunta

Boa noite xtibianos;

Estou precisando de uma ajuda de vocês, gostaria de colocar meu server com vida e mana por %, ava nem precisa escrever isso o tópico já diz'rsrs'.

 

Então é isso se alguém souber ou tiver algum tutorial já aqui no xt me avisem pois não achei ou não procurei direito. 'Preguicoso' haha

 

Agradeço a ajuda desde já. Rep++ pra quem me ajuda, abraços.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
  • Diretor

Tive olhando aqui e parece que é diferente certo?

 

Em tfs 1.2 é assim?

msg.add<uint16_t>(std::min<int32_t>(player->getHealth(), std::numeric_limits<uint16_t>::max()));
msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH), std::numeric_limits<uint16_t>::max()));

se for tente assim...

 

Em protocolgame.cpp troque:

msg.add<uint16_t>(std::min<int32_t>(player->getHealth(), std::numeric_limits<uint16_t>::max()));
msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH), std::numeric_limits<uint16_t>::max()));

Por:

if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0) {
    msg.add<uint16_t>(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH));
    msg.add<uint16_t>(100);
} else {
    msg.add<uint16_t>(0);
    msg.add<uint16_t>(0);
}

Troque:

msg.add<uint16_t>(std::min<int32_t>(player->getMana(), std::numeric_limits<uint16_t>::max()));
msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA), std::numeric_limits<uint16_t>::max()));

Por:

if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0) {
    msg.add<uint16_t>(player->getMana() * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA));
    msg.add<uint16_t>(100);
} else {
    msg.add<uint16_t>(0);
    msg.add<uint16_t>(0);
}

E recompile tudo, tomara que de certo :/

Estou torcendo por você amigo. xD

Editado por nedroesdoksdja
Link para o comentário
Compartilhar em outros sites

  • 0
  • Diretor

Para isso você irá precisar de suas Sources.

 

Não sei se funcionana na tfs 1.2, mais vamos lá...

 

Vai em protocolgame.cpp e procure por:

msg->put<uint16_t>(player->getHealth());
msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH));

Substitue por:

if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0)
    {
        msg->put<uint16_t>(uint16_t(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH)));
        msg->put<uint16_t>(100);
    }
    else
    {
        msg->put<uint16_t>(0);
        msg->put<uint16_t>(0);  
    }

Depois procure por:

msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA));
msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA));

Substitue por:

if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0)
    {
        msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA) * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA));
        msg->put<uint16_t>(100);
    }
    else
    {
        msg->put<uint16_t>(0);
        msg->put<uint16_t>(0);
    }

Testado em tfs 0.3.6 e 0.4.

Editado por nedroesdoksdja
Link para o comentário
Compartilhar em outros sites

  • 0

 

Para isso você irá precisar de suas Sources.

 

Não sei se funcionana na tfs 1.2, mais vamos lá...

 

Vai em protocolgame.cpp e procure por:

msg->put<uint16_t>(player->getHealth());msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH));
Substitue por:
if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0)    {        msg->put<uint16_t>(uint16_t(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH)));        msg->put<uint16_t>(100);    }    else    {        msg->put<uint16_t>(0);        msg->put<uint16_t>(0);      }
Depois procure por:
msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA));msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA));
Substitue por:
if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0)    {        msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA) * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA));        msg->put<uint16_t>(100);    }    else    {        msg->put<uint16_t>(0);        msg->put<uint16_t>(0);    }

Em tfs 1.2 não irá funciona, já havia tentado por isso que eu coloquei tfs 1.2.

Link para o comentário
Compartilhar em outros sites

  • 0

tem como coloka pra tfs 0.4 ?

Funciona sim, basta ter as sources e editar o Proton game.cpp

Tive olhando aqui e parece que é diferente certo?

 

Em tfs 1.2 é assim?

msg.add<uint16_t>(std::min<int32_t>(player->getHealth(), std::numeric_limits<uint16_t>::max()));msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH), std::numeric_limits<uint16_t>::max()));
se for tente assim...

 

Troque:

msg.add<uint16_t>(std::min<int32_t>(player->getHealth(), std::numeric_limits<uint16_t>::max()));msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH), std::numeric_limits<uint16_t>::max()));
Por:
if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0) {    msg.add<uint16_t>(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH));    msg.add<uint16_t>(100);} else {    msg.add<uint16_t>(0);    msg.add<uint16_t>(0);}
Troque:
msg.add<uint16_t>(std::min<int32_t>(player->getMana(), std::numeric_limits<uint16_t>::max()));msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA), std::numeric_limits<uint16_t>::max()));
Por:
if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0) {    msg.add<uint16_t>(player->getMana() * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA));    msg.add<uint16_t>(100);} else {    msg.add<uint16_t>(0);    msg.add<uint16_t>(0);}
E recompile tudo, tomara que de certo :/

Estou torcendo por você amigo. xD

Quando chegar em casa eu irei testa-lo e lhe direi se funcionou ou não. ?

Fecho, deu certinho aqui irmão, obrigado <3

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...