From 2caa86ba7ac292698924f1fef1461133dcb3de0f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 29 十月 2019 18:53:14 +0800
Subject: [PATCH] 8319 【恺英】邮件购买物品默认放入背包(一口价才放入背包,背包满发邮件)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_AuctionHouseGiveItem.py | 75 +++++++++++++++++++++++++++++++++++++
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py | 18 ++++++---
2 files changed, 87 insertions(+), 6 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py
index f668b8b..dc1dabf 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/AuctionHouse.py
@@ -870,7 +870,7 @@
auctionItemMgr.sysBuyoutItemByTimeList.sort(key=operator.attrgetter("SysBuyTime"))
return
-def __EndAuctionItem(endItemList, endEvent, funcAutoBuyout=False):
+def __EndAuctionItem(endItemList, endEvent, funcAutoBuyout=False, buyPlayer=None):
''' 结束拍品竞拍
@param delItemStateDict: 删除的拍品竞拍状态
'''
@@ -897,14 +897,20 @@
# 竞拍成功邮件,发放物品
if bidderID:
+ mailTypeKey = "PaimaiMail3"
+ paramList = [bidderPrice]
+ detail = {"ItemGUID":itemGUID}
+ addItemList = [{"ItemID":itemID, "Count":itemCount, "IsAuctionItem":False, "UserData":auctionItem.UserData}]
if funcAutoBuyout:
# 功能自动购买的不给物品,由功能根据功能需求处理
pass
+ ## 如果有玩家的,直接给到背包
+ elif buyPlayer and buyPlayer.GetPlayerID() == bidderID:
+ mailInfo = [mailTypeKey, addItemList, paramList, detail]
+ resultMsg = str([itemGUID, itemID, itemCount, auctionItem.UserData, mailInfo])
+ buyPlayer.MapServer_QueryPlayerResult(0, 0, "AuctionHouseGiveItem", resultMsg, len(resultMsg))
else:
- paramList = [bidderPrice]
- detail = {"ItemGUID":itemGUID}
- addItemList = [{"ItemID":itemID, "Count":itemCount, "IsAuctionItem":False, "UserData":auctionItem.UserData}]
- PlayerCompensation.SendMailByKey("PaimaiMail3", [bidderID], addItemList, paramList, detail=detail)
+ PlayerCompensation.SendMailByKey(mailTypeKey, [bidderID], addItemList, paramList, detail=detail)
AddAuctionRecord(auctionItem, AuctionRecordResult_BidOK)
# 拍卖成功收益,都以玩家收益向上取整
@@ -1434,7 +1440,7 @@
#GameWorld.DebugLog("拍品有人竞价了,移除系统一口价拍品列表!")
if isBuyout:
- __EndAuctionItem([auctionItem], "Buyout", funcAutoBuyout)
+ __EndAuctionItem([auctionItem], "Buyout", funcAutoBuyout, buyPlayer=curPlayer)
else:
if __AddAuctionItemEndTimeByBid(auctionItem):
__SortAuctionitem(isSortWorldItem=False)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_AuctionHouseGiveItem.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_AuctionHouseGiveItem.py
new file mode 100644
index 0000000..822cfab
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_AuctionHouseGiveItem.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Player.RemoteQuery.GY_Query_AuctionHouseGiveItem
+#
+# @todo:拍卖行直接给玩家物品
+# @author hxp
+# @date 2019-10-29
+# @version 1.0
+#
+# 详细描述: 拍卖行直接给玩家物品
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2019-10-29 19:00"""
+#-------------------------------------------------------------------------------
+
+import GameWorld
+import ItemCommon
+import ItemControler
+import IPY_GameWorld
+import PlayerControl
+import ChConfig
+
+
+## 请求逻辑
+# @param query_Type 请求类型
+# @param query_ID 请求的玩家ID
+# @param packCMDList 发包命令 [ ]
+# @param tick 当前时间
+# @return resultDisc
+def DoLogic(query_Type, query_ID, packCMDList, tick):
+ return
+
+#---------------------------------------------------------------------
+## 执行结果
+# @param curPlayer 发出请求的玩家
+# @param callFunName 功能名称
+# @param funResult 查询的结果
+# @param tick 当前时间
+# @return None
+# @remarks 函数详细说明.
+def DoResult(curPlayer, callFunName, funResult, tick):
+ playerID = curPlayer.GetPlayerID()
+ try:
+ funResultList = eval(funResult)
+ except:
+ GameWorld.ErrLog("GY_Query_AuctionHouseGiveItem %s eval Error" % funResult, playerID)
+ return
+
+ GameWorld.DebugLog("GY_Query_AuctionHouseGiveItem ResultList=%s" % funResult, playerID)
+ itemGUID, itemID, itemCount, userData, mailInfo = funResultList
+ curCreateItem = ItemCommon.CreateSingleItem(itemID, itemCount)
+ if not curCreateItem:
+ GameWorld.ErrLog("GY_Query_AuctionHouseGiveItem %s CreateSingleItem Error" % funResult, playerID)
+ return
+
+ if userData:
+ curCreateItem.SetUserData(userData, len(userData))
+ ItemCommon.MakeEquipGS(curCreateItem)
+
+ drDict = {"ItemGUID":itemGUID, "ItemID":itemID, "ItemCount":itemCount, "UserData":userData}
+ isOK = ItemControler.DoLogic_PutItemInPack(curPlayer, curCreateItem, event=[ChConfig.ItemGive_BourseItem, True, drDict],
+ packIndexList=[IPY_GameWorld.rptItem])
+ if not isOK:
+ mailTypeKey, addItemList, paramList, detail = mailInfo
+ PlayerControl.SendMailByKey(mailTypeKey, [playerID], addItemList, paramList, detail=detail)
+ PlayerControl.NotifyCode(curPlayer, "PaimaiGiveItemMail")
+ else:
+ PlayerControl.NotifyCode(curPlayer, "PaimaiGiveItemOK")
+
+ return
+
+
+
--
Gitblit v1.8.0