From e8bf98a53369d63ce2ea76e135d55c43b0494734 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 26 十一月 2018 00:54:52 +0800 Subject: [PATCH] 4762 【后端】增加助战排行榜;增加离线玩家助战信息处理; --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBHelpBattle.py | 41 +++++++++++++++++++++++++++++++++-------- 1 files changed, 33 insertions(+), 8 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBHelpBattle.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBHelpBattle.py index c64f99c..e3fcff1 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBHelpBattle.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBHelpBattle.py @@ -18,6 +18,7 @@ import GameWorld import ChConfig import PlayerControl +import PlayerBillboard import ChPyNetSendPack import NetPackCommon import PlayerViewCacheTube @@ -34,8 +35,26 @@ def DoPlayerOnDay(curPlayer): checkInInfo = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HelpBattleCheckInCount) checkInCount = checkInInfo / 10 # 累计登记 - checkInInfo = (checkInCount + 1) * 10 + 0 - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HelpBattleCheckInCount, checkInInfo) + todayIsCheckIn = checkInInfo % 10 # 今天是否已登记 + if todayIsCheckIn: + checkInInfo = (checkInCount + 1) * 10 + 0 + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HelpBattleCheckInCount, checkInInfo) + SyncCheckInState(curPlayer, 0, False) + return + +def DoPlayerLogin(curPlayer): + checkInInfo = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HelpBattleCheckInCount) + todayIsCheckIn = checkInInfo % 10 # 今天是否已登记 + if todayIsCheckIn: + SyncCheckInState(curPlayer, 1, True) + return + +def SyncCheckInState(curPlayer, checkInState, isLogin): + ## 同步登记状态 + checkInPack = ChPyNetSendPack.tagMCHelpBattleCheckInResult() + checkInPack.IsOK = checkInState + checkInPack.IsLogin = int(isLogin) + NetPackCommon.SendFakePack(curPlayer, checkInPack) return def GameServer_FBHelpBattleResult(curPlayer, msgList, tick): @@ -89,9 +108,7 @@ if not haveViewCache: PlayerViewCacheTube.UpdateGameServerPlayerCache(curPlayer, tick, False) - checkInPack = ChPyNetSendPack.tagMCHelpBattleCheckInResult() - checkInPack.IsOK = isOK - NetPackCommon.SendFakePack(curPlayer, checkInPack) + SyncCheckInState(curPlayer, 1, False) GameWorld.DebugLog("FBHelpBattleResult: %s,checkInCount=%s,fightPower=%s,isOK=%s,haveViewCache=%s" % (cmd, checkInCount, fightPower, isOK, haveViewCache), curPlayer.GetPlayerID()) @@ -351,6 +368,7 @@ return def __OnHelpBattleRecord(curPlayer, msgList, tick): + ## 助战记录同步 cmd, helpRecordList = msgList playerID = curPlayer.GetPlayerID() GameWorld.DebugLog("__OnHelpBattleRecord %s,helpRecordList=%s" % (cmd, helpRecordList), playerID) @@ -359,6 +377,7 @@ addXianyuanCoinTotalTotay = 0 # 累计需要增加的今日仙缘币 drList = [] + totalHelpCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HelpBattleTotalCount) recordPack = ChPyNetSendPack.tagMCHelpBattleRecordList() recordPack.RecordList = [] for recordInfo in helpRecordList: @@ -382,16 +401,22 @@ addXianyuanCoinTotal += xianyuanCoinAdd if isSameDay: addXianyuanCoinTotalTotay += xianyuanCoinAdd - + totalHelpCount += 1 + recordPack.RecordCount = len(recordPack.RecordList) NetPackCommon.SendFakePack(curPlayer, recordPack) addDataDict = {"HelpList":drList} - GameWorld.DebugLog(" addXianyuanCoinTotal=%s,addXianyuanCoinTotalTotay=%s" % (addXianyuanCoinTotal, addXianyuanCoinTotalTotay), playerID) + GameWorld.DebugLog(" addXianyuanCoinTotal=%s,addXianyuanCoinTotalTotay=%s,totalHelpCount=%s" + % (addXianyuanCoinTotal, addXianyuanCoinTotalTotay, totalHelpCount), playerID) PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_XianyuanCoin, addXianyuanCoinTotal, addDataDict=addDataDict, isSysHint=False) if addXianyuanCoinTotalTotay: PlayerControl.AddTodayXianyuanCoin(curPlayer, addXianyuanCoinTotalTotay) - + + # 更新总助战次数,更新排行榜 + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HelpBattleTotalCount, totalHelpCount) + if totalHelpCount >= IpyGameDataPY.GetFuncCfg("HelpBattleRefresh", 4): + PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_FBHelpBattle, totalHelpCount) return def DoSingleFBAddXianyuanCoin(curPlayer, mapID, lineID): -- Gitblit v1.8.0