From 34cb2d539afd68ebd490f81894769ea494b19dd3 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 01 九月 2018 14:13:14 +0800
Subject: [PATCH] Add: 2994 【后端】寻宝抽到的符印也放入寻宝仓库; 增加符印在背包中的排序规则;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py    |   28 +++++++++++++++++++++++-----
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py |    4 ++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py              |    3 +++
 3 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 26c9c8e..2d324ce 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -363,6 +363,9 @@
 
 def GetItemPackType(itemType, defaultPack=IPY_GameWorld.rptItem):
     ## 获取物品类型对应存放的默认背包类型
+    if defaultPack == ShareDefine.rptTreasure:
+        #寻宝背包不做处理
+        return defaultPack
     for pack, itemTypeList in Def_PackItemTypeList_Dict.items():
         if itemType in itemTypeList:
             return pack
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
index 0a59194..a59fb05 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -1009,7 +1009,7 @@
 #    小心, 小心, 小心, 小心, 小心
 #    eggxp
 #===============================================================================
-    def __PutItemInVPack(self, packIndex, tagItem, event):
+    def PutItemInVPack(self, packIndex, tagItem, event=["", False, {}]):
         # 虚拟背包, 默认不做叠加
         curPlayer = self.__Player
         canPutInCnt = 1
@@ -1044,7 +1044,7 @@
             Sync_VPackItem_Refresh(curPlayer, packIndex, refreshPlaceList)
 
         if tagItem and not tagItem.IsEmpty():
-            tagItem.Clear()
+            #tagItem.Clear()
             return False
         return True
     
@@ -1103,7 +1103,7 @@
         
         # 虚拟背包, 默认不做叠加
         if packIndex in ShareDefine.Def_VPack_TypeList:
-            return self.__PutItemInVPack(packIndex, tagItem, event)
+            return self.PutItemInVPack(packIndex, tagItem, event)
         
         eventName, isForceEvent, addDict = event
 
@@ -1391,6 +1391,14 @@
     #curItemGUID = curItem.GetGUID()
     curItemCount = curItem.GetCount()
     curItemIsBind = curItem.GetIsBind()
+    toPackIndex = ChConfig.GetItemPackType(curItem.GetType(), toPackIndex)
+    
+    # 常规物品转移到虚拟符印背包
+    if toPackIndex == ShareDefine.rptRune:
+        if not ItemCommon.CheckPackHasSpace(curPlayer, toPackIndex, True):
+            return False
+        return itemControl.PutItemInVPack(toPackIndex, curItem)
+    
     checkRet, putIndex = itemControl.CanPutInItemEx(toPackIndex, curItemTypeID, curItemCount, curItemIsBind)
     if not checkRet:
         return False
@@ -1571,6 +1579,8 @@
     itemList = []   # 非装备普通物品
     equipGSGreaterList = [] # 属于本职业的高评分装备
     equipGSLesserList = []  # 低评分装备和非本职业
+    runeItemList = []   # 符印
+    
     #EquipGSTypeForSort
     equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
     #组合列表
@@ -1591,7 +1601,9 @@
                 equipGS = 1
                 cmpEquipGS = 2
                 
-            if equipGS == 0:
+            if tmpItem.GetType() in [ChConfig.Def_ItemType_Rune, ChConfig.Def_ItemType_RuneExp]:
+                runeItemList.append(tmpItem)
+            elif equipGS == 0:
                 itemList.append(tmpItem)
             elif equipGS > cmpEquipGS:
                 equipGSGreaterList.append(tmpItem)
@@ -1601,7 +1613,8 @@
     equipGSGreaterList.sort(__CmpRolePack)
     itemList.sort(__CmpRolePack)
     equipGSLesserList.sort(__CmpRolePack)
-
+    runeItemList.sort(__CmpRolePack)
+    
     #===========================================================================
     # GameWorld.DebugLog("equipGSGreaterList")
     # for item in equipGSGreaterList:
@@ -1636,6 +1649,11 @@
     for item in equipGSLesserList:
         curPack.GetAt(putPlace).AssignItem(item, False)
         putPlace += 1
+        
+    for item in runeItemList:
+        curPack.GetAt(putPlace).AssignItem(item, False)
+        putPlace += 1
+        
     return
 
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
index 71636d5..8d224cc 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTreasure.py
@@ -89,8 +89,8 @@
         return
     
     packType = ShareDefine.rptTreasure
-    if treasureType == 2:
-        packType = ShareDefine.rptRune
+    #if treasureType == 2:
+    #    packType = ShareDefine.rptRune
         
     if not ItemCommon.CheckPackHasSpace(curPlayer, packType, True):
         GameWorld.DebugLog("对应寻宝背包没有空格子!packType=%s" % packType, playerID)

--
Gitblit v1.8.0