From 82a94e55b5710d50643b3d0bf8581afbb3f58cf2 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期二, 18 六月 2019 16:15:05 +0800 Subject: [PATCH] 7339 子 【开发】【2.0】称号,灵宠,技能附带效果 / 【后端】【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