| | |
| | | import IpyGameDataPY
|
| | | import PlayerTalk
|
| | | import PlayerGeTui
|
| | | import PlayerStore
|
| | | import GameWorldActionControl
|
| | | import GMT_CTG
|
| | | import PyGameData
|
| | | import GMShell
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
| | | #通知玩家登陆信息,来自运营方
|
| | | #DoLogic_LoginUserData(curPlayer)
|
| | |
|
| | | #通知开服天数
|
| | | PlayerEventCounter.Sync_OpenServerDay(curPlayer)
|
| | | #通知开服天数, 登录时改为地图通知,因为GameServer的PlayerLogin在地图之后,前端有些功能处理需要提前得到开服天
|
| | | #PlayerEventCounter.Sync_OpenServerDay(curPlayer)
|
| | | # 通知广播信息
|
| | | GMCommon.SendBroadCastToClient(curPlayer)
|
| | |
|
| | |
| | | PlayerXMZZ.OnXMZZOnLogin(curPlayer)
|
| | | #等级奖励
|
| | | PlayerLVAward.OnPlayerLogin(curPlayer)
|
| | | |
| | | #商店购买次数
|
| | | PlayerStore.OnPlayerLogin(curPlayer)
|
| | | #通知世界boss信息
|
| | | GameWorldBoss.OnPlayerLogin(curPlayer)
|
| | | #家族副本boss状态通知
|
| | |
| | | PlayerGeTui.CleanNewGuyCallBackGeTui(curPlayer.GetID())
|
| | | #活动
|
| | | GameWorldActionControl.OnPlayerLogin(curPlayer)
|
| | | #玩家等级记录
|
| | | PyGameData.g_todayPlayerLVDict[curPlayer.GetID()] = curPlayer.GetLV()
|
| | |
|
| | | GMShell.OnPlayerLogin(curPlayer)
|
| | | GMT_CTG.OnPlayerLogin(curPlayer)
|
| | |
|
| | | #通知地图服务器自己初始化成功
|
| | |
| | | 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
|
| | |
| | | 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)
|
| | |
| | | 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
|
| | |
|
| | | ## 玩家切换真实地图
|
| | |
| | | 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 |