From 75c16c80bcacd22c5e0bc4c7a77ffca594ad4e2f Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期二, 25 九月 2018 21:16:21 +0800 Subject: [PATCH] 1834 装备分解-服务端防范不分解非装备道具 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py | 41 ++++++++++++++++++++++------------------- 1 files changed, 22 insertions(+), 19 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 43396b0..87e8612 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py @@ -40,14 +40,7 @@ return todayGiftbag def OnPlayerLogin(curPlayer): - isReset = __CheckPlayerFlashGiftbagAction(curPlayer) - if not isReset: - actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_FlashGiftbag, {}) - # 活动中同步活动信息 - if actInfo.get(ShareDefine.ActKey_State): - giftbagTypeList = GetGiftbagTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0)) - SyncFlashGiftbagBuyCount(curPlayer, giftbagTypeList=giftbagTypeList) - Sync_FlashGiftbagActionInfo(curPlayer) + __CheckPlayerFlashGiftbagAction(curPlayer) return def RefreshFlashGiftbagActionInfo(): @@ -71,10 +64,11 @@ 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)) + isReset = False if actID != playerActID: - giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0)) - ResetGiftbagItemBuyCount(curPlayer, giftbagTypeList) + isReset = True + __ResetGiftbagItemBuyCount(curPlayer, giftbagTypeList) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashGiftbagID, actID) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashGiftbagMailState, 0) GameWorld.DebugLog("限时礼包重置! actID=%s,playerActID=%s,state=%s,giftbagTypeList=%s" % (actID, playerActID, state, giftbagTypeList), playerID) @@ -89,9 +83,14 @@ PlayerControl.SendMailByKey(flashGiftbagIpyData.GetMailKey(), [playerID], flashGiftbagIpyData.GetMailItemPrize()) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FlashGiftbagMailState, state) GameWorld.DebugLog(" 发送新限时礼包邮件提醒! state=%s,playerMailState=%s" % (state, playerMailState), playerID) - return True + + if not isReset and cfgID: + if giftbagTypeList: + SyncFlashGiftbagBuyCount(curPlayer, giftbagTypeList=giftbagTypeList) + Sync_FlashGiftbagActionInfo(curPlayer) + return isReset -def ResetGiftbagItemBuyCount(curPlayer, giftbagTypeList): +def __ResetGiftbagItemBuyCount(curPlayer, giftbagTypeList): ##重置限时礼包限购物品次数 syncIDList = [] ipyDataMgr = IpyGameDataPY.IPY_Data() @@ -213,13 +212,16 @@ if not actInfo: return - if not actInfo.get(ShareDefine.ActKey_State): - return + #需要提前通知,所以去掉此限制 + #if not actInfo.get(ShareDefine.ActKey_State): + # return cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0) - giftbagTypeList = GetGiftbagTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0)) + if not cfgID: + return + giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0)) - if not cfgID or not giftbagTypeList: + if not giftbagTypeList: return flashGiftbagIpyData = IpyGameDataPY.GetIpyGameData("ActFlashGiftbag", cfgID) @@ -235,9 +237,10 @@ # 取玩家APPID,混服使用 appID = GameWorld.GetPlayerPlatform(curPlayer.GetAccID()) + openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1 packInfo = ChPyNetSendPack.tagMCFlashGiftbagInfo() - packInfo.StartDate = flashGiftbagIpyData.GetStartDate() - packInfo.EndtDate = flashGiftbagIpyData.GetEndDate() + packInfo.StartDate = GameWorld.GetOperationActionDateStr(flashGiftbagIpyData.GetStartDate(), openServerDay) + packInfo.EndtDate = GameWorld.GetOperationActionDateStr(flashGiftbagIpyData.GetEndDate(), openServerDay) packInfo.AdvanceMinutes = flashGiftbagIpyData.GetAdvanceMinutes() packInfo.ActivityTime = [] for i, startTime in enumerate(startTimeList): -- Gitblit v1.8.0