summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/map/battle.c16
-rw-r--r--src/map/skill.c17
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;