| | |
| | | import ChConfig
|
| | | import ShareDefine
|
| | | import PlayerActivity
|
| | | import NPCCommon
|
| | |
|
| | | import random
|
| | | import time
|
| | |
|
| | | #// B5 13 拍卖行上架拍品 #tagCMSellAuctionItem
|
| | |
| | | PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_AuctionItem, 1)
|
| | | return
|
| | |
|
| | | def DoAddSystemAuctionItem(sysAuctionItemList):
|
| | | ''' 上架系统拍品
|
| | | @param sysAuctionItemList: [物品ID, [阶,颜色,[部位, ...],是否套装,星级,[可选参数职业, ...]], ...]
|
| | | '''
|
| | | GameWorld.Log("上架系统拍品: %s" % sysAuctionItemList)
|
| | | |
| | | itemCount = 1 # 系统拍品,默认上架一个
|
| | | isAuctionItem = True
|
| | | auctionItemList = []
|
| | | for sysAuctionItemInfo in sysAuctionItemList:
|
| | | if type(sysAuctionItemInfo) == int:
|
| | | itemID = sysAuctionItemInfo
|
| | | elif type(sysAuctionItemInfo) == list and len(sysAuctionItemInfo) >= 5:
|
| | | classLV, color, placeList, isSuit, star = sysAuctionItemInfo[:5]
|
| | | if star:
|
| | | # 有星级的代表非境界装备,暂不处理,之后有需要扩展
|
| | | randEquipIDList = []
|
| | | else:
|
| | | itemJobList = sysAuctionItemInfo[5] if len(sysAuctionItemInfo) > 5 else [] |
| | | randEquipIDList = NPCCommon.__GetEquipIDList(0, classLV, color, isSuit, placeList, itemJobList, findType="SystemAuctionItem")
|
| | | if not randEquipIDList:
|
| | | GameWorld.ErrLog("系统拍品找不到可上架的装备! %s" % str(sysAuctionItemInfo))
|
| | | continue
|
| | | itemID = random.choice(randEquipIDList)
|
| | | else:
|
| | | GameWorld.ErrLog("系统拍品格式错误,无法上架! %s" % str(sysAuctionItemInfo))
|
| | | continue
|
| | | ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID)
|
| | | if not ipyData:
|
| | | GameWorld.ErrLog("非拍卖物品,无法上架系统拍品! itemID=%s" % (itemID))
|
| | | continue
|
| | | curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, isAuctionItem)
|
| | | if not curItem:
|
| | | continue
|
| | | auctionItemList.append([curItem])
|
| | | if not auctionItemList:
|
| | | return
|
| | | __DoAddAuctionItem(None, auctionItemList)
|
| | | return
|
| | |
|
| | | def DR_AuctionHouse(curPlayer, eventName, drDict):
|
| | | accID = "" if not curPlayer else curPlayer.GetAccID()
|
| | | playerID = 0 if not curPlayer else curPlayer.GetPlayerID()
|