From 5d7c40ddd0f7a7589f5dd2e7835de8094f63d803 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 04 十二月 2018 15:16:53 +0800 Subject: [PATCH] 1 已删除 PyNetPack --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBHelpBattle.py | 36 +++++++++++++++++++++++++++++------- 1 files changed, 29 insertions(+), 7 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 5c74fc2..dc8ef28 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 @@ -34,17 +34,31 @@ import IPY_GameWorld import PlayerActivity +import time + def DoPlayerOnDay(curPlayer): checkInInfo = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HelpBattleCheckInCount) checkInCount = checkInInfo / 10 # 累计登记 todayIsCheckIn = checkInInfo % 10 # 今天是否已登记 if todayIsCheckIn: - checkInInfo = (checkInCount + 1) * 10 + 0 + checkInInfo = checkInCount * 10 + 0 PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HelpBattleCheckInCount, checkInInfo) SyncCheckInState(curPlayer, 0, False) # 重置每日已获得仙缘币 - PlayerControl.SetTodayXianyuanCoin(curPlayer, 0) + ondaySetXianyuanCoin = 0 + ondayLoginSetXianyuanCoin = curPlayer.GetDictByKey(ChConfig.Def_PDict_TodayXianyuanCoinOnLogin) + if ondayLoginSetXianyuanCoin: + # 这里做时间比较,预防玩家登录后就没有再切换地图,再次在该地图过天会导致设置值错误问题 + loginAddCoinTime = curPlayer.GetDictByKey(ChConfig.Def_PDict_LoginAddTodayXianyuanCoinTime) + if GameWorld.CheckTimeIsSameServerDayEx(loginAddCoinTime): + ondaySetXianyuanCoin = ondayLoginSetXianyuanCoin + GameWorld.DebugLog("玩家过天时,登录增加仙缘币有值,仍然是同一天,仙缘币重置为登录时增加的仙缘币!ondayLoginSetXianyuanCoin=%s" % ondayLoginSetXianyuanCoin) + else: + GameWorld.DebugLog("玩家过天时,登录增加仙缘币有值,但是不是同一天了,仙缘币重置为0!") + PlayerControl.SetTodayXianyuanCoin(curPlayer, ondaySetXianyuanCoin) + GameWorld.DebugLog("玩家过天设置今日已获得仙缘币: ondaySetXianyuanCoin=%s,ondayLoginSetXianyuanCoin=%s" + % (ondaySetXianyuanCoin, ondayLoginSetXianyuanCoin)) return def DoPlayerLogin(curPlayer): @@ -382,7 +396,7 @@ def __OnHelpBattleRecord(curPlayer, msgList, tick): ## 助战记录同步 - cmd, helpRecordList = msgList + cmd, helpRecordList, isLogin = msgList playerID = curPlayer.GetPlayerID() GameWorld.DebugLog("__OnHelpBattleRecord %s,helpRecordList=%s" % (cmd, helpRecordList), playerID) @@ -420,12 +434,16 @@ NetPackCommon.SendFakePack(curPlayer, recordPack) addDataDict = {"HelpList":drList} - GameWorld.DebugLog(" addXianyuanCoinTotal=%s,addXianyuanCoinTotalTotay=%s,totalHelpCount=%s" - % (addXianyuanCoinTotal, addXianyuanCoinTotalTotay, totalHelpCount), playerID) + GameWorld.DebugLog(" addXianyuanCoinTotal=%s,addXianyuanCoinTotalTotay=%s,totalHelpCount=%s,isLogin=%s" + % (addXianyuanCoinTotal, addXianyuanCoinTotalTotay, totalHelpCount, isLogin), playerID) PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_XianyuanCoin, addXianyuanCoinTotal, addDataDict=addDataDict, isSysHint=False) if addXianyuanCoinTotalTotay: PlayerControl.AddTodayXianyuanCoin(curPlayer, addXianyuanCoinTotalTotay) - + if isLogin: + curPlayer.SetDict(ChConfig.Def_PDict_TodayXianyuanCoinOnLogin, addXianyuanCoinTotalTotay) + curPlayer.SetDict(ChConfig.Def_PDict_LoginAddTodayXianyuanCoinTime, int(time.time())) + GameWorld.Log(" 登录时今日助战信息: addXianyuanCoinTotalTotay=%s" % (addXianyuanCoinTotalTotay), playerID) + # 更新总助战次数,更新排行榜 PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HelpBattleTotalCount, totalHelpCount) if totalHelpCount >= IpyGameDataPY.GetFuncCfg("HelpBattleRefresh", 4): @@ -478,8 +496,12 @@ fbType = GameWorld.GetMap().GetMapFBType() if fbType == IPY_GameWorld.fbtSingle: + gameFB = GameWorld.GetGameFB() helpBattlePlayerDict = PyGameData.g_fbHelpBattlePlayerDict.get(playerID, {}) - for helpPlayerInfoDict in helpBattlePlayerDict.values(): + for helpPlayerID, helpPlayerInfoDict in helpBattlePlayerDict.items(): + objID = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_HelpBattleFBObjID % helpPlayerID) + if not objID: + continue relation = helpPlayerInfoDict.get("Relation", 0) if not relation: continue -- Gitblit v1.8.0