Follow up 2a04748b, a little clean up by respecting party_foreachsamemap.

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
This commit is contained in:
Cydh Ramdh 2015-06-08 23:14:17 +07:00
parent 2a04748bf4
commit 111eb0c1c1

View File

@ -5668,37 +5668,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
return skill_castend_damage_id (src, bl, skill_id, skill_lv, tick, flag);
}
break;
case SO_ELEMENTAL_SHIELD: {
struct party_data *p;
short ret = 0;
int x0, y0, x1, y1, range;
if(sd == NULL || !sd->ed)
break;
range = skill_get_splash(skill_id,skill_lv);
x0 = sd->bl.x - range;
y0 = sd->bl.y - range;
x1 = sd->bl.x + range;
y1 = sd->bl.y + range;
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
elemental_delete(sd->ed,0);
skill_unitsetting(src,MG_SAFETYWALL,skill_lv + 5,src->x,src->y,0);
skill_unitsetting(src,AL_PNEUMA,1,src->x,src->y,0);
if((p = party_search(sd->status.party_id))) {
for(i = 0; i < MAX_PARTY; i++) {
struct map_session_data *psd = p->data[i].sd;
if(!psd || psd->bl.m != sd->bl.m || !psd->bl.prev || psd->bl.id == sd->bl.id)
continue;
if(range && (psd->bl.x < x0 || psd->bl.y < y0 || psd->bl.x > x1 || psd->bl.y > y1))
continue;
skill_unitsetting(&psd->bl,MG_SAFETYWALL,skill_lv + 5,psd->bl.x,psd->bl.y,0);
skill_unitsetting(&psd->bl,AL_PNEUMA,1,psd->bl.x,psd->bl.y,0);
}
}
return 0;
}
break;
case NPC_SMOKING: //Since it is a self skill, this one ends here rather than in damage_id. [Skotlex]
return skill_castend_damage_id (src, bl, skill_id, skill_lv, tick, flag);
case MH_STEINWAND: {
@ -10386,6 +10355,18 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
}
break;
case SO_ELEMENTAL_SHIELD:
if (flag&1) {
skill_unitsetting(bl, MG_SAFETYWALL, skill_lv + 5, bl->x, bl->y, 0);
skill_unitsetting(bl, AL_PNEUMA, 1, bl->x, bl->y, 0);
}
else {
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
elemental_delete(sd->ed,0);
party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id,skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id);
}
break;
default:
ShowWarning("skill_castend_nodamage_id: Unknown skill used:%d\n",skill_id);
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);