423 【内政】命格系统-服务端(命格卦玉战斗属性增加感悟等级对应基础值配置;品质表改为加成随机值范围;)
| | |
| | | DWORD DefBase; //防御基础值
|
| | | DWORD HPBase; //生命基础值
|
| | | DWORD AtkSpeedBase; //先攻基础值
|
| | | dict BatAttrBaseDict; //其他战斗属性基础值字典,{属性ID:基础值, ...}
|
| | | };
|
| | |
|
| | | //卦玉品质表
|
| | |
| | | float HPPlus; //生命加成
|
| | | float AtkSpeedPlus; //先攻加成
|
| | | BYTE AttrLibCnt; //库属性条数
|
| | | list AttrRange; //通用属性范围,下限|上限
|
| | | dict AttrRangeDict; //指定属性范围字典,{指定属性ID:[范围下限, 上限], ...}
|
| | | list AttrRange; //其他属性通用加成范围,下限|上限
|
| | | dict AttrRangeDict; //其他指定属性加成范围字典,{指定属性ID:[范围下限, 上限], ...}
|
| | | };
|
| | |
|
| | | //卦玉类型表
|
| | |
| | | ("DWORD", "DefBase", 0),
|
| | | ("DWORD", "HPBase", 0),
|
| | | ("DWORD", "AtkSpeedBase", 0),
|
| | | ("dict", "BatAttrBaseDict", 0),
|
| | | ),
|
| | |
|
| | | "MGGuayuQuality":(
|
| | |
| | | def GetAtkBase(self): return self.attrTuple[2] # 攻击基础值 DWORD
|
| | | def GetDefBase(self): return self.attrTuple[3] # 防御基础值 DWORD
|
| | | def GetHPBase(self): return self.attrTuple[4] # 生命基础值 DWORD
|
| | | def GetAtkSpeedBase(self): return self.attrTuple[5] # 先攻基础值 DWORD |
| | | def GetAtkSpeedBase(self): return self.attrTuple[5] # 先攻基础值 DWORD
|
| | | def GetBatAttrBaseDict(self): return self.attrTuple[6] # 其他战斗属性基础值字典,{属性ID:基础值, ...} dict |
| | | |
| | | # 卦玉品质表 |
| | | class IPY_MGGuayuQuality(): |
| | |
| | | def GetHPPlus(self): return self.attrTuple[3] # 生命加成 float
|
| | | def GetAtkSpeedPlus(self): return self.attrTuple[4] # 先攻加成 float
|
| | | def GetAttrLibCnt(self): return self.attrTuple[5] # 库属性条数 BYTE
|
| | | def GetAttrRange(self): return self.attrTuple[6] # 通用属性范围,下限|上限 list
|
| | | def GetAttrRangeDict(self): return self.attrTuple[7] # 指定属性范围字典,{指定属性ID:[范围下限, 上限], ...} dict |
| | | def GetAttrRange(self): return self.attrTuple[6] # 其他属性通用加成范围,下限|上限 list
|
| | | def GetAttrRangeDict(self): return self.attrTuple[7] # 其他指定属性加成范围字典,{指定属性ID:[范围下限, 上限], ...} dict |
| | | |
| | | # 卦玉类型表 |
| | | class IPY_MGGuayuType(): |
| | |
| | | ChConfig.AttrID_MaxHP:[gwIpyData.GetHPBase(), colorIpyData.GetHPPlus()],
|
| | | ChConfig.AttrID_AtkSpeed:[gwIpyData.GetAtkSpeedBase(), colorIpyData.GetAtkSpeedPlus()],
|
| | | }
|
| | | batAttrBaseDict = gwIpyData.GetBatAttrBaseDict() # 其他战斗属性基础值字典,{属性ID:基础值, ...}
|
| | | |
| | | # 四维占比
|
| | | attrProportion = typeIpyData.GetBaseAttrProportion()
|
| | |
|
| | |
| | |
|
| | | # 其他战斗属性
|
| | | else:
|
| | | baseValue = batAttrBaseDict.get(attrID, 0)
|
| | | attrRange = attrRangeDict.get(attrID, attrRangeDefault)
|
| | | if not attrRange or len(attrRange) != 2:
|
| | | continue
|
| | | attrMin, attrMax = attrRange
|
| | | attrValue = random.randint(attrMin, attrMax)
|
| | | GameWorld.DebugLog(" attrID=%s,attrValue=%s(%s~%s)" % (attrID, attrValue, attrMin, attrMax), playerID)
|
| | | plusValue = random.randint(attrMin, attrMax)
|
| | | attrValue = baseValue + plusValue
|
| | | GameWorld.DebugLog(" attrID=%s,attrValue=%s,baseValue=%s,plusValue=%s,(%s~%s)" % (attrID, attrValue, baseValue, plusValue, attrMin, attrMax), playerID)
|
| | |
|
| | | legendAttrIDList.append(attrID)
|
| | | legendAttrValueList.append(attrValue)
|