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