summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorshennetsind <ind@henn.et>2014-03-22 17:06:50 -0300
committershennetsind <ind@henn.et>2014-03-22 17:06:50 -0300
commit9ea7b143192568a259aa6e7e223420e8d5762b9e (patch)
tree4dcaa11b8fb9acb6922048e5f4bd411cf348f183 /src/map/skill.c
parent7b71f22331c805a406c57f5a8eff93b464b57018 (diff)
downloadhercules-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.c13
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;