#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.AuctionItem # # @todo:ÅÄÂôÐÐ # @author hxp # @date 2019-03-04 # @version 1.0 # # ÏêϸÃèÊö: ÅÄÂôÐÐ # #------------------------------------------------------------------------------- #"""Version = 2019-03-04 17:00""" #------------------------------------------------------------------------------- import GameWorld import ItemControler import PlayerAuctionHouse import IpyGameDataPY #Âß¼­ÊµÏÖ ## GMÃüÁîÖ´ÐÐÈë¿Ú # @param curPlayer µ±Ç°Íæ¼Ò # @param msgList ²ÎÊýÁбí # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def OnExec(curPlayer, msgList): GameWorld.DebugAnswer(curPlayer, "--------- %s" % GameWorld.GetCurrentDataTimeStr()) if not msgList: __Help(curPlayer) return paramA = msgList[0] paramCount = len(msgList) playerID = curPlayer.GetPlayerID() isBind = False # Çå¿ÕÅÄÆ· if paramA == 0: PlayerAuctionHouse.QueryGameServer_AuctionHouse(playerID, "ClearAuctionItem", []) return # ´òÓ¡ÅÄÆ·ÐÅÏ¢ if paramA == 3: PlayerAuctionHouse.QueryGameServer_AuctionHouse(playerID, "PrintAuctionItem", []) return # Ìí¼Ó¸öÈËÅÄÆ· elif paramA == 1 and paramCount >= 2: itemID = msgList[1] itemCount = max(1, msgList[2] if paramCount > 2 else 1) auctionGroup = max(1, msgList[3] if paramCount > 3 else 1) ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID) if not ipyData: GameWorld.DebugAnswer(curPlayer, "·ÇÅÄÂôÎïÆ·ÎÞ·¨ÉϼÜ") return auctionItemList = [] if itemCount < auctionGroup: GameWorld.DebugAnswer(curPlayer, "ÎïÆ·¸öÊý²»ÄÜÉÙÓÚ×éÊý") return groupItemCount = itemCount / auctionGroup for i in xrange(auctionGroup): if i == auctionGroup - 1: groupItemCount += itemCount % auctionGroup curItem = ItemControler.GetOutPutItemObj(itemID, groupItemCount, isBind) auctionItemList.append([curItem]) PlayerAuctionHouse.__DoAddAuctionItem(curPlayer, auctionItemList) # Ìí¼ÓÏÉÃËÅÄÆ· elif paramA == 2 and paramCount >= 2: familyID = curPlayer.GetFamilyID() if not familyID: GameWorld.DebugAnswer(curPlayer, "ûÓÐÏÉÃËÎÞ·¨ÉϼÜÏÉÃËÅÄÆ·") return itemID = msgList[1] itemCount = max(1, msgList[2] if paramCount > 2 else 1) auctionGroup = max(1, msgList[3] if paramCount > 3 else 1) if itemCount < auctionGroup: GameWorld.DebugAnswer(curPlayer, "ÎïÆ·¸öÊý²»ÄÜÉÙÓÚ×éÊý") return ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID) if not ipyData: GameWorld.DebugAnswer(curPlayer, "·ÇÅÄÂôÎïÆ·ÎÞ·¨ÉϼÜ") return familyPlayerIDList = msgList[4:] if paramCount > 4 else [] if playerID not in familyPlayerIDList: familyPlayerIDList.append(playerID) familyAuctionItemList = [[itemID, itemCount, auctionGroup]] familyAuctionItemDict = {familyID:[familyPlayerIDList, familyAuctionItemList]} PlayerAuctionHouse.DoAddFamilyAuctionItem(familyAuctionItemDict) else: __Help(curPlayer) return return def __Help(curPlayer): GameWorld.DebugAnswer(curPlayer, "Çå¿ÕËùÓÐÅÄÆ·: AuctionItem 0") GameWorld.DebugAnswer(curPlayer, "Ìí¼Ó¸öÈËÅÄÆ·: AuctionItem 1 ÎïÆ·ID ¸öÊý ·Ö¼¸×é") GameWorld.DebugAnswer(curPlayer, "Ìí¼ÓÏÉÃËÅÄÆ·: AuctionItem 2 ÎïÆ·ID ¸öÊý ·Ö¼¸×é ÊÜÒæÍæ¼ÒIDA Íæ¼ÒIDB...") return