diff options
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 8aa336cae..fabfa7ec2 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -15746,7 +15746,7 @@ int clif_autoshadowspell_list(struct map_session_data *sd) { WFIFOHEAD(fd, 2 * 6 + 4); WFIFOW(fd,0) = 0x442; for( i = 0, c = 0; i < MAX_SKILL; i++ ) - if( sd->status.skill[i].flag == 13 && sd->status.skill[i].id > 0 && + if( sd->status.skill[i].flag == SKILL_FLAG_PLAGIARIZED && sd->status.skill[i].id > 0 && sd->status.skill[i].id < GS_GLITTERING && skill_get_type(sd->status.skill[i].id) == BF_MAGIC ) { // Can't auto cast both Extended class and 3rd class skills. WFIFOW(fd,8+c*2) = sd->status.skill[i].id; @@ -15820,6 +15820,22 @@ void clif_msgtable_num(int fd, int line, int num) { WFIFOSET(fd, packet_len(0x7e2)); #endif } +/*========================================== + * used by SC_AUTOSHADOWSPELL + *------------------------------------------*/ +void clif_parse_SkillSelectMenu(int fd, struct map_session_data *sd) { + + if( sd->menuskill_id != SC_AUTOSHADOWSPELL ) + return; + + if( pc_istrading(sd) ) { + clif_skill_fail(sd,sd->ud.skillid,0,0); + sd->menuskill_val = sd->menuskill_id = 0; + return; + } + skill_select_menu(sd,RFIFOL(fd,2),RFIFOW(fd,6)); + sd->menuskill_val = sd->menuskill_id = 0; +} /*========================================== * Main client packet processing function @@ -16393,6 +16409,7 @@ static int packetdb_readdb(void) {clif_parse_BattleChat,"battlechat"}, {clif_parse_mercenary_action,"mermenu"}, {clif_parse_progressbar,"progressbar"}, + {clif_parse_SkillSelectMenu,"skillselectmenu"}, #if PACKETVER >= 20091229 {clif_parse_PartyBookingRegisterReq,"bookingregreq"}, {clif_parse_PartyBookingSearchReq,"bookingsearchreq"}, |