summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authormalufett <malufett.eat.my.binaries@gmail.com>2014-03-12 19:17:32 +0800
committermalufett <malufett.eat.my.binaries@gmail.com>2014-03-12 19:17:32 +0800
commitcc0127618746e7b290fa03a68640cda4d5d1d7e3 (patch)
tree2512ab7be1eb9db36d618ac58a2db7b383197412 /src/map/skill.c
parentdc05ef11b1fbbccdd54eba54b93d3eba0b032970 (diff)
downloadhercules-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.c21
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;
}