From cdb5d93a9fd7b32a2ed178feed4eee20ee6502e5 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 11 二月 2019 15:41:24 +0800 Subject: [PATCH] 5940 【后端】【1.6】跨服PK奖励配置规则优化 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py | 35 +++++++++++++++++++---------------- 1 files changed, 19 insertions(+), 16 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 558886d..768296c 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,6 +73,8 @@ if actCostRebateInfo.get(ShareDefine.ActKey_State): SyncWishingWellInfo(curPlayer) SyncWishingWellPlayerInfo(curPlayer) + elif __GetItemInfoByData(curPlayer, WellType_Get, 0)[0]: + SyncWishingWellPlayerInfo(curPlayer) return def OnDay(curPlayer): @@ -83,7 +85,7 @@ return def RefreshWishingWellAction(): - #__InitWishRateList() + __InitWishRateList() playerManager = GameWorld.GetPlayerManager() for i in xrange(playerManager.GetPlayerCount()): curPlayer = playerManager.GetPlayerByIndex(i) @@ -96,7 +98,7 @@ def __CheckPlayerWishingWellAction(curPlayer): ## 检查玩家许愿池活动数据信息 global g_randomWellDict - global g_specialMarkDict + playerID = curPlayer.GetPlayerID() actWishingWellInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {}) @@ -120,13 +122,12 @@ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellID, WishingWellID) #每天开始随机一次免费盘 if state: - g_randomWellDict = {} - g_specialMarkDict = {} + #g_randomWellDict = {} PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellRefreshCnt, 0) __DoActWishingRefresh(curPlayer, 1, True) SyncWishingWellInfo(curPlayer) - SyncWishingWellPlayerInfo(curPlayer) + SyncWishingWellPlayerInfo(curPlayer) return True @@ -164,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 @@ -175,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) @@ -201,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 @@ -277,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 @@ -381,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