From 7ae9db7a15248cdc6dff8970b55b2efb424d8b5a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 11 五月 2019 15:32:34 +0800
Subject: [PATCH] 6747 【后端】【2.0】灵根调整

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py        |    5 ++++-
 PySysDB/PySysDBPY.h                                                                         |    3 ++-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py |   18 ++++++++++++------
 3 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index eb00701..28908bc 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -15,7 +15,8 @@
 struct	tagRolePoint
 {
 	BYTE		_AttrID;	//属性ID
-    dict		AddAttrInfoPerPoint;	//每点增加属性信息
+    dict		AddAttrInfoPerPoint;	//每点增加属性信息 {"职业":[[每X点,属性ID,值], ...], ..}
+	BYTE		FightPowerPerPoint;		//每点附加战斗力
 	dict		PointQualityAttrIDDict;		//点数品质进阶增加属性ID, 根据职业区分
 	dict		PointQualityAttrValueDict;		//点数品质进阶增加属性值列表, 根据职业区分
 	list		PointQualityIntervalList;		//点数品质进阶属性点区间列表
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 2617274..757b045 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -44,6 +44,7 @@
                 "RolePoint":(
                         ("BYTE", "AttrID", 1),
                         ("dict", "AddAttrInfoPerPoint", 0),
+                        ("BYTE", "FightPowerPerPoint", 0),
                         ("dict", "PointQualityAttrIDDict", 0),
                         ("dict", "PointQualityAttrValueDict", 0),
                         ("list", "PointQualityIntervalList", 0),
@@ -1495,13 +1496,15 @@
     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 # 点数品质进阶属性点区间列表
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index c130127..e561f47 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -4085,6 +4085,7 @@
         #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)],
@@ -4101,12 +4102,15 @@
             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
             pqIntervalList = ipyData.GetPointQualityIntervalList()
@@ -4127,7 +4131,9 @@
             #GameWorld.DebugLog("        属性点(%s)品阶等级属性: curPQLV=%s,pqAttrID=%s,pqAttrValue=%s" % (pointAttrID, curPQLV, pqAttrID, pqAttrValue))
             
         #GameWorld.DebugLog("等级属性点加属性: %s" % allAttrList)
-        #GameWorld.DebugLog("灵根品阶等级属性: %s" % lingGenQualityAttrList)        
+        #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

--
Gitblit v1.8.0