hxp
2026-01-21 2aa11594d4e1c14b69cb140b82de62c4f5e16318
423 【内政】命格系统-服务端(命格技能战力计算;)
3个文件已修改
24 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
@@ -692,7 +692,7 @@
    mgSkillLVDict = olPlayer.GetCalcSpecInfo(ChConfig.Def_CalcAttr_Mingge, mgPresetID)
    mgSkillIDList = []
    for skillTypeID, skillLV in mgSkillLVDict.items():
        skillID = skillTypeID + skillLV - 1
        skillID = SkillCommon.GetSkillIDBySkillTypeID(skillTypeID, skillLV)
        if skillID not in mgSkillIDList:
            mgSkillIDList.append(skillID)
    #shapeType = 0
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py
@@ -19,6 +19,7 @@
import BattleObj
import TurnAttack
import PyGameData
import SkillCommon
import ShareDefine
import PlayerPreset
import PlayerControl
@@ -951,6 +952,7 @@
    horseAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_Horse)
    beautyAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_Beauty)
    minggeAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_Mingge, mgPresetID)
    mgSkillLVDict = olPlayer.GetCalcSpecInfo(ChConfig.Def_CalcAttr_Mingge, mgPresetID)
    dingjungeAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_Dingjunge) if exclusiveMapID == ChConfig.Def_FBMapID_Dingjunge else {}
    
    GameWorld.DebugLog("    国家武将统计=%s" % countryHeroInfo, playerID)
@@ -971,7 +973,7 @@
    GameWorld.DebugLog("    主幻境阁属性=%s" % hjgAttrDict, playerID)
    GameWorld.DebugLog("    主公坐骑属性=%s" % horseAttrDict, playerID)
    GameWorld.DebugLog("    主公红颜属性=%s" % beautyAttrDict, playerID)
    GameWorld.DebugLog("    主公命格属性=%s,mgPresetID=%s" % (minggeAttrDict, mgPresetID), playerID)
    GameWorld.DebugLog("    主公命格属性=%s,技能:%s,mgPresetID=%s" % (minggeAttrDict, mgSkillLVDict, mgPresetID), playerID)
    GameWorld.DebugLog("    定军专属属性=%s" % dingjungeAttrDict, playerID)
    effCardAddPer = heroPreset.GetEffCardAddPer()
    effCardAddPer /= 10000.0
@@ -981,9 +983,23 @@
    OfficialLV = curPlayer.GetOfficialRank()
    GameWorld.DebugLog("    PlayerLV=%s,OfficialLV=%s" % (PlayerLV, OfficialLV), playerID)
    
    mgSkillFightPower = 0
    for skillTypeID, skillLV in mgSkillLVDict.items():
        skillID = SkillCommon.GetSkillIDBySkillTypeID(skillTypeID, skillLV)
        skillData = IpyGameDataPY.GetIpyGameData("Skill", skillID)
        if not skillData:
            continue
        paramDict = {"SkillPower":skillData.GetFightPower(), "PlayerLV":PlayerLV, "OfficialLV":OfficialLV}
        sFightPower = FormulaControl.Eval("skillFPFormula", skillFPFormula, paramDict, toInt=True)
        mgSkillFightPower += sFightPower
    if mgSkillLVDict:
        GameWorld.DebugLog("    命格技能战力=%s,mgSkillLVDict=%s" % (mgSkillFightPower, mgSkillLVDict), playerID)
    fpRatioIpyData = IpyGameDataPY.GetIpyGameData("FightPowerRatio", OfficialLV)
    
    lineupFightPower = 0 # 阵容总战力
    lineupFightPower += mgSkillFightPower
    for heroID, selfAttrDict in heroSelfAttrInfo.items():
        lineupHero = presetLineup.GetLineupHeroByID(heroID)
        if not lineupHero:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -1848,6 +1848,10 @@
    #0通哟  1 PVP类型  2PVE类型  
    return curSkill.GetHurtType() % 10
def GetSkillIDBySkillTypeID(skillTypeID, skillLV=1):
    skillID = skillTypeID + skillLV - 1
    return skillID
def isDamageShieldSkill(skillData):
    ## 是否承伤盾技能
    return skillData.GetAtkType() == ChConfig.BuffAtkType_DamageShield