From 30a717db9c6986126a1ca66c2c4565738cfd2099 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 07 三月 2019 19:23:04 +0800
Subject: [PATCH] 6332 【后端】【2.0】主要是拍品相关规则调整及背包优化(GivePlayerItem 删除无用参数)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py |   63 +++++++++++++++++++++----------
 1 files changed, 42 insertions(+), 21 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
index 76cc7d8..41b244d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
@@ -334,12 +334,11 @@
     GameWorld.DebugLog("物品过期时间" + timeStr)
     return GameWorld.ChangeTimeStrToNum(timeStr)
 
-
-## 创建物品
-#  @param itemID 物品ID
-#  @return curSingleItem
-#  @remarks 函数详细说明.
-def CreateSingleItem(itemID, itemCount=1, isBind=1, expireTime=0):
+def CreateSingleItem(itemID, itemCount=1, isAuctionItem=False, expireTime=0):
+    ''' 创建物品
+    @param isAuctionItem: 是否拍品,默认非拍品
+    @param expireTime: 有效时间,时间单位由时效类型决定
+    '''
     if itemCount < 1:
         GameWorld.ErrLog("创建物品个数不能少于1! itemID=%s,itemCount=%s" % (itemID, itemCount))
         return
@@ -375,6 +374,7 @@
             return
         curSingleItem.SetRemainHour(outTimeServerDay)
         
+    isBind = not isAuctionItem
     if isBind:
         curSingleItem.SetIsBind(1)
         
@@ -824,8 +824,7 @@
     userData = curItem.GetUserData()
     notifyList[4] = userData if (userData and userData != "{}") else ""
     notifyList[5] =  place
-    suiteInfo = PlayerViewCacheTube.__GetEquipPartSuiteInfo(curPlayer)
-    notifyList[6] = "" if not suiteInfo else json.dumps(suiteInfo, ensure_ascii=False)
+    notifyList[6] = "" 
     notifyList[7] = ChEquip.GetEquipPartPlusLV(curPlayer, IPY_GameWorld.rptEquip, place)
     
     # 单部位洗练信息
@@ -1925,7 +1924,7 @@
 ## 获取物品最高强化等级
 #  @param itemType: 物品类型
 #  @return 最大星级,0为不可强化
-def GetItemMaxPlusLV(curItem):
+def GetItemMaxPlusLV(curPlayer, equipPackindex, curItem):
     equipPlace = curItem.GetEquipPlace()
     plusMaxTypeDict = IpyGameDataPY.GetFuncEvalCfg("StrengthenLevelLimit", 1)
     if not plusMaxTypeDict:
@@ -1935,19 +1934,41 @@
     if equipPlace not in plusMaxTypeDict:
         return 0
     findType = plusMaxTypeDict[equipPlace]
-    #仙器特殊取固定值
-    if equipPlace in [ShareDefine.retFairyCan, ShareDefine.retFairyCan2]:
-        rank = 0
-        itemColor = 0
-    else:
-        rank = GetItemClassLV(curItem)
-        itemColor = curItem.GetItemColor()
-    ipyData = IpyGameDataPY.GetIpyGameData("ItemPlusMax", findType, rank, itemColor)
-    if not ipyData:
-        GameWorld.ErrLog("找不到装备强化等级上限表数据配置! rank = %s, %s" % (rank , curItem.GetItemQuality()))
-        return
+    equipStar = ChEquip.GetEquipPartStarByRank(curPlayer, equipPackindex, curItem)
+    ipyData = IpyGameDataPY.GetIpyGameDataNotLog("ItemPlusMax", findType, equipStar)
+    if ipyData:
+        return ipyData.GetLevelMax()
     
-    return ipyData.GetLevelMax()
+    ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('ItemPlusMax', {'Type':findType}, True, False)
+    if not ipyDataList:
+        return 0
+    maxStar = ipyDataList[-1].GetStar()
+    if equipStar > maxStar:
+        return ipyDataList[-1].GetLevelMax()
+    findMax = 0
+    for ipyData in ipyDataList:
+        if equipStar >= ipyData.GetStar():
+            findMax = ipyData.GetLevelMax()
+    return findMax
+    
+
+## 获取物品最高强化进化等级
+#  @param itemType: 物品类型
+#  @return 最大星级,0为不可强化
+def GetItemMaxPlusEvolveLV(curPlayer, equipPackindex, curItem):
+    packType = IPY_GameWorld.rptEquip
+    curPlusLV = ChEquip.GetEquipPartPlusLVByRank(curPlayer, packType, equipPackindex, curItem)
+    equipPlace = curItem.GetEquipPlace()
+    ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('EquipPlusEvolve', {'EquipPlace':equipPlace}, True)
+    if not ipyDataList:
+        return 0
+    maxEvolvelv = 0
+    for ipyData in ipyDataList:
+        if curPlusLV >= ipyData.GetNeedPlusLV():
+            maxEvolvelv = ipyData.GetEvolveLV()
+        else:
+            break
+    return maxEvolvelv
 
 ## 获取物品最高星数
 #  @param itemType: 物品类型

--
Gitblit v1.8.0