summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshennetsind <ind@henn.et>2013-10-10 18:59:41 -0300
committershennetsind <ind@henn.et>2013-10-10 18:59:41 -0300
commitb1c82364e9097ee98dc0f850bdb37f2b3e945d61 (patch)
tree5e9076832f86a3667a164ef16df7fe8389ee6ed8
parent646f7e2f4ea4bd6b07e66d2949817ebdc18f3484 (diff)
parentb2f05429334e1084aa062b115a66c2b85ab9f63a (diff)
downloadhercules-b1c82364e9097ee98dc0f850bdb37f2b3e945d61.tar.gz
hercules-b1c82364e9097ee98dc0f850bdb37f2b3e945d61.tar.bz2
hercules-b1c82364e9097ee98dc0f850bdb37f2b3e945d61.tar.xz
hercules-b1c82364e9097ee98dc0f850bdb37f2b3e945d61.zip
Merge branch 'master' of https://github.com/HerculesWS/Hercules
-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;