From 994aba683b49fc1c877aa4735508021e955fd11d Mon Sep 17 00:00:00 2001 From: Cydh Ramdh Date: Sat, 11 Apr 2015 10:46:15 +0700 Subject: [PATCH] Follow up 20c6149b60664561eed9ea6f2f7551c91a904d89 * Fixed #390, party skill didn't work on self * Removed BCT_ALLWOS, added BCT_WOS for checking 'without self' skill target Signed-off-by: Cydh Ramdh --- src/map/battle.h | 2 +- src/map/skill.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/map/battle.h b/src/map/battle.h index 6ad89046226..a8806613b32 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -47,7 +47,7 @@ enum e_battle_check_target { BCT_ALL = 0x3F0000, ///< All targets - BCT_ALLWOS = BCT_ALL&~BCT_SELF, ///< All, except self (currently used for skipping if src == bl in skill_area_sub) + BCT_WOS = 0x400000, ///< Except self (currently used for skipping if src == bl in skill_area_sub) BCT_GUILD = BCT_SAMEGUILD|BCT_GUILDALLY, ///< Guild AND Allies (BCT_SAMEGUILD|BCT_GUILDALLY) BCT_NOGUILD = BCT_ALL&~BCT_GUILD, ///< Except guildmates BCT_NOPARTY = BCT_ALL&~BCT_PARTY, ///< Except party members diff --git a/src/map/skill.c b/src/map/skill.c index 6a99ec8132f..d17a5f85d59 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3382,7 +3382,7 @@ int skill_area_sub(struct block_list *bl, va_list ap) flag = va_arg(ap,int); func = va_arg(ap,SkillFunc); - if (src == bl && !(flag&BCT_SELF)) + if (flag&BCT_WOS && src == bl) return 0; if(battle_check_target(src,bl,flag) > 0) { @@ -9586,7 +9586,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui // Success chance: (Skill Level x 6) + (Voice Lesson Skill Level x 2) + (Caster’s Job Level / 2) % skill_area_temp[5] = skill_lv * 6 + ((sd) ? pc_checkskill(sd, WM_LESSON) : skill_get_max(WM_LESSON)) * 2 + (sd ? sd->status.job_level : 50) / 2; skill_area_temp[6] = skill_get_time(skill_id,skill_lv); - map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ALLWOS|1, skill_castend_nodamage_id); + map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ALL|BCT_WOS|1, skill_castend_nodamage_id); clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } break; @@ -9817,7 +9817,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui skill_area_temp[5] = (4 * skill_lv * 1000) + ((sd) ? pc_checkskill(sd,WM_LESSON) : skill_get_max(WM_LESSON)) * 2000 + (status_get_lv(src) * 1000 / 15) + (sd ? sd->status.job_level * 200 : 0); skill_area_temp[6] = skill_get_time(skill_id,skill_lv); clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR, src, skill_id, skill_lv, tick, flag|BCT_ALLWOS|1, skill_castend_nodamage_id); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR, src, skill_id, skill_lv, tick, flag|BCT_ALL|BCT_WOS|1, skill_castend_nodamage_id); } break;