From 6544af7b584112da8dc482cb29dacfb89d750ba6 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 22 七月 2019 19:05:09 +0800
Subject: [PATCH] 8154 【后端】【主干】【300】拍卖行优化(可根据开服天或指定日期上架系统拍品)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

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 9eb69c0..3260143 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAuctionHouse.py
@@ -24,7 +24,9 @@
 import ChConfig
 import ShareDefine
 import PlayerActivity
+import NPCCommon
 
+import random
 import time
 
 #// B5 13 拍卖行上架拍品 #tagCMSellAuctionItem
@@ -204,6 +206,46 @@
         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()

--
Gitblit v1.8.0