From f198885f31c9c7eb19eb28adce562e39e64d581c Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 18 七月 2025 16:23:11 +0800 Subject: [PATCH] 121 【武将】武将系统-服务端(属性计算、战斗力计算;新角色初始给默认装备、默认阵容武将;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 114 +++++++++++++++++++++++++++++--------------------------- 1 files changed, 59 insertions(+), 55 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py index 29411cc..e39ca0d 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py @@ -68,6 +68,7 @@ ("WORD", "DefInheritPer", 0), ("WORD", "HPInheritPer", 0), ("dict", "BatAttrDict", 0), + ("list", "FetterIDList", 0), ), "HeroTalent":( @@ -100,6 +101,13 @@ "HeroFetter":( ("WORD", "FetterID", 1), ("list", "HeroIDList", 0), + ("list", "AttrIDList", 0), + ("list", "AttrValueList", 0), + ), + + "HeroLineupHalo":( + ("WORD", "Country", 1), + ("BYTE", "NeedHeroCount", 0), ("list", "AttrIDList", 0), ("list", "AttrValueList", 0), ), @@ -143,6 +151,11 @@ ("DWORD", "Quality", 1), ("DWORD", "HeroLV", 1), ("list", "UPCostItem", 0), + ), + + "PlayerAttr":( + ("DWORD", "AttrID", 1), + ("char", "Parameter", 0), ), "MainChapter":( @@ -697,33 +710,9 @@ "PlayerLV":( ("WORD", "LV", 1), ("DWORD", "Exp", 0), - ("BYTE", "TalentPoint", 0), - ("DWORD", "ReExp", 0), - ("DWORD", "ReMaxHP", 0), - ("DWORD", "ReAtk", 0), - ("DWORD", "ReDef", 0), - ("DWORD", "ReHit", 0), - ("DWORD", "ReMiss", 0), - ("DWORD", "ReAtkSpeed", 0), - ("DWORD", "ReSkillAtkRate", 0), - ("DWORD", "ReDamagePer", 0), - ("DWORD", "ReDamReduce", 0), - ("DWORD", "ReIgnoreDefRate", 0), - ("DWORD", "ReLuckyHitRate", 0), - ("DWORD", "ReLuckyHit", 0), - ("DWORD", "ReBleedDamage", 0), - ("DWORD", "ReIceAtk", 0), - ("DWORD", "ReIceDef", 0), - ("DWORD", "RePetAtk", 0), - ("DWORD", "RePetSkillAtkRate", 0), - ("DWORD", "RePetDamPer", 0), - ("DWORD", "ReFinalHurt", 0), - ("DWORD", "ReFinalHurtReduce", 0), - ("DWORD", "RePotionReply", 0), - ("DWORD", "RePotionCD", 0), - ("DWORD", "AttackEff", 0), - ("DWORD", "ReFightPower", 0), - ("DWORD", "IceLodeFightPower", 0), + ("DWORD", "MaxHP", 0), + ("DWORD", "Atk", 0), + ("DWORD", "Def", 0), ), "SpecMapPlayerAttrFormat":( @@ -2868,7 +2857,8 @@ def GetAtkInheritPer(self): return self.attrTuple[7] # 攻击继承 WORD def GetDefInheritPer(self): return self.attrTuple[8] # 防御继承 WORD def GetHPInheritPer(self): return self.attrTuple[9] # 生命继承 WORD - def GetBatAttrDict(self): return self.attrTuple[10] # 其他战斗属性字典 {"属性ID":值, ...} dict + def GetBatAttrDict(self): return self.attrTuple[10] # 其他战斗属性字典 {"属性ID":值, ...} dict + def GetFetterIDList(self): return self.attrTuple[11] # 羁绊ID列表 list # 武将星级天赋表 class IPY_HeroTalent(): @@ -2921,6 +2911,18 @@ def GetFetterID(self): return self.attrTuple[0] # 羁绊ID WORD def GetHeroIDList(self): return self.attrTuple[1] # 武将ID组合列表 list + def GetAttrIDList(self): return self.attrTuple[2] # 属性ID列表 list + def GetAttrValueList(self): return self.attrTuple[3] # 属性值列表 list + +# 阵容光环表 +class IPY_HeroLineupHalo(): + + def __init__(self): + self.attrTuple = None + return + + def GetCountry(self): return self.attrTuple[0] # 国家 WORD + def GetNeedHeroCount(self): return self.attrTuple[1] # 所需武将数 BYTE def GetAttrIDList(self): return self.attrTuple[2] # 属性ID列表 list def GetAttrValueList(self): return self.attrTuple[3] # 属性值列表 list @@ -2989,6 +2991,16 @@ def GetQuality(self): return self.attrTuple[0] # 品质 DWORD def GetHeroLV(self): return self.attrTuple[1] # 武将等级 DWORD def GetUPCostItem(self): return self.attrTuple[2] # 升级到下级消耗道具 list + +# 属性条目表 +class IPY_PlayerAttr(): + + def __init__(self): + self.attrTuple = None + return + + def GetAttrID(self): return self.attrTuple[0] # 属性ID DWORD + def GetParameter(self): return self.attrTuple[1] # 属性名、参数名 char # 主线章节表 class IPY_MainChapter(): @@ -3848,33 +3860,9 @@ def GetLV(self): return self.attrTuple[0] # 玩家等级 WORD def GetExp(self): return self.attrTuple[1] # 升级所需经验 DWORD - def GetTalentPoint(self): return self.attrTuple[2] # 等级获得的天赋点 BYTE - def GetReExp(self): return self.attrTuple[3] # 等级经验效率(second) DWORD - def GetReMaxHP(self): return self.attrTuple[4] # 生命 DWORD - def GetReAtk(self): return self.attrTuple[5] # 攻击 DWORD - def GetReDef(self): return self.attrTuple[6] # 防御 DWORD - def GetReHit(self): return self.attrTuple[7] # 命中 DWORD - def GetReMiss(self): return self.attrTuple[8] # 闪避 DWORD - def GetReAtkSpeed(self): return self.attrTuple[9] # 攻速 DWORD - def GetReSkillAtkRate(self): return self.attrTuple[10] # 技能伤害比例 DWORD - def GetReDamagePer(self): return self.attrTuple[11] # 增加伤害 DWORD - def GetReDamReduce(self): return self.attrTuple[12] # 减少伤害 DWORD - def GetReIgnoreDefRate(self): return self.attrTuple[13] # 无视防御比例 DWORD - def GetReLuckyHitRate(self): return self.attrTuple[14] # 会心一击率 DWORD - def GetReLuckyHit(self): return self.attrTuple[15] # 会心一击伤害 DWORD - def GetReBleedDamage(self): return self.attrTuple[16] # 流血伤害增加 DWORD - def GetReIceAtk(self): return self.attrTuple[17] # 真实伤害 DWORD - def GetReIceDef(self): return self.attrTuple[18] # 真实抵御 DWORD - def GetRePetAtk(self): return self.attrTuple[19] # 灵宠攻击 DWORD - def GetRePetSkillAtkRate(self): return self.attrTuple[20] # 灵宠技能 DWORD - def GetRePetDamPer(self): return self.attrTuple[21] # 灵宠伤害增加 DWORD - def GetReFinalHurt(self): return self.attrTuple[22] # 固定伤害增加 DWORD - def GetReFinalHurtReduce(self): return self.attrTuple[23] # 固定伤害减少 DWORD - def GetRePotionReply(self): return self.attrTuple[24] # 血瓶恢复量 DWORD - def GetRePotionCD(self): return self.attrTuple[25] # 血瓶CD DWORD - def GetAttackEff(self): return self.attrTuple[26] # 挂机效率 DWORD - def GetReFightPower(self): return self.attrTuple[27] # 战斗力 DWORD - def GetIceLodeFightPower(self): return self.attrTuple[28] # 冰晶矿脉扫荡战斗力 DWORD + def GetMaxHP(self): return self.attrTuple[2] # 生命 DWORD + def GetAtk(self): return self.attrTuple[3] # 攻击 DWORD + def GetDef(self): return self.attrTuple[4] # 防御 DWORD # 特殊地图玩家属性公式表 class IPY_SpecMapPlayerAttrFormat(): @@ -7101,11 +7089,13 @@ self.__LoadFileData("HeroBreak", onlyCheck) self.__LoadFileData("HeroAwake", onlyCheck) self.__LoadFileData("HeroFetter", onlyCheck) + self.__LoadFileData("HeroLineupHalo", onlyCheck) self.__LoadFileData("HeroSkin", onlyCheck) self.__LoadFileData("HeroQuality", onlyCheck) self.__LoadFileData("HeroQualityBreak", onlyCheck) self.__LoadFileData("HeroQualityAwake", onlyCheck) self.__LoadFileData("HeroQualityLV", onlyCheck) + self.__LoadFileData("PlayerAttr", onlyCheck) self.__LoadFileData("MainChapter", onlyCheck) self.__LoadFileData("MainLevel", onlyCheck) self.__LoadFileData("NPCLineup", onlyCheck) @@ -7649,6 +7639,13 @@ self.CheckLoadData("HeroFetter") return self.ipyHeroFetterCache[index] + def GetHeroLineupHaloCount(self): + self.CheckLoadData("HeroLineupHalo") + return self.ipyHeroLineupHaloLen + def GetHeroLineupHaloByIndex(self, index): + self.CheckLoadData("HeroLineupHalo") + return self.ipyHeroLineupHaloCache[index] + def GetHeroSkinCount(self): self.CheckLoadData("HeroSkin") return self.ipyHeroSkinLen @@ -7684,6 +7681,13 @@ self.CheckLoadData("HeroQualityLV") return self.ipyHeroQualityLVCache[index] + def GetPlayerAttrCount(self): + self.CheckLoadData("PlayerAttr") + return self.ipyPlayerAttrLen + def GetPlayerAttrByIndex(self, index): + self.CheckLoadData("PlayerAttr") + return self.ipyPlayerAttrCache[index] + def GetMainChapterCount(self): self.CheckLoadData("MainChapter") return self.ipyMainChapterLen -- Gitblit v1.8.0