xdh
2018-08-10 e334d90099846d5eaf0ec42fb294b63db3932468
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()
    
    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