From 4a5b10c5ca95f49cf3700619e1033da645c9de89 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期五, 23 十一月 2018 11:37:37 +0800 Subject: [PATCH] 4969 上古战场退出副本清除buff --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py | 33 +++++++++++++++++++-------------- 1 files changed, 19 insertions(+), 14 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py index 4736a3a..f15e88a 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py @@ -33,7 +33,7 @@ import time g_randomWellDict = {} -g_specialMarkDict = {} + ( WellType_Select, #可选库 @@ -73,11 +73,14 @@ if actCostRebateInfo.get(ShareDefine.ActKey_State): SyncWishingWellInfo(curPlayer) SyncWishingWellPlayerInfo(curPlayer) + elif __GetItemInfoByData(curPlayer, WellType_Get, 0)[0]: + SyncWishingWellPlayerInfo(curPlayer) return def OnDay(curPlayer): actCostRebateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {}) if not actCostRebateInfo.get(ShareDefine.ActKey_State): + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellFreeTime, 0) __SendWishingWellMail(curPlayer, int(time.time())) return @@ -95,7 +98,7 @@ def __CheckPlayerWishingWellAction(curPlayer): ## 检查玩家许愿池活动数据信息 global g_randomWellDict - global g_specialMarkDict + playerID = curPlayer.GetPlayerID() actWishingWellInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {}) @@ -120,11 +123,11 @@ #每天开始随机一次免费盘 if state: g_randomWellDict = {} - g_specialMarkDict = {} + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellRefreshCnt, 0) __DoActWishingRefresh(curPlayer, 1, True) SyncWishingWellInfo(curPlayer) - SyncWishingWellPlayerInfo(curPlayer) + SyncWishingWellPlayerInfo(curPlayer) return True @@ -162,10 +165,13 @@ mailItemList.append([itemID, itemCnt, isBind]) __SetItemData(curPlayer, WellType_Result, i, 0, 0, 0, 0) j +=1 - + if state > 0: + isOver = False PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellAwardTime, 0 if isOver else curTime) if mailItemList: PlayerControl.SendMailByKey('WishPool', [curPlayer.GetID()], mailItemList) + if state == -1: + SyncWishingWellPlayerInfo(curPlayer) GameWorld.DebugLog('许愿池距离时间 passDay=%s,mailItemList=%s,saveItemList=%s,isOver=%s'%(passDay, mailItemList, saveItemList, isOver), curPlayer.GetID()) return @@ -173,7 +179,6 @@ def __InitWishRateList(): ## 初始许愿池随机库 global g_randomWellDict - global g_specialMarkDict actWishingWellInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {}) state = actWishingWellInfo.get(ShareDefine.ActKey_State, 0) cfgID = actWishingWellInfo.get(ShareDefine.ActKey_CfgID, 0) @@ -199,15 +204,14 @@ isBind = ipyData.GetIsBind() weight = ipyData.GetWeight() mark = ipyData.GetMark() + rare = ipyData.GetRare() weightDict[isFree] = weightDict.get(isFree, 0) + weight if isFree not in g_randomWellDict: g_randomWellDict[isFree] = [] - g_randomWellDict[isFree].append([weightDict[isFree], [itemID, itemCnt, isBind, mark]]) + g_randomWellDict[isFree].append([weightDict[isFree], [itemID, itemCnt, isBind, mark, rare]]) - groupID, rowID = mark / 100, mark % 100 - if rowID > g_specialMarkDict.get(groupID, 0) % 100: - g_specialMarkDict[groupID] = mark - GameWorld.DebugLog(' 初始许愿池随机库 g_randomWellDict=%s, g_specialMarkDict=%s' % (g_randomWellDict, g_specialMarkDict)) + + GameWorld.DebugLog(' 初始许愿池随机库 g_randomWellDict=%s' % (g_randomWellDict)) return @@ -275,8 +279,8 @@ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellFreeTime, int(time.time())) for i, info in enumerate(randomResultList): - itemID, itemCnt, isBind, mark = info - isSpecial = 1 if mark in g_specialMarkDict.values() else 0 + itemID, itemCnt, isBind, mark, rare = info + isSpecial = rare __SetItemData(curPlayer, WellType_Select, i, itemID, itemCnt, isBind, isSpecial) GameWorld.DebugLog(' 许愿池活动刷新 isFree=%s, randomResultList=%s' % (isFree, randomResultList), playerID) return @@ -379,12 +383,13 @@ actInfo.WellItemInfo = [] randomItemList = __GetRandomRateList(0) for itemInfo in randomItemList: - itemID, itemCnt, isBind, mark = itemInfo[1] + itemID, itemCnt, isBind, mark, rare = itemInfo[1] wellItemInfo = ChPyNetSendPack.tagMCWishingWellItem() wellItemInfo.ItemID = itemID wellItemInfo.ItemCnt = itemCnt wellItemInfo.IsBind = isBind wellItemInfo.Mark = mark + wellItemInfo.Rare = rare actInfo.WellItemInfo.append(wellItemInfo) actInfo.Count = len(actInfo.WellItemInfo) NetPackCommon.SendFakePack(curPlayer, actInfo) -- Gitblit v1.8.0