Follow up 2a04748b, a little clean up by respecting party_foreachsamemap.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
This commit is contained in:
parent
2a04748bf4
commit
111eb0c1c1
@ -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);
|
return skill_castend_damage_id (src, bl, skill_id, skill_lv, tick, flag);
|
||||||
}
|
}
|
||||||
break;
|
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]
|
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);
|
return skill_castend_damage_id (src, bl, skill_id, skill_lv, tick, flag);
|
||||||
case MH_STEINWAND: {
|
case MH_STEINWAND: {
|
||||||
@ -10386,6 +10355,18 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|||||||
}
|
}
|
||||||
break;
|
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:
|
default:
|
||||||
ShowWarning("skill_castend_nodamage_id: Unknown skill used:%d\n",skill_id);
|
ShowWarning("skill_castend_nodamage_id: Unknown skill used:%d\n",skill_id);
|
||||||
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
|
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user