summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorshennetsind <notind@gmail.com>2013-10-10 14:22:26 -0700
committershennetsind <notind@gmail.com>2013-10-10 14:22:26 -0700
commitb2f05429334e1084aa062b115a66c2b85ab9f63a (patch)
tree9e5ceca241483f5f47f5218925dc8f93c26182ab /src/map/skill.c
parenta2e01e40c9e60b8b2d75e4faf41d80a7041e8f93 (diff)
parent0cf17827ac0e8b025ce22fea716a5185c5092ad7 (diff)
downloadhercules-b2f05429334e1084aa062b115a66c2b85ab9f63a.tar.gz
hercules-b2f05429334e1084aa062b115a66c2b85ab9f63a.tar.bz2
hercules-b2f05429334e1084aa062b115a66c2b85ab9f63a.tar.xz
hercules-b2f05429334e1084aa062b115a66c2b85ab9f63a.zip
Merge pull request #186 from cannelle/master
Added WE_BABY distance check.
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 82a584ce2..70e946119 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -6971,21 +6971,23 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
if(sd) {
struct map_session_data *f_sd = pc->get_father(sd);
struct map_session_data *m_sd = pc->get_mother(sd);
- // if neither was found
- if(!f_sd && !m_sd) {
- clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
- map->freeblock_unlock();
- return 0;
+ bool we_baby_parents = false;
+ if(m_sd && check_distance_bl(bl,&m_sd->bl,AREA_SIZE)) {
+ sc_start(&m_sd->bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv));
+ clif->specialeffect(&m_sd->bl,408,AREA);
+ we_baby_parents = true;
}
- status->change_start(bl,SC_STUN,10000,skill_lv,0,0,0,skill->get_time2(skill_id,skill_lv),8);
- if (f_sd) {
+ if(f_sd && check_distance_bl(bl,&f_sd->bl,AREA_SIZE)) {
sc_start(&f_sd->bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv));
clif->specialeffect(&f_sd->bl,408,AREA);
+ we_baby_parents = true;
}
- if (m_sd) {
- sc_start(&m_sd->bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv));
- clif->specialeffect(&m_sd->bl,408,AREA);
+ if (!we_baby_parents) {
+ clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
+ map->freeblock_unlock();
+ return 0;
}
+ else status->change_start(bl,SC_STUN,10000,skill_lv,0,0,0,skill->get_time2(skill_id,skill_lv),8);
}
break;