From 011fdd0daace0bf3ebdbdc96e6355097fa9bf0de Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期三, 19 十二月 2018 16:14:53 +0800
Subject: [PATCH] 5428 【后端】【1.4】资源找回新增封魔坛找回规则

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py    |   15 +++++++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py           |    7 +++++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherSoul.py |    2 +-
 PySysDB/PySysDBPY.h                                                                            |    1 +
 4 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index 179bc93..a534dfc 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -986,6 +986,7 @@
 	dict		JadeReward; //绑玉找回奖励
 	DWORD		CostCopper; //铜钱找回铜钱消耗
 	dict		CopperReward; //铜钱找回奖励
+	list		JobItemList; //职业物品列表
 };
 
 //宝箱表开启
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index a6f662f..886ecff 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -804,6 +804,7 @@
                         ("dict", "JadeReward", 0),
                         ("DWORD", "CostCopper", 0),
                         ("dict", "CopperReward", 0),
+                        ("list", "JobItemList", 0),
                         ),
 
                 "Chests":(
@@ -2759,7 +2760,8 @@
         self.VipCostJade = 0
         self.JadeReward = {}
         self.CostCopper = 0
-        self.CopperReward = {}
+        self.CopperReward = {}
+        self.JobItemList = []
         return
         
     def GetID(self): return self.ID # ID
@@ -2769,7 +2771,8 @@
     def GetVipCostJade(self): return self.VipCostJade # 绑玉找回VIP次数找回价格
     def GetJadeReward(self): return self.JadeReward # 绑玉找回奖励
     def GetCostCopper(self): return self.CostCopper # 铜钱找回铜钱消耗
-    def GetCopperReward(self): return self.CopperReward # 铜钱找回奖励
+    def GetCopperReward(self): return self.CopperReward # 铜钱找回奖励
+    def GetJobItemList(self): return self.JobItemList # 职业物品列表
 
 # 宝箱表开启
 class IPY_Chests():
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherSoul.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherSoul.py
index 3f29c33..8a1e138 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherSoul.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherSoul.py
@@ -132,7 +132,7 @@
     itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
     if not itemData:
         return 0
-    GatherSoulMaxLVDict = IpyGameDataPY.GetFuncEvalCfg('GatherSoulMaxLV', 1, {})
+    GatherSoulMaxLVDict = IpyGameDataPY.GetFuncEvalCfg('GatherSoulMaxLevel', 1, {})
     itemColor = itemData.GetItemColor()
     GatherSoulMaxLV = GatherSoulMaxLVDict.get(itemColor, 0)
     return GatherSoulMaxLV
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py
index 6eb0ab1..4334cd5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py
@@ -425,6 +425,8 @@
         
     itemInfoList = awardDict.get("item", [])
     if itemInfoList:
+        job = curPlayer.GetJob()
+        jobItemList = ipyData.GetJobItemList()
         for itemInfo in itemInfoList:
             itemID = itemInfo.get('ItemID', 0)
             itemcntFormula = itemInfo.get('ItemCount', '')
@@ -433,10 +435,23 @@
             itemcnt = recoverCnt * eval(FormulaControl.GetCompileFormula('ResourcesBackitem%s_%s_%s' % (recoverWay, index, itemID), itemcntFormula))
             if not itemcnt:
                 continue
+            itemID = __GetJobItem(job, itemID, jobItemList)
             itemDict[itemID] = itemcnt
     
     return exp, sp, money, itemDict
 
+def __GetJobItem(job, itemID, jobItemList):
+    ## 获取物品对应的职业物品, 职业从1开始
+    for jobItemIDList in jobItemList:
+        if type(jobItemIDList) not in [list, tuple]:
+            GameWorld.ErrLog("资源找回职业物品组格式错误!itemID=%s,jobItemList=%s" % (itemID, jobItemList))
+            return itemID
+        if itemID in jobItemIDList:
+            if job <= 0 or job > len(jobItemIDList):
+                GameWorld.ErrLog("资源找回职业物品配置错误,没有该职业对应物品ID!itemID=%s,job=%s" % (itemID, job))
+                return itemID
+            return jobItemIDList[job - 1]
+    return itemID
 
 ## 通知找回次数
 #  @param curPlayer

--
Gitblit v1.8.0