Update Biolo & Meister summon packet (#6505)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
This commit is contained in:
parent
44188e39d4
commit
fc7ed9d397
@ -1714,6 +1714,8 @@ int clif_spawn( struct block_list *bl, bool walking ){
|
||||
clif_specialeffect(&md->bl,EF_GIANTBODY2,AREA);
|
||||
else if(md->special_state.size==SZ_MEDIUM)
|
||||
clif_specialeffect(&md->bl,EF_BABYBODY2,AREA);
|
||||
if ( md->special_state.ai == AI_ABR || md->special_state.ai == AI_BIONIC )
|
||||
clif_summon_init(*md);
|
||||
}
|
||||
break;
|
||||
case BL_NPC:
|
||||
@ -23045,6 +23047,44 @@ void clif_parse_barter_extended_buy( int fd, struct map_session_data* sd ){
|
||||
#endif
|
||||
}
|
||||
|
||||
void clif_summon_init(struct mob_data& md) {
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
|
||||
struct block_list* master_bl = battle_get_master(&md.bl);
|
||||
|
||||
if( master_bl == nullptr ){
|
||||
return;
|
||||
}
|
||||
|
||||
struct PACKET_ZC_SUMMON_HP_INIT p = {};
|
||||
|
||||
p.PacketType = HEADER_ZC_SUMMON_HP_INIT;
|
||||
p.summonAID = md.bl.id;
|
||||
p.CurrentHP = md.status.hp;
|
||||
p.MaxHP = md.status.max_hp;
|
||||
|
||||
clif_send( &p, sizeof( p ), master_bl, SELF );
|
||||
#endif
|
||||
}
|
||||
|
||||
void clif_summon_hp_bar(struct mob_data& md) {
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
|
||||
struct block_list* master_bl = battle_get_master(&md.bl);
|
||||
|
||||
if( master_bl == nullptr ){
|
||||
return;
|
||||
}
|
||||
|
||||
struct PACKET_ZC_SUMMON_HP_UPDATE p = {};
|
||||
|
||||
p.PacketType = HEADER_ZC_SUMMON_HP_UPDATE;
|
||||
p.summonAID = md.bl.id;
|
||||
p.VarId = SP_HP; // HP parameter
|
||||
p.Value = md.status.hp;
|
||||
|
||||
clif_send( &p, sizeof( p ), master_bl, SELF );
|
||||
#endif
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Main client packet processing function
|
||||
*------------------------------------------*/
|
||||
|
@ -1187,4 +1187,7 @@ void clif_inventory_expansion_info( struct map_session_data* sd );
|
||||
void clif_barter_open( struct map_session_data& sd, struct npc_data& nd );
|
||||
void clif_barter_extended_open( struct map_session_data& sd, struct npc_data& nd );
|
||||
|
||||
void clif_summon_init(struct mob_data& md);
|
||||
void clif_summon_hp_bar(struct mob_data& md);
|
||||
|
||||
#endif /* CLIF_HPP */
|
||||
|
@ -2473,6 +2473,9 @@ void mob_damage(struct mob_data *md, struct block_list *src, int damage)
|
||||
#if PACKETVER >= 20120404
|
||||
if (battle_config.monster_hp_bars_info && !map_getmapflag(md->bl.m, MF_HIDEMOBHPBAR)) {
|
||||
int i;
|
||||
if (md->special_state.ai == AI_ABR || md->special_state.ai == AI_BIONIC) {
|
||||
clif_summon_hp_bar(*md);
|
||||
}
|
||||
for(i = 0; i < DAMAGELOG_SIZE; i++){ // must show hp bar to all char who already hit the mob.
|
||||
struct map_session_data *sd = map_charid2sd(md->dmglog[i].id);
|
||||
if( sd && check_distance_bl(&md->bl, &sd->bl, AREA_SIZE) ) // check if in range
|
||||
@ -3396,6 +3399,9 @@ void mob_heal(struct mob_data *md,unsigned int heal)
|
||||
#if PACKETVER >= 20120404
|
||||
if (battle_config.monster_hp_bars_info && !map_getmapflag(md->bl.m, MF_HIDEMOBHPBAR)) {
|
||||
int i;
|
||||
if (md->special_state.ai == AI_ABR || md->special_state.ai == AI_BIONIC) {
|
||||
clif_summon_hp_bar(*md);
|
||||
}
|
||||
for(i = 0; i < DAMAGELOG_SIZE; i++)// must show hp bar to all char who already hit the mob.
|
||||
if( md->dmglog[i].id ) {
|
||||
struct map_session_data *sd = map_charid2sd(md->dmglog[i].id);
|
||||
|
@ -232,6 +232,20 @@ struct PACKET_CZ_REQ_STYLE_CLOSE{
|
||||
int16 packetType;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct PACKET_ZC_SUMMON_HP_INIT {
|
||||
int16 PacketType;
|
||||
uint32 summonAID;
|
||||
uint32 CurrentHP;
|
||||
uint32 MaxHP;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct PACKET_ZC_SUMMON_HP_UPDATE {
|
||||
int16 PacketType;
|
||||
uint32 summonAID;
|
||||
uint16 VarId;
|
||||
uint32 Value;
|
||||
} __attribute__((packed));
|
||||
|
||||
// NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
|
||||
#if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
|
||||
#pragma pack( pop )
|
||||
@ -285,6 +299,8 @@ DEFINE_PACKET_HEADER(CZ_UNCONFIRMED_TSTATUS_UP, 0x0b24)
|
||||
DEFINE_PACKET_HEADER(CZ_GUILD_EMBLEM_CHANGE2, 0x0b46)
|
||||
DEFINE_PACKET_HEADER(ZC_UNCONFIRMED_SPIRITS3, 0xb73)
|
||||
DEFINE_PACKET_HEADER(CZ_UNCONFIRMED_RODEX_RETURN, 0xb98)
|
||||
DEFINE_PACKET_HEADER(ZC_SUMMON_HP_INIT, 0xb6b)
|
||||
DEFINE_PACKET_HEADER(ZC_SUMMON_HP_UPDATE, 0xb6c)
|
||||
|
||||
const int16 MAX_INVENTORY_ITEM_PACKET_NORMAL = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_normal ) - ( sizeof( struct NORMALITEM_INFO ) * MAX_ITEMLIST) ) ) / sizeof( struct NORMALITEM_INFO ) );
|
||||
const int16 MAX_INVENTORY_ITEM_PACKET_EQUIP = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_equip ) - ( sizeof( struct EQUIPITEM_INFO ) * MAX_ITEMLIST ) ) ) / sizeof( struct EQUIPITEM_INFO ) );
|
||||
|
Loading…
x
Reference in New Issue
Block a user