fix(技能): 修复技能等级计算错误,默认等级从1改为0

将技能相关计算的默认等级从1统一修正为0,确保等级计算逻辑的一致性。具体包括:
- HeroAttrsComp.getSkillLevel() 方法在无效技能ID时返回0
- Hero实体构建技能模型时使用Math.max确保最低等级为0
- SDataCom组件初始化skill_lv为0
- Skill实体加载时skill_lv参数默认值改为0,计算时使用Math.max(0, skill_lv)
This commit is contained in:
panw
2026-03-24 10:25:12 +08:00
parent abcbeff9ab
commit 382f6d2b32
4 changed files with 13 additions and 13 deletions

View File

@@ -83,8 +83,8 @@ export class Hero extends ecs.Entity {
for (const key in hero.skills) {
const skill = hero.skills[key];
if (!skill) continue;
//用于增量 计算最终技能等级英雄等级与技能初始等级均从1开始需各减1抵消故-2
model.skills[skill.uuid] = { ...skill, lv: skill.lv + hero_lv - 2, ccd: skill.cd };
//用于增量 计算最终技能等级英雄等级与技能初始等级均从1开始需各减1抵消故-2最低等级时0
model.skills[skill.uuid] = { ...skill, lv: Math.max(0,skill.lv + hero_lv - 2), ccd: skill.cd };
}
model.updateSkillDistanceCache();

View File

@@ -139,8 +139,8 @@ export class HeroAttrsComp extends ecs.Comp {
return this.frost_end_time > 0
}
getSkillLevel(skillId: number): number {
if (!skillId) return 1;
return this.skills[skillId]?.lv ?? 1;
if (!skillId) return 0;
return this.skills[skillId]?.lv ?? 0;
}
getSkillIds(): number[] {