From 9d83acea1ff47d5b04e3ce700cdd4148e58d386a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 15 三月 2019 16:38:05 +0800
Subject: [PATCH] 6343 【后端】【2.0】多套装备刷属性优化

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py |   50 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py
index ad20936..4e52c5d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py
@@ -1530,12 +1530,45 @@
         GameWorld.DebugLog("    物品无法使用!")
         return
     
+    # 使用拍品
+    if curItem.GetIsBind():
+        DoLogic_PlayerUseAuctionItem(curPlayer, curItem)
+        return
+    
     if useCnt <= 0:
         useCnt = curItem.GetCount()
         GameWorld.DebugLog("    没指定使用个数,默认使用全部=%s" % useCnt)
         
     __DoLogic_PlayerUseItemSelf(curPlayer, itemIndex, tick, useCnt, exData)
 
+    return
+
+def DoLogic_PlayerUseAuctionItem(curPlayer, curItem):
+    ## 玩家使用拍品
+    playerID = curPlayer.GetPlayerID()
+    itemID = curItem.GetItemTypeID()
+        
+    curItem.SetIsBind(0) # 设置为非拍品
+    curItem.ClearUserAttr(ShareDefine.Def_IudetAuctionItemCreateTime)
+    GameWorld.DebugLog("玩家使用拍品: itemID=%s" % (itemID), playerID)
+    
+    if ItemCommon.GetIsEquip(curItem):
+        # 生成传奇属性
+        legendAttrInfo = ItemControler.GetAddEquipLegendAttr(curItem, curPlayer)
+        if not legendAttrInfo:
+            GameWorld.ErrLog("使用装备拍品没有传奇属性!itemID=%s" % (itemID), playerID)
+            return
+        attrIDList, attrValueList = legendAttrInfo
+        # 传奇属性
+        if attrIDList and attrValueList and len(attrIDList) == len(attrValueList):
+            curItem.ClearUserAttr(ShareDefine.Def_IudetLegendAttrID)
+            curItem.ClearUserAttr(ShareDefine.Def_IudetLegendAttrValue)
+            for i, attrID in enumerate(attrIDList):
+                value = attrValueList[i]
+                curItem.AddUserAttr(ShareDefine.Def_IudetLegendAttrID, attrID)
+                curItem.AddUserAttr(ShareDefine.Def_IudetLegendAttrValue, value)
+        ItemCommon.MakeEquipGS(curItem)
+        
     return
 
 #---------------------------------------------------------------------
@@ -2016,8 +2049,7 @@
 #                return
 #        else:
 #            #给予物品
-#            if not ItemControler.GivePlayerItem(curPlayer, newItemId, itemCount, 0, 
-#                                         [IPY_GameWorld.rptItem], False):
+#            if not ItemControler.GivePlayerItem(curPlayer, newItemId, itemCount, 0, [IPY_GameWorld.rptItem]):
 #                GameWorld.ErrLog("使用特殊运营物品 给予普通物品失败")
 #                return
 #        #PlayerControl.NotifyCode(curPlayer, "ObtainRes01", [makeItemID, itemCount])
@@ -2077,4 +2109,16 @@
     ItemCommon.DelItem(curPlayer, timeOutItem, 1, False, "RenewItem")
     ItemControler.GivePlayerItem(curPlayer, changeItemID, 1, 0, [IPY_GameWorld.rptItem])
     PlayerControl.NotifyCode(curPlayer, 'Guardian_ContinuePay')
-    return
\ No newline at end of file
+    return
+
+#// A3 08 物品过期 #tagCMItemTimeout
+#
+#struct    tagCMItemTimeout
+#
+#{
+#    tagHead        Head;
+#    BYTE        PackType;        //背包类型
+#    BYTE        ItemIndex;        //物品在背包中索引
+#};
+def OnItemTimeout(index, clientData, tick):
+    return

--
Gitblit v1.8.0