What's new

Wy?wietlanie procent?w zamiast hp i many

viharys

New User
Joined
Aug 23, 2011
Messages
4
Reaction score
0
Odp: Wy?wietlanie procent?w zamiast hp i many

no niby nie trudno, pr?bowa?em, ale to nie to samo co od profesjonalisty ;D
dzi?ki za pomoc.
 

patryk1290

User
Joined
Mar 14, 2011
Messages
25
Reaction score
1
Odp: Wy?wietlanie procent?w zamiast hp i many

Jak to zrobi? mam wzi??? utworzy? nowy czy w tym programie DEV-C++ otworzy? projekt i wyszuka? "TheForgottenServer" ?

Bo je?li tak to nie mam tego pliku...
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Wy?wietlanie procent?w zamiast hp i many

W pliku protocolgame.cpp zamieniamy ca?a funkcj? AddPlayerStats na:

Potrzebujesz pliku protocolgame.cpp. Nie masz source - nic nie zdzia?asz.
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Wy?wietlanie procent?w zamiast hp i many

Update!

Version 1.1 Changelog:
  • Lekkie zmiany w kodzie
  • Dodano wersj? kodu
  • Poprawiono opisy dzia?ania kodu oraz jego implementacji
  • Poprawiono zdj?cie
  • Poprawy estetyczne w temacie
 

Kakiro

User
Joined
Aug 18, 2013
Messages
35
Reaction score
0
Age
33
Odp: Wy?wietlanie procent?w zamiast hp i many

mi na tfs trunk.r3777

dzia?a taki
msg->put<char>(0xA0);
//msg->put<uint16_t>(player->getHealth());
//msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH));
msg->put((uint16_t)std::ceil(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH)));
msg->put((uint16_t)100);
msg->put<uint32_t>(uint32_t(player->getFreeCapacity() * 100));
uint64_t experience = player->getExperience();
if(experience > 0x7FFFFFFF) // client debugs after 2,147,483,647 exp
msg->put<uint32_t>(0x7FFFFFFF);
else
msg->put<uint32_t>(experience);

msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_LEVEL));
msg->put<char>(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT));
//msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA));
//msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA));
msg->put((uint16_t)std::ceil(player->getMana() * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA)));
msg->put((uint16_t)100);
msg->put<char>(player->getPlayerInfo(PLAYERINFO_MAGICLEVEL));
msg->put<char>(player->getPlayerInfo(PLAYERINFO_MAGICLEVELPERCENT));
msg->put<char>(player->getPlayerInfo(PLAYERINFO_SOUL));
msg->put<uint16_t>(player->getStaminaMinutes());
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Wy?wietlanie procent?w zamiast hp i many

@up
Polecam zalogowa? si? na account managera
 

Rychu Be

Senior User
Joined
Jul 16, 2009
Messages
641
Reaction score
14
Odp: Wy?wietlanie procent?w zamiast hp i many

a co je?li nie mam pliku protocolgame.cpp?
musisz stworzyc source z silkniak sowjego bo inaczje teog nierzrobisz, moze ktos ci pomoze ale malo tu osob pomocnych prfzy tymjesst troche roboty, nie mowie tylkotym skrypcie ale i o innych systemach na 7.6
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Wy?wietlanie procent?w zamiast hp i many

@up
[CPP]msg->put((uint16_t)std::ceil(player->getMana() * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA))); [/CPP]
Account Manager ma 0 many. Dzielenie przez zero jest niemo?liwe.

Daj czyst? funkcj? AddPlayerStats to zrobi? i przy okazji dodam do tematu.
 

Kakiro

User
Joined
Aug 18, 2013
Messages
35
Reaction score
0
Age
33
Odp: Wy?wietlanie procent?w zamiast hp i many

@up
[CPP]msg->put((uint16_t)std::ceil(player->getMana() * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA))); [/CPP]
Account Manager ma 0 many. Dzielenie przez zero jest niemo?liwe.

Daj czyst? funkcj? AddPlayerStats to zrobi? i przy okazji dodam do tematu.

ju? mam zrobi?em tak
void ProtocolGame::AddPlayerStats(NetworkMessage_ptr msg)
{
msg->put<char>(0xA0);
//msg->put<uint16_t>(player->getHealth());
//msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH));
//msg->put((uint16_t)std::ceil((float)player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH), 1)));
msg->put((uint16_t)std::ceil((float)player->getHealth() * 100 / std::max(player->getMaxHealth(), 1)));
msg->put((uint16_t)100);
msg->put<uint32_t>(uint32_t(player->getFreeCapacity() * 100));
uint64_t experience = player->getExperience();
if(experience > 0x7FFFFFFF) // client debugs after 2,147,483,647 exp
msg->put<uint32_t>(0x7FFFFFFF);
else
msg->put<uint32_t>(experience);

msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_LEVEL));
msg->put<char>(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT));
//msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA));
//msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA));
//msg->put((uint16_t)std::ceil(player->getMana() * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA)));
msg->put((uint16_t)std::ceil((float)player->getMana() * 100 / std::max(player->getMaxMana(), 1)));
msg->put((uint16_t)100);
msg->put<char>(player->getPlayerInfo(PLAYERINFO_MAGICLEVEL));
msg->put<char>(player->getPlayerInfo(PLAYERINFO_MAGICLEVELPERCENT));
msg->put<char>(player->getPlayerInfo(PLAYERINFO_SOUL));
msg->put<uint16_t>(player->getStaminaMinutes());
}
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Wy?wietlanie procent?w zamiast hp i many

Update!

Version 1.2 Changelog:
  • Dodano wersj? na The Forgotten Server 1.0 (10.31)
  • Zamieniono std::ceil na std::floor - 100% b?dzie tylko przy pe?nym zdrowiu/manie
  • Zmiana wersji na 1.2
 

banyy123

User
Joined
Sep 30, 2012
Messages
11
Reaction score
0
Odp: Wy?wietlanie procent?w zamiast hp i many

niewiem gdzie mam ten protocolgane.cpp

---------- Tre?? dodana o 00:41 ----------

ej a ja niewiem gdzie te protocolgame.cpp

---------- Tre?? dodana o 00:41 ----------

ej a ja niewiem gdzie te protocolgame.cpp

---------- Tre?? dodana o 00:41 ----------

ej a ja niewiem gdzie te protocolgame.cpp
 

Mest xDD

User
Joined
Nov 28, 2009
Messages
29
Reaction score
0
Odp: Wy?wietlanie procent?w zamiast hp i many

w source a gdzie...
 

DanJ93

ElfBot Helper
Joined
Jan 18, 2009
Messages
2,631
Reaction score
200
Odp: Wy?wietlanie procent?w zamiast hp i many

Komenda: !hp na ilo??
talkactions.xml
[lua]<talkaction words="!hp;!mp" event="script" value="procentowo.lua"/>[/lua]
procentowo.lua
[lua]function onSay(cid, words, param, channel)
if getPlayerStorageValue(cid, 2800) <= os.time() then
local kk = os.time()+5
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "HP: " .. getCreatureHealth(cid) .. " / " .. getCreatureMaxHealth(cid) .. " MP: " .. getPlayerMana(cid) .. " / " .. getPlayerMaxMana(cid) .. "")
setPlayerStorageValue(cid, 2800, kk)
else
doPlayerSendCancel(cid, "You are exhausted.")
end
return true
end[/lua]
##################################



Komenda: !hp na procenty (tak w razie jak kto? nie ma source)
talkactions.xml
[lua]<talkaction words="!hp;!mp" event="script" value="procentowo.lua"/>[/lua]
procentowo.lua
[lua]function onSay(cid, words, param, channel)
if getPlayerStorageValue(cid, 2800) <= os.time() then
local hpp = (getCreatureHealth(cid) * 100 / getCreatureMaxHealth(cid))
local mpp = (getPlayerMana(cid) * 100 / getPlayerMaxMana(cid))
local kk = os.time()+5
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "HP: " .. hpp .. "% and " .. mpp .. "%")
setPlayerStorageValue(cid, 2800, kk)
else
doPlayerSendCancel(cid, "You are exhausted.")
end
return true
end[/lua]
 
Last edited:

Roy4lz

Forum friend
Joined
Dec 11, 2010
Messages
1,342
Reaction score
117
Odp: Wy?wietlanie procent?w zamiast hp i many

@up

Troch? nie w por? pisz?, ale po co dwie komendy, skoro mo?na zrobi? jedn?, kt?ra wy?wietli nam wi?cej rzeczy, jak np. nick, profesje, ilo?? hp/mp, ilo?? dni pacc, blessy itd.
 

mial123

Advanced User
Joined
Apr 2, 2009
Messages
307
Reaction score
24
Odp: Wy?wietlanie procent?w zamiast hp i many

Fajny skrypcik, dzia?a, chocia? by? m?g? doda? pod trunk.r3777 te? w temacie :d
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Wy?wietlanie procent?w zamiast hp i many

Update!

Version 1.3 Changelog:
  • Dodano wersj? na chi?ski trunk 3777
  • Zmiana wersji na 1.3
 
Last edited:

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Wy?wietlanie procent?w zamiast hp i many

Update!

Version 1.4 Changelog:
  • Zmiana wersji na 1.4
  • Dodano mo?liwo?? zamiany mi?dzy procentami, a normalnym wy?wietlaniem.
  • Dodano komendy na zmian? mi?dzy procentami, a normalnym wy?wietlaniem.
  • Powy?sze zmiany nie dotycz? wersji pod klienta 7.6
 

kubalatka1

Active User
Joined
Oct 10, 2011
Messages
143
Reaction score
5
Odp: Wy?wietlanie procent?w zamiast hp i many

Jakim programem mozna to dodac ?
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Wy?wietlanie procent?w zamiast hp i many

Kod trzeba doda? do source byle jakim edytorem tekstu, nast?pnie skompilowa?. Poradniki do kompilacji znajdziesz na forum.
 
Top