From 7ba570eabc84865566f4335269f00b3640fa09db Mon Sep 17 00:00:00 2001 From: malufett Date: Mon, 15 Apr 2013 01:11:50 +0800 Subject: Fixed Bug #7152 and #7161 -SI_RIDING is not remove when changing job via @jobchange. -RG_STRIPWEAPON should now only remove right hand weapon even if dual wielding. -Fixed 'display_status_timers' conf where it doesn't work properly in newer clients. -Reverted '14a406ee0e5c6ba25539cc98f27ff9c2b8047e2e' where it's already fixed @ 'b9c79ceb5bfc86809da1d3b6154da4222cb72734'. Signed-off-by: malufett --- src/map/clif.c | 6 +++--- src/map/pc.c | 4 ++-- src/map/status.c | 5 ----- src/map/unit.c | 2 +- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/map/clif.c b/src/map/clif.c index 6dcf33a32..b1998de77 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -5409,12 +5409,12 @@ void clif_status_change(struct block_list *bl,int type,int flag,int tick,int val WBUFL(buf,4)=bl->id; WBUFB(buf,8)=flag; #if PACKETVER >= 20120618 - WBUFL(buf,9)=tick;/* at this stage remain and total are the same value I believe */ - WBUFL(buf,13)=tick; if(flag && battle_config.display_status_timers && sd) { if (tick <= 0) tick = 9999; // this is indeed what official servers do - + + WBUFL(buf,9) = tick;/* at this stage remain and total are the same value I believe */ + WBUFL(buf,13) = tick; WBUFL(buf,17) = val1; WBUFL(buf,21) = val2; WBUFL(buf,25) = val3; diff --git a/src/map/pc.c b/src/map/pc.c index ee9715b6f..01df6bb64 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -6307,7 +6307,7 @@ int pc_resetskill(struct map_session_data* sd, int flag) if( pc_checkskill(sd, SG_DEVIL) && !pc_nextjobexp(sd) ) clif->status_change(&sd->bl, SI_DEVIL, 0, 0, 0, 0, 0); //Remove perma blindness due to skill-reset. [Skotlex] i = sd->sc.option; - if( i&OPTION_RIDING && pc_checkskill(sd, KN_RIDING) ) + if( i&OPTION_RIDING && (!pc_checkskill(sd, KN_RIDING) || (sd->class_&MAPID_THIRDMASK) == MAPID_RUNE_KNIGHT) ) i &= ~OPTION_RIDING; if( i&OPTION_FALCON && pc_checkskill(sd, HT_FALCON) ) i &= ~OPTION_FALCON; @@ -7595,7 +7595,7 @@ int pc_setoption(struct map_session_data *sd,int type) clif->status_change(&sd->bl, SI_RIDING, 1, 0, 0, 0, 0); status_calc_pc(sd,0); } - else if( (!(type&OPTION_RIDING) && p_type&OPTION_RIDING) || (!(type&OPTION_DRAGON) && p_type&OPTION_DRAGON && pc_checkskill(sd,RK_DRAGONTRAINING) > 0) ) + else if( (!(type&OPTION_RIDING) && p_type&OPTION_RIDING) || (!(type&OPTION_DRAGON) && p_type&OPTION_DRAGON) ) { // Dismount clif->status_change(&sd->bl, SI_RIDING, 0, 0, 0, 0, 0); status_calc_pc(sd,0); diff --git a/src/map/status.c b/src/map/status.c index 29da8cfad..f7531494e 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -6589,11 +6589,6 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val opt_flag = 0; //Reuse to check success condition. if(sd->bonus.unstripable_equip&EQP_WEAPON) return 0; - i = sd->equip_index[EQI_HAND_L]; - if (i>=0 && sd->inventory_data[i] && sd->inventory_data[i]->type == IT_WEAPON) { - opt_flag|=1; - pc_unequipitem(sd,i,3); //L-hand weapon - } i = sd->equip_index[EQI_HAND_R]; if (i>=0 && sd->inventory_data[i] && sd->inventory_data[i]->type == IT_WEAPON) { diff --git a/src/map/unit.c b/src/map/unit.c index a6d8fcf53..c19214724 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -1148,7 +1148,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui // Record the status of the previous skill) if(sd) { - if( (skill->get_inf2(skill_id)&(INF2_ENSEMBLE_SKILL|INF2_CHORUS_SKILL)) && skill->check_pc_partner(sd, skill_id, &skill_lv, 1, 0) < 1 ) { + if( (skill->get_inf2(skill_id)&INF2_ENSEMBLE_SKILL) && skill->check_pc_partner(sd, skill_id, &skill_lv, 1, 0) < 1 ) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 0; } -- cgit v1.2.3-60-g2f50