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