diff --git a/db/pre-re/skill_cast_db.txt b/db/pre-re/skill_cast_db.txt index 85249535a4..dc5583254d 100644 --- a/db/pre-re/skill_cast_db.txt +++ b/db/pre-re/skill_cast_db.txt @@ -577,7 +577,7 @@ //-- CH_PALMSTRIKE 370,0,300,0,0,0,0 //-- CH_TIGERFIST -371,0,0,0,0,2000:4000:6000:8000:10000,0 +371,0,0,0,4000:8000:12000:16000:24000,0,0 //========================================== diff --git a/db/re/skill_cast_db.txt b/db/re/skill_cast_db.txt index 5dd34399b1..a117979449 100644 --- a/db/re/skill_cast_db.txt +++ b/db/re/skill_cast_db.txt @@ -570,7 +570,7 @@ //-- CH_PALMSTRIKE 370,0,300,0,0,0,0,0 //-- CH_TIGERFIST -371,0,0,0,0,2000:4000:6000:8000:10000,0,0 +371,0,0,0,4000:8000:12000:16000:24000,0,0,0 //========================================== diff --git a/src/map/skill.cpp b/src/map/skill.cpp index 78dc036911..7727b56719 100755 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -1421,8 +1421,15 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1 skill_break_equip(src,bl, EQP_SHIELD, 150*skill_lv, BCT_ENEMY); break; - case CH_TIGERFIST: - sc_start(src,bl,SC_STOP,(10+skill_lv*10),0,skill_get_time2(skill_id,skill_lv)); + case CH_TIGERFIST: { + uint16 basetime = skill_get_time(skill_id, skill_lv); + uint16 mintime = 30 * (status_get_lv(src) + 100); + + if (status_get_class_(bl) == CLASS_BOSS) + basetime /= 5; + basetime = min((basetime * status_get_agi(bl)) / -200 + basetime, mintime) / 2; + sc_start(src, bl, SC_STOP, (1 + skill_lv) * 10, 0, basetime); + } break; case LK_SPIRALPIERCE: