Vida e mana por porcentagem tfs 1.2

julhinhuu
em Resolvidos

julhinhuu

Sempre em busca de novidades
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 28/06/11Posts: 352Char no Tibia: Akor Rysea

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.

Yan Liima

Scripter,Programador,WebMaster.
avatar
Diretor
Diretor

INFOS

Grupo: DiretorRegistrado: 12/05/12Posts: 818Gênero: MasculinoChar no Tibia: [ADM] Night

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.

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

ALGUNS DOS MEUS TRABALHOS:

Spoiler

WODBOHS[DOWNLOAD]

Newstory dbo+nto+bleach[DOWNLOAD]

 

>> Mais infos <<

- Projetos lançados também feitos por mim {

DBO SKY

POKE SKY

WODBOWARS

Tic-tac-War

Dbo Universe(em desenvolvimento)

}

universe.thumb.png.6840320998d0fc1a4652b3db81a585c0.png

Separador.PNG

Te Ajudei? Rep + e ficamos Quits

imageproxy.png.84dce08dd18d31663a72aa1ce37b858a.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝

julhinhuu

Sempre em busca de novidades
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 28/06/11Posts: 352Char no Tibia: Akor Rysea

 

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.

Yan Liima

Scripter,Programador,WebMaster.
avatar
Diretor
Diretor

INFOS

Grupo: DiretorRegistrado: 12/05/12Posts: 818Gênero: MasculinoChar no Tibia: [ADM] Night

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

 

Que pena :/ não conheço muito a tfs 1.2.

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

ALGUNS DOS MEUS TRABALHOS:

Spoiler

WODBOHS[DOWNLOAD]

Newstory dbo+nto+bleach[DOWNLOAD]

 

>> Mais infos <<

- Projetos lançados também feitos por mim {

DBO SKY

POKE SKY

WODBOWARS

Tic-tac-War

Dbo Universe(em desenvolvimento)

}

universe.thumb.png.6840320998d0fc1a4652b3db81a585c0.png

Separador.PNG

Te Ajudei? Rep + e ficamos Quits

imageproxy.png.84dce08dd18d31663a72aa1ce37b858a.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝

julhinhuu

Sempre em busca de novidades
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 28/06/11Posts: 352Char no Tibia: Akor Rysea

 

Que pena :/ não conheço muito a tfs 1.2.

Nada eu agradeço por tentar ajuda mesmo assim. <3

macalo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/05/15Posts: 53

tem como coloka pra tfs 0.4 ?

Yan Liima

Scripter,Programador,WebMaster.
avatar
Diretor
Diretor

INFOS

Grupo: DiretorRegistrado: 12/05/12Posts: 818Gênero: MasculinoChar no Tibia: [ADM] Night

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

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

ALGUNS DOS MEUS TRABALHOS:

Spoiler

WODBOHS[DOWNLOAD]

Newstory dbo+nto+bleach[DOWNLOAD]

 

>> Mais infos <<

- Projetos lançados também feitos por mim {

DBO SKY

POKE SKY

WODBOWARS

Tic-tac-War

Dbo Universe(em desenvolvimento)

}

universe.thumb.png.6840320998d0fc1a4652b3db81a585c0.png

Separador.PNG

Te Ajudei? Rep + e ficamos Quits

imageproxy.png.84dce08dd18d31663a72aa1ce37b858a.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝

julhinhuu

Sempre em busca de novidades
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 28/06/11Posts: 352Char no Tibia: Akor Rysea

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

Yan Liima

Scripter,Programador,WebMaster.
avatar
Diretor
Diretor

INFOS

Grupo: DiretorRegistrado: 12/05/12Posts: 818Gênero: MasculinoChar no Tibia: [ADM] Night

Putz, sério? Haha fico feliz em ter te ajudado xD

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

ALGUNS DOS MEUS TRABALHOS:

Spoiler

WODBOHS[DOWNLOAD]

Newstory dbo+nto+bleach[DOWNLOAD]

 

>> Mais infos <<

- Projetos lançados também feitos por mim {

DBO SKY

POKE SKY

WODBOWARS

Tic-tac-War

Dbo Universe(em desenvolvimento)

}

universe.thumb.png.6840320998d0fc1a4652b3db81a585c0.png

Separador.PNG

Te Ajudei? Rep + e ficamos Quits

imageproxy.png.84dce08dd18d31663a72aa1ce37b858a.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝