From 7d9a23d03f1aa5e6d57cd7f98236b72532afaed0 Mon Sep 17 00:00:00 2001 From: Playtester <3785983+Playtester@users.noreply.github.com> Date: Thu, 28 Mar 2024 23:43:59 +0100 Subject: [PATCH] Frenzy, Super Novice Level Up Buff, Assassin Soul Link (#8198) - Fixed Frenzy HP drain interval being 15 instead 10 seconds in renewal (follow-up to 1a004f0) - The buffs granted when a Super Novice levels up now all last 120 seconds (fixes #8189) - Assassin Soul Link now doubles stun chance outside GVG/BG (fixes #8195) --- db/re/skill_db.yml | 4 ++-- src/map/pc.cpp | 2 +- src/map/skill.cpp | 5 ++++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/db/re/skill_db.yml b/db/re/skill_db.yml index 3d8070adf8..c8ce657711 100644 --- a/db/re/skill_db.yml +++ b/db/re/skill_db.yml @@ -9940,7 +9940,7 @@ Body: Hit: Single HitCount: 1 Duration1: 300000 - Duration2: 15000 + Duration2: 10000 Requires: SpCost: 200 Status: Berserk @@ -45857,7 +45857,7 @@ Body: Hit: Single HitCount: 1 Duration1: 300000 - Duration2: 15000 + Duration2: 10000 Requires: SpCost: 200 Status: Berserk diff --git a/src/map/pc.cpp b/src/map/pc.cpp index ee6d0b811f..7b183f79be 100755 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -8107,7 +8107,7 @@ int pc_checkbaselevelup(map_session_data *sd) { if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE) { for (const auto &status : status_db) { if (status.second->flag[SCF_SUPERNOVICEANGEL]) - sc_start(&sd->bl, &sd->bl, status.second->type, 100, 1, skill_get_time(status.second->skill_id, 1)); + sc_start(&sd->bl, &sd->bl, status.second->type, 100, 1, 120000); //All buffs with super novice flag for 2 minutes } if (sd->state.snovice_dead_flag) sd->state.snovice_dead_flag = 0; //Reenable steelbody resurrection on dead. diff --git a/src/map/skill.cpp b/src/map/skill.cpp index 19d2facb35..005caf222e 100755 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -1435,7 +1435,10 @@ int skill_additional_effect( struct block_list* src, struct block_list *bl, uint case AS_SONICBLOW: case HN_MEGA_SONIC_BLOW: - sc_start(src,bl,SC_STUN,(2*skill_lv+10),skill_lv,skill_get_time2(skill_id,skill_lv)); + if (!map_flag_gvg2(bl->m) && !map_getmapflag(bl->m, MF_BATTLEGROUND) && sc->getSCE(SC_SPIRIT)->val2 == SL_ASSASIN) + sc_start(src, bl, SC_STUN, (4 * skill_lv + 20), skill_lv, skill_get_time2(skill_id, skill_lv)); //Link gives double stun chance outside GVG/BG + else + sc_start(src, bl, SC_STUN, (2 * skill_lv + 10), skill_lv, skill_get_time2(skill_id, skill_lv)); break; case AS_GRIMTOOTH: