From c3f4da0363b139731e4c542507a486c335d44f20 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 07 三月 2019 15:26:22 +0800
Subject: [PATCH] 6332 【后端】【2.0】主要是拍品相关规则调整及背包优化(GivePlayerAppointItem 默认都给非拍品)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

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..1d49507 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py
@@ -288,7 +288,7 @@
             
         else:
             for itemID, itemCnt in totalItemDict.items(): 
-                ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 1, [IPY_GameWorld.rptItem, IPY_GameWorld.rptAnyWhere], True, showSysInfo=True)
+                ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 0, [IPY_GameWorld.rptItem, IPY_GameWorld.rptAnyWhere], True, showSysInfo=True)
     if Def_TJGRecoverID in recoverCntDict:
         #脱机挂经验找回后重置
         PlayerTJG.ResetTJGDeadInfo(curPlayer)
@@ -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