diff options
author | malufett <malufett.eat.my.binaries@gmail.com> | 2014-03-12 19:17:32 +0800 |
---|---|---|
committer | malufett <malufett.eat.my.binaries@gmail.com> | 2014-03-12 19:17:32 +0800 |
commit | cc0127618746e7b290fa03a68640cda4d5d1d7e3 (patch) | |
tree | 2512ab7be1eb9db36d618ac58a2db7b383197412 /src/map/skill.c | |
parent | dc05ef11b1fbbccdd54eba54b93d3eba0b032970 (diff) | |
download | hercules-cc0127618746e7b290fa03a68640cda4d5d1d7e3.tar.gz hercules-cc0127618746e7b290fa03a68640cda4d5d1d7e3.tar.bz2 hercules-cc0127618746e7b290fa03a68640cda4d5d1d7e3.tar.xz hercules-cc0127618746e7b290fa03a68640cda4d5d1d7e3.zip |
Fixed Bug#8038
-http://hercules.ws/board/tracker/issue-8038-shadow-chaser-feint-bomb/?gopid=22073#entry22073
Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index e854b5fe9..7f33c26a5 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -10408,11 +10408,12 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui break; case SC_FEINTBOMB: - skill->unitsetting(src,skill_id,skill_lv,x,y,0); // Set bomb on current Position - clif->skill_nodamage(src,src,skill_id,skill_lv,1); - skill->blown(src,src,3*skill_lv,unit->getdir(src),0); - //After back sliding, the player goes into hiding. Hiding level used is throught to be the learned level. - sc_start(src,src,SC_HIDING,100,(sd?pc->checkskill(sd,TF_HIDING):10),skill->get_time(TF_HIDING,(sd?pc->checkskill(sd,TF_HIDING):10))); + skill->unitsetting(src, skill_id, skill_lv, x, y, 0); // Set bomb on current Position + clif->skill_nodamage(src, src, skill_id, skill_lv, 1); + if( skill->blown(src, src, 3 * skill_lv, unit->getdir(src), 0) && sc){ + sc->option |= OPTION_INVISIBLE; + clif->changeoption(src); + } break; case SC_ESCAPE: @@ -15869,8 +15870,14 @@ int skill_unit_timer_sub(DBKey key, DBData *data, va_list ap) { case UNT_FEINTBOMB: { struct block_list *src = map->id2bl(group->src_id); - if( src ) - map->foreachinrange(skill->area_sub, &group->unit->bl, su->range, splash_target(src), src, SC_FEINTBOMB, group->skill_lv, tick, BCT_ENEMY|1, skill->castend_damage_id); + if( src ){ + struct status_change *sc = status->get_sc(src); + map->foreachinrange(skill->area_sub, &group->unit->bl, su->range, splash_target(src), src, SC_FEINTBOMB, group->skill_lv, tick, BCT_ENEMY|SD_ANIMATION|1, skill->castend_damage_id); + if(sc){ + sc->option &= ~OPTION_INVISIBLE; + clif->changeoption(src); + } + } skill->delunit(su); break; } |