From 53d34018d92d1ec1c1dd1fc79b59f151ea571eb3 Mon Sep 17 00:00:00 2001 From: skotlex Date: Fri, 21 Jul 2006 20:34:37 +0000 Subject: - battle_check_target will now tag homunculus as invalid target when the source is a skill-type object. - Added a check on pc_equipitem so that when the client specifies to equip a weapon on the right hand when the left hand is available, the weapon will be sent to the left hand instead (when dual-wielding is possible, obviously). Same for the left/right accessories. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7816 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 6 ++++++ src/map/battle.c | 6 +++++- src/map/pc.c | 11 ++++++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index a1897c997..b11425093 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,12 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/07/21 + * battle_check_target will now tag homunculus as invalid target when the + source is a skill-type object. [Skotlex] + * Added a check on pc_equipitem so that when the client specifies to equip + a weapon on the right hand when the left hand is available, the weapon will + be sent to the left hand instead (when dual-wielding is possible, + obviously). Same for the left/right accessories. [Skotlex] * Added the necessary checks so that Suiton makes Fogwall have double duration, and to make water-requiring skills to consume their cells. [Skotlex] diff --git a/src/map/battle.c b/src/map/battle.c index ad59a9685..257fceb16 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3082,7 +3082,11 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f return 0; //Pets cannot be targetted. } case BL_HOMUNCULUS: - { //Just fallback on master. + { + //For some mysterious reason ground-skills can't target homun. + if (src->type == BL_SKILL) + return 0; + //Just fallback on master. t_bl=(struct block_list *)((TBL_HOMUNCULUS*)target)->master; break; } diff --git a/src/map/pc.c b/src/map/pc.c index 50773029d..6191012ba 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -6192,6 +6192,11 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos) pos = req_pos&EQP_ACC; if (pos == EQP_ACC) //User specified both slots.. pos = sd->equip_index[EQI_ACC_L] >= 0 ? EQP_ACC_R : EQP_ACC_L; + if (pos == EQP_ACC_L && + sd->equip_index[EQI_ACC_L] >= 0 && + sd->equip_index[EQI_ACC_R] < 0 + ) //Requesting to reequip on left when right is available? + pos = EQP_ACC_R; } if(pos == EQP_WEAPON && id->equip == EQP_HAND_R && @@ -6201,8 +6206,12 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos) pos = (req_pos&EQP_WEAPON); if (pos == EQP_WEAPON) //User specified both slots, pick one for them. pos = sd->equip_index[EQI_HAND_R] >= 0 ? EQP_HAND_L : EQP_HAND_R; + if (pos == EQP_HAND_R && + sd->equip_index[EQI_HAND_R] >= 0 && + sd->equip_index[EQI_HAND_L] < 0 + ) //Requesting to reequip on right when left is available? + pos = EQP_HAND_L; } - if (pos&EQP_HAND_R && battle_config.use_weapon_skill_range) { //Update skill-block range database when weapon range changes. [Skotlex] -- cgit v1.2.3-70-g09d2