From 93dc59a616c9be7a634314ee3af7adda35cd875a Mon Sep 17 00:00:00 2001 From: panFD Date: Mon, 14 Sep 2026 23:00:06 +0800 Subject: [PATCH] =?UTF-8?q?refactor(skill):=20=E9=87=8D=E6=9E=84=E5=A4=A7?= =?UTF-8?q?=E6=8B=9BCD=E9=85=8D=E7=BD=AE=E4=BD=93=E7=B3=BB=EF=BC=8C?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=A1=A3=E4=BD=8D=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 新增大招CD档位配置ULT_CDS/ULT_CD_MAP,与普攻档位分离 2. 为职业默认值添加大招CD档配置,支持按职业类型适配 3. 改造技能编辑器与英雄向导,支持选择大招CD档位 4. 批量更新现有英雄数据与配置文件,统一使用档位化CD配置 5. 补充文档说明,规范大招CD配置规则 --- assets/script/game/common/config/GameSet.ts | 2 +- assets/script/game/common/config/heroSet.ts | 64 +++++++--- put/server/data/heroes.json | 133 +++++++++++--------- put/server/data/heroes.json编辑指引.md | 5 +- put/web/src/App.vue | 8 +- put/web/src/components/HeroWizard.vue | 20 ++- put/web/src/components/SkillEditor.vue | 41 +++--- put/web/src/constants.js | 32 +++-- 8 files changed, 187 insertions(+), 118 deletions(-) diff --git a/assets/script/game/common/config/GameSet.ts b/assets/script/game/common/config/GameSet.ts index 45aacfa9..a650f643 100644 --- a/assets/script/game/common/config/GameSet.ts +++ b/assets/script/game/common/config/GameSet.ts @@ -47,7 +47,7 @@ export enum FightSet { /** 英雄属性随等级成长的倍率(ap/hp = base * MULTIPLIER^(lv-1)) */ HERO_LV_MULTIPLIER = 2, // BACK_RANG=30,//后退范围 - BACK_RANG = 20,//后退范围 + BACK_RANG = 30,//后退范围 FiIGHT_TIME = 30,//战斗时间 FROST_TIME = 3,//冰冻时间 STUN_TIME = 1,//击晕时间(短控:施加瞬间 CD 削减,期间 CD 停止增长) diff --git a/assets/script/game/common/config/heroSet.ts b/assets/script/game/common/config/heroSet.ts index 769c5955..755add58 100644 --- a/assets/script/game/common/config/heroSet.ts +++ b/assets/script/game/common/config/heroSet.ts @@ -1,4 +1,4 @@ -import { v3 } from "cc" +import { v3 } from "cc" import { BoxSet, FacSet, FightSet } from "./GameSet" import { SkillOverrides, TGroup, SkillSet, FieldSkillSet, SkillConfig, SkillKind, FieldSkillConfig, FieldSkillType, mergeSkillParams } from "./SkillSet" import { BuffList, BuffConfig, ModOp } from "./BuffSet" @@ -58,6 +58,30 @@ export const AtkSpeedSet = { [AtkSpeedLv.VerySlow]: { name: "极慢", cd: 1.50 }, }; +/** + * 英雄大招(skills[1])CD 分级配置(5 档,与 AtkSpeedLv 五档结构对齐)。 + * 分档规则:VeryFast=单体爆发/高频压制,Normal=群体伤害/控制,VerySlow=全体增益/治疗/护盾, + * Fast/Slow 为中间档,供同类技能内细分释放节奏。 + * Why: 大招 CD 曾 18/19 英雄统一 8s,场上大招齐发成"脉冲",玩家难以感知单次大招释放; + * 按技能效果类型分档交错 CD(6~10s),形成持续鼓点节奏,拉开"高频小爆发 vs 稀有大回报"的感知差。 + * TODO: CD 档位与数值联动补偿(短 CD 单次数值下调、长 CD 上调)待观察实战强度后统一调整。 + */ +export enum UltCdLv { + VeryFast = 1, // 单体爆发/高频压制 + Fast = 2, // 频繁压制(中间档) + Normal = 3, // 群体伤害/控制 + Slow = 4, // 中度团队增益(中间档) + VerySlow = 5, // 全体增益/治疗/护盾 +} + +export const UltCdSet = { + [UltCdLv.VeryFast]: { name: "极频", cd: 6 }, + [UltCdLv.Fast]: { name: "高频", cd: 7 }, + [UltCdLv.Normal]: { name: "标准", cd: 8 }, + [UltCdLv.Slow]: { name: "低频", cd: 9 }, + [UltCdLv.VerySlow]: { name: "稀有", cd: 10 }, +}; + export const HeroPos = { 0: { pos: v3(-320, BoxSet.GAME_LINE, 0) }, 1: { pos: v3(0, BoxSet.GAME_LINE, 0) }, @@ -553,7 +577,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"ap":120}, desc: "普通攻击 造成 120% 伤害" }, ], }, - 6301: { uuid: 6301, name: "魔法盾", lv: 1, cd: 10, ccd: 0, overrides: {"ap":30}, desc: "{target}获得生命最大值{ap}%的护盾", + 6301: { uuid: 6301, name: "魔法盾", lv: 1, cd: UltCdSet[UltCdLv.VerySlow].cd, ccd: 0, overrides: {"ap":30}, desc: "{target}获得生命最大值{ap}%的护盾", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":60}, desc: "{target}获得生命最大值{ap}%的护盾" }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":120}, desc: "{target}获得生命最大值{ap}%的护盾" }, @@ -579,7 +603,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"ap":120}, desc: "普通攻击造成 120% 攻击伤害" }, ], }, - 6101: { uuid: 6101, name: "气斩", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"timed_debuff_id":7002,"icon":"Stat_AttackSpeed_02"}, desc: "斩出气刃,对{target}造成攻击力{ap}%伤害,并使目标易伤(受到伤害加深,持续{dur}秒)", + 6101: { uuid: 6101, name: "气斩", lv: 1, cd: UltCdSet[UltCdLv.Normal].cd, ccd: 0, overrides: {"ap":150,"timed_debuff_id":7002,"icon":"Stat_AttackSpeed_02"}, desc: "斩出气刃,对{target}造成攻击力{ap}%伤害,并使目标易伤(受到伤害加深,持续{dur}秒)", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"buff_value":20} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":180,"bck":60,"buff_value":40}, desc: "斩出气刃,对{target}造成攻击力{ap}%伤害,击退{bck},并使目标易伤(持续{dur}秒)" }, @@ -605,7 +629,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"stun":10}, desc: "普通攻击有{stun}%概率击晕敌人" }, ], }, - 6104: { uuid: 6104, name: "开山斧", lv: 1, cd: 8, ccd: 0, overrides: {"ap":300,"stun":100}, desc: "劈出开山斧,对{target}造成攻击力{ap}%伤害,必定击晕", + 6104: { uuid: 6104, name: "开山斧", lv: 1, cd: UltCdSet[UltCdLv.Normal].cd, ccd: 0, overrides: {"ap":300,"stun":100}, desc: "劈出开山斧,对{target}造成攻击力{ap}%伤害,必定击晕", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":450,"stun":100} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":450,"stun":100} }, @@ -629,7 +653,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"crt":10}, desc: "普通攻击有{crt}%概率暴击" }, ], }, - 6100: { uuid: 6100, name: "光闪", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150}, desc: "斩出光闪,对{target}造成攻击力{ap}%伤害", + 6100: { uuid: 6100, name: "光闪", lv: 1, cd: UltCdSet[UltCdLv.VeryFast].cd, ccd: 0, overrides: {"ap":150}, desc: "斩出光闪,对{target}造成攻击力{ap}%伤害", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":250} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":350} }, @@ -653,7 +677,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"timed_debuff_id":7007,"debuff_value":30,"debuff_chance":30}, desc: "普通攻击有{debuff_chance}%概率使目标出血(每0.5秒受到{debuff_value}点伤害,持续{dur}秒)" }, ], }, - 6103: { uuid: 6103, name: "闪电斩", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150}, desc: "高速斩击{target},造成攻击力{ap}%伤害", + 6103: { uuid: 6103, name: "闪电斩", lv: 1, cd: UltCdSet[UltCdLv.VeryFast].cd, ccd: 0, overrides: {"ap":150}, desc: "高速斩击{target},造成攻击力{ap}%伤害", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":250,"timed_debuff_id":7007,"debuff_value":40}, desc: "高速斩击{target},造成攻击力{ap}%,并使目标出血(每0.5秒受到{debuff_value}点伤害,持续{dur}秒)" }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":350,"timed_debuff_id":7007,"debuff_value":60}, desc: "高速斩击{target},造成攻击力{ap}%,附带 50% 概率麻痹,并使目标出血(每0.5秒受到{debuff_value}点伤害,持续{dur}秒)" }, @@ -677,7 +701,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"frz":10}, desc: "普通攻击有{frz}%概率 冰冻敌人" }, ], }, - 6150: { uuid: 6150, name: "万箭齐发·冰", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"frz":30,"icon":"Stat_AttackRangeIncrease_02"}, desc: "万箭齐发,对{target}造成攻击力{ap}%伤害,{frz}%概率冰冻", + 6150: { uuid: 6150, name: "万箭齐发·冰", lv: 1, cd: UltCdSet[UltCdLv.Normal].cd, ccd: 0, overrides: {"ap":150,"frz":30,"icon":"Stat_AttackRangeIncrease_02"}, desc: "万箭齐发,对{target}造成攻击力{ap}%伤害,{frz}%概率冰冻", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":200,"frz":50} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":250,"frz":70} }, @@ -701,7 +725,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"bck_chance":20}, desc: "普通攻击有{bck_chance}%概率击退敌人" }, ], }, - 6200: { uuid: 6200, name: "火焰喷射", lv: 1, cd: 8, ccd: 0, overrides: {"ap":250,"bck":100}, desc: "喷出烈焰风暴,对{target}造成攻击力{ap}%伤害,击退{bck}", + 6200: { uuid: 6200, name: "火焰喷射", lv: 1, cd: UltCdSet[UltCdLv.Normal].cd, ccd: 0, overrides: {"ap":250,"bck":100}, desc: "喷出烈焰风暴,对{target}造成攻击力{ap}%伤害,击退{bck}", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":350,"bck":100} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":450,"bck":100,"summon_count":2} }, @@ -725,7 +749,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"ap":120}, desc: "普通攻击造成 120% 攻击伤害" }, ], }, - 6302: { uuid: 6302, name: "治疗", lv: 1, cd: 8, ccd: 0, overrides: {"ap":30}, desc: "为{target}回复攻击力{ap}%生命", + 6302: { uuid: 6302, name: "治疗", lv: 1, cd: UltCdSet[UltCdLv.VerySlow].cd, ccd: 0, overrides: {"ap":30}, desc: "为{target}回复攻击力{ap}%生命", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":40} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":50} }, @@ -751,7 +775,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"proc_skill":{"s_uuid":6502,"chance":10,"overrides":{"ap":5,"TGroup": TGroup.Self}}}, desc: "普通攻击有 10% 的概率为自己释放回春(5 秒恢复生命值的{ap}%)" }, ], }, - 6102: { uuid: 6102, lv: 1, cd: 8, ccd: 0, overrides: {"ap":250,"bck":30}, + 6102: { uuid: 6102, lv: 1, cd: UltCdSet[UltCdLv.Normal].cd, ccd: 0, overrides: {"ap":250,"bck":30}, lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":300,"bck":50} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":350,"bck":70} }, @@ -777,7 +801,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"ap":100,"bck_chance":10} }, ], }, - 6151: { uuid: 6151, lv: 1, cd: 8, ccd: 0, overrides: {"ap":70,"summon_count":5,"bck_chance":100}, + 6151: { uuid: 6151, lv: 1, cd: UltCdSet[UltCdLv.VeryFast].cd, ccd: 0, overrides: {"ap":70,"summon_count":5,"bck_chance":100}, lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":80,"summon_count":5,"bck_chance":100} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"bck_chance":100,"ap":100,"summon_count":6} }, @@ -803,7 +827,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"proc_skill":{"s_uuid":6502,"chance":10,"overrides":{"ap":5}}}, desc: "普攻有 10% 概率,对自己释放回春(5 秒回复5% 生命)" }, ], }, - 6517: { uuid: 6517, name: "生命爆发", lv: 1, cd: 8, ccd: 0, overrides: {"buff_value":30,"buff_duration":10}, desc: "全体友方最大生命值提升{buff_value}%,持续{dur}秒", + 6517: { uuid: 6517, name: "生命爆发", lv: 1, cd: UltCdSet[UltCdLv.VerySlow].cd, ccd: 0, overrides: {"buff_value":30,"buff_duration":10}, desc: "全体友方最大生命值提升{buff_value}%,持续{dur}秒", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"buff_value":40,"buff_duration":10}, desc: "全体友方最大生命值提升{buff_value}%,持续{dur}秒" }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"buff_value":50,"buff_duration":15}, desc: "全体友方最大生命值提升{buff_value}%,持续{dur}秒" }, @@ -829,7 +853,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"proc_skill":{"s_uuid":6507,"chance":10,"overrides":{"buff_value":30,"TGroup": TGroup.Self}}} }, ], }, - 6201: { uuid: 6201, name: "飓风", lv: 1, cd: 8, ccd: 0, overrides: {"ap":100,"summon_count":2,"proc_skill":{"s_uuid":6507,"chance":20,"overrides":{"buff_value":20}}}, desc: "召唤 {summon_count} 道飓风攻击前方敌人,每道飓风造成 {ap}%伤害,每道飓风释放时有20% 概率增加全体队友20% 攻速", + 6201: { uuid: 6201, name: "飓风", lv: 1, cd: UltCdSet[UltCdLv.Normal].cd, ccd: 0, overrides: {"ap":100,"summon_count":2,"proc_skill":{"s_uuid":6507,"chance":20,"overrides":{"buff_value":20}}}, desc: "召唤 {summon_count} 道飓风攻击前方敌人,每道飓风造成 {ap}%伤害,每道飓风释放时有20% 概率增加全体队友20% 攻速", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":100,"summon_count":3,"proc_skill":{"s_uuid":6507,"chance":20,"overrides":{"buff_value":20}}}, desc: "召唤 {summon_count} 道飓风攻击前方敌人,每道飓风造成 {ap}%伤害,每道飓风释放时有20% 概率增加全体队友20% 攻速" }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":100,"summon_count":4,"proc_skill":{"s_uuid":6507,"chance":20,"overrides":{"buff_value":20}}}, desc: "召唤 {summon_count} 道飓风攻击前方敌人,每道飓风造成 {ap}%伤害,每道飓风释放时有20% 概率增加全体队友20% 攻速" }, @@ -853,7 +877,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"timed_buff_id":7029,"buff_value":10,"buff_chance":20} }, ], }, - 6515: { uuid: 6515, name: "荆棘护盾", lv: 1, cd: 8, ccd: 0, overrides: {"buff_value":20,"TGroup": TGroup.Ally,"hit_count":3,"buff_duration":5}, + 6515: { uuid: 6515, name: "荆棘护盾", lv: 1, cd: UltCdSet[UltCdLv.VerySlow].cd, ccd: 0, overrides: {"buff_value":20,"TGroup": TGroup.Ally,"hit_count":3,"buff_duration":5}, lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"buff_value":25,"TGroup": TGroup.Ally,"hit_count":3,"buff_duration":10} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"buff_value":30,"buff_duration":10,"hit_count":3,"TGroup": TGroup.Ally} }, @@ -879,7 +903,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"timed_buff_id":7030,"buff_value":10,"buff_chance":20} }, ], }, - 6100: { uuid: 6100, name: "寒冰斩", lv: 1, cd: 8, ccd: 0, overrides: {"ap":200,"timed_buff_id":7030,"buff_value":50}, + 6100: { uuid: 6100, name: "寒冰斩", lv: 1, cd: UltCdSet[UltCdLv.Normal].cd, ccd: 0, overrides: {"ap":200,"timed_buff_id":7030,"buff_value":50}, lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":250,"timed_buff_id":7030,"buff_value":50} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":350,"timed_buff_id":7030,"buff_value":80} }, @@ -903,7 +927,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"timed_debuff_id":7005,"debuff_value":30,"debuff_chance":30}, desc: "普通攻击有{debuff_chance}%概率使目标中毒(每0.5秒受到{debuff_value}点伤害,持续{dur}秒)" }, ], }, - 6150: { uuid: 6150, name: "万箭齐发·毒", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"timed_debuff_id":7005,"debuff_value":30,"debuff_chance":50,"icon":"4-Apply-Poison"}, desc: "毒箭如雨,对{target}造成攻击力{ap}%伤害,{debuff_chance}%概率使目标中毒(每0.5秒受到{debuff_value}点伤害,持续{dur}秒)", + 6150: { uuid: 6150, name: "万箭齐发·毒", lv: 1, cd: UltCdSet[UltCdLv.Normal].cd, ccd: 0, overrides: {"ap":150,"timed_debuff_id":7005,"debuff_value":30,"debuff_chance":50,"icon":"4-Apply-Poison"}, desc: "毒箭如雨,对{target}造成攻击力{ap}%伤害,{debuff_chance}%概率使目标中毒(每0.5秒受到{debuff_value}点伤害,持续{dur}秒)", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":200,"buff_value":40,"buff_chance":60} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":250,"buff_value":60,"buff_chance":80,"hit_count":2}, desc: "毒箭如雨,对{target}造成攻击力{ap}%伤害,{buff_chance}%概率使目标中毒(每0.5秒受到{buff_value}点伤害,持续{dur}秒),每支箭可命中{hit_count}个目标" }, @@ -932,7 +956,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"crt":20,"proc_skill":{"s_uuid":6007,"chance":20,"overrides":{"crt":100}}}, desc: "普通攻击暴击率提升{crt}%,并有概率触发连射追箭(必定暴击)" }, ], }, - 6151: { uuid: 6151, name: "裂空箭雨", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"crt":30,"summon_count":5}, desc: "箭雨倾泻,对{target}造成攻击力{ap}%伤害,{crt}%概率暴击", + 6151: { uuid: 6151, name: "裂空箭雨", lv: 1, cd: UltCdSet[UltCdLv.VeryFast].cd, ccd: 0, overrides: {"ap":150,"crt":30,"summon_count":5}, desc: "箭雨倾泻,对{target}造成攻击力{ap}%伤害,{crt}%概率暴击", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":200,"crt":50} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":250,"crt":70,"summon_count":6,"hit_count":2}, desc: "箭雨倾泻,对{target}造成攻击力{ap}%伤害,{crt}%概率暴击,每支箭可命中{hit_count}个目标" }, @@ -961,7 +985,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"timed_debuff_id":7008,"debuff_chance":30}, desc: "普通攻击有{debuff_chance}%概率使目标破甲(防御降低,持续{dur}秒)" }, ], }, - 6203: { uuid: 6203, name: "碎甲能量波", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"timed_debuff_id":7008}, desc: "释放碎甲能量波,对{target}造成攻击力{ap}%伤害,并使目标破甲(防御降低,持续{dur}秒)", + 6203: { uuid: 6203, name: "碎甲能量波", lv: 1, cd: UltCdSet[UltCdLv.Normal].cd, ccd: 0, overrides: {"ap":150,"timed_debuff_id":7008}, desc: "释放碎甲能量波,对{target}造成攻击力{ap}%伤害,并使目标破甲(防御降低,持续{dur}秒)", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":200} }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":250,"buff_value":-70}, desc: "释放碎甲能量波,对{target}造成攻击力{ap}%伤害,并使目标破甲加深(防御大幅降低,持续{dur}秒)" }, @@ -990,7 +1014,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"para":15}, desc: "普通攻击有{para}%概率麻痹敌人,减缓其技能冷却恢复" }, ], }, - 6203: { uuid: 6203, name: "雷霆裂空", lv: 1, cd: 8, ccd: 0, overrides: {"ap":200,"para":40}, desc: "释放雷霆裂空波,对{target}造成攻击力{ap}%伤害,{para}%概率麻痹敌人", + 6203: { uuid: 6203, name: "雷霆裂空", lv: 1, cd: UltCdSet[UltCdLv.Normal].cd, ccd: 0, overrides: {"ap":200,"para":40}, desc: "释放雷霆裂空波,对{target}造成攻击力{ap}%伤害,{para}%概率麻痹敌人", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":250,"para":60}, desc: "释放雷霆裂空波,对{target}造成攻击力{ap}%伤害,{para}%概率麻痹敌人" }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":300,"para":80,"hit_count":3}, desc: "释放雷霆裂空波,对{target}造成攻击力{ap}%伤害,可多次命中,{para}%概率麻痹敌人" }, @@ -1019,7 +1043,7 @@ export const HeroInfo: Record = { { lv: 2, s_lv: SkillLv.Lv2, overrides: {"proc_skill":{"s_uuid":6516,"chance":20,"overrides":{"timed_buff_id":7028,"buff_value":10}}}, desc: "普通攻击概率凝聚荆棘护体(受击时反弹{buff_value}%所受伤害,持续{dur}秒)" }, ], }, - 6301: { uuid: 6301, name: "奥术圣壁", lv: 1, cd: 8, ccd: 0, overrides: {"TGroup": TGroup.Ally,"ap":20,"timed_buff_id":7027,"buff_value":10}, desc: "为全体友方施加生命最大值{ap}%的护盾,并附加荆棘(受击时反弹{buff_value}点伤害,持续{dur}秒)", + 6301: { uuid: 6301, name: "奥术圣壁", lv: 1, cd: UltCdSet[UltCdLv.VerySlow].cd, ccd: 0, overrides: {"TGroup": TGroup.Ally,"ap":20,"timed_buff_id":7027,"buff_value":10}, desc: "为全体友方施加生命最大值{ap}%的护盾,并附加荆棘(受击时反弹{buff_value}点伤害,持续{dur}秒)", lv_entries: [ { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":30,"buff_value":15}, desc: "为全体友方施加生命最大值{ap}%的护盾,并附加荆棘(受击时反弹{buff_value}点伤害,持续{dur}秒)" }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":40,"buff_value":20}, desc: "为全体友方施加生命最大值{ap}%的护盾,并附加荆棘(受击时反弹{buff_value}点伤害,持续{dur}秒)" }, diff --git a/put/server/data/heroes.json b/put/server/data/heroes.json index 02903bca..e3118a70 100644 --- a/put/server/data/heroes.json +++ b/put/server/data/heroes.json @@ -5,7 +5,7 @@ "name": "叠甲骑士", "comment": "CSV导入:自身护盾+全体护盾", "path": "hk1", - "rarity": 1, + "rarity": 3, "roleKey": "Tank", "growKey": "Tank", "typeKey": "Melee", @@ -40,8 +40,8 @@ { "uuid": 6301, "name": "魔法盾", - "cd": 8, - "cdExpr": null, + "cd": 10, + "cdExpr": "UltCdSet[UltCdLv.VerySlow].cd", "overrides": { "ap": 30 }, @@ -97,14 +97,15 @@ "name": "钢铁壁垒", "icon": "46-Iron-Clad" } - ] + ], + "fend": {} }, { "uuid": 5002, "name": "易伤剑仙", "comment": "CSV导入:击退压场+易伤放大;复刻酒仙", "path": "hk3", - "rarity": 1, + "rarity": 3, "roleKey": "Warrior", "growKey": "Warrior", "typeKey": "Melee", @@ -140,7 +141,7 @@ "uuid": 6101, "name": "气斩", "cd": 8, - "cdExpr": null, + "cdExpr": "UltCdSet[UltCdLv.Normal].cd", "overrides": { "ap": 150, "timed_debuff_id": 7002, @@ -199,14 +200,15 @@ "name": "不屈战意", "icon": "29-Endure" } - ] + ], + "fend": {} }, { "uuid": 5003, "name": "眩晕暴击哥", "comment": "CSV导入:高爆发+击晕收割;复刻齐天大圣", "path": "hk5", - "rarity": 1, + "rarity": 3, "roleKey": "Warrior", "growKey": "Warrior", "typeKey": "Melee", @@ -242,7 +244,7 @@ "uuid": 6104, "name": "开山斧", "cd": 8, - "cdExpr": null, + "cdExpr": "UltCdSet[UltCdLv.Normal].cd", "overrides": { "ap": 300, "stun": 100 @@ -298,14 +300,15 @@ "name": "不屈战意", "icon": "29-Endure" } - ] + ], + "fend": {} }, { "uuid": 5004, "name": "刀刀暴击", "comment": "CSV导入:暴击/暴伤双光环乘区;复刻剑圣", "path": "hc1", - "rarity": 1, + "rarity": 3, "roleKey": "Assassin", "growKey": "Assassin", "typeKey": "Mid", @@ -340,8 +343,8 @@ { "uuid": 6100, "name": "光闪", - "cd": 8, - "cdExpr": null, + "cd": 6, + "cdExpr": "UltCdSet[UltCdLv.VeryFast].cd", "overrides": { "ap": 150 }, @@ -399,14 +402,15 @@ "name": "致命本能", "icon": "36-Guardian-Stance" } - ] + ], + "fend": {} }, { "uuid": 5005, "name": "出血贼", "comment": "CSV导入:入场先手+受击格挡;复刻剑豪", "path": "hc2", - "rarity": 1, + "rarity": 3, "roleKey": "Assassin", "growKey": "Assassin", "typeKey": "Mid", @@ -443,8 +447,8 @@ { "uuid": 6103, "name": "闪电斩", - "cd": 8, - "cdExpr": null, + "cd": 6, + "cdExpr": "UltCdSet[UltCdLv.VeryFast].cd", "overrides": { "ap": 150 }, @@ -501,14 +505,15 @@ "name": "致命本能", "icon": "36-Guardian-Stance" } - ] + ], + "fend": {} }, { "uuid": 5006, "name": "冻箭哥", "comment": "CSV导入:多重单体箭,带冰冻", "path": "ha1", - "rarity": 1, + "rarity": 3, "roleKey": "Archer", "growKey": "Archer", "typeKey": "Long", @@ -544,7 +549,7 @@ "uuid": 6150, "name": "万箭齐发·冰", "cd": 8, - "cdExpr": null, + "cdExpr": "UltCdSet[UltCdLv.Normal].cd", "overrides": { "ap": 150, "frz": 30, @@ -601,14 +606,15 @@ "name": "鹰眼锁定", "icon": "27-Hawkeye" } - ] + ], + "fend": {} }, { "uuid": 5007, "name": "击退火女", "comment": "CSV导入:群体击退/麻痹压场;复刻深渊女王", "path": "hm1", - "rarity": 1, + "rarity": 3, "roleKey": "Mage", "growKey": "Mage", "typeKey": "Long", @@ -644,7 +650,7 @@ "uuid": 6200, "name": "火焰喷射", "cd": 8, - "cdExpr": null, + "cdExpr": "UltCdSet[UltCdLv.Normal].cd", "overrides": { "ap": 250, "bck": 100 @@ -701,14 +707,15 @@ "name": "奥术共鸣", "icon": "100-Enchant-Magic" } - ] + ], + "fend": {} }, { "uuid": 5008, "name": "团疗奶爸", "comment": "CSV导入:全体治疗续航+自身护盾", "path": "hh1", - "rarity": 1, + "rarity": 3, "roleKey": "Support", "growKey": "Support", "typeKey": "Long", @@ -743,8 +750,8 @@ { "uuid": 6302, "name": "治疗", - "cd": 8, - "cdExpr": null, + "cd": 10, + "cdExpr": "UltCdSet[UltCdLv.VerySlow].cd", "overrides": { "ap": 30 }, @@ -798,14 +805,15 @@ "name": "守护之心", "icon": "29-Endure" } - ] + ], + "fend": {} }, { "uuid": 5009, "name": "甲虫领主", "comment": "", "path": "hk2", - "rarity": 2, + "rarity": 3, "roleKey": "Tank", "growKey": "Tank", "typeKey": "Melee", @@ -846,7 +854,7 @@ "uuid": 6102, "name": "", "cd": 8, - "cdExpr": null, + "cdExpr": "UltCdSet[UltCdLv.Normal].cd", "overrides": { "ap": 250, "bck": 30 @@ -902,7 +910,8 @@ "name": "钢铁壁垒", "icon": "46-Iron-Clad" } - ] + ], + "fend": {} }, { "uuid": 5010, @@ -943,8 +952,8 @@ { "uuid": 6151, "name": "", - "cd": 8, - "cdExpr": null, + "cd": 6, + "cdExpr": "UltCdSet[UltCdLv.VeryFast].cd", "overrides": { "ap": 70, "summon_count": 5, @@ -1004,7 +1013,8 @@ "name": "鹰眼锁定", "icon": "27-Hawkeye" } - ] + ], + "fend": {} }, { "uuid": 5011, @@ -1050,8 +1060,8 @@ { "uuid": 6517, "name": "生命爆发", - "cd": 8, - "cdExpr": null, + "cd": 10, + "cdExpr": "UltCdSet[UltCdLv.VerySlow].cd", "overrides": { "buff_value": 30, "buff_duration": 10 @@ -1109,7 +1119,8 @@ "name": "钢铁壁垒", "icon": "46-Iron-Clad" } - ] + ], + "fend": {} }, { "uuid": 5012, @@ -1157,7 +1168,7 @@ "uuid": 6201, "name": "飓风", "cd": 8, - "cdExpr": null, + "cdExpr": "UltCdSet[UltCdLv.Normal].cd", "overrides": { "ap": 100, "summon_count": 2, @@ -1233,7 +1244,8 @@ "name": "奥术共鸣", "icon": "100-Enchant-Magic" } - ] + ], + "fend": {} }, { "uuid": 5013, @@ -1275,8 +1287,8 @@ { "uuid": 6515, "name": "荆棘护盾", - "cd": 8, - "cdExpr": null, + "cd": 10, + "cdExpr": "UltCdSet[UltCdLv.VerySlow].cd", "overrides": { "buff_value": 20, "TGroup": "Ally", @@ -1338,7 +1350,8 @@ "name": "守护之心", "icon": "29-Endure" } - ] + ], + "fend": {} }, { "uuid": 5014, @@ -1383,7 +1396,7 @@ "uuid": 6100, "name": "寒冰斩", "cd": 8, - "cdExpr": null, + "cdExpr": "UltCdSet[UltCdLv.Normal].cd", "overrides": { "ap": 200, "timed_buff_id": 7030, @@ -1441,14 +1454,15 @@ "name": "不屈战意", "icon": "29-Endure" } - ] + ], + "fend": {} }, { "uuid": 5015, "name": "毒箭猎手", "comment": "毒伤持续流:普攻淬毒叠层+毒雨铺DoT+攻击光环喂养毒伤", "path": "ha3", - "rarity": 2, + "rarity": 3, "roleKey": "Archer", "growKey": "Archer", "typeKey": "Long", @@ -1488,7 +1502,7 @@ "uuid": 6150, "name": "万箭齐发·毒", "cd": 8, - "cdExpr": null, + "cdExpr": "UltCdSet[UltCdLv.Normal].cd", "overrides": { "ap": 150, "timed_debuff_id": 7005, @@ -1565,7 +1579,8 @@ "name": "剧毒淬炼", "icon": "27-Hawkeye" } - ] + ], + "fend": {} }, { "uuid": 5016, @@ -1616,8 +1631,8 @@ { "uuid": 6151, "name": "裂空箭雨", - "cd": 8, - "cdExpr": null, + "cd": 6, + "cdExpr": "UltCdSet[UltCdLv.VeryFast].cd", "overrides": { "ap": 150, "crt": 30, @@ -1688,7 +1703,8 @@ "name": "猎杀直觉", "icon": "27-Hawkeye" } - ] + ], + "fend": {} }, { "uuid": 5017, @@ -1734,7 +1750,7 @@ "uuid": 6203, "name": "碎甲能量波", "cd": 8, - "cdExpr": null, + "cdExpr": "UltCdSet[UltCdLv.Normal].cd", "overrides": { "ap": 150, "timed_debuff_id": 7008 @@ -1802,7 +1818,8 @@ "name": "奥术共鸣", "icon": "100-Enchant-Magic" } - ] + ], + "fend": {} }, { "uuid": 5018, @@ -1847,7 +1864,7 @@ "uuid": 6203, "name": "雷霆裂空", "cd": 8, - "cdExpr": null, + "cdExpr": "UltCdSet[UltCdLv.Normal].cd", "overrides": { "ap": 200, "para": 40 @@ -1918,7 +1935,8 @@ "name": "奥术共鸣", "icon": "100-Enchant-Magic" } - ] + ], + "fend": {} }, { "uuid": 5019, @@ -1969,8 +1987,8 @@ { "uuid": 6301, "name": "奥术圣壁", - "cd": 8, - "cdExpr": null, + "cd": 10, + "cdExpr": "UltCdSet[UltCdLv.VerySlow].cd", "overrides": { "TGroup": "Ally", "ap": 20, @@ -2042,7 +2060,8 @@ "name": "守护之心", "icon": "29-Endure" } - ] + ], + "fend": {} } ] } \ No newline at end of file diff --git a/put/server/data/heroes.json编辑指引.md b/put/server/data/heroes.json编辑指引.md index 1aa53884..5bf440ca 100644 --- a/put/server/data/heroes.json编辑指引.md +++ b/put/server/data/heroes.json编辑指引.md @@ -59,7 +59,7 @@ **大招 skills[1]** - `uuid` ∈ `ROLE_ULT_SKILL[roleKey]`;辅助类底座(`SUPPORT_ULT` 列表)任意职业可作大招; -- `cd: 8`、`cdExpr: null`; +- `cdExpr` = `"UltCdSet[UltCdLv.].cd"`(Tier ∈ VeryFast/Fast/Normal/Slow/VerySlow),`cd` 填对应数值(6/7/8/9/10);按技能效果类型选档:单体爆发=VeryFast、群体伤害/控制=Normal、全体增益/治疗/护盾=VerySlow,Fast/Slow 为中间细分档; - `lv_entries` 两档:`{lv:8, s_lv:2, ...}`、`{lv:16, s_lv:3, ...}`。 **通用** @@ -173,7 +173,8 @@ - 引用不存在的技能/光环/buff uuid 或 `path` → 编译或运行期才爆; - 写独立 `revive` 字段 → 已废弃,复活走 dead 组; - 触发技/光环解锁写 lv6、大招档位写 lv9 → 现行惯例 lv4 / lv8+lv16; -- 普攻用数值 cd 而不给 `cdExpr` → 丢失攻速档位语义(编辑器攻速下拉失效); +- 普攻/大招用数值 cd 而不给 `cdExpr` → 丢失档位语义(编辑器档位下拉失效,导出 heroSet.ts 变裸数字); +- 大招误用 `AtkSpeedSet` 作 `cdExpr` → 普攻档(0.75~1.5s)与大招档(6~10s)是两套体系,大招必须走 `UltCdSet`; - 档位 overrides 全量复制基础档 → 浅合并下冗余且后续改基础值不生效; - desc 与 overrides 数值脱节 → desc 模板只写 `{ap}` 等占位符,不要硬编码数字; - 对敌技能 debuff 误用 `timed_buff_id` → buff 缺省挂施法者自身,会把减益挂到自己身上;应改用 `timed_debuff_id`(详见 §6.1); diff --git a/put/web/src/App.vue b/put/web/src/App.vue index 829d1eea..4f464c58 100644 --- a/put/web/src/App.vue +++ b/put/web/src/App.vue @@ -226,6 +226,7 @@ import { api } from './api' import { HERO_ROLES, GROW_TYPES, H_TYPES, ROLE_ATK_SKILL, ROLE_ULT_SKILL, SUPPORT_ULT, + ROLE_DEFAULTS, ULT_CD_MAP, defaultSkill, } from './constants' import SkillEditor from './components/SkillEditor.vue' @@ -458,9 +459,10 @@ function addUltSkill() { const first = ultSkillOptions.value[0] if (!first) return ElMessage.warning('当前职业无可用大招底座') const sk = defaultSkill(first.uuid) - // 大招提供 lv8(SkillLv.Lv2)/lv16(SkillLv.Lv3) 档位,不默认注入 summon_count - sk.cd = 8 - sk.cdExpr = null + // 大招 CD 按职业默认档生成(UltCdSet 档位),提供 lv8(SkillLv.Lv2)/lv16(SkillLv.Lv3) 档位,不默认注入 summon_count + const ultCdConf = ULT_CD_MAP[ROLE_DEFAULTS[current.value.roleKey]?.ultCd] || ULT_CD_MAP.Normal + sk.cd = ultCdConf.cd + sk.cdExpr = ultCdConf.cdExpr sk.overrides = {} sk.lv_entries = [ { lv: 8, s_lv: 2, overrides: {}, desc: '' }, diff --git a/put/web/src/components/HeroWizard.vue b/put/web/src/components/HeroWizard.vue index 58e9fdf5..b363c304 100644 --- a/put/web/src/components/HeroWizard.vue +++ b/put/web/src/components/HeroWizard.vue @@ -69,8 +69,13 @@ + + + + + -
普攻自动按攻速档生成 cd/cdExpr + lv2 档(ap120);大招自动 cd:8 + lv8/lv16 档
+
普攻自动按攻速档生成 cd/cdExpr + lv2 档(ap120);大招自动按CD档生成 cd/cdExpr + lv8/lv16 档
@@ -115,7 +120,7 @@