xdh
2018-10-25 6366979426fccd97c0cb0bd384ada3a8b9843a24
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -63,8 +63,11 @@
import IpyGameDataPY
import PlayerTalk
import PlayerGeTui
import PlayerStore
import GameWorldActionControl
import GMT_CTG
import PyGameData
import GMShell
#---------------------------------------------------------------------
#---------------------------------------------------------------------
@@ -108,8 +111,8 @@
        #通知玩家登陆信息,来自运营方
        #DoLogic_LoginUserData(curPlayer)
    
        #通知开服天数
        PlayerEventCounter.Sync_OpenServerDay(curPlayer)
        #通知开服天数, 登录时改为地图通知,因为GameServer的PlayerLogin在地图之后,前端有些功能处理需要提前得到开服天
        #PlayerEventCounter.Sync_OpenServerDay(curPlayer)
        # 通知广播信息
        GMCommon.SendBroadCastToClient(curPlayer)
    
@@ -141,7 +144,8 @@
        PlayerXMZZ.OnXMZZOnLogin(curPlayer)
        #等级奖励
        PlayerLVAward.OnPlayerLogin(curPlayer)
        #商店购买次数
        PlayerStore.OnPlayerLogin(curPlayer)
        #通知世界boss信息
        GameWorldBoss.OnPlayerLogin(curPlayer)
        #家族副本boss状态通知
@@ -154,7 +158,10 @@
        PlayerGeTui.CleanNewGuyCallBackGeTui(curPlayer.GetID())
        #活动
        GameWorldActionControl.OnPlayerLogin(curPlayer)
        #玩家等级记录
        PyGameData.g_todayPlayerLVDict[curPlayer.GetID()] = curPlayer.GetLV()
        
        GMShell.OnPlayerLogin(curPlayer)
        GMT_CTG.OnPlayerLogin(curPlayer)
        
    #通知地图服务器自己初始化成功
@@ -265,19 +272,6 @@
def MSGetReward(curPlayer):
    #PlayerCanGetReward.SynClient_CanGetRewardList(curPlayer)
    return
## 通知首次开服时间
#  @param curPlayer: 玩家实例
#  @return: None
def Sync_InitOpenServerTime(curPlayer):
#    initOpenServerTime = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_InitOpenServerTime)
#    packData = ChPyNetSendPack.tagInitOpenServerTime()
#    packData.Clear()
#    packData.Time = initOpenServerTime
#    NetPackCommon.SendFakePack(curPlayer, packData)
    return
## 运营登陆信息处理
#  @param curPlayer
@@ -620,6 +614,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)
@@ -679,6 +677,8 @@
    GameWorld.Log("玩家 : %s,%s,FBID=%s 切换地图" % (curPlayer.GetName(), curPlayer.GetRealMapID(), curPlayer.GetFBID()) , curPlayer.GetPlayerID())
    PlayerTeam.OnPlayerChangeMap(curPlayer, tick)
    GameWorldBoss.OnPlayerChangeMap(curPlayer)
    PlayerFamily.OnPlayerChangeMap(curPlayer, tick)
    PlayerFamilyParty.OnPlayerChangeMap(curPlayer, tick)
    return 
## 玩家切换真实地图
@@ -1114,5 +1114,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