diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-09-26 13:59:21 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-09-26 13:59:21 +0000 |
commit | db4bf8d09b97e6320374a6162815c03952624eea (patch) | |
tree | f73c611523908e6a58653ad3e83b0bc2e3d4dc8b /src/map | |
parent | 4fa74f63b163da3defdf22c7135b91cb6acfdcf0 (diff) | |
download | hercules-db4bf8d09b97e6320374a6162815c03952624eea.tar.gz hercules-db4bf8d09b97e6320374a6162815c03952624eea.tar.bz2 hercules-db4bf8d09b97e6320374a6162815c03952624eea.tar.xz hercules-db4bf8d09b97e6320374a6162815c03952624eea.zip |
- Updated battle_check_target so that non-offensive skills cannot be used on a homun except for the homun and it's master.
- Steal zeny won't work on treasure chests now.
- Small optimization in the dual-wielding check.
- Some cleaning in char_sql/itemdb.c
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8875 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/battle.c | 4 | ||||
-rw-r--r-- | src/map/pc.c | 9 |
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; |