diff options
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index a25a523a2..905e2c1fb 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -2887,15 +2887,11 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int case ASC_METEORASSAULT: case GS_DESPERADO: case GS_SPREADATTACK: - case KN_BRANDISHSPEAR: if (flag&1) { //Invoked from map_foreachinarea, skill_area_temp[0] holds number of targets to divide damage by. if (skill_area_temp[1] != bl->id) skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, tick, skill_area_temp[0]|SD_ANIMATION); - else if (skillid == KN_BRANDISHSPEAR) - skill_attack(skill_get_type(skillid), src, src, bl, - skillid, skilllv, tick, skill_area_temp[0]); break; } if ( skillid == NJ_BAKUENRYU ) @@ -2926,6 +2922,16 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int } break; + case KN_BRANDISHSPEAR: + //Coded apart for it needs the flag passed to the damage calculation. + if (skill_area_temp[1] != bl->id) + skill_attack(skill_get_type(skillid), src, src, bl, + skillid, skilllv, tick, flag|SD_ANIMATION); + else + skill_attack(skill_get_type(skillid), src, src, bl, + skillid, skilllv, tick, flag); + break; + case KN_BOWLINGBASH: if(flag&1){ if(bl->id==skill_area_temp[1]) @@ -6838,7 +6844,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned if((!sd->chatID || battle_config.chat_warpportal) && sd->ud.to_x == src->bl.x && sd->ud.to_y == src->bl.y) { if (pc_setpos(sd,sg->val3,sg->val2>>16,sg->val2&0xffff,3) == 0) { - if (--sg->val1<=0 || sg->src_id == bl->id) + if (--sg->val1<=0) skill_delunitgroup(NULL, sg); } } |