From 4522a07fe53f63a2ff97701ee6a166e80e329181 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 19 二月 2019 12:01:09 +0800
Subject: [PATCH] 6249 【后端】【2.0】拍卖行(拍卖物品表、拍卖记录表定义)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashSale.py | 34 +++++++++++++++++++++++-----------
1 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashSale.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashSale.py
index c067a93..646fc9c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashSale.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashSale.py
@@ -28,13 +28,15 @@
import datetime
-def GetShopTypeList(cfgID, dayIndex, state):
+def GetShopTypeList(cfgID, dayIndex, state, woldLV):
if cfgID == 0 or state == 0:
return []
ipyData = IpyGameDataPY.GetIpyGameData("ActFlashSale", cfgID)
if not ipyData:
return []
- shopTypeList = ipyData.GetShopTypeList()
+ shopTypeList = GameWorld.GetDictValueByRangeKey(ipyData.GetShopTypeList(), woldLV, [])
+ if not shopTypeList:
+ return []
todayShopTypeList = shopTypeList[-1] if dayIndex >= len(shopTypeList) else shopTypeList[dayIndex]
return [todayShopTypeList[state - 1] if state - 1 < len(todayShopTypeList) else todayShopTypeList[-1]]
@@ -65,6 +67,7 @@
state = actInfo.get(ShareDefine.ActKey_State, 0)
cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
dayIndex = actInfo.get(ShareDefine.ActKey_DayIndex, 0)
+ woldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashSaleID, 0, ChConfig.Def_PDictType_FlashSale) # 玩家身上的活动ID
playerActState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashSaleState, 0, ChConfig.Def_PDictType_FlashSale) # 玩家身上的活动State
playerMailState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashSaleMailState, 0, ChConfig.Def_PDictType_FlashSale) # 玩家身上的活动提醒邮件状态
@@ -73,7 +76,8 @@
isReset = True
if cfgID:
flashSaleIpyData = IpyGameDataPY.GetIpyGameData("ActFlashSale", cfgID)
- startDate = flashSaleIpyData.GetStartDate()
+ openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
+ startDate = GameWorld.GetOperationActionDateStr(flashSaleIpyData.GetStartDate(), openServerDay)
startTimeNum = GameWorld.ChangeTimeStrToNum(startDate, timeFormat=ChConfig.TYPE_Time_Format_Day)
else:
startTimeNum = 0
@@ -81,7 +85,7 @@
GameWorld.DebugLog(' 限时抢购活动重置!')
curPlayer.ClearNomalDict(ChConfig.Def_PDictType_FlashSale)
- shopTypeList = GetShopTypeList(cfgID, dayIndex, state)
+ shopTypeList = GetShopTypeList(cfgID, dayIndex, state, woldLV)
if shopTypeList:
FunctionNPCCommon.ResetShopItemBuyCountByShopType(curPlayer, shopTypeList)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashSaleID, actID, ChConfig.Def_PDictType_FlashSale)
@@ -116,8 +120,9 @@
LVLimit = flashSaleIpyData.GetLVLimit()
if not mailKey or curPlayer.GetLV() < LVLimit:
return
- startDate = flashSaleIpyData.GetStartDate()
- endDate = flashSaleIpyData.GetEndDate()
+ openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
+ startDate = GameWorld.GetOperationActionDateStr(flashSaleIpyData.GetStartDate(), openServerDay)
+ endDate = GameWorld.GetOperationActionDateStr(flashSaleIpyData.GetEndDate(), openServerDay)
startTimeList = flashSaleIpyData.GetStartTimeList()
endTimeList = flashSaleIpyData.GetEndTimeList()
if not startTimeList or not endTimeList:
@@ -127,7 +132,8 @@
endTime = datetime.datetime.strptime("%s %s:00" % (endDate, endTimeList[-1]), ChConfig.TYPE_Time_Format)
curDateTime = GameWorld.GetCurrentTime()
if startTime <= curDateTime <= endTime:
- PlayerControl.SendMailByKey(mailKey, [curPlayer.GetID()], flashSaleIpyData.GetMailItemPrize())
+ paramList = [startDate.replace('-','/'), endDate.replace('-','/'), GameWorld.GbkToCode('、').join(startTimeList)]
+ PlayerControl.SendMailByKey(mailKey, [curPlayer.GetID()], flashSaleIpyData.GetMailItemPrize(), paramList)
startTimeNum = GameWorld.ChangeTimeStrToNum(startDate, timeFormat=ChConfig.TYPE_Time_Format_Day)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashSaleMailState, startTimeNum, ChConfig.Def_PDictType_FlashSale)
GameWorld.DebugLog(" 发送新限时抢购邮件提醒!", curPlayer.GetID())
@@ -153,13 +159,14 @@
flashSaleIpyData = IpyGameDataPY.GetIpyGameData("ActFlashSale", cfgID)
if not flashSaleIpyData:
return
- shopTypeList = flashSaleIpyData.GetShopTypeList()
+ woldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
+ shopTypeList = GameWorld.GetDictValueByRangeKey(flashSaleIpyData.GetShopTypeList(), woldLV, [])
startTimeList = flashSaleIpyData.GetStartTimeList()
endTimeList = flashSaleIpyData.GetEndTimeList()
if len(startTimeList) != len(endTimeList):
GameWorld.ErrLog("限时抢购开关时间时分配置错误!cfgID=%s" % cfgID)
return
-
+ job = curPlayer.GetJob()
openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
packInfo = ChPyNetSendPack.tagMCFlashSaleInfo()
packInfo.StartDate = GameWorld.GetOperationActionDateStr(flashSaleIpyData.GetStartDate(), openServerDay)
@@ -194,7 +201,10 @@
giftBag.MoneyType = itemIpyData.GetMoneyType()
giftBag.MoneyNumber = itemIpyData.GetMoneyNum()
giftBag.MoneyOriginal = itemIpyData.GetMoneyOriginal()
- giftBag.ItemID = itemIpyData.GetItemID()
+ itemID = itemIpyData.GetItemID()
+ jobItemList = itemIpyData.GetJobItem()
+ jobItemID = FunctionNPCCommon.GetShopJobItem(job, itemID, jobItemList)
+ giftBag.ItemID = jobItemID
giftBag.ItemCount = itemIpyData.GetItemCnt()
giftBag.IsBind = itemIpyData.GetIsBind()
shop.GiftbagInfo.append(giftBag)
@@ -241,11 +251,13 @@
flashSaleIpyData = IpyGameDataPY.GetIpyGameData("ActFlashSale", cfgID)
if not flashSaleIpyData:
return
+ woldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
+
packInfo = ChPyNetSendPack.tagMCFlashSaleAppointmentInfo()
packInfo.GoodsList = []
if goodsID == 0:
packInfo.IsAll = 1
- shopTypeList = flashSaleIpyData.GetShopTypeList()
+ shopTypeList = GameWorld.GetDictValueByRangeKey(flashSaleIpyData.GetShopTypeList(), woldLV, [])
for dayIndex, shopList in enumerate(shopTypeList):
for timeIndex, shopType in enumerate(shopList):
shopItemIpyDataList = IpyGameDataPY.GetIpyGameDataByCondition("Store", {"ShopType":shopType}, True, True)
--
Gitblit v1.8.0