hch
2026-01-13 167720a142f556bc635c2e37493dc2def984cf1c
419 【内政】命格系统 - 先攻属性
3个文件已修改
103 ■■■■ 已修改文件
Main/Config/Configs/FightPowerRatioConfig.cs 93 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/FightPowerFormula.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/FightPowerManager.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Config/Configs/FightPowerRatioConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:           YYL
//    [  Date ]:           Tuesday, January 6, 2026
//    [  Date ]:           2026年1月13日
//--------------------------------------------------------
using System.Collections.Generic;
@@ -20,6 +20,7 @@
    public float AtkRatio;
    public float MaxHPRatio;
    public float DefRatio;
    public float AtkSpeedRatio;
    public float StunRateRatio;
    public float SuperHitRateRatio;
    public float ComboRateRatio;
@@ -83,93 +84,95 @@
            float.TryParse(tables[3],out DefRatio); 
            float.TryParse(tables[4],out StunRateRatio);
            float.TryParse(tables[4],out AtkSpeedRatio);
            float.TryParse(tables[5],out SuperHitRateRatio);
            float.TryParse(tables[5],out StunRateRatio);
            float.TryParse(tables[6],out ComboRateRatio);
            float.TryParse(tables[6],out SuperHitRateRatio);
            float.TryParse(tables[7],out MissRateRatio);
            float.TryParse(tables[7],out ComboRateRatio);
            float.TryParse(tables[8],out ParryRateRatio);
            float.TryParse(tables[8],out MissRateRatio);
            float.TryParse(tables[9],out SuckHPPerRatio);
            float.TryParse(tables[9],out ParryRateRatio);
            float.TryParse(tables[10],out StunRateDefRatio);
            float.TryParse(tables[10],out SuckHPPerRatio);
            float.TryParse(tables[11],out SuperHitRateDefRatio);
            float.TryParse(tables[11],out StunRateDefRatio);
            float.TryParse(tables[12],out ComboRateDefRatio);
            float.TryParse(tables[12],out SuperHitRateDefRatio);
            float.TryParse(tables[13],out MissRateDefRatio);
            float.TryParse(tables[13],out ComboRateDefRatio);
            float.TryParse(tables[14],out ParryRateDefRatio);
            float.TryParse(tables[14],out MissRateDefRatio);
            float.TryParse(tables[15],out SuckHPPerDefRatio);
            float.TryParse(tables[15],out ParryRateDefRatio);
            float.TryParse(tables[16],out FinalDamPerRatio);
            float.TryParse(tables[16],out SuckHPPerDefRatio);
            float.TryParse(tables[17],out FinalDamPerDefRatio);
            float.TryParse(tables[17],out FinalDamPerRatio);
            float.TryParse(tables[18],out PhyDamPerRatio);
            float.TryParse(tables[18],out FinalDamPerDefRatio);
            float.TryParse(tables[19],out PhyDamPerDefRatio);
            float.TryParse(tables[19],out PhyDamPerRatio);
            float.TryParse(tables[20],out MagDamPerRatio);
            float.TryParse(tables[20],out PhyDamPerDefRatio);
            float.TryParse(tables[21],out MagDamPerDefRatio);
            float.TryParse(tables[21],out MagDamPerRatio);
            float.TryParse(tables[22],out NormalSkillPerRatio);
            float.TryParse(tables[22],out MagDamPerDefRatio);
            float.TryParse(tables[23],out NormalSkillPerDefRatio);
            float.TryParse(tables[23],out NormalSkillPerRatio);
            float.TryParse(tables[24],out AngerSkillPerRatio);
            float.TryParse(tables[24],out NormalSkillPerDefRatio);
            float.TryParse(tables[25],out AngerSkillPerDefRatio);
            float.TryParse(tables[25],out AngerSkillPerRatio);
            float.TryParse(tables[26],out SuperDamPerRatio);
            float.TryParse(tables[26],out AngerSkillPerDefRatio);
            float.TryParse(tables[27],out SuperDamPerDefRatio);
            float.TryParse(tables[27],out SuperDamPerRatio);
            float.TryParse(tables[28],out CurePerRatio);
            float.TryParse(tables[28],out SuperDamPerDefRatio);
            float.TryParse(tables[29],out CurePerDefRatio);
            float.TryParse(tables[29],out CurePerRatio);
            float.TryParse(tables[30],out ShieldPerRatio);
            float.TryParse(tables[30],out CurePerDefRatio);
            float.TryParse(tables[31],out ShieldPerDefRatio);
            float.TryParse(tables[31],out ShieldPerRatio);
            float.TryParse(tables[32],out DOTPerRatio);
            float.TryParse(tables[32],out ShieldPerDefRatio);
            float.TryParse(tables[33],out DOTPerDefRatio);
            float.TryParse(tables[33],out DOTPerRatio);
            float.TryParse(tables[34],out WeiFinalDamPerRatio);
            float.TryParse(tables[34],out DOTPerDefRatio);
            float.TryParse(tables[35],out WeiFinalDamPerDefRatio);
            float.TryParse(tables[35],out WeiFinalDamPerRatio);
            float.TryParse(tables[36],out ShuFinalDamPerRatio);
            float.TryParse(tables[36],out WeiFinalDamPerDefRatio);
            float.TryParse(tables[37],out ShuFinalDamPerDefRatio);
            float.TryParse(tables[37],out ShuFinalDamPerRatio);
            float.TryParse(tables[38],out WuFinalDamPerRatio);
            float.TryParse(tables[38],out ShuFinalDamPerDefRatio);
            float.TryParse(tables[39],out WuFinalDamPerDefRatio);
            float.TryParse(tables[39],out WuFinalDamPerRatio);
            float.TryParse(tables[40],out QunFinalDamPerRatio);
            float.TryParse(tables[40],out WuFinalDamPerDefRatio);
            float.TryParse(tables[41],out QunFinalDamPerDefRatio);
            float.TryParse(tables[41],out QunFinalDamPerRatio);
            float.TryParse(tables[42],out PVPDamPerRatio);
            float.TryParse(tables[42],out QunFinalDamPerDefRatio);
            float.TryParse(tables[43],out PVPDamPerDefRatio);
            float.TryParse(tables[43],out PVPDamPerRatio);
            float.TryParse(tables[44],out GuanchuanRatio);
            float.TryParse(tables[44],out PVPDamPerDefRatio);
            float.TryParse(tables[45],out GuanchuanDefRatio);
            float.TryParse(tables[45],out GuanchuanRatio);
            float.TryParse(tables[46],out ZhaojiaRatio);
            float.TryParse(tables[46],out GuanchuanDefRatio);
            float.TryParse(tables[47],out ZhaojiaDefRatio);
            float.TryParse(tables[47],out ZhaojiaRatio);
            float.TryParse(tables[48],out ZhaojiaDefRatio);
        }
        catch (Exception exception)
        {
Main/System/Main/FightPowerFormula.cs
@@ -39,6 +39,8 @@
    private const string MAXHPRATIO_VALUE = "MaxHPRatio";
    private const string DEF_VALUE = "Def";
    private const string DEFRATIO_VALUE = "DefRatio";
    private const string ATKSPEED_VALUE = "AtkSpeed";
    private const string ATKSPEEDRATIO_VALUE = "AtkSpeedRatio";
    private const string STUNRATE_VALUE = "StunRate";
    private const string STUNRATERATIO_VALUE = "StunRateRatio";
    private const string SUPERHITRATE_VALUE = "SuperHitRate";
@@ -135,7 +137,7 @@
    // 战斗属性公式
    // (lvValue+equipValue+realmValue+gubaoValue+hjgValue+horseValue+beautyValue+fatesValue+dingjungeValue)+(heroSelfValue+lineupHaloValue+starTalentValue+breakLVValue+awakeTalentValue)+fetterValue
    // 战斗力公式
    // long(Atk*AtkRatio+MaxHP*MaxHPRatio+Def*DefRatio+(StunRate*StunRateRatio+SuperHitRate*SuperHitRateRatio+ComboRate*ComboRateRatio+MissRate*MissRateRatio+ParryRate*ParryRateRatio+SuckHPPer*SuckHPPerRatio+StunRateDef*StunRateDefRatio+SuperHitRateDef*SuperHitRateDefRatio+ComboRateDef*ComboRateDefRatio+MissRateDef*MissRateDefRatio+ParryRateDef*ParryRateDefRatio+SuckHPPerDef*SuckHPPerDefRatio+FinalDamPer*FinalDamPerRatio+FinalDamPerDef*FinalDamPerDefRatio+PhyDamPer*PhyDamPerRatio+PhyDamPerDef*PhyDamPerDefRatio+MagDamPer*MagDamPerRatio+MagDamPerDef*MagDamPerDefRatio+NormalSkillPer*NormalSkillPerRatio+NormalSkillPerDef*NormalSkillPerDefRatio+AngerSkillPer*AngerSkillPerRatio+AngerSkillPerDef*AngerSkillPerDefRatio+SuperDamPer*SuperDamPerRatio+SuperDamPerDef*SuperDamPerDefRatio+CurePer*CurePerRatio+CurePerDef*CurePerDefRatio+ShieldPer*ShieldPerRatio+ShieldPerDef*ShieldPerDefRatio+DOTPer*DOTPerRatio+DOTPerDef*DOTPerDefRatio+WeiFinalDamPer*WeiFinalDamPerRatio+WeiFinalDamPerDef*WeiFinalDamPerDefRatio+ShuFinalDamPer*ShuFinalDamPerRatio+ShuFinalDamPerDef*ShuFinalDamPerDefRatio+WuFinalDamPer*WuFinalDamPerRatio+WuFinalDamPerDef*WuFinalDamPerDefRatio+QunFinalDamPer*QunFinalDamPerRatio+QunFinalDamPerDef*QunFinalDamPerDefRatio+PVPDamPer*PVPDamPerRatio+PVPDamPerDef*PVPDamPerDefRatio+Guanchuan*GuanchuanRatio+GuanchuanDef*GuanchuanDefRatio+Zhaojia*ZhaojiaRatio+ZhaojiaDef*ZhaojiaDefRatio)/100.0-55000)
    // long(Atk*AtkRatio+MaxHP*MaxHPRatio+Def*DefRatio+AtkSpeed*AtkSpeedRatio+(StunRate*StunRateRatio+SuperHitRate*SuperHitRateRatio+ComboRate*ComboRateRatio+MissRate*MissRateRatio+ParryRate*ParryRateRatio+SuckHPPer*SuckHPPerRatio+StunRateDef*StunRateDefRatio+SuperHitRateDef*SuperHitRateDefRatio+ComboRateDef*ComboRateDefRatio+MissRateDef*MissRateDefRatio+ParryRateDef*ParryRateDefRatio+SuckHPPerDef*SuckHPPerDefRatio+FinalDamPer*FinalDamPerRatio+FinalDamPerDef*FinalDamPerDefRatio+PhyDamPer*PhyDamPerRatio+PhyDamPerDef*PhyDamPerDefRatio+MagDamPer*MagDamPerRatio+MagDamPerDef*MagDamPerDefRatio+NormalSkillPer*NormalSkillPerRatio+NormalSkillPerDef*NormalSkillPerDefRatio+AngerSkillPer*AngerSkillPerRatio+AngerSkillPerDef*AngerSkillPerDefRatio+SuperDamPer*SuperDamPerRatio+SuperDamPerDef*SuperDamPerDefRatio+CurePer*CurePerRatio+CurePerDef*CurePerDefRatio+ShieldPer*ShieldPerRatio+ShieldPerDef*ShieldPerDefRatio+DOTPer*DOTPerRatio+DOTPerDef*DOTPerDefRatio+WeiFinalDamPer*WeiFinalDamPerRatio+WeiFinalDamPerDef*WeiFinalDamPerDefRatio+ShuFinalDamPer*ShuFinalDamPerRatio+ShuFinalDamPerDef*ShuFinalDamPerDefRatio+WuFinalDamPer*WuFinalDamPerRatio+WuFinalDamPerDef*WuFinalDamPerDefRatio+QunFinalDamPer*QunFinalDamPerRatio+QunFinalDamPerDef*QunFinalDamPerDefRatio+PVPDamPer*PVPDamPerRatio+PVPDamPerDef*PVPDamPerDefRatio+Guanchuan*GuanchuanRatio+GuanchuanDef*GuanchuanDefRatio+Zhaojia*ZhaojiaRatio+ZhaojiaDef*ZhaojiaDefRatio)/100.0-55000)
    // 技能战斗力公式
    // SkillPower*OfficialLV
@@ -199,6 +201,8 @@
        double MaxHPRatio = variables[MAXHPRATIO_VALUE];
        double Def = variables[DEF_VALUE];
        double DefRatio = variables[DEFRATIO_VALUE];
        double AtkSpeed = variables[ATKSPEED_VALUE];
        double AtkSpeedRatio = variables[ATKSPEEDRATIO_VALUE];
        double StunRate = variables[STUNRATE_VALUE];
        double StunRateRatio = variables[STUNRATERATIO_VALUE];
        double SuperHitRate = variables[SUPERHITRATE_VALUE];
@@ -288,7 +292,7 @@
        double ZhaojiaDef = variables[ZHAOJIADEF_VALUE];
        double ZhaojiaDefRatio = variables[ZHAOJIADEFRATIO_VALUE];
        return (long)(Atk*AtkRatio+MaxHP*MaxHPRatio+Def*DefRatio+(StunRate*StunRateRatio+SuperHitRate*SuperHitRateRatio+ComboRate*ComboRateRatio+MissRate*MissRateRatio+ParryRate*ParryRateRatio+SuckHPPer*SuckHPPerRatio+StunRateDef*StunRateDefRatio+SuperHitRateDef*SuperHitRateDefRatio+ComboRateDef*ComboRateDefRatio+MissRateDef*MissRateDefRatio+ParryRateDef*ParryRateDefRatio+SuckHPPerDef*SuckHPPerDefRatio+FinalDamPer*FinalDamPerRatio+FinalDamPerDef*FinalDamPerDefRatio+PhyDamPer*PhyDamPerRatio+PhyDamPerDef*PhyDamPerDefRatio+MagDamPer*MagDamPerRatio+MagDamPerDef*MagDamPerDefRatio+NormalSkillPer*NormalSkillPerRatio+NormalSkillPerDef*NormalSkillPerDefRatio+AngerSkillPer*AngerSkillPerRatio+AngerSkillPerDef*AngerSkillPerDefRatio+SuperDamPer*SuperDamPerRatio+SuperDamPerDef*SuperDamPerDefRatio+CurePer*CurePerRatio+CurePerDef*CurePerDefRatio+ShieldPer*ShieldPerRatio+ShieldPerDef*ShieldPerDefRatio+DOTPer*DOTPerRatio+DOTPerDef*DOTPerDefRatio+WeiFinalDamPer*WeiFinalDamPerRatio+WeiFinalDamPerDef*WeiFinalDamPerDefRatio+ShuFinalDamPer*ShuFinalDamPerRatio+ShuFinalDamPerDef*ShuFinalDamPerDefRatio+WuFinalDamPer*WuFinalDamPerRatio+WuFinalDamPerDef*WuFinalDamPerDefRatio+QunFinalDamPer*QunFinalDamPerRatio+QunFinalDamPerDef*QunFinalDamPerDefRatio+PVPDamPer*PVPDamPerRatio+PVPDamPerDef*PVPDamPerDefRatio+Guanchuan*GuanchuanRatio+GuanchuanDef*GuanchuanDefRatio+Zhaojia*ZhaojiaRatio+ZhaojiaDef*ZhaojiaDefRatio)/100.0-55000);
        return (long)(Atk*AtkRatio+MaxHP*MaxHPRatio+Def*DefRatio+AtkSpeed*AtkSpeedRatio+(StunRate*StunRateRatio+SuperHitRate*SuperHitRateRatio+ComboRate*ComboRateRatio+MissRate*MissRateRatio+ParryRate*ParryRateRatio+SuckHPPer*SuckHPPerRatio+StunRateDef*StunRateDefRatio+SuperHitRateDef*SuperHitRateDefRatio+ComboRateDef*ComboRateDefRatio+MissRateDef*MissRateDefRatio+ParryRateDef*ParryRateDefRatio+SuckHPPerDef*SuckHPPerDefRatio+FinalDamPer*FinalDamPerRatio+FinalDamPerDef*FinalDamPerDefRatio+PhyDamPer*PhyDamPerRatio+PhyDamPerDef*PhyDamPerDefRatio+MagDamPer*MagDamPerRatio+MagDamPerDef*MagDamPerDefRatio+NormalSkillPer*NormalSkillPerRatio+NormalSkillPerDef*NormalSkillPerDefRatio+AngerSkillPer*AngerSkillPerRatio+AngerSkillPerDef*AngerSkillPerDefRatio+SuperDamPer*SuperDamPerRatio+SuperDamPerDef*SuperDamPerDefRatio+CurePer*CurePerRatio+CurePerDef*CurePerDefRatio+ShieldPer*ShieldPerRatio+ShieldPerDef*ShieldPerDefRatio+DOTPer*DOTPerRatio+DOTPerDef*DOTPerDefRatio+WeiFinalDamPer*WeiFinalDamPerRatio+WeiFinalDamPerDef*WeiFinalDamPerDefRatio+ShuFinalDamPer*ShuFinalDamPerRatio+ShuFinalDamPerDef*ShuFinalDamPerDefRatio+WuFinalDamPer*WuFinalDamPerRatio+WuFinalDamPerDef*WuFinalDamPerDefRatio+QunFinalDamPer*QunFinalDamPerRatio+QunFinalDamPerDef*QunFinalDamPerDefRatio+PVPDamPer*PVPDamPerRatio+PVPDamPerDef*PVPDamPerDefRatio+Guanchuan*GuanchuanRatio+GuanchuanDef*GuanchuanDefRatio+Zhaojia*ZhaojiaRatio+ZhaojiaDef*ZhaojiaDefRatio)/100.0-55000);
    }
    public static double GetSkillsFightPower(Dictionary<string, double> variables)
Main/System/Main/FightPowerManager.cs
@@ -96,6 +96,7 @@
    private const string GUANCHUAN_DEF_RATIO = "GuanchuanDefRatio";
    private const string ZHAOJIA_RATIO = "ZhaojiaRatio";
    private const string ZHAOJIA_DEF_RATIO = "ZhaojiaDefRatio";
    private const string ATKSPEEDRATIO_VALUE = "AtkSpeedRatio";
    private const string PLAYER_LV = "PlayerLV";
@@ -551,6 +552,7 @@
        fightPowerVariables[GUANCHUAN_DEF_RATIO] = fightPowerRatioConfig.GuanchuanDefRatio;
        fightPowerVariables[ZHAOJIA_RATIO] = fightPowerRatioConfig.ZhaojiaRatio;
        fightPowerVariables[ZHAOJIA_DEF_RATIO] = fightPowerRatioConfig.ZhaojiaDefRatio;
        fightPowerVariables[ATKSPEEDRATIO_VALUE] = fightPowerRatioConfig.AtkSpeedRatio;
        long fightPower = (long)FightPowerFormula.GetFightPower(fightPowerVariables);