diff --git a/src/map/skill.cpp b/src/map/skill.cpp index 56fa188a61..29b71b47e7 100755 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -11124,11 +11124,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui break; case KG_KAGEHUMI: if( flag&1 ){ - if(tsc && ( tsc->option&(OPTION_CLOAK|OPTION_HIDE) || - tsc->data[SC_CAMOUFLAGE] || tsc->data[SC__SHADOWFORM] || - tsc->data[SC_MARIONETTE] || tsc->data[SC_HARMONIZE])){ - sc_start(src,src, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)); - sc_start(src,bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)); + if (bl->type != BL_PC) + break; + if (tsc && (tsc->option & (OPTION_CLOAK | OPTION_HIDE) || tsc->data[SC_CAMOUFLAGE] || tsc->data[SC__SHADOWFORM] || tsc->data[SC_MARIONETTE] || tsc->data[SC_HARMONIZE])) { status_change_end(bl, SC_HIDING, INVALID_TIMER); status_change_end(bl, SC_CLOAKING, INVALID_TIMER); status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER); @@ -11138,14 +11136,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER); status_change_end(bl, SC_MARIONETTE, INVALID_TIMER); status_change_end(bl, SC_HARMONIZE, INVALID_TIMER); - } - if( skill_area_temp[2] == 1 ){ - clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE); - sc_start(src,src, SC_STOP, 100, skill_lv, skill_get_time(skill_id, skill_lv)); + sc_start(src, bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)); } }else{ - skill_area_temp[2] = 0; - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_nodamage_id); + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); + clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE); + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); } break;