diff options
author | shennetsind <ind@henn.et> | 2014-03-22 17:06:50 -0300 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2014-03-22 17:06:50 -0300 |
commit | 9ea7b143192568a259aa6e7e223420e8d5762b9e (patch) | |
tree | 4dcaa11b8fb9acb6922048e5f4bd411cf348f183 /src/map/skill.c | |
parent | 7b71f22331c805a406c57f5a8eff93b464b57018 (diff) | |
download | hercules-9ea7b143192568a259aa6e7e223420e8d5762b9e.tar.gz hercules-9ea7b143192568a259aa6e7e223420e8d5762b9e.tar.bz2 hercules-9ea7b143192568a259aa6e7e223420e8d5762b9e.tar.xz hercules-9ea7b143192568a259aa6e7e223420e8d5762b9e.zip |
Fixed Bug 8107
feintbomb issue which could cause endless hiding.
Special Thanks to kyeme.
http://hercules.ws/board/tracker/issue-8107-feint-bomb-super-bug/
Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 78f5fe3f1..5b4b79283 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -10403,9 +10403,8 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui 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); - if( skill->blown(src, src, 3 * skill_lv, unit->getdir(src), 0) && sc){ - sc->option |= OPTION_INVISIBLE; - clif->changeoption(src); + if( skill->blown(src, src, 3 * skill_lv, unit->getdir(src), 0) && sc) { + sc_start(src, src, SC__FEINTBOMB_MASTER, 100, 0, skill->get_unit_interval(SC_FEINTBOMB)); } break; @@ -15857,13 +15856,9 @@ 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 ){ - struct status_change *sc = status->get_sc(src); + if( 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); - } + status_change_end(src, SC__FEINTBOMB_MASTER, INVALID_TIMER); } skill->delunit(su); break; |