diff --git a/db/re/skill_db.yml b/db/re/skill_db.yml index 046f30a080..5a41639420 100644 --- a/db/re/skill_db.yml +++ b/db/re/skill_db.yml @@ -23463,7 +23463,7 @@ Body: TargetType: Attack DamageFlags: Splash: true - Range: 1 + Range: 2 Hit: Single HitCount: 1 Element: Weapon @@ -38543,23 +38543,33 @@ Body: DamageFlags: Splash: true Hit: Single - HitCount: 1 + HitCount: 2 Element: Weapon - SplashArea: 2 + SplashArea: 3 CastCancel: true AfterCastActDelay: 500 Duration1: - Level: 1 - Time: 2000 + Time: 3000 - Level: 2 - Time: 4000 - - Level: 3 Time: 6000 + - Level: 3 + Time: 9000 - Level: 4 - Time: 8000 + Time: 12000 - Level: 5 - Time: 10000 - Cooldown: 3000 + Time: 15000 + Cooldown: + - Level: 1 + Time: 3000 + - Level: 2 + Time: 2100 + - Level: 3 + Time: 1500 + - Level: 4 + Time: 900 + - Level: 5 + Time: 300 Requires: SpCost: - Level: 1 @@ -38587,11 +38597,19 @@ Body: HitCount: 1 Element: Weapon CastCancel: true - CastTime: 1000 AfterCastActDelay: 500 Duration1: 20000 - Cooldown: 2000 - FixedCastTime: 1000 + Cooldown: + - Level: 1 + Time: 2000 + - Level: 2 + Time: 1750 + - Level: 3 + Time: 1250 + - Level: 4 + Time: 750 + - Level: 5 + Time: 250 Requires: SpCost: - Level: 1 @@ -38619,19 +38637,19 @@ Body: Element: Weapon SplashArea: - Level: 1 - Area: 1 + Area: 2 - Level: 2 - Area: 1 + Area: 2 - Level: 3 - Area: 2 - - Level: 4 - Area: 2 - - Level: 5 Area: 3 + - Level: 4 + Area: 3 + - Level: 5 + Area: 4 CastCancel: true CastTime: 1000 AfterCastActDelay: 500 - Cooldown: 3000 + Cooldown: 1500 FixedCastTime: 1000 Requires: SpCost: @@ -38659,6 +38677,17 @@ Body: NoDamage: true Hit: Single HitCount: 1 + GiveAp: + - Level: 1 + Amount: 4 + - Level: 2 + Amount: 8 + - Level: 3 + Amount: 12 + - Level: 4 + Amount: 16 + - Level: 5 + Amount: 20 CastCancel: true Duration1: - Level: 1 @@ -38673,15 +38702,15 @@ Body: Time: 150000 Duration2: - Level: 1 - Time: 10000 + Time: 3000 - Level: 2 - Time: 8000 + Time: 2500 - Level: 3 - Time: 6000 - - Level: 4 - Time: 4000 - - Level: 5 Time: 2000 + - Level: 4 + Time: 1500 + - Level: 5 + Time: 1000 Cooldown: 60000 Requires: SpCost: @@ -38708,7 +38737,7 @@ Body: CastCancel: true CastTime: 2000 AfterCastActDelay: 500 - Duration1: 60000 + Duration1: 300000 Cooldown: 60000 FixedCastTime: 1000 Requires: @@ -38776,7 +38805,27 @@ Body: GiveAp: 2 CastCancel: true AfterCastActDelay: 500 - Cooldown: 2000 + Cooldown: + - Level: 1 + Time: 2000 + - Level: 2 + Time: 1900 + - Level: 3 + Time: 1700 + - Level: 4 + Time: 1500 + - Level: 5 + Time: 1300 + - Level: 6 + Time: 1100 + - Level: 7 + Time: 900 + - Level: 8 + Time: 700 + - Level: 9 + Time: 500 + - Level: 10 + Time: 300 Requires: SpCost: - Level: 1 @@ -38812,8 +38861,8 @@ Body: CastCancel: true CastTime: 2000 AfterCastActDelay: 500 - Duration1: 4000 - Cooldown: 4000 + Duration1: 3000 + Cooldown: 3000 FixedCastTime: 1000 Requires: SpCost: @@ -38830,7 +38879,7 @@ Body: Unit: Id: Abyss_Square Range: 3 - Interval: 700 + Interval: 300 Target: Enemy Flag: NoOverlap: true @@ -38845,39 +38894,59 @@ Body: Critical: true Range: 9 Hit: Multi_Hit - HitCount: -10 + HitCount: 1 Element: Weapon - GiveAp: 2 + GiveAp: 1 CastCancel: true AfterCastActDelay: 500 - Cooldown: 2000 + Cooldown: + - Level: 1 + Time: 2000 + - Level: 2 + Time: 1800 + - Level: 3 + Time: 1600 + - Level: 4 + Time: 1400 + - Level: 5 + Time: 1200 + - Level: 6 + Time: 1000 + - Level: 7 + Time: 800 + - Level: 8 + Time: 600 + - Level: 9 + Time: 400 + - Level: 10 + Time: 200 Requires: SpCost: - Level: 1 - Amount: 40 + Amount: 35 - Level: 2 Amount: 45 - Level: 3 - Amount: 50 - - Level: 4 Amount: 55 - - Level: 5 - Amount: 60 - - Level: 6 + - Level: 4 Amount: 65 - - Level: 7 - Amount: 70 - - Level: 8 + - Level: 5 Amount: 75 - - Level: 9 - Amount: 80 - - Level: 10 + - Level: 6 Amount: 85 + - Level: 7 + Amount: 95 + - Level: 8 + Amount: 105 + - Level: 9 + Amount: 115 + - Level: 10 + Amount: 125 Weapon: Bow: true Ammo: Arrow: true - AmmoAmount: 10 + AmmoAmount: 3 - Id: 5323 Name: WH_ADVANCED_TRAP Description: Advanced Trap @@ -40972,7 +41041,7 @@ Body: Range: 1 Hit: Single HitCount: 1 - SplashArea: 3 + SplashArea: 4 Requires: SpCost: 1 - Id: 5384 diff --git a/src/map/battle.cpp b/src/map/battle.cpp index bd6cccfd6a..3f4567e0c3 100644 --- a/src/map/battle.cpp +++ b/src/map/battle.cpp @@ -4104,6 +4104,11 @@ static void battle_calc_multi_attack(struct Damage* wd, struct block_list *src,s } break; } + case ABC_FRENZY_SHOT: + if( rnd()%100 < 5 * skill_lv ){ + wd->div_ = 3; + } + break; #ifdef RENEWAL case AS_POISONREACT: skill_lv = pc_checkskill(sd, TF_DOUBLE); @@ -4880,10 +4885,13 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list * RE_LVL_DMOD(100); break; case SC_FATALMENACE: - skillratio += 120 * skill_lv + sstatus->agi / 6; // !TODO: What's the AGI bonus? + skillratio += 120 * skill_lv + sstatus->agi; // !TODO: What's the AGI bonus? + + if( sc != nullptr && sc->getSCE( SC_ABYSS_DAGGER ) ){ + skillratio += 30 * skill_lv; + } + RE_LVL_DMOD(100); - if (sc && sc->getSCE(SC_ABYSS_DAGGER)) - skillratio += skillratio * 50 / 100; break; case SC_TRIANGLESHOT: skillratio += -100 + 230 * skill_lv + 3 * sstatus->agi; @@ -5524,18 +5532,21 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list * RE_LVL_DMOD(100); break; case ABC_ABYSS_DAGGER: - skillratio += -100 + 550 * skill_lv + 5 * sstatus->pow; + skillratio += -100 + 350 * skill_lv + 5 * sstatus->pow; RE_LVL_DMOD(100); break; case ABC_UNLUCKY_RUSH: - skillratio += -100 + 500 * skill_lv + 5 * sstatus->crt; + skillratio += -100 + 100 + 300 * skill_lv + 5 * sstatus->pow; RE_LVL_DMOD(100); break; case ABC_CHAIN_REACTION_SHOT: - case ABC_CHAIN_REACTION_SHOT_ATK:// Same damage formula? [Rytech] skillratio += -100 + 600 * skill_lv + 5 * sstatus->con; RE_LVL_DMOD(100); break; + case ABC_CHAIN_REACTION_SHOT_ATK: + skillratio += -100 + 950 * skill_lv + 5 * sstatus->con; + RE_LVL_DMOD(100); + break; case ABC_DEFT_STAB: skillratio += -100 + 360 * skill_lv + 5 * sstatus->pow; RE_LVL_DMOD(100); @@ -7870,7 +7881,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list RE_LVL_DMOD(100); break; case ABC_ABYSS_SQUARE: - skillratio += -100 + 140 * skill_lv + 5 * sstatus->spl; + skillratio += -100 + ( 200 + 20 * pc_checkskill( sd, ABC_MAGIC_SWORD_M ) ) * skill_lv + 5 * sstatus->spl; RE_LVL_DMOD(100); break; case TR_METALIC_FURY: @@ -9388,9 +9399,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t sd->state.autocast = 0; } - // It has a success chance of triggering even tho the description says nothing about it. - // TODO: Need to find out what the official success chance is. [Rytech] - if( sc->getSCE(SC_ABYSSFORCEWEAPON) && sd->abyssball > 0 && rnd() % 100 < 20 ){ + if( sc->getSCE(SC_ABYSSFORCEWEAPON) && sd->abyssball > 0 && rnd() % 100 < 15 ){ uint16 skill_id = ABC_FROM_THE_ABYSS_ATK; uint16 skill_lv = sc->getSCE(SC_ABYSSFORCEWEAPON)->val1; diff --git a/src/map/skill.cpp b/src/map/skill.cpp index 60e3ea950e..a061c7eb97 100755 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -4143,10 +4143,6 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list * if (skill_area_temp[1] == bl->id && rnd()%100 < 4 * skill_lv)// Need official autocast chance. [Rytech] skill_addtimerskill(src, tick + dmg.amotion, bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, 2); break; - case ABC_FRENZY_SHOT: - if (rnd()%100 < 4 * skill_lv)// Need official autocast chance. [Rytech] - skill_addtimerskill(src, tick + dmg.amotion, bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, 2); - break; } }