diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/battle.c | 16 | ||||
-rw-r--r-- | src/map/skill.c | 17 |
2 files changed, 22 insertions, 11 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index c481d0034..f16a58314 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -318,15 +318,6 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i return 0; } - if(sc->data[SC_UTSUSEMI].timer != -1 && !skill_num) - { - clif_specialeffect(bl, 462, AREA); - skill_blown (src, bl, sc->data[SC_UTSUSEMI].val3); - if (--sc->data[SC_UTSUSEMI].val2 <= 0) - status_change_end(bl, SC_UTSUSEMI, -1); - return 0; - } - if(sc->data[SC_BUNSINJYUTSU].timer != -1 && (flag&(BF_WEAPON|BF_MISC)) ) { if (--sc->data[SC_BUNSINJYUTSU].val2 <= 0) @@ -2927,6 +2918,13 @@ int battle_weapon_attack( struct block_list *src,struct block_list *target, return 0; } } + if (tsc->data[SC_UTSUSEMI].timer != -1) { + clif_specialeffect(target, 462, AREA); + skill_blown (src, target, tsc->data[SC_UTSUSEMI].val3); + if (--tsc->data[SC_UTSUSEMI].val2 <= 0) + status_change_end(target, SC_UTSUSEMI, -1); + return 0; + } } //Recycled the damage variable rather than use a new one... [Skotlex] if(sd && (damage = pc_checkskill(sd,MO_TRIPLEATTACK)) > 0) diff --git a/src/map/skill.c b/src/map/skill.c index dfe085f75..b8fd82f3b 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -6245,7 +6245,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s } break; case NJ_TATAMIGAESHI: - sc_start(src,type,100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(src,type,100,skilllv,skill_get_time(skillid,skilllv)); skill_unitsetting(src,skillid,skilllv,src->x,src->y,0); break; @@ -7174,7 +7174,20 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns break; } - case UNT_TATAMIGAESHI: + case UNT_TATAMIGAESHI: + { + /* NJ_TATAMIGAESHI has to work like that (has to be instant, instead of during 1s), according to Tharis' last video + Did not find a better way to do it (even in traps' code) */ + + struct skill_unit_group *sug; // better name needed + + if ( (sug = map_find_skill_unit_oncell(bl,bl->x,bl->y,NJ_TATAMIGAESHI,NULL)->group) != NULL ) + { + if ( DIFF_TICK(gettick(), sug->tick) <= skill_get_time2(sg->skill_id, sg->skill_lv) ) + skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); + } + break; + } case UNT_DEMONSTRATION: skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); break; |