| | |
| | | struct tagRolePoint
|
| | | {
|
| | | BYTE _AttrID; //属性ID
|
| | | dict AddAttrInfoPerPoint; //每点增加属性信息
|
| | | dict AddAttrInfoPerPoint; //每点增加属性信息 {"职业":[[每X点,属性ID,值], ...], ..}
|
| | | BYTE FightPowerPerPoint; //每点附加战斗力
|
| | | dict PointQualityAttrIDDict; //点数品质进阶增加属性ID, 根据职业区分
|
| | | dict PointQualityAttrValueDict; //点数品质进阶增加属性值列表, 根据职业区分
|
| | | list PointQualityIntervalList; //点数品质进阶属性点区间列表
|
| | |
| | | "RolePoint":(
|
| | | ("BYTE", "AttrID", 1),
|
| | | ("dict", "AddAttrInfoPerPoint", 0),
|
| | | ("BYTE", "FightPowerPerPoint", 0),
|
| | | ("dict", "PointQualityAttrIDDict", 0),
|
| | | ("dict", "PointQualityAttrValueDict", 0),
|
| | | ("list", "PointQualityIntervalList", 0),
|
| | |
| | | def __init__(self): |
| | | self.AttrID = 0
|
| | | self.AddAttrInfoPerPoint = {}
|
| | | self.FightPowerPerPoint = 0
|
| | | self.PointQualityAttrIDDict = {}
|
| | | self.PointQualityAttrValueDict = {}
|
| | | self.PointQualityIntervalList = [] |
| | | return |
| | | |
| | | def GetAttrID(self): return self.AttrID # 属性ID
|
| | | def GetAddAttrInfoPerPoint(self): return self.AddAttrInfoPerPoint # 每点增加属性信息
|
| | | def GetAddAttrInfoPerPoint(self): return self.AddAttrInfoPerPoint # 每点增加属性信息 {"职业":[[每X点,属性ID,值], ...], ..}
|
| | | def GetFightPowerPerPoint(self): return self.FightPowerPerPoint # 每点附加战斗力
|
| | | def GetPointQualityAttrIDDict(self): return self.PointQualityAttrIDDict # 点数品质进阶增加属性ID, 根据职业区分
|
| | | def GetPointQualityAttrValueDict(self): return self.PointQualityAttrValueDict # 点数品质进阶增加属性值列表, 根据职业区分
|
| | | def GetPointQualityIntervalList(self): return self.PointQualityIntervalList # 点数品质进阶属性点区间列表 |
| | |
| | | #GameWorld.DebugLog("等级加属性: %s" % allAttrList)
|
| | |
|
| | | # 属性点属性
|
| | | pointFightPowerEx = 0
|
| | | pointValueInfo = {ShareDefine.Def_Effect_Metal:[lambda curObj:GetMetal(curObj), lambda curObj, value:SetMetalQualityLV(curObj, value)],
|
| | | ShareDefine.Def_Effect_Wood:[lambda curObj:GetWood(curObj), lambda curObj, value:SetWoodQualityLV(curObj, value)],
|
| | | ShareDefine.Def_Effect_Water:[lambda curObj:GetWater(curObj), lambda curObj, value:SetWaterQualityLV(curObj, value)],
|
| | |
| | | if not ipyData:
|
| | | continue
|
| | | # 每点属性
|
| | | perPointAddAttrDict = ipyData.GetAddAttrInfoPerPoint()
|
| | | for perPointAttrID, perPointAttrValue in perPointAddAttrDict.items():
|
| | | pointAddValue = perPointAttrValue * pointValue
|
| | | CalcAttrDict_Type(perPointAttrID, pointAddValue, allAttrList)
|
| | | #GameWorld.DebugLog(" 属性点(%s)加属性: pointValue=%s,perPointAttrID=%s,pointAddValue=%s" % (pointAttrID, pointValue, perPointAttrID, pointAddValue))
|
| | | perPointAddAttrDict = ipyData.GetAddAttrInfoPerPoint() # {"职业":[[每X点,属性ID,值], ...], ..}
|
| | | addAttrList = perPointAddAttrDict.get(str(job), [])
|
| | | for needPoint, pointAddAttrID, pointAddAttrValue in addAttrList:
|
| | | pointAddValueTotal = pointAddAttrValue * (pointValue / needPoint)
|
| | | CalcAttrDict_Type(pointAddAttrID, pointAddValueTotal, allAttrList)
|
| | | #GameWorld.DebugLog(" 属性点(%s)加属性: pointValue=%s,pointAddAttrID=%s,pointAddValueTotal=%s" % (pointAttrID, pointValue, pointAddAttrID, pointAddValueTotal))
|
| | | |
| | | pointFightPowerEx += (ipyData.GetFightPowerPerPoint() * pointValue)
|
| | |
|
| | | # 点数品质属性
|
| | | curPQLV = 0
|
| | |
| | |
|
| | | #GameWorld.DebugLog("等级属性点加属性: %s" % allAttrList)
|
| | | #GameWorld.DebugLog("灵根品阶等级属性: %s" % lingGenQualityAttrList)
|
| | | #GameWorld.DebugLog("灵根点数附加战力: %s" % pointFightPowerEx)
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_Role, pointFightPowerEx) |
| | | SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_RoleBase, allAttrList)
|
| | | SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_LingGenQuailty, lingGenQualityAttrList)
|
| | | return
|