diff options
author | shennetsind <notind@gmail.com> | 2013-10-10 14:22:26 -0700 |
---|---|---|
committer | shennetsind <notind@gmail.com> | 2013-10-10 14:22:26 -0700 |
commit | b2f05429334e1084aa062b115a66c2b85ab9f63a (patch) | |
tree | 9e5ceca241483f5f47f5218925dc8f93c26182ab /src/map/skill.c | |
parent | a2e01e40c9e60b8b2d75e4faf41d80a7041e8f93 (diff) | |
parent | 0cf17827ac0e8b025ce22fea716a5185c5092ad7 (diff) | |
download | hercules-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.c | 22 |
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; |