summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormalufett <malufett.eat.my.binaries@gmail.com>2013-04-15 01:11:50 +0800
committermalufett <malufett.eat.my.binaries@gmail.com>2013-04-15 01:11:50 +0800
commit7ba570eabc84865566f4335269f00b3640fa09db (patch)
tree10b6519f5ce4a0d4696da594e8e6eedb9eb6e859
parent0446b3c78d8360327a25548004b02549842c523d (diff)
downloadhercules-7ba570eabc84865566f4335269f00b3640fa09db.tar.gz
hercules-7ba570eabc84865566f4335269f00b3640fa09db.tar.bz2
hercules-7ba570eabc84865566f4335269f00b3640fa09db.tar.xz
hercules-7ba570eabc84865566f4335269f00b3640fa09db.zip
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 <malufett.eat.my.binaries@gmail.com>
-rw-r--r--src/map/clif.c6
-rw-r--r--src/map/pc.c4
-rw-r--r--src/map/status.c5
-rw-r--r--src/map/unit.c2
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;
}