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/PlayerFlashGiftbag.py | 33 ++++++++++++++++++++++-----------
1 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py
index 87e8612..45d0497 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py
@@ -24,18 +24,19 @@
import DataRecordPack
import ItemControler
import IPY_GameWorld
+import PlayerWeekParty
import ItemCommon
import GameWorld
import ChConfig
-def GetGiftbagTypeList(cfgID, dayIndex):
+def GetGiftbagTypeList(cfgID, dayIndex, woldLV):
if cfgID == None or dayIndex == None:
return []
ipyData = IpyGameDataPY.GetIpyGameData("ActFlashGiftbag", cfgID)
if not ipyData:
return []
- giftbagTypeList = ipyData.GetGiftbagTypeList()
+ giftbagTypeList = GameWorld.GetDictValueByRangeKey(ipyData.GetGiftbagTypeList(), woldLV, [])
todayGiftbag = giftbagTypeList[-1] if dayIndex >= len(giftbagTypeList) else giftbagTypeList[dayIndex]
return todayGiftbag
@@ -64,7 +65,7 @@
cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagID) # 玩家身上的活动ID
- giftbagTypeList = [] if not cfgID else GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0))
+ giftbagTypeList = [] if not cfgID else GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
isReset = False
if actID != playerActID:
isReset = True
@@ -122,7 +123,7 @@
DataRecordPack.DR_CTGError(curPlayer, "FlashGiftbag state is 0!", addDRDict)
return
- giftbagTypeList = GetGiftbagTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0))
+ giftbagTypeList = GetGiftbagTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
if not giftbagTypeList:
DataRecordPack.DR_CTGError(curPlayer, "FlashGiftbag GiftbagTypeList is null!", addDRDict)
return
@@ -142,7 +143,7 @@
return
giftbagID = giftbagIpyData.GetGiftbagID()
- giftItemList = giftbagIpyData.GetGiftItemList()
+ giftItemList = __GetJobItemList(giftbagIpyData.GetGiftItemList(), curPlayer.GetJob())
addDRDict.update({"giftbagID":giftbagID, "giftItemList":giftItemList})
buyCountLimit = giftbagIpyData.GetBuyCountLimit()
buyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagBuyCount % giftbagID)
@@ -161,19 +162,29 @@
PlayerControl.SendMailByKey("", [curPlayer.GetPlayerID()], giftItemList)
else:
for itemID, itemCount, isBind in giftItemList:
- ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem],
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem],
event=[ChConfig.ItemGive_CTG, True, addDRDict])
# 取玩家APPID,混服使用
- appID = GameWorld.GetPlayerPlatform(curPlayer.GetAccID())
+ appID = GameWorld.GetPlayerPlatform(curPlayer)
notifyKey = giftbagIpyData.GetNotifyKey()
if notifyKey:
orderIpyData = GetFlashGiftbagIDOrderInfoIpyData(giftbagID, appID)
rmb = 0 if not orderIpyData else int(orderIpyData.GetPayRMBNum())
PlayerControl.WorldNotify(0, notifyKey, [curPlayer.GetPlayerName(), rmb, giftbagIpyData.GetMainItemID()])
-
+
SyncFlashGiftbagBuyCount(curPlayer, [giftbagID])
+ PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GiftBag, actGiftbagType, False)
return True
+
+def __GetJobItemList(itemList, job):
+ jobItemList = []
+ for itemID, itemCnt, isBind in itemList:
+ if type(itemID) == int:
+ jobItemList.append([itemID, itemCnt, isBind])
+ elif job in itemID:
+ jobItemList.append([itemID[job], itemCnt, isBind])
+ return jobItemList
def SyncFlashGiftbagBuyCount(curPlayer, syncIDList=[], giftbagTypeList=[]):
## 通知限时礼包玩家活动信息
@@ -219,7 +230,7 @@
cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
if not cfgID:
return
- giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0))
+ giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
if not giftbagTypeList:
return
@@ -235,7 +246,7 @@
return
# 取玩家APPID,混服使用
- appID = GameWorld.GetPlayerPlatform(curPlayer.GetAccID())
+ appID = GameWorld.GetPlayerPlatform(curPlayer)
openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
packInfo = ChPyNetSendPack.tagMCFlashGiftbagInfo()
@@ -272,7 +283,7 @@
giftBag.RMB = 0 if not orderIpyData else int(orderIpyData.GetPayRMBNum())
giftBag.RMBOriginal = giftIpyData.GetOriginalRMB()
giftBag.ItemInfo = []
- for itemID, itemCount, isBind in giftIpyData.GetGiftItemList():
+ for itemID, itemCount, isBind in __GetJobItemList(giftIpyData.GetGiftItemList(), curPlayer.GetJob()):
item = ChPyNetSendPack.tagMCFlashGiftbagItem()
item.ItemID = itemID
item.ItemCount = itemCount
--
Gitblit v1.8.0