From fcffa6cafb701073995107748aaab9d6adb97224 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 8 Sep 2016 21:22:02 +0300 Subject: Add packet id clif_bg_hp (0xa0e) Based on rAthena commit: commit ba184ab9a2a932b6ce2eba279fdc379b50b430a5 Author: Napster Date: Fri Dec 18 23:00:53 2015 +0700 --- src/map/clif.c | 38 ++++++++++++++++++++++++++++---------- src/map/packets.h | 4 ++++ 2 files changed, 32 insertions(+), 10 deletions(-) (limited to 'src/map') diff --git a/src/map/clif.c b/src/map/clif.c index 749b3d068..183229f95 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -16181,28 +16181,46 @@ void clif_readbook(int fd, int book_id, int page) /// Battlegrounds /// -/// Updates HP bar of a camp member (ZC_BATTLEFIELD_NOTIFY_HP). -/// 02e0 .L .24B .W .W +/// Updates HP bar of a camp member. +/// 02e0 .L .24B .W .W (ZC_BATTLEFIELD_NOTIFY_HP). +/// 0a0e .L .L .L (ZC_BATTLEFIELD_NOTIFY_HP2) void clif_bg_hp(struct map_session_data *sd) { unsigned char buf[34]; + +// packet version can be wrong, because inconsistend data in other servers. +#if PACKETVER < 20140613 const int cmd = 0x2e0; nullpo_retv(sd); - WBUFW(buf,0) = cmd; - WBUFL(buf,2) = sd->status.account_id; - memcpy(WBUFP(buf,6), sd->status.name, NAME_LENGTH); + WBUFW(buf, 0) = cmd; + WBUFL(buf, 2) = sd->status.account_id; + memcpy(WBUFP(buf, 6), sd->status.name, NAME_LENGTH); - if( sd->battle_status.max_hp > INT16_MAX ) + if (sd->battle_status.max_hp > INT16_MAX) { // To correctly display the %hp bar. [Skotlex] - WBUFW(buf,30) = sd->battle_status.hp/(sd->battle_status.max_hp/100); - WBUFW(buf,32) = 100; + WBUFW(buf, 30) = sd->battle_status.hp / (sd->battle_status.max_hp / 100); + WBUFW(buf, 32) = 100; } else { - WBUFW(buf,30) = sd->battle_status.hp; - WBUFW(buf,32) = sd->battle_status.max_hp; + WBUFW(buf, 30) = sd->battle_status.hp; + WBUFW(buf, 32) = sd->battle_status.max_hp; } +#else + const int cmd = 0xa0e; + nullpo_retv(sd); + + WBUFW(buf, 0) = cmd; + WBUFL(buf, 2) = sd->status.account_id; + if (sd->battle_status.max_hp > INT32_MAX) { + WBUFL(buf, 6) = sd->battle_status.hp / (sd->battle_status.max_hp / 100); + WBUFL(buf, 10) = 100; + } else { + WBUFL(buf, 6) = sd->battle_status.hp; + WBUFL(buf, 10) = sd->battle_status.max_hp; + } +#endif clif->send(buf, packet_len(cmd), &sd->bl, BG_AREA_WOS); } diff --git a/src/map/packets.h b/src/map/packets.h index 33fa5236d..8b0a733c7 100644 --- a/src/map/packets.h +++ b/src/map/packets.h @@ -2787,6 +2787,10 @@ packet(0x96e,-1,clif->ackmergeitems); packet(0x09DF,7); #endif +#if PACKETVER >= 20140613 + packet(0x0a0e,14); +#endif + // 2014-10-16aRagexe - YomRawr #if PACKETVER >= 20141016 packet(0x0369,7,clif->pActionRequest,2,6); -- cgit v1.2.3-70-g09d2