summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/battle.c4
-rw-r--r--src/map/pc.c9
2 files changed, 8 insertions, 5 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index 6d000c46b..db50d4db4 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -3198,8 +3198,10 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
return 0;
}
break;
- //Valid targets with no special checks here.
case BL_HOM:
+ //Except for the master/itself, hom can't be targetted with non-offensive skills. [Skotlex]
+ if (t_bl != s_bl && !(flag&BCT_ENEMY))
+ return 0;
break;
//All else not specified is an invalid target.
default:
diff --git a/src/map/pc.c b/src/map/pc.c
index 7287c0c81..cb641b3cf 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -3259,6 +3259,9 @@ int pc_steal_coin(struct map_session_data *sd,struct block_list *target)
if(md->state.steal_coin_flag || md->sc.data[SC_STONE].timer != -1 || md->sc.data[SC_FREEZE].timer != -1)
return 0;
+ if (md->class_>=1324 && md->class_<1364)
+ return 0;
+
skill = pc_checkskill(sd,RG_STEALCOIN)*10;
rate = skill + (sd->status.base_level - md->level)*3 + sd->battle_status.dex*2 + sd->battle_status.luk*2;
if(rand()%1000 < rate) {
@@ -6261,10 +6264,8 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
pos = sd->equip_index[EQI_ACC_L] >= 0 ? EQP_ACC_R : EQP_ACC_L;
}
- if(pos == EQP_ARMS && id->equip == EQP_HAND_R &&
- (pc_checkskill(sd, AS_LEFT) > 0 ||
- (sd->class_&MAPID_UPPERMASK) == MAPID_ASSASSIN)
- ) { //Dual wield capable weapon.
+ if(pos == EQP_ARMS && id->equip == EQP_HAND_R)
+ { //Dual wield capable weapon.
pos = (req_pos&EQP_ARMS);
if (pos == EQP_ARMS) //User specified both slots, pick one for them.
pos = sd->equip_index[EQI_HAND_R] >= 0 ? EQP_HAND_L : EQP_HAND_R;