From d1ad5d9c180f06127775498044c239d980689dbd Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 14 八月 2018 09:52:14 +0800
Subject: [PATCH] fix:2385 boss复活调整

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 55 insertions(+), 1 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index d6c0c46..99e2f5e 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -65,6 +65,7 @@
 import PlayerGeTui
 import GameWorldActionControl
 import GMT_CTG
+import PyGameData
 #---------------------------------------------------------------------
 
 #---------------------------------------------------------------------
@@ -154,6 +155,8 @@
         PlayerGeTui.CleanNewGuyCallBackGeTui(curPlayer.GetID())
         #活动
         GameWorldActionControl.OnPlayerLogin(curPlayer)
+        #玩家等级记录
+        PyGameData.g_todayPlayerLVDict[curPlayer.GetID()] = curPlayer.GetLV()
         
         GMT_CTG.OnPlayerLogin(curPlayer)
         
@@ -620,6 +623,10 @@
     elif packType == IPY_GameServer.CDBPlayerRefresh_LV:
         curPlayer.SetLV(packValue)
         PlayerSocial.UpdateSocialInfo(curPlayer, packType, packValue)
+        #玩家等级记录
+        playerID = curPlayer.GetID()
+        if playerID in PyGameData.g_todayPlayerLVDict:
+            PyGameData.g_todayPlayerLVDict[playerID] = packValue
 
     elif packType == IPY_GameServer.CDBPlayerRefresh_Job:
         curPlayer.SetJob(packValue)
@@ -1114,5 +1121,52 @@
     NetPackCommon.SendFakePack(curPlayer, serverDateTime)
     return
 
+def UpdataPlayerLVInfo():
+    #Onday更新玩家等级信息
+    PyGameData.g_yesterdayPlayerLVDict = PyGameData.g_todayPlayerLVDict
+    PyGameData.g_todayPlayerLVDict = {}
+    playerManager = GameWorld.GetPlayerManager()
+    for i in xrange(playerManager.GetActivePlayerCount()):
+        curPlayer = playerManager.GetActivePlayerAt(i)
+        if curPlayer == None or not curPlayer.GetInitOK():
+            continue
+        if PlayerControl.GetIsTJG(curPlayer):
+            continue
+        PyGameData.g_todayPlayerLVDict[curPlayer.GetID()] = curPlayer.GetLV()
+    return
+
+def LoadPlayerLVData():
+    #服务器开启时加载活跃玩家等级信息
+    universalRecMgr = GameWorld.GetUniversalRecMgr()
+
+    recDataList = universalRecMgr.GetTypeList(ShareDefine.Def_UniversalGameRecType_TodayPlayerLVInfo)
+    allCnt = recDataList.Count()
+    for index in xrange(allCnt):
+        recData = recDataList.At(index)
+        PyGameData.g_todayPlayerLVDict[recData.GetValue1()] = recData.GetValue2()
     
-    
\ No newline at end of file
+    recDataList = universalRecMgr.GetTypeList(ShareDefine.Def_UniversalGameRecType_YesterdayPlayerLVInfo)
+    allCnt = recDataList.Count()
+    for index in xrange(allCnt):
+        recData = recDataList.At(index)
+        PyGameData.g_yesterdayPlayerLVDict[recData.GetValue1()] = recData.GetValue2()
+    GameWorld.DebugLog('    服务器开启时加载活跃玩家等级信息g_todayPlayerLVDict=%s, g_yesterdayPlayerLVDict=%s'%(PyGameData.g_todayPlayerLVDict,PyGameData.g_yesterdayPlayerLVDict))
+    return
+
+def SavePlayerLVData():
+    #服务器关闭前时保存活跃玩家等级信息
+    GameWorld.GetUniversalRecMgr().Delete(ShareDefine.Def_UniversalGameRecType_TodayPlayerLVInfo)
+    GameWorld.GetUniversalRecMgr().Delete(ShareDefine.Def_UniversalGameRecType_YesterdayPlayerLVInfo)
+    universalRecMgr = GameWorld.GetUniversalRecMgr()
+    recDataList = universalRecMgr.GetTypeList(ShareDefine.Def_UniversalGameRecType_TodayPlayerLVInfo)
+    for playerID, lv in PyGameData.g_todayPlayerLVDict.items():
+        recData = recDataList.AddRec()
+        recData.SetValue1(playerID)
+        recData.SetValue2(lv)
+    
+    recDataList = universalRecMgr.GetTypeList(ShareDefine.Def_UniversalGameRecType_YesterdayPlayerLVInfo)
+    for playerID, lv in PyGameData.g_yesterdayPlayerLVDict.items():
+        recData = recDataList.AddRec()
+        recData.SetValue1(playerID)
+        recData.SetValue2(lv)
+    return
\ No newline at end of file

--
Gitblit v1.8.0