diff --git a/assets/script/game/hero/SCastSystem.ts b/assets/script/game/hero/SCastSystem.ts index 8cee4320..a598771c 100644 --- a/assets/script/game/hero/SCastSystem.ts +++ b/assets/script/game/hero/SCastSystem.ts @@ -195,7 +195,7 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate private applyFriendlySkillEffects(_s_uuid: number, _skillLv: number, config: SkillConfig, _heroView: HeroViewComp, _cAttrsComp: HeroAttrsComp, targets: HeroViewComp[], _targetPos: Vec3 | null) { const kind = config.kind ?? SkillKind.Support; const sUp = SkillUpList[_s_uuid] ?? SkillUpList[1001]; - const sAp =(config.ap+sUp.ap*_skillLv)/100; + const sAp =config.ap+sUp.ap*_skillLv; const sHit=config.hit_count+sUp.hit_count*_skillLv; const selectedTargets = this.pickRandomFriendlyTargets(targets, sHit); const applyTargets = kind === SkillKind.Heal ? this.sortTargetsByLowestHp(selectedTargets) : selectedTargets; @@ -204,7 +204,8 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate const model = target.ent.get(HeroAttrsComp); if (!model || model.is_dead) continue; if (kind === SkillKind.Heal && sAp !== 0) { - const addHp = Math.floor(model.add_hp(sAp*_cAttrsComp.ap)); + const addHp = Math.floor(sAp*_cAttrsComp.ap/100);//技能的ap是百分值 需要/100 + model.add_hp(addHp); target.health(addHp); } else if (kind === SkillKind.Shield && sAp !== 0) { const addShield = Math.floor(sAp*_cAttrsComp.ap); diff --git a/assets/script/game/skill/Skill.ts b/assets/script/game/skill/Skill.ts index ec249583..5c8d2282 100644 --- a/assets/script/game/skill/Skill.ts +++ b/assets/script/game/skill/Skill.ts @@ -210,7 +210,7 @@ export class Skill extends ecs.Entity { const sBck = (config.bck ?? 0)+(SUp.bck*skill_lv); const sAp =config.ap+(SUp.ap*skill_lv); const sHit=config.hit_count+(SUp.hit_count*skill_lv) + cAttrsComp.puncture - sDataCom.Attrs[Attrs.ap] = Math.floor(cAttrsComp.ap*sAp/100); + sDataCom.Attrs[Attrs.ap] = Math.floor(cAttrsComp.ap*sAp/100); //技能的ap是百分值 需要/100 而且需要再最终计算总ap时再/100,不然会出现ap为90%变0 sDataCom.Attrs[Attrs.critical] = cAttrsComp.critical + sCrt; sDataCom.Attrs[Attrs.freeze_chance] = cAttrsComp.freeze_chance + sFrz; sDataCom.Attrs[Attrs.back_chance] = cAttrsComp.back_chance + sBck;