From 476fb6e578f29c09d558187deeb215afe2e5bf59 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 14 三月 2019 11:42:28 +0800
Subject: [PATCH] 6307 【后端】【2.0】多套装备开发单(优化代码)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py |   61 ++++++++++++++++--------------
 1 files changed, 33 insertions(+), 28 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py
index 1c1c849..3e30edd 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py
@@ -14,11 +14,14 @@
 #
 # 模块详细说明
 #导入
+
 import IPY_GameWorld
 import ItemControler
-import ShareDefine
-import ChConfig
+import IpyGameDataPY
 import GameWorld
+import ChConfig
+import ItemCommon
+
 #---------------------------------------------------------------------
 #全局变量
 #---------------------------------------------------------------------
@@ -36,50 +39,52 @@
     
     #输入命令格式错误
     if len(msgList) < 1:
-        GameWorld.DebugAnswer(curPlayer, "MakeItemCount id, [count, 符印等级]")
+        GameWorld.DebugAnswer(curPlayer, "MakeItemCount ID (个数  拍品组数 全部传奇属性)")
         return
     
+    event = [ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}]
     itemID = msgList[0]
-    count = msgList[1] if len(msgList) > 1 else 1
-    runeLV = msgList[2] if len(msgList) > 2 else None
+    itemCount = msgList[1] if len(msgList) > 1 else 1
+    auctionGroup = msgList[2] if len(msgList) > 2 else 0
+    isAllAttr = msgList[3] if len(msgList) > 3 else 0
     
     itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
     if not itemData:
         GameWorld.DebugAnswer(curPlayer, '该物品不存在 = %s' % (itemID))
         return
-    packCount = itemData.GetPackCount()
     if itemID in ChConfig.Def_TransformItemIDList:
-        curItem = ItemControler.GetOutPutItemObj(itemID)
-        ItemControler.SetItemCount(curItem, count, curPlayer.GetPlayerID(), curPlayer.GetAccID(),
-                                   curPlayer.GetPlayerName())
+        curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, curPlayer=curPlayer)
         PlayerItemControler = ItemControler.PlayerItemControler(curPlayer)
-        if not PlayerItemControler.PutInItem(IPY_GameWorld.rptItem, curItem, event=[ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}]):
+        if not PlayerItemControler.PutInItem(IPY_GameWorld.rptItem, curItem, event=event):
             GameWorld.DebugAnswer(curPlayer, "放入物品失败!")
         return
     
-    if packCount > 1:
-        __DoGMGivePlayerItem(curPlayer, itemID, count, runeLV)
+    playerItemControler = ItemControler.PlayerItemControler(curPlayer)
+    
+    # 拍品
+    if auctionGroup > 0:
+        ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID)
+        if not ipyData:
+            GameWorld.DebugAnswer(curPlayer, "非可拍卖物品itemID=%s" % (itemID))
+            return
+        for _ in xrange(auctionGroup):
+            if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, True, [IPY_GameWorld.rptItem], event=event):
+                GameWorld.DebugAnswer(curPlayer, "###放入物品失败!")
     else:
-        for _ in xrange(count):
-            __DoGMGivePlayerItem(curPlayer, itemID, 1, runeLV)
-            
+        if not ItemCommon.GetIsEquip(itemData):
+            if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, False, [IPY_GameWorld.rptItem], event=event):
+                GameWorld.DebugAnswer(curPlayer, "###放入物品失败!")
+        else:
+            for _ in xrange(itemCount):
+                __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, 1, False, isAllAttr, event)
     return
 
-def __DoGMGivePlayerItem(curPlayer, itemID, count, runeLV):
+def __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, count, isAuctionItem, isAllAttr, event):
     if ItemControler.GetAppointItemRealID(itemID):
-        ItemControler.GivePlayerAppointItem(curPlayer, itemID, 0, True, True)
+        ItemControler.GivePlayerAppointItem(curPlayer, itemID, isAuctionItem, event=event)
         return
-    curItem = ItemControler.GetOutPutItemObj(itemID)
-    ItemControler.SetItemCount(curItem, count, curPlayer.GetPlayerID(), curPlayer.GetAccID(),
-                               curPlayer.GetPlayerName())
-
-    if curItem.GetType() == ChConfig.Def_ItemType_Rune and runeLV:
-        curItem.SetUserAttr(ShareDefine.Def_IudetRuneLV, runeLV)
-    if curItem.GetType() in [ChConfig.Def_ItemType_GatherSoul,ChConfig.Def_ItemType_GatherSoulCore] and runeLV:
-        curItem.SetUserAttr(ShareDefine.Def_IudetGatherSoulLV, runeLV)
-    #将物品放置玩家背包
-    PlayerItemControler = ItemControler.PlayerItemControler(curPlayer)
-    if not PlayerItemControler.PutInItem(IPY_GameWorld.rptItem, curItem, event=[ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}]):
+    curItem = ItemControler.GetOutPutItemObj(itemID, count, isAuctionItem, curPlayer=curPlayer, isAllAttr=isAllAttr)
+    if not playerItemControler.PutInItem(IPY_GameWorld.rptItem, curItem, event=event):
         GameWorld.DebugAnswer(curPlayer, "放入物品失败!")
         
     return

--
Gitblit v1.8.0