From 631226708e6ba39636e219a9e92a0c7c496aa442 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 27 十二月 2019 19:36:48 +0800
Subject: [PATCH] 8352 【后端】GM工具后台增加可补偿上架拍品
---
ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddAuctionItem.py | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py | 4 +
2 files changed, 112 insertions(+), 1 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddAuctionItem.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddAuctionItem.py
new file mode 100644
index 0000000..e5fc75d
--- /dev/null
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_AddAuctionItem.py
@@ -0,0 +1,109 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package GM.Commands.GMT_AddAuctionItem
+#
+# @todo:上架拍品
+# @author hxp
+# @date 2019-12-27
+# @version 1.0
+#
+# 详细描述: 上架拍品
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2019-12-27 19:30"""
+#-------------------------------------------------------------------------------
+
+import GMCommon
+import GameWorld
+import DataRecordPack
+import IpyGameDataPY
+import AuctionHouse
+import ChConfig
+
+
+#---------------------------------------------------------------------
+
+## 执行逻辑
+# @param curPlayer 当前玩家
+# @param gmCmdDict: 命令字典
+# @return None
+# @remarks 函数详细说明.
+def OnExec(orderId, gmCmdDict):
+
+ familyID = GameWorld.ToIntDef(gmCmdDict.get("familyID", 0))
+ familyPlayerIDList = []
+ if familyID:
+ try:
+ familyPlayerIDList = eval(gmCmdDict.get("playerIDList", "[]"))
+ if not isinstance(familyPlayerIDList, list):
+ GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr, "收益玩家ID列表格式非列表!")
+ return
+ except:
+ GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr, "收益玩家ID列表格式错误!")
+ return
+
+ itemDict = {}
+ for key, value in gmCmdDict.items():
+
+ if key.startswith("ItemID"):
+ itemID = GameWorld.ToIntDef(value)
+ if not itemID:
+ continue
+ itemNum = key[6:]
+ info = {"ItemID":itemID}
+ ipyData = IpyGameDataPY.GetIpyGameDataNotLog("AuctionItem", itemID)
+ if not ipyData:
+ GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr, "存在非拍品物品ID %s" % itemID)
+ return
+ elif key.startswith("ItemCnt"):
+ itemCount = GameWorld.ToIntDef(value)
+ itemNum = key[7:]
+ info = {"ItemCount":itemCount}
+ else:
+ continue
+
+ if itemNum not in itemDict:
+ itemDict[itemNum] = {}
+ itemInfo = itemDict[itemNum]
+ itemInfo.update(info)
+
+ auctionItemList = []
+ for itemInfo in itemDict.values():
+ itemID = itemInfo.get("ItemID", 0)
+ itemCount = itemInfo.get("ItemCount", 0)
+ if not itemID or not itemCount:
+ continue
+ auctionItemList.append([itemID, itemCount])
+ if not auctionItemList:
+ GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr, "拍品ID或个数异常!")
+ return
+
+ GameWorld.Log("GMT上架拍品: ")
+ if familyID:
+ curFamily = GameWorld.GetFamilyManager().FindFamily(familyID)
+ if not curFamily:
+ GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr, "不存在该仙盟!")
+ return
+ notFamilyMemberIDList = []
+ for menberID in familyPlayerIDList:
+ curMember = curFamily.FindMember(menberID)
+ if curMember == None:
+ notFamilyMemberIDList.append(menberID)
+ if notFamilyMemberIDList:
+ GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr, "以下玩家ID不是该仙盟成员%s" % notFamilyMemberIDList)
+ return
+
+ familyAuctionItemDict = {} # {仙盟ID:[[享受收益的成员ID, ...], [[拍品ID,个数], [拍品ID,个数,是否拍品], ...]], ...}
+ familyAuctionItemDict[familyID] = [familyPlayerIDList, auctionItemList]
+ AuctionHouse.DoAddFamilyAuctionItem(ChConfig.Def_FBMapID_MainCity, familyAuctionItemDict)
+ else:
+ AuctionHouse.DoAddSystemAuctionItem(auctionItemList)
+
+ #执行成功
+ GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success)
+ # 流向
+ DataRecordPack.DR_ToolGMOperate(0, '', '', 'GMT_AddAuctionItem', str(gmCmdDict))
+ return
+
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py
index d0025ce..c3fe1c7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py
@@ -216,12 +216,14 @@
'''
GameWorld.Log("上架系统拍品: %s" % sysAuctionItemList)
- itemCount = 1 # 系统拍品,默认上架一个
isAuctionItem = True
auctionItemList = []
for sysAuctionItemInfo in sysAuctionItemList:
+ itemCount = 1 # 系统拍品,默认上架一个
if type(sysAuctionItemInfo) == int:
itemID = sysAuctionItemInfo
+ elif type(sysAuctionItemInfo) == list and len(sysAuctionItemInfo) == 2:
+ itemID, itemCount = sysAuctionItemInfo
elif type(sysAuctionItemInfo) == list and len(sysAuctionItemInfo) >= 5:
classLV, color, placeList, isSuit, star = sysAuctionItemInfo[:5]
if star:
--
Gitblit v1.8.0