New file |
| | |
| | | #!/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
|
| | |
|