Added support for skill scale display (#5041)

Fixes #4530

Thanks to @Balferian
This commit is contained in:
Lemongrass3110
2020-06-04 19:53:19 +02:00
committed by GitHub
parent f218994054
commit d87ac21986
11 changed files with 93 additions and 5 deletions

View File

@@ -5425,6 +5425,31 @@ void clif_skillinfo(struct map_session_data *sd,int skill_id, int inf)
WFIFOSET(fd,packet_len(0x7e1));
}
void clif_skill_scale( struct block_list *bl, int src_id, int x, int y, uint16 skill_id, uint16 skill_lv, int casttime ){
#if PACKETVER >= 20151223
if( !battle_config.show_skill_scale ){
return;
}
struct PACKET_ZC_SKILL_SCALE p;
p.PacketType = skillscale;
p.AID = src_id;
p.skill_id = skill_id;
p.skill_lv = skill_lv;
p.x = x;
p.y = y;
p.casttime = casttime;
if( disguised( bl ) ){
clif_send( &p, sizeof( p ), bl, AREA_WOS );
p.AID = disguised_bl_id( bl->id );
clif_send( &p, sizeof( p ), bl, SELF );
}else{
clif_send( &p, sizeof( p ), bl, AREA );
}
#endif
}
/// Notifies clients in area, that an object is about to use a skill.
/// 013e <src id>.L <dst id>.L <x>.W <y>.W <skill id>.W <property>.L <delaytime>.L (ZC_USESKILL_ACK)
@@ -5441,7 +5466,7 @@ void clif_skillinfo(struct map_session_data *sd,int skill_id, int inf)
/// is disposable:
/// 0 = yellow chat text "[src name] will use skill [skill name]."
/// 1 = no text
void clif_skillcasting(struct block_list* bl, int src_id, int dst_id, int dst_x, int dst_y, uint16 skill_id, int property, int casttime)
void clif_skillcasting(struct block_list* bl, int src_id, int dst_id, int dst_x, int dst_y, uint16 skill_id, uint16 skill_lv, int property, int casttime)
{
#if PACKETVER < 20091124
const int cmd = 0x13e;
@@ -5468,6 +5493,10 @@ void clif_skillcasting(struct block_list* bl, int src_id, int dst_id, int dst_x,
clif_send(buf,packet_len(cmd), bl, SELF);
} else
clif_send(buf,packet_len(cmd), bl, AREA);
if( skill_get_inf2( skill_id, INF2_SHOWSCALE ) ){
clif_skill_scale( bl, src_id, bl->x, bl->y, skill_id, skill_lv, casttime );
}
}