From 35b3a9291f0b46c6e829efd37ae4fedc84a3aca2 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Thu, 6 Jul 2023 21:00:50 -0300 Subject: [PATCH 01/21] add SC_FIRE_EXPANSION_TEAR_GAS_SOB to constants_db --- db/constants.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/db/constants.conf b/db/constants.conf index deef0317557..0b94291486f 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1307,6 +1307,8 @@ constants_db: { SC_SOULDIVISION: 716 SC_ACTIVE_MONSTER_TRANSFORM: 717 + + SC_FIRE_EXPANSION_TEAR_GAS_SOB: 718 comment__: "Emotes" e_gasp: 0 From c3a2e519aa8a651658aaeaeaa6142fada2830bcf Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Thu, 6 Jul 2023 21:55:51 -0300 Subject: [PATCH 02/21] Rebalance of KN_BOWLINGBASH (Bowling Bash) - Area of effect: 3x3 -> 5x5 centered on target - Number of hits changed - 2-handed weapons: number of hits depend on number of targets - 1 target: 2 hits - 2 / 3 targets: 3 hits - 4 or more targets: 4 hits - other weapons: 2 hits - Variable cast time removed - Knockback increased: 1 cell -> 5 cells - 1 second cooldown added - After using the skill, caster can't switch weapons for 1 second - Gutterline feature removed From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- conf/map/battle/skill.conf | 2 +- db/constants.conf | 2 ++ db/pre-re/sc_config.conf | 10 ++++++++++ db/re/sc_config.conf | 10 ++++++++++ db/re/skill_db.conf | 9 +++++---- src/map/battle.c | 16 ++++++++++++++++ src/map/pc.c | 4 +++- src/map/skill.c | 16 ++++++++++++++++ src/map/status.h | 2 ++ 9 files changed, 65 insertions(+), 6 deletions(-) diff --git a/conf/map/battle/skill.conf b/conf/map/battle/skill.conf index b48ce8b35c8..2eafba3e203 100644 --- a/conf/map/battle/skill.conf +++ b/conf/map/battle/skill.conf @@ -325,7 +325,7 @@ trap_reflect: true // Note: If your MVPs are too tough, reduce it to 10. mob_max_skilllvl: 100 -// Area of Bowling Bash chain reaction +// Area of Bowling Bash chain reaction (Pre-renewal only) // 0: Use official gutter line system // 1: Gutter line system without demi gutter bug // 2-20: Area around caster (2 = 5x5, 3 = 7x7, 4 = 9x9, ..., 20 = 41x41) diff --git a/db/constants.conf b/db/constants.conf index 0b94291486f..50dbde88369 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1310,6 +1310,8 @@ constants_db: { SC_FIRE_EXPANSION_TEAR_GAS_SOB: 718 + SC_NO_SWITCH_WEAPON: 719 + comment__: "Emotes" e_gasp: 0 e_what: 1 diff --git a/db/pre-re/sc_config.conf b/db/pre-re/sc_config.conf index 2589e6aa587..1a1ccfa5193 100644 --- a/db/pre-re/sc_config.conf +++ b/db/pre-re/sc_config.conf @@ -6408,3 +6408,13 @@ SC_ACTIVE_MONSTER_TRANSFORM: { SC__FEINTBOMB_MASTER: { Skill: "SC_FEINTBOMB" } +SC_NO_SWITCH_WEAPON: { + Flags: { + NoSave: true + NoDispelReset: true + NoBBReset: true + NoClearanceReset: true + Buff: true + } + Icon: "SI_NOEQUIPWEAPON" +} diff --git a/db/re/sc_config.conf b/db/re/sc_config.conf index 1efbeb8e023..a347a645bec 100644 --- a/db/re/sc_config.conf +++ b/db/re/sc_config.conf @@ -6414,3 +6414,13 @@ SC_ACTIVE_MONSTER_TRANSFORM: { SC__FEINTBOMB_MASTER: { Skill: "SC_FEINTBOMB" } +SC_NO_SWITCH_WEAPON: { + Flags: { + NoSave: true + NoDispelReset: true + NoBBReset: true + NoClearanceReset: true + Buff: true + } + Icon: "SI_NOEQUIPWEAPON" +} diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index 2ad1724eeb1..cccd4ec8bea 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -2317,7 +2317,7 @@ skill_db: ( Description: "Bowling Bash" MaxLevel: 10 Range: -2 - Hit: "BDT_SKILL" + Hit: "BDT_MULTIHIT" SkillType: { Enemy: true } @@ -2330,9 +2330,10 @@ skill_db: ( DamageType: { SplashArea: true } - SplashRange: 1 - KnockBackTiles: 1 - CastTime: 350 + SplashRange: 2 + KnockBackTiles: 5 + SkillData1: 1_000 // weapon change block duration + CoolDown: 1_000 FixedCastTime: 350 Requirements: { SPCost: { diff --git a/src/map/battle.c b/src/map/battle.c index 4eaf9abbb9f..bf9d832ab86 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -4723,13 +4723,29 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl case GS_GROUNDDRIFT: case KN_SPEARSTAB: +#ifndef RENEWAL case KN_BOWLINGBASH: +#endif case MS_BOWLINGBASH: case MO_BALKYOUNG: case TK_TURNKICK: wd.blewcount=0; break; +#ifdef RENEWAL + case KN_BOWLINGBASH: + wd.div_ = 2; + + // wflag stores the number of affected targets + if (sd != NULL && sd->weapontype == W_2HSWORD) { + if (wflag >= 2 && wflag < 4) + wd.div_ = 3; + else if (wflag >= 4) + wd.div_ = 4; + } + break; +#endif + case KN_AUTOCOUNTER: wd.flag=(wd.flag&~BF_SKILLMASK)|BF_NORMAL; break; diff --git a/src/map/pc.c b/src/map/pc.c index 8906bcd78bd..141ba53df63 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -1129,8 +1129,10 @@ static int pc_isequip(struct map_session_data *sd, int n) } if (sd->sc.count != 0) { - if ((item->equip & EQP_ARMS) != 0 && item->type == IT_WEAPON && sd->sc.data[SC_NOEQUIPWEAPON] != NULL) // Also works with left-hand weapons. [DracoRPG] + if ((item->equip & EQP_ARMS) != 0 && item->type == IT_WEAPON + && (sd->sc.data[SC_NOEQUIPWEAPON] != NULL || sd->sc.data[SC_NO_SWITCH_WEAPON] != NULL)) { // Also works with left-hand weapons. [DracoRPG] return 0; + } if ((item->equip & EQP_SHIELD) != 0 && item->type == IT_ARMOR && sd->sc.data[SC_NOEQUIPSHIELD] != NULL) return 0; diff --git a/src/map/skill.c b/src/map/skill.c index e42a628849f..61a76113629 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -5281,7 +5281,23 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag); break; +#ifdef RENEWAL case KN_BOWLINGBASH: + // skill->area_temp[0] holds the number of targets affected + if (flag & 1) { + int sflag = skill->area_temp[0] | SD_ANIMATION; + skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, sflag); + } else { + sc_start(src, src, SC_NO_SWITCH_WEAPON, 100, 1, skill->get_time(skill_id, skill_lv), skill_id); + skill->area_temp[0] = map->foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), BL_CHAR, src, skill_id, skill_lv, tick, BCT_ENEMY, skill->area_sub_count); + + // recursive invocation of skill->castend_damage_id() with flag|1 + map->foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), skill->splash_target(src), src, skill_id, skill_lv, tick, flag | BCT_ENEMY | SD_SPLASH | 1, skill->castend_damage_id); + } + break; +#else // !RENEWAL + case KN_BOWLINGBASH: +#endif case MS_BOWLINGBASH: { int min_x,max_x,min_y,max_y,i,c,dir,tx,ty; diff --git a/src/map/status.h b/src/map/status.h index 23afdd08093..f265c0628f6 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -914,6 +914,8 @@ typedef enum sc_type { SC_FIRE_EXPANSION_TEAR_GAS_SOB, + SC_NO_SWITCH_WEAPON, + #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif From 03055b1f92139af7c4682bfde4fa2695d5fddf65 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 8 Jul 2023 00:19:34 -0300 Subject: [PATCH 03/21] Rebalance of KN_BRANDISHSPEAR (Brandish Spear) - Change damage type: Short range physical -> Long range physical - Damage formula changed - Remove variable cast time - Add 0.5s delay after skill - Adds 1 second cooldown. - SP consumption increased: 12 -> 24. - After using the skill, caster can't switch weapons for 1 second From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 9 ++++++--- src/map/battle.c | 11 +++++++++++ src/map/skill.c | 4 ++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index cccd4ec8bea..902bfaec5cd 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -2132,7 +2132,7 @@ skill_db: ( Description: "Brandish Spear" MaxLevel: 10 Range: -2 - Hit: "BDT_SKILL" + Hit: "BDT_MULTIHIT" SkillType: { Enemy: true } @@ -2141,11 +2141,14 @@ skill_db: ( DamageType: { NoDamage: true } + NumberOfHits: -3 KnockBackTiles: 3 - CastTime: 350 + AfterCastActDelay: 500 + SkillData1: 1_000 // weapon change block duration + CoolDown: 1_000 FixedCastTime: 350 Requirements: { - SPCost: 12 + SPCost: 24 WeaponTypes: { 1HSpears: true 2HSpears: true diff --git a/src/map/battle.c b/src/map/battle.c index bf9d832ab86..327bc6d3dd5 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -2087,7 +2087,13 @@ static int battle_calc_skillratio(int attack_type, struct block_list *src, struc case KN_SPEARBOOMERANG: skillratio += 50*skill_lv; break; +#ifdef RENEWAL case KN_BRANDISHSPEAR: + skillratio += 300 + 100 * skill_lv + status_get_str(src); + break; +#else + case KN_BRANDISHSPEAR: +#endif case ML_BRANDISH: { int ratio = 100 + 20 * skill_lv; @@ -3784,6 +3790,11 @@ static int battle_range_type(struct block_list *src, struct block_list *target, return BF_LONG; } +#ifdef RENEWAL + if (skill_id == KN_BRANDISHSPEAR) + return BF_LONG; +#endif + //based on used skill's range if (skill->get_range2(src, skill_id, skill_lv) < 5) return BF_SHORT; diff --git a/src/map/skill.c b/src/map/skill.c index 61a76113629..36dfb53189e 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -5273,6 +5273,10 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl break; case KN_BRANDISHSPEAR: +#ifdef RENEWAL + sc_start(src, src, SC_NO_SWITCH_WEAPON, 100, 1, skill->get_time(skill_id, skill_lv), skill_id); + FALLTHROUGH +#endif case ML_BRANDISH: //Coded apart for it needs the flag passed to the damage calculation. if (skill->area_temp[1] != bl->id) From 821e9da86dc2622aaa1bb0899ee8b1612e1e80a1 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 8 Jul 2023 11:41:20 -0300 Subject: [PATCH 04/21] Rebalance of KN_TWOHANDQUICKEN (Two-Hand Quicken) - Gives additional 10% of ASPD (as equipment ASPD) - Now gives HIT +(2 * SkillLevel) - Now gives CRIT +(2 + SkillLevel) From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/sc_config.conf | 2 ++ src/map/status.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/db/re/sc_config.conf b/db/re/sc_config.conf index a347a645bec..c60c36f0442 100644 --- a/db/re/sc_config.conf +++ b/db/re/sc_config.conf @@ -145,6 +145,8 @@ SC_TWOHANDQUICKEN: { } CalcFlags: { Aspd: true + Cri: true + Hit: true } Icon: "SI_TWOHANDQUICKEN" Skill: "KN_TWOHANDQUICKEN" diff --git a/src/map/status.c b/src/map/status.c index b23d001510e..a04b40b3de6 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -4669,6 +4669,8 @@ static int status_calc_critical(struct block_list *bl, struct status_change *sc, #ifdef RENEWAL if (sc->data[SC_SPEARQUICKEN]) critical += 3*sc->data[SC_SPEARQUICKEN]->val1 * 10; + if (sc->data[SC_TWOHANDQUICKEN] != NULL) + critical += 20 + sc->data[SC_TWOHANDQUICKEN]->val1 * 10; #endif if (sc->data[SC__INVISIBILITY]) @@ -4743,6 +4745,8 @@ static int status_calc_hit(struct block_list *bl, struct status_change *sc, int #ifdef RENEWAL if (sc->data[SC_BLESSING] != NULL) hit += sc->data[SC_BLESSING]->val3; + if (sc->data[SC_TWOHANDQUICKEN] != NULL) + hit += 2 * sc->data[SC_TWOHANDQUICKEN]->val1; #endif return cap_value(hit, battle_config.hit_min, battle_config.hit_max); @@ -5490,6 +5494,8 @@ static short status_calc_aspd(struct block_list *bl, struct status_change *sc, s #ifdef RENEWAL if (sc->data[SC_INC_AGI] != NULL) bonus += sc->data[SC_INC_AGI]->val1; // + SkillLevel% + if (sc->data[SC_TWOHANDQUICKEN] != NULL) + bonus += 10; #endif } From c88d1cafe7eb605bc0abd64602e8a22a44d171e5 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 8 Jul 2023 11:44:17 -0300 Subject: [PATCH 05/21] Rebalance of KN_CHARGEATK (Charge Attack) - Fixed and variable casttime removed - Added Cooldown of 0.5s From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index 902bfaec5cd..7ee7d3d7594 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -18880,8 +18880,7 @@ skill_db: ( } AttackType: "Weapon" Element: "Ele_Weapon" - CastTime: 250 - FixedCastTime: 250 + CoolDown: 500 Requirements: { SPCost: 40 } From ed9d76d8316e194e52e88f5a162b177e84e3fa60 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 8 Jul 2023 12:06:57 -0300 Subject: [PATCH 06/21] Rebalance of BS_ADRENALINE (Adrenaline Rush) - Gives additional ASPD +10% to caster and party members (as Equip ASPD) - Added HIT +(5 + 3 * SkillLevel) effect to caster and party members From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/sc_config.conf | 1 + src/map/status.c | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/db/re/sc_config.conf b/db/re/sc_config.conf index c60c36f0442..ee3727a8008 100644 --- a/db/re/sc_config.conf +++ b/db/re/sc_config.conf @@ -349,6 +349,7 @@ SC_ADRENALINE: { } CalcFlags: { Aspd: true + Hit: true } Icon: "SI_ADRENALINE" Skill: "BS_ADRENALINE" diff --git a/src/map/status.c b/src/map/status.c index a04b40b3de6..639431fb104 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -4747,6 +4747,8 @@ static int status_calc_hit(struct block_list *bl, struct status_change *sc, int hit += sc->data[SC_BLESSING]->val3; if (sc->data[SC_TWOHANDQUICKEN] != NULL) hit += 2 * sc->data[SC_TWOHANDQUICKEN]->val1; + if (sc->data[SC_ADRENALINE] != NULL) + hit += sc->data[SC_ADRENALINE]->val4; #endif return cap_value(hit, battle_config.hit_min, battle_config.hit_max); @@ -5496,6 +5498,8 @@ static short status_calc_aspd(struct block_list *bl, struct status_change *sc, s bonus += sc->data[SC_INC_AGI]->val1; // + SkillLevel% if (sc->data[SC_TWOHANDQUICKEN] != NULL) bonus += 10; + if (sc->data[SC_ADRENALINE] != NULL) + bonus += 10; #endif } @@ -8233,8 +8237,12 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl if(sd && pc->checkskill(sd,BS_HILTBINDING)>0) total_tick += total_tick / 10; break; - case SC_ADRENALINE2: case SC_ADRENALINE: +#ifdef RENEWAL + val4 = 5 + 3 * val1; // HIT increase + FALLTHROUGH +#endif + case SC_ADRENALINE2: val3 = (val2) ? 300 : 200; // aspd increase FALLTHROUGH case SC_WEAPONPERFECT: From 693c4aa48df598bebdb9f3f6eb46de40b2f73457 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 8 Jul 2023 14:46:02 -0300 Subject: [PATCH 07/21] Rebalance of BS_OVERTHRUST (Over Thrust) - Weapon destruction chance removed - Party members bonus changed based on skill level: 5% / 5% / 10% / 10% / 15% From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- src/map/skill.c | 2 ++ src/map/status.c | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/map/skill.c b/src/map/skill.c index 36dfb53189e..51044fea7d2 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -2367,8 +2367,10 @@ static int skill_additional_effect(struct block_list *src, struct block_list *bl { if(sc->data[SC_GIANTGROWTH]) rate += 10; +#ifndef RENEWAL if(sc->data[SC_OVERTHRUST]) rate += 10; +#endif if(sc->data[SC_OVERTHRUSTMAX]) rate += 10; } diff --git a/src/map/status.c b/src/map/status.c index 639431fb104..08983ff1534 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -8232,8 +8232,14 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl val2 = 20*val1; //Power increase break; case SC_OVERTHRUST: - //val2 holds if it was casted on self, or is bonus received from others - val3 = 5*val1; //Power increase + // val2 holds if it was casted on self (1), or is bonus received from others (0) +#ifndef RENEWAL + val3 = 5 * val1; //Power increase +#else + // owner: 5, 10, 15, 20, 25 + // party: 5, 5, 10, 10, 15 + val3 = (val2 == 1 ? (5 * val1) : (5 + (val1 / 2) * 5)); // Power increase +#endif if(sd && pc->checkskill(sd,BS_HILTBINDING)>0) total_tick += total_tick / 10; break; From e94052e2fc6753abd7be0f5e7e164575a53b07c8 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 8 Jul 2023 14:56:11 -0300 Subject: [PATCH 08/21] Rebalance of AS_SONICBLOW (Sonic Blow) - Attack motion removed - Damage formula changed - Skill now does 50% more damage if target has less than 50% HP - Skill modifier is no longer halved when Enchant Deadly Poison is active - Global delay reduced: 2s -> 0.5s - 1s cooldown added From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 3 ++- src/map/battle.c | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index 7ee7d3d7594..fc45efdf4ca 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -4993,9 +4993,10 @@ skill_db: ( AttackType: "Weapon" Element: "Ele_Weapon" NumberOfHits: -8 - AfterCastWalkDelay: 2000 SkillData2: 5000 FixedCastTime: 0 + AfterCastActDelay: 500 + CoolDown: 1_000 SkillDelayOptions: { IgnoreStatusEffect: true } diff --git a/src/map/battle.c b/src/map/battle.c index 327bc6d3dd5..88ecf4ba2d5 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -2117,7 +2117,16 @@ static int battle_calc_skillratio(int attack_type, struct block_list *src, struc skillratio += 30 * skill_lv; break; case AS_SONICBLOW: + { +#ifndef RENEWAL skillratio += 300 + 40 * skill_lv; +#else + int ratio = 200 + 100 * skill_lv - 100; + skillratio += ratio - 100; + if (status_get_hp(target) < status_get_max_hp(target) / 2) + skillratio += (ratio / 2); +#endif + } break; case TF_SPRINKLESAND: skillratio += 30; @@ -2915,8 +2924,10 @@ static int battle_calc_skillratio(int attack_type, struct block_list *src, struc if(sc && skill_id != PA_SACRIFICE){ #ifdef RENEWAL_EDP if( sc->data[SC_EDP] ){ - if( skill_id == AS_SONICBLOW || - skill_id == GC_COUNTERSLASH || + if( skill_id == GC_COUNTERSLASH || +#ifndef RENEWAL + skill_id == AS_SONICBLOW || +#endif skill_id == GC_CROSSIMPACT ) skillratio >>= 1; } From be83c13a0082fac59a4c1cb72ac33aebffb78218 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 8 Jul 2023 15:25:24 -0300 Subject: [PATCH 09/21] Rebalance of AS_SPLASHER (Venom Splasher) - Damage formula changed - Explosion delay changed - Cooldown changed - Red Gemstone requirement removed - Explosion damage no longer splits between targets From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 49 +++++++++++++++++++++------------------------ src/map/battle.c | 4 ++++ 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index fc45efdf4ca..5c90b910f24 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -5220,19 +5220,19 @@ skill_db: ( SplashRange: 2 InterruptCast: true CastTime: 500 - SkillData1: { - Lv1: 5000 - Lv2: 5500 - Lv3: 6000 - Lv4: 6500 - Lv5: 7000 - Lv6: 7500 - Lv7: 8000 - Lv8: 8500 - Lv9: 9000 - Lv10: 9500 - } - SkillData2: { + SkillData1: { // Explosion delay + Lv1: 11_000 + Lv2: 10_000 + Lv3: 9_000 + Lv4: 8_000 + Lv5: 7_000 + Lv6: 6_000 + Lv7: 5_000 + Lv8: 4_000 + Lv9: 3_000 + Lv10: 2_000 + } + SkillData2: { // Poison duration Lv1: 15000 Lv2: 20000 Lv3: 25000 @@ -5245,16 +5245,16 @@ skill_db: ( Lv10: 60000 } CoolDown: { - Lv1: 7500 - Lv2: 8000 - Lv3: 8500 - Lv4: 9000 - Lv5: 9500 - Lv6: 10000 - Lv7: 10500 - Lv8: 11000 - Lv9: 11500 - Lv10: 12000 + Lv1: 11_000 + Lv2: 10_000 + Lv3: 9_000 + Lv4: 8_000 + Lv5: 7_000 + Lv6: 6_000 + Lv7: 5_000 + Lv8: 4_000 + Lv9: 3_000 + Lv10: 2_000 } FixedCastTime: 500 Requirements: { @@ -5270,9 +5270,6 @@ skill_db: ( Lv9: 28 Lv10: 30 } - Items: { - Red_Gemstone: 1 - } } }, { diff --git a/src/map/battle.c b/src/map/battle.c index 88ecf4ba2d5..e3476ee92c1 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -2261,9 +2261,13 @@ static int battle_calc_skillratio(int attack_type, struct block_list *src, struc skillratio += 100 + 100 * skill_lv; break; case AS_SPLASHER: +#ifndef RENEWAL skillratio += 400 + 50 * skill_lv; if(sd) skillratio += 20 * pc->checkskill(sd,AS_POISONREACT); +#else + skillratio += -100 + 400 + 100 * skill_lv; +#endif break; #ifndef RENEWAL case ASC_BREAKER: From 2e2bfa29f02349c205e59d1514feaff24720fcc5 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sun, 9 Jul 2023 14:25:39 -0300 Subject: [PATCH 10/21] Rebalance of WZ_VERMILION (Lord of Vermilion) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Damage formula changed - Old: (100 ~ 330)% x 4 waves (10 hits each) - New: [400 + (Skill Level x 100)]% x 1 wave (20 hits) - Fixed casting time changed - Old: [2.48 - (Skill Level × 0.08)] seconds - New: 1.5 seconds at all skill levels - Variable casting time changed - Old: [9.92 - (Skill Level × 0.32)] seconds - New: [6.5 - (Skill Level × 0.2)] seconds - Global delay of skills reduced - Old: 5 seconds at all skill levels - New: 1 second at all skill levels - 5 seconds cooldown added - Chance of causing blind effect increased From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 62 +++++++++++++++++++-------------------------- src/map/battle.c | 11 +------- src/map/skill.c | 4 +++ 3 files changed, 31 insertions(+), 46 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index 5c90b910f24..6ec9bf0d63f 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -3289,46 +3289,36 @@ skill_db: ( } AttackType: "Magic" Element: "Ele_Wind" - NumberOfHits: -10 + NumberOfHits: -20 InterruptCast: true CastTime: { - Lv1: 9600 - Lv2: 9280 - Lv3: 8960 - Lv4: 8640 - Lv5: 8320 - Lv6: 8000 - Lv7: 7680 - Lv8: 7360 - Lv9: 7040 - Lv10: 6720 - } - AfterCastActDelay: 5000 - SkillData1: 4000 - SkillData2: { - Lv1: 5500 - Lv2: 6000 - Lv3: 6500 - Lv4: 7000 - Lv5: 7500 - Lv6: 8000 - Lv7: 8500 - Lv8: 9000 - Lv9: 9500 - Lv10: 10000 + Lv1: 6_300 + Lv2: 6_100 + Lv3: 5_900 + Lv4: 5_700 + Lv5: 5_500 + Lv6: 5_300 + Lv7: 5_100 + Lv8: 4_900 + Lv9: 4_700 + Lv10: 4_500 } - FixedCastTime: { - Lv1: 2400 - Lv2: 2320 - Lv3: 2240 - Lv4: 2160 - Lv5: 2080 - Lv6: 2000 - Lv7: 1920 - Lv8: 1840 - Lv9: 1760 - Lv10: 1680 + AfterCastActDelay: 1_000 + CoolDown: 5_000 + SkillData1: 700 // Duration of the ground unit + SkillData2: { // Blind duration + Lv1: 5_500 + Lv2: 6_000 + Lv3: 6_500 + Lv4: 7_000 + Lv5: 7_500 + Lv6: 8_000 + Lv7: 8_500 + Lv8: 9_000 + Lv9: 9_500 + Lv10: 10_000 } + FixedCastTime: 1_500 Requirements: { SPCost: { Lv1: 60 diff --git a/src/map/battle.c b/src/map/battle.c index e3476ee92c1..61c685bba60 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -1742,16 +1742,7 @@ static int battle_calc_skillratio(int attack_type, struct block_list *src, struc skillratio += 25; break; case WZ_VERMILION: - { - int interval = 0, per = interval, ratio = per; - while( (per++) < skill_lv ){ - ratio += interval; - if(per%3==0) interval += 20; - } - if( skill_lv > 9 ) - ratio -= 10; - skillratio += ratio; - } + skillratio += -100 + 400 + skill_lv * 100; break; case NJ_HUUJIN: skillratio += 50; diff --git a/src/map/skill.c b/src/map/skill.c index 51044fea7d2..c2944f057f8 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1745,7 +1745,11 @@ static int skill_additional_effect(struct block_list *src, struct block_list *bl break; case WZ_VERMILION: +#ifndef RENEWAL sc_start(src, bl, SC_BLIND, 4 * skill_lv, skill_lv, skill->get_time2(skill_id, skill_lv), skill_id); +#else + sc_start(src, bl, SC_BLIND, 10 + 5 * skill_lv, skill_lv, skill->get_time2(skill_id, skill_lv), skill_id); +#endif break; case HT_FREEZINGTRAP: From f66f39ba736427cb22be56ede5f67e3814d013ea Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sun, 9 Jul 2023 14:37:11 -0300 Subject: [PATCH 11/21] Rebalance of WZ_METEOR (Meteor Storm) - Fixed casting time reduced - Old: 2.4 seconds at all skill levels - New: 1.5 seconds at all skill levels - Variable casting time reduced - Old: 9.6 seconds at all skill levels - New: 6.3 seconds at all skill levels - Global delay of skills reduced - Old: 2 ~ 7 seconds - New: 1 second at all skill levels - Cooldown added: [2 + (Skill Level x 0.5)] seconds From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index 6ec9bf0d63f..1a883049dc0 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -3150,22 +3150,23 @@ skill_db: ( Lv10: 5 } InterruptCast: true - CastTime: 9600 - AfterCastActDelay: { - Lv1: 2000 - Lv2: 3000 - Lv3: 3000 - Lv4: 4000 - Lv5: 4000 - Lv6: 5000 - Lv7: 5000 - Lv8: 6000 - Lv9: 6000 - Lv10: 7000 - } + CastTime: 6_300 + AfterCastActDelay: 1_000 SkillData1: 500 - SkillData2: 5000 - FixedCastTime: 2400 + SkillData2: 5_000 + FixedCastTime: 1_500 + CoolDown: { + Lv1: 2_500 + Lv2: 3_000 + Lv3: 3_500 + Lv4: 4_000 + Lv5: 4_500 + Lv6: 5_000 + Lv7: 5_500 + Lv8: 6_000 + Lv9: 6_500 + Lv10: 7_000 + } Requirements: { SPCost: { Lv1: 20 From 2d67b49bd54722a0a231fd5b569fac390cc22bb0 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sun, 9 Jul 2023 16:53:33 -0300 Subject: [PATCH 12/21] Rebalance of WZ_STORMGUST (Storm Gust) - Fixed casting time changed - Old: [0.8 + (Skill Level * 0.16)] seconds - New: 1.5 seconds at all skill levels - Variable casting time changed - Old: [3.2 + (Skill Level * 0.64)] seconds - New: [4.3 + (Skill Level * 0.2)] seconds - Global delay of skills reduced - Old: 5 seconds at all skill levels - New: 1 second at all skill levels - 6 seconds cooldown added - Damage formula changed - Old: (100 + 40 * Skill Level)% MATK - New: (70 + 50 * Skill Level)% MATK From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 42 ++++++++++++++++-------------------------- src/map/battle.c | 4 ++++ 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index 1a883049dc0..1c8e2cfe996 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -3553,32 +3553,22 @@ skill_db: ( InterruptCast: true KnockBackTiles: 2 CastTime: { - Lv1: 3840 - Lv2: 4480 - Lv3: 5120 - Lv4: 5760 - Lv5: 6400 - Lv6: 7040 - Lv7: 7680 - Lv8: 8320 - Lv9: 8960 - Lv10: 9600 - } - AfterCastActDelay: 5000 - SkillData1: 4600 - SkillData2: 12000 - FixedCastTime: { - Lv1: 960 - Lv2: 1120 - Lv3: 1280 - Lv4: 1440 - Lv5: 1600 - Lv6: 1760 - Lv7: 1920 - Lv8: 2080 - Lv9: 2240 - Lv10: 2400 - } + Lv1: 4_500 + Lv2: 4_700 + Lv3: 4_900 + Lv4: 5_100 + Lv5: 5_300 + Lv6: 5_500 + Lv7: 5_700 + Lv8: 5_900 + Lv9: 6_100 + Lv10: 6_300 + } + CoolDown: 6_000 + AfterCastActDelay: 1_000 + SkillData1: 4_600 + SkillData2: 12_000 + FixedCastTime: 1_500 Requirements: { SPCost: 78 } diff --git a/src/map/battle.c b/src/map/battle.c index 61c685bba60..bbcdb574efe 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -1681,7 +1681,11 @@ static int battle_calc_skillratio(int attack_type, struct block_list *src, struc skillratio += 30 * skill_lv; break; case WZ_STORMGUST: +#ifndef RENEWAL skillratio += 40 * skill_lv; +#else + skillratio += -30 + 50 * skill_lv; +#endif break; case HW_NAPALMVULCAN: skillratio += 10 * skill_lv - 30; From cae28fba4477aec547b5455df04a0f92745a3141 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sun, 9 Jul 2023 17:00:17 -0300 Subject: [PATCH 13/21] Rebalance of WZ_JUPITEL (Jupitel Thunder) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fixed casting time changed - Old: [0.32 + (Skill Level × 0.08)] seconds - New: 0.5 seconds at all skill levels - Variable casting time changed - Old: [1.28 + (Skill Level × 0.32)] seconds - New: [1.8 + (Skill Level × 0.2)] seconds From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index 1c8e2cfe996..1f393cd05d2 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -3234,29 +3234,18 @@ skill_db: ( Lv10: 7 } CastTime: { - Lv1: 1600 - Lv2: 1920 - Lv3: 2240 - Lv4: 2560 - Lv5: 2880 - Lv6: 3200 - Lv7: 3520 - Lv8: 3840 - Lv9: 4160 - Lv10: 4480 - } - FixedCastTime: { - Lv1: 400 - Lv2: 480 - Lv3: 560 - Lv4: 640 - Lv5: 720 - Lv6: 800 - Lv7: 880 - Lv8: 960 - Lv9: 1040 - Lv10: 1120 + Lv1: 2_000 + Lv2: 2_200 + Lv3: 2_400 + Lv4: 2_600 + Lv5: 2_800 + Lv6: 3_000 + Lv7: 3_200 + Lv8: 3_400 + Lv9: 3_600 + Lv10: 3_800 } + FixedCastTime: 500 Requirements: { SPCost: { Lv1: 20 From d88c25e17de65dfe59edbd3e3289f61b10c889bb Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 15 Jul 2023 12:47:19 -0300 Subject: [PATCH 14/21] Rebalance of WZ_EARTHSPIKE (Earth Spike) - Damage formula changed - Old: 100% per hit - New: 200% per hit - Fixed casting time changed - Old: (Skill Level x 0.112) seconds - New: 0.2 + (Skill Level x 0.2) seconds - Variable casting time changed - Old: (Skill Level x 0.448) seconds - New: 0.7 + (Skill Level x 0.5) seconds - Global delay of skills reduced - Old: 0.8 + (Skill Level x 0.2) seconds - New: 0.9 + (Skill Level x 0.1) seconds From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 60 ++++++++++++++++++++++----------------------- src/map/battle.c | 5 ++++ 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index 1f393cd05d2..eae237d7deb 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -3604,40 +3604,40 @@ skill_db: ( } InterruptCast: true CastTime: { - Lv1: 448 - Lv2: 896 - Lv3: 1344 - Lv4: 1792 - Lv5: 2240 - Lv6: 2240 - Lv7: 2240 - Lv8: 2240 - Lv9: 2240 - Lv10: 2240 + Lv1: 1_200 + Lv2: 1_700 + Lv3: 2_200 + Lv4: 2_700 + Lv5: 3_200 + Lv6: 3_700 + Lv7: 4_200 + Lv8: 4_700 + Lv9: 5_200 + Lv10: 5_700 } AfterCastActDelay: { - Lv1: 1000 - Lv2: 1200 - Lv3: 1400 - Lv4: 1600 - Lv5: 1800 - Lv6: 2000 - Lv7: 2200 - Lv8: 2400 - Lv9: 2600 - Lv10: 2800 + Lv1: 1_000 + Lv2: 1_100 + Lv3: 1_200 + Lv4: 1_300 + Lv5: 1_400 + Lv6: 1_500 + Lv7: 1_600 + Lv8: 1_700 + Lv9: 1_800 + Lv10: 1_900 } FixedCastTime: { - Lv1: 112 - Lv2: 224 - Lv3: 336 - Lv4: 448 - Lv5: 560 - Lv6: 560 - Lv7: 560 - Lv8: 560 - Lv9: 560 - Lv10: 560 + Lv1: 400 + Lv2: 600 + Lv3: 800 + Lv4: 1_000 + Lv5: 1_200 + Lv6: 1_400 + Lv7: 1_600 + Lv8: 1_800 + Lv9: 2_000 + Lv10: 2_200 } Requirements: { SPCost: { diff --git a/src/map/battle.c b/src/map/battle.c index bbcdb574efe..5ac26707d52 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -1643,6 +1643,11 @@ static int battle_calc_skillratio(int attack_type, struct block_list *src, struc if (battle->check_undead(tst->race,tst->def_ele)) skillratio += 5*skill_lv; break; +#ifdef RENEWAL + case WZ_EARTHSPIKE: + skillratio += 100; + break; +#endif case MG_FIREWALL: skillratio -= 50; break; From cde6c9d84aeec0fae997b6bef4dad2fabde5b987 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 15 Jul 2023 12:57:58 -0300 Subject: [PATCH 15/21] Rebalance of WZ_HEAVENDRIVE (Heaven's Drive) - Fixed casting time changed - Old: (Skill Level x 0.16) seconds - New: 0.8 seconds at all skill levels - Variable casting time changed - Old: (Skill Level x 0.64) seconds - New: 0.9 + (Skill Level x 0.2) seconds - Global delay of skills reduced - Old: 1 second at all skill levels - New: 0.5 seconds at all skill levels From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index eae237d7deb..f6c599d4d39 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -3685,31 +3685,20 @@ skill_db: ( } InterruptCast: true CastTime: { - Lv1: 640 - Lv2: 1280 - Lv3: 1920 - Lv4: 2560 - Lv5: 3200 - Lv6: 3200 - Lv7: 3200 - Lv8: 3200 - Lv9: 3200 - Lv10: 3200 + Lv1: 1_100 + Lv2: 1_300 + Lv3: 1_500 + Lv4: 1_700 + Lv5: 1_900 + Lv6: 1_900 + Lv7: 1_900 + Lv8: 1_900 + Lv9: 1_900 + Lv10: 1_900 } - AfterCastActDelay: 1000 + AfterCastActDelay: 500 SkillData1: 500 - FixedCastTime: { - Lv1: 160 - Lv2: 320 - Lv3: 480 - Lv4: 640 - Lv5: 800 - Lv6: 800 - Lv7: 800 - Lv8: 800 - Lv9: 800 - Lv10: 800 - } + FixedCastTime: 800 Requirements: { SPCost: { Lv1: 28 From 6e024319219a702bf44fb52f5840dcf59c24096e Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 15 Jul 2023 13:32:22 -0300 Subject: [PATCH 16/21] Rebalance of PR_MAGNUS (Magnus Exorcismus) - Fixed casting time reduced: 3s -> 1s - Variable casting time reduced: 12s -> 4s - Global delay of skills reduced: 4s -> 1s - Cooldown added: 6s - Skill now deals damage to monsters of all race monsters (instead of only Undead property and Demon race monsters) - Skill now deals additional 30% damage per hits to monsters with: - Demon race - Shadow property - Undead race or property From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 7 ++++--- src/map/battle.c | 16 ++++++++++++++++ src/map/skill.c | 4 +++- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index f6c599d4d39..a699bac8dd4 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -2927,8 +2927,8 @@ skill_db: ( Lv10: 10 } InterruptCast: true - CastTime: 12000 - AfterCastActDelay: 4000 + CastTime: 4_000 + AfterCastActDelay: 1_000 SkillData1: { Lv1: 5000 Lv2: 6000 @@ -2941,7 +2941,8 @@ skill_db: ( Lv9: 13000 Lv10: 14000 } - FixedCastTime: 3000 + CoolDown: 6_000 + FixedCastTime: 1_000 Requirements: { SPCost: { Lv1: 40 diff --git a/src/map/battle.c b/src/map/battle.c index 5ac26707d52..f1d0a29db10 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -1670,6 +1670,22 @@ static int battle_calc_skillratio(int attack_type, struct block_list *src, struc case AL_RUWACH: skillratio += 45; break; + /** + * Priest + **/ +#ifdef RENEWAL + case PR_MAGNUS: + // officially checks for both race and def for undead, + // don't use battle_check_undead here because by default it is element-only + if (tst->race == RC_UNDEAD || tst->def_ele == ELE_UNDEAD || tst->race == RC_DEMON + || tst->def_ele == ELE_DARK) { + skillratio += 30; + } + break; +#endif + /** + * Wizard + **/ case WZ_FROSTNOVA: skillratio += (100+skill_lv*10) * 2 / 3 - 100; break; diff --git a/src/map/skill.c b/src/map/skill.c index c2944f057f8..5d589102521 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -14055,8 +14055,10 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b break; case UNT_MAGNUS: - if (!battle->check_undead(tstatus->race,tstatus->def_ele) && tstatus->race!=RC_DEMON) +#ifndef RENEWAL + if (!battle->check_undead(tstatus->race, tstatus->def_ele) && tstatus->race != RC_DEMON) break; +#endif skill->attack(BF_MAGIC,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); break; From 28b1fe9b6e3eb26b189b2b29fce3685c2259d606 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sun, 30 Jul 2023 22:18:25 -0300 Subject: [PATCH 17/21] Rebalance of PR_MACEMASTERY (Mace Mastery) - Also gives CRI +(SkillLevel) when equipped with Maces From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- src/map/status.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/map/status.c b/src/map/status.c index 08983ff1534..8e78fc90f71 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -2038,6 +2038,11 @@ static int status_calc_pc_(struct map_session_data *sd, enum e_status_calc_opt o if (pc->checkskill(sd, SU_POWEROFLIFE) > 0) bstatus->cri += 20; +#ifdef RENEWAL + if ((skill_lv = pc->checkskill(sd, PR_MACEMASTERY)) > 0 && (sd->weapontype == W_MACE || sd->weapontype == W_2HMACE)) + bstatus->cri += skill_lv * 10; +#endif + if(sd->flee2_rate < 0) sd->flee2_rate = 0; if(sd->flee2_rate != 100) From e0b2f487fa844bc335a554d83b10e78a3139504c Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Mon, 31 Jul 2023 22:37:57 -0300 Subject: [PATCH 18/21] Rebalance of PR_SUFFRAGIUM (Suffragium) - Now affects all nearby party members (Range: 18 cells) - Now casts on Self instead of Target - Effect reduced: 15%/30%/45% -> 10%/15%/20% cast time reduction - Duration changed: - Old: 30s/20s/10s or when you cast a skill - New: 60s (no longer ends when you cast a skill) - SP cost increased: 8 SP -> 45/57/69 - 0.5s fixed casting time added - 1s variable casting time added - Global delay of skills reduced: 2s -> 1s - 30s cooldown added From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 39 ++++++++++++++++++++------------------- src/map/skill.c | 7 ++++++- src/map/status.c | 6 +++++- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index a699bac8dd4..95601523d60 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -2423,32 +2423,33 @@ skill_db: ( Range: 9 Hit: "BDT_SKILL" SkillType: { - Friend: true - } - SkillInfo: { - NoCastSelf: true + Self: true } AttackType: "Magic" DamageType: { NoDamage: true + SplashArea: true } + SplashRange: 18 InterruptCast: true - AfterCastActDelay: 2000 - SkillData1: { - Lv1: 30000 - Lv2: 20000 - Lv3: 10000 - Lv4: 1 - Lv5: 1 - Lv6: 1 - Lv7: 1 - Lv8: 1 - Lv9: 1 - Lv10: 1 - } - FixedCastTime: 0 + CastTime: 1_000 + AfterCastActDelay: 1_000 + SkillData1: 60_000 // SC_SUFFRAGIUM state duration (in miliseconds) + CoolDown: 30_000 + FixedCastTime: 500 Requirements: { - SPCost: 8 + SPCost: { + Lv1: 45 + Lv2: 57 + Lv3: 69 + Lv4: 81 + Lv5: 93 + Lv6: 105 + Lv7: 117 + Lv8: 129 + Lv9: 141 + Lv10: 153 + } } }, { diff --git a/src/map/skill.c b/src/map/skill.c index 5d589102521..6ff6f0e6158 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7342,7 +7342,6 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * case PR_SLOWPOISON: case PR_IMPOSITIO: case PR_LEXAETERNA: - case PR_SUFFRAGIUM: case PR_BENEDICTIO: case LK_BERSERK: case MS_BERSERK: @@ -7355,6 +7354,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * case AS_POISONREACT: #ifndef RENEWAL case MC_LOUD: + case PR_SUFFRAGIUM: #endif case MG_ENERGYCOAT: case MO_EXPLOSIONSPIRITS: @@ -7912,6 +7912,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * #ifdef RENEWAL case MC_LOUD: + case PR_SUFFRAGIUM: #endif case AL_ANGELUS: case PR_MAGNIFICAT: @@ -17260,7 +17261,9 @@ static int skill_castfix_sc(struct block_list *bl, int time) time += sc->data[SC_NEEDLE_OF_PARALYZE]->val3; if (sc->data[SC_SUFFRAGIUM]) { time -= time * sc->data[SC_SUFFRAGIUM]->val2 / 100; +#ifndef RENEWAL status_change_end(bl, SC_SUFFRAGIUM, INVALID_TIMER); +#endif } if (sc->data[SC_MEMORIZE]) { time>>=1; @@ -17340,7 +17343,9 @@ static int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, // Variable cast reduction bonuses if (sc->data[SC_SUFFRAGIUM]) { VARCAST_REDUCTION(sc->data[SC_SUFFRAGIUM]->val2); +#ifndef RENEWAL status_change_end(bl, SC_SUFFRAGIUM, INVALID_TIMER); +#endif } if (sc->data[SC_MEMORIZE]) { VARCAST_REDUCTION(50); diff --git a/src/map/status.c b/src/map/status.c index 8e78fc90f71..7b44057fc6d 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -8439,7 +8439,11 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl val2 = val1*10; //Actual boost (since 100% = 1000) break; case SC_SUFFRAGIUM: - val2 = 15 * val1; //Speed cast decrease +#ifndef RENEWAL + val2 = 15 * val1; // Cast speed decrease +#else + val2 = 5 + 5 * val1; // Variable cast speed decrease +#endif break; case SC_HEALPLUS: if (val1 < 1) From f358d3f0ce130dcba3eb8ae0ec8c6bff0390c801 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 5 Aug 2023 14:34:23 -0300 Subject: [PATCH 19/21] Rebalance of PR_IMPOSITIO (Impositio Manus) - Now affects all nearby party members (Rangee: 18 cells) - Now casts on Self instead of Target - Effect changed: - Old: ATK +(5 x SkillLevel) - New: ATK/MATK +(5 x SkillLevel) - Lower level buffs does not replace an active, higher level, one - SP cost increased: - Old: 10 + (Skill Level x 3) - New: 56 + (Skill Level x 3) - Duration increased: 60s -> 120s - Fixed casting time added: 0.5s - Variable casting time added: 1s - Global delay reduced: 3s -> 1s - Cooldown added: 30s From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/sc_config.conf | 4 ++++ db/re/skill_db.conf | 33 ++++++++++++++++++--------------- src/map/battle.c | 2 -- src/map/skill.c | 3 +++ src/map/status.c | 14 +++++++++++++- 5 files changed, 38 insertions(+), 18 deletions(-) diff --git a/db/re/sc_config.conf b/db/re/sc_config.conf index ee3727a8008..bb0b825eabc 100644 --- a/db/re/sc_config.conf +++ b/db/re/sc_config.conf @@ -268,6 +268,10 @@ SC_IMPOSITIO: { Buff: true NoMagicBlocked: true } + CalcFlags: { + Batk: true + Matk: true + } Icon: "SI_IMPOSITIO" Skill: "PR_IMPOSITIO" } diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index 95601523d60..a27b3fa2da2 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -2383,10 +2383,9 @@ skill_db: ( StatusChange: "SC_IMPOSITIO" Description: "Impositio Manus" MaxLevel: 5 - Range: 9 Hit: "BDT_SKILL" SkillType: { - Friend: true + Self: true } SkillInfo: { BlockedByStasis: true @@ -2394,23 +2393,27 @@ skill_db: ( AttackType: "Magic" DamageType: { NoDamage: true + SplashArea: true } + SplashRange: 18 InterruptCast: true - AfterCastActDelay: 3000 - SkillData1: 60000 - FixedCastTime: 0 + AfterCastActDelay: 1_000 + SkillData1: 120_000 // Buff duration (in miliseconds) + FixedCastTime: 500 + CastTime: 1_000 + CoolDown: 30_000 Requirements: { SPCost: { - Lv1: 13 - Lv2: 16 - Lv3: 19 - Lv4: 22 - Lv5: 25 - Lv6: 28 - Lv7: 31 - Lv8: 34 - Lv9: 37 - Lv10: 40 + Lv1: 59 + Lv2: 62 + Lv3: 65 + Lv4: 68 + Lv5: 71 + Lv6: 74 + Lv7: 77 + Lv8: 80 + Lv9: 83 + Lv10: 86 } } }, diff --git a/src/map/battle.c b/src/map/battle.c index f1d0a29db10..95a6983c0b4 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -880,8 +880,6 @@ static int64 battle_calc_masteryfix(struct block_list *src, struct block_list *t #ifdef RENEWAL if(sc->data[SC_NIBELUNGEN] && weapon) damage += sc->data[SC_NIBELUNGEN]->val2; - if(sc->data[SC_IMPOSITIO]) - damage += sc->data[SC_IMPOSITIO]->val2; if(sc->data[SC_DRUMBATTLE]){ if(tstatus->size == SZ_SMALL) damage += sc->data[SC_DRUMBATTLE]->val2; diff --git a/src/map/skill.c b/src/map/skill.c index 6ff6f0e6158..330cdb87694 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7340,7 +7340,9 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * break; } case PR_SLOWPOISON: +#ifndef RENEWAL case PR_IMPOSITIO: +#endif case PR_LEXAETERNA: case PR_BENEDICTIO: case LK_BERSERK: @@ -7912,6 +7914,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * #ifdef RENEWAL case MC_LOUD: + case PR_IMPOSITIO: case PR_SUFFRAGIUM: #endif case AL_ANGELUS: diff --git a/src/map/status.c b/src/map/status.c index 7b44057fc6d..b15c0c8be09 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -4434,6 +4434,8 @@ static int status_calc_buff_extra_batk(struct block_list *bl, struct status_chan // In-game Tests (and iRO wiki) suggests SC_SHOUT ATK bonus is counted as Extra ATK if (sc->data[SC_SHOUT] != NULL) batk += sc->data[SC_SHOUT]->val2; + if (sc->data[SC_IMPOSITIO] != NULL) + batk += sc->data[SC_IMPOSITIO]->val2; #endif return cap_value(batk, 0, battle_config.batk_max); @@ -4605,6 +4607,9 @@ static int status_calc_matk(struct block_list *bl, struct status_change *sc, int matk += 40 + 30 * sc->data[SC_ODINS_POWER]->val1; //70 lvl1, 100lvl2 if (sc->data[SC_IZAYOI]) matk += 25 * sc->data[SC_IZAYOI]->val1; +#else // RENEWAL + if (sc->data[SC_IMPOSITIO]) + matk += sc->data[SC_IMPOSITIO]->val2; #endif if (sc->data[SC_ZANGETSU]) matk += sc->data[SC_ZANGETSU]->val3; @@ -8273,7 +8278,7 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl #endif break; case SC_IMPOSITIO: - val2 = 5*val1; //watk increase + val2 = 5 * val1; // (Pre-RE) watk increase / (RE) Extra ATK / MATK increase break; case SC_MELTDOWN: val2 = 100*val1; //Chance to break weapon @@ -10603,8 +10608,15 @@ static bool status_end_sc_before_start(struct block_list *bl, struct status_data status_change_end(bl, SC_INVINCIBLE, INVALID_TIMER); break; case SC_MAGICPOWER: + status_change_end(bl, type, INVALID_TIMER); + break; case SC_IMPOSITIO: +#ifndef RENEWAL status_change_end(bl, type, INVALID_TIMER); +#else + if (sc->data[type] == NULL || val1 >= sc->data[type]->val1) + status_change_end(bl, type, INVALID_TIMER); +#endif break; case SC_SUNSTANCE: case SC_LUNARSTANCE: From 0ee7ad9ae5cd0b8d370d431cf34d0f3b2d5180c2 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 5 Aug 2023 14:39:11 -0300 Subject: [PATCH 20/21] Rebalance of HT_LANDMINE, HT_CLAYMORE and HT_BLASTMINE - Fixed casting time reduced: 1s -> 0.3s - Variable casting time added: 0.5s From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index a27b3fa2da2..d6e65ad6a6a 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -4266,7 +4266,8 @@ skill_db: ( Lv10: 1 } SkillData2: 5000 - FixedCastTime: 1000 + CastTime: 500 + FixedCastTime: 300 Requirements: { SPCost: 10 Items: { @@ -4623,7 +4624,8 @@ skill_db: ( Lv9: 1 Lv10: 1 } - FixedCastTime: 1000 + CastTime: 500 + FixedCastTime: 300 Requirements: { SPCost: 10 Items: { @@ -4678,7 +4680,8 @@ skill_db: ( Lv9: 180000 Lv10: 200000 } - FixedCastTime: 1000 + CastTime: 500 + FixedCastTime: 300 Requirements: { SPCost: 15 Items: { From 896388039ebe91cf0222f1fea8c3f0bb8a2e0d27 Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sat, 5 Aug 2023 15:07:40 -0300 Subject: [PATCH 21/21] Rebalance of HT_BLITZBEAT (Blitz Beat) - Damage formula changed - Auto Blitz Beat no longer splits the damage among multiple targets From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- src/map/battle.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/map/battle.c b/src/map/battle.c index 95a6983c0b4..053ebb524cf 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -4273,12 +4273,16 @@ static struct Damage battle_calc_misc_attack(struct block_list *src, struct bloc #endif case HT_BLITZBEAT: case SN_FALCONASSAULT: - //Blitz-beat Damage. - if(!sd || (temp = pc->checkskill(sd,HT_STEELCROW)) <= 0) - temp=0; - md.damage=(sstatus->dex/10+sstatus->int_/2+temp*3+40)*2; - if(mflag > 1) //Autocasted Blitz. - nk|=NK_SPLASHSPLIT; + // Blitz-beat Damage. + if (sd == NULL || (temp = pc->checkskill(sd,HT_STEELCROW)) <= 0) + temp = 0; +#ifndef RENEWAL + md.damage = (sstatus->dex / 10 + sstatus->int_ / 2 + temp * 3 + 40) * 2; + if (mflag > 1) //Autocasted Blitz. + nk |= NK_SPLASHSPLIT; +#else + md.damage= skill_lv * 20 + temp * 6 + (sstatus->dex / 10 + sstatus->agi / 2) * 2; +#endif if (skill_id == SN_FALCONASSAULT) { //Div fix of Blitzbeat