From 5c4ea9b4fd7f98d82e64878a5ce29d5747506f8c Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期四, 24 一月 2019 14:08:09 +0800 Subject: [PATCH] 5924 【后端】【1.5.100】诛仙Boss功能(2秒不打,停止掉血) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashSale.py | 56 +++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 37 insertions(+), 19 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 8b8b8dc..8b42cff 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashSale.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashSale.py @@ -73,7 +73,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 @@ -116,8 +117,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 +129,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()) @@ -159,7 +162,7 @@ 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 +197,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) @@ -226,11 +232,11 @@ if not cfgID: return PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashSaleYY % goodsID, packData.State, ChConfig.Def_PDictType_FlashSale) - Sync_FlashSaleAppointmentInfo(curPlayer) + Sync_FlashSaleAppointmentInfo(curPlayer, goodsID) return -def Sync_FlashSaleAppointmentInfo(curPlayer): +def Sync_FlashSaleAppointmentInfo(curPlayer, goodsID=0): ##通知限时抢购预约情况 actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_FlashSale, {}) if not actInfo: @@ -243,17 +249,29 @@ return packInfo = ChPyNetSendPack.tagMCFlashSaleAppointmentInfo() packInfo.GoodsList = [] - shopTypeList = flashSaleIpyData.GetShopTypeList() - for dayIndex, shopList in enumerate(shopTypeList): - for timeIndex, shopType in enumerate(shopList): - shopItemIpyDataList = IpyGameDataPY.GetIpyGameDataByCondition("Store", {"ShopType":shopType}, True, True) - if not shopItemIpyDataList: - continue - for i in xrange(len(shopItemIpyDataList)): - goodsMark = dayIndex * 10000 + timeIndex * 100 + i #商品标识 - isAppointment = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashSaleYY % goodsMark, 0, ChConfig.Def_PDictType_FlashSale) - if isAppointment: - packInfo.GoodsList.append(goodsMark) + if goodsID == 0: + packInfo.IsAll = 1 + shopTypeList = flashSaleIpyData.GetShopTypeList() + for dayIndex, shopList in enumerate(shopTypeList): + for timeIndex, shopType in enumerate(shopList): + shopItemIpyDataList = IpyGameDataPY.GetIpyGameDataByCondition("Store", {"ShopType":shopType}, True, True) + if not shopItemIpyDataList: + continue + for i in xrange(len(shopItemIpyDataList)): + goodsMark = dayIndex * 10000 + timeIndex * 100 + i #商品标识 + isAppointment = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashSaleYY % goodsMark, 0, ChConfig.Def_PDictType_FlashSale) + if isAppointment: + appoinetmentPack = ChPyNetSendPack.tagMCFlashSaleAppointmentState() + appoinetmentPack.GoodsMark = goodsMark + appoinetmentPack.State = 1 + packInfo.GoodsList.append(appoinetmentPack) + else: + packInfo.IsAll = 0 + isAppointment = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashSaleYY % goodsID, 0, ChConfig.Def_PDictType_FlashSale) + appoinetmentPack = ChPyNetSendPack.tagMCFlashSaleAppointmentState() + appoinetmentPack.GoodsMark = goodsID + appoinetmentPack.State = isAppointment + packInfo.GoodsList.append(appoinetmentPack) packInfo.GoodsCount = len(packInfo.GoodsList) NetPackCommon.SendFakePack(curPlayer, packInfo) return -- Gitblit v1.8.0