From ef58c3d388226b92c69c83e60e7c67a892e3d229 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 07 三月 2019 14:23:05 +0800
Subject: [PATCH] 6332 【后端】【2.0】主要是拍品相关规则调整及背包优化(GetOutPutItemObj 默认都给非拍品)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py | 59 +++++++++++++++++++++++++++++++++--------------------------
1 files changed, 33 insertions(+), 26 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..2fe1b45 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,13 @@
#
# 模块详细说明
#导入
+
import IPY_GameWorld
import ItemControler
-import ShareDefine
-import ChConfig
+import IpyGameDataPY
import GameWorld
+import ChConfig
+
#---------------------------------------------------------------------
#全局变量
#---------------------------------------------------------------------
@@ -36,12 +38,13 @@
#输入命令格式错误
if len(msgList) < 1:
- GameWorld.DebugAnswer(curPlayer, "MakeItemCount id, [count, 符印等级]")
+ GameWorld.DebugAnswer(curPlayer, "MakeItemCount ID (个数 拍品分组 全部传奇属性)")
return
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:
@@ -49,37 +52,41 @@
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"}]):
GameWorld.DebugAnswer(curPlayer, "放入物品失败!")
return
- if packCount > 1:
- __DoGMGivePlayerItem(curPlayer, itemID, count, runeLV)
+ playerItemControler = ItemControler.PlayerItemControler(curPlayer)
+
+ # 拍品
+ if auctionGroup:
+ isAuctionItem = True
+ ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID)
+ if not ipyData:
+ GameWorld.DebugAnswer(curPlayer, "非可拍卖物品itemID=%s" % (itemID))
+ return
+ groupItemCount = itemCount / auctionGroup
+ for i in xrange(auctionGroup):
+ if i == auctionGroup - 1:
+ groupItemCount += itemCount % auctionGroup
+ __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, groupItemCount, isAuctionItem, isAllAttr)
else:
- for _ in xrange(count):
- __DoGMGivePlayerItem(curPlayer, itemID, 1, runeLV)
-
+ isAuctionItem = False
+ if packCount > 1:
+ __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, itemCount, isAuctionItem, isAllAttr)
+ else:
+ for _ in xrange(itemCount):
+ __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, 1, isAuctionItem, isAllAttr)
return
-def __DoGMGivePlayerItem(curPlayer, itemID, count, runeLV):
+def __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, count, isAuctionItem, isAllAttr):
if ItemControler.GetAppointItemRealID(itemID):
- ItemControler.GivePlayerAppointItem(curPlayer, itemID, 0, True, True)
+ ItemControler.GivePlayerAppointItem(curPlayer, itemID, isAuctionItem, event=[ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}])
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=[ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}]):
GameWorld.DebugAnswer(curPlayer, "放入物品失败!")
return
--
Gitblit v1.8.0