| | |
| | | import GMShell
|
| | | import IPY_PlayerDefine
|
| | | import GameWorldArena
|
| | | import CrossLuckyCloudBuy
|
| | | import CrossRealmPK
|
| | | import CrossChampionship
|
| | | import AuctionHouse
|
| | | import PlayerAssist
|
| | | import PlayerFB
|
| | | import PlayerLove
|
| | | import PlayerCharm
|
| | | import CrossRealmPlayer
|
| | | import CrossBattlefield
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
| | | if GameWorld.IsCrossServer():
|
| | | #跨服PK
|
| | | CrossRealmPK.OnPlayerLoginCrossServer(curPlayer)
|
| | | #协助
|
| | | PlayerAssist.OnPlayerLoginCrossServer(curPlayer)
|
| | | return
|
| | |
|
| | | #玩家家族刷新
|
| | |
| | | PlayerFamily.PlayerLoginRefreshFamily(curPlayer, tick)
|
| | | #玩家队伍初始化
|
| | | PlayerTeam.OnPlayerLoginRefreshTeam(curPlayer, tick)
|
| | | PlayerCompensation.NotifyPlayerCompensation(curPlayer)
|
| | | #PlayerCompensation.NotifyPlayerCompensation(curPlayer)
|
| | | __UpdOnedayJobPlayerLoginoffTime(curPlayer)
|
| | | CrossRealmPlayer.OnPlayerLogin(curPlayer)
|
| | |
|
| | | if not PlayerControl.GetIsTJG(curPlayer):
|
| | | # 只有通知逻辑的应该放此处减少IO,如有逻辑处理存储等不可放在此处
|
| | |
| | | PlayerStore.OnPlayerLogin(curPlayer)
|
| | | #通知世界boss信息
|
| | | GameWorldBoss.OnPlayerLogin(curPlayer)
|
| | | #家族副本boss状态通知
|
| | | PlayerFamilyBoss.OnLogin(curPlayer)
|
| | | #渡劫
|
| | | PlayerDuJie.OnPlayerLogin(curPlayer)
|
| | | #守卫人皇
|
| | |
| | | GameWorldArena.OnPlayerLogin(curPlayer)
|
| | | #跨服PK
|
| | | CrossRealmPK.OnPlayerLogin(curPlayer)
|
| | | #幸运云购
|
| | | CrossLuckyCloudBuy.OnPlayerLogin(curPlayer)
|
| | | #诛仙BOSS
|
| | | PlayerZhuXianBoss.OnPlayerLogin(curPlayer)
|
| | | #骑宠boss状态通知
|
| | | PlayerHorsePetBoss.OnLogin(curPlayer)
|
| | | #协助
|
| | | PlayerAssist.OnPlayerLogin(curPlayer, False)
|
| | | PlayerAssist.OnPlayerLogin(curPlayer)
|
| | | #天星塔
|
| | | GameWorldSkyTower.OnPlayerLogin(curPlayer)
|
| | | GMT_CTG.OnPlayerLogin(curPlayer)
|
| | |
|
| | | else:
|
| | | #协助
|
| | | PlayerAssist.OnPlayerLogin(curPlayer, True)
|
| | | pass
|
| | | |
| | | return
|
| | |
|
| | | def DoPlayerRealLoginOK(curPlayer, loginMsg, tick):
|
| | | ''' 玩家最终登录成功处理, 由 MapServer DoPlayerRealLoginOK 通知
|
| | | 该函数为地图最终登录成功才会执行到,以后一些功能类的登录处理建议均写到这里
|
| | | 旧的功能先不动( __DoPlayerLoginServer 函数中的功能),如果有登录相关的bug再考虑是否移动到此函数
|
| | | '''
|
| | | isMixServerFirstLogin = loginMsg[0]
|
| | | GameWorld.Log("GameServer->DoPlayerRealLoginOK, isMixServerFirstLogin=%s" % isMixServerFirstLogin, curPlayer.GetPlayerID())
|
| | | |
| | | if GameWorld.IsCrossServer():
|
| | | return
|
| | | |
| | | PyGameData.g_dbPlayerIDMap[curPlayer.GetPlayerID()] = curPlayer.GetAccID()
|
| | | |
| | | if not PlayerControl.GetIsTJG(curPlayer):
|
| | | #家族副本boss状态通知
|
| | | PlayerFamilyBoss.OnLogin(curPlayer)
|
| | | #魅力
|
| | | PlayerCharm.OnPlayerLogin(curPlayer)
|
| | | #情缘
|
| | | PlayerLove.OnPlayerLogin(curPlayer)
|
| | | #跨服战场
|
| | | CrossBattlefield.OnPlayerLogin(curPlayer)
|
| | | #跨服排位
|
| | | CrossChampionship.OnPlayerLogin(curPlayer, tick)
|
| | | |
| | | if isMixServerFirstLogin:
|
| | | PlayerCharm.OnMixServerFirstLogin(curPlayer)
|
| | |
|
| | | return
|
| | |
|
| | |
| | | AuctionHouse.OnPlayerLeaveServer(curPlayer)
|
| | | #协助
|
| | | PlayerAssist.OnLeaveServer(curPlayer)
|
| | | #红包
|
| | | PlayerFamilyRedPacket.OnLeaveServer(curPlayer)
|
| | | #------------镖车逻辑
|
| | | #TruckPlayerDisconnectProcess(curPlayer, tick)
|
| | |
|
| | |
| | |
|
| | | elif packType == IPY_GameServer.CDBPlayerRefresh_LV:
|
| | | curPlayer.SetLV(packValue)
|
| | | PlayerSocial.UpdateSocialInfo(curPlayer, packType, packValue)
|
| | | PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue)
|
| | | #玩家等级记录
|
| | | playerID = curPlayer.GetID()
|
| | | if playerID in PyGameData.g_todayPlayerLVDict:
|
| | |
| | |
|
| | | elif packType == IPY_GameServer.CDBPlayerRefresh_OfficialRank:
|
| | | curPlayer.SetOfficialRank(packValue)
|
| | | PlayerSocial.UpdateSocialInfo(curPlayer, packType, packValue)
|
| | | PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue)
|
| | | #更新排行榜的境界
|
| | | PlayerBillboard.UpdateBillboardRealm(curPlayer)
|
| | |
|
| | |
| | | serverDateTime.Hour = serverTime.hour
|
| | | serverDateTime.Minute = serverTime.minute
|
| | | serverDateTime.Second = serverTime.second
|
| | | serverDateTime.MicSecond = serverTime.microsecond |
| | | serverDateTime.MicSecond = serverTime.microsecond
|
| | | serverDateTime.CrossServerTime = GameWorld.GetCrossServerTimeStr()
|
| | |
|
| | | # 通知客户端同步时间
|
| | | NetPackCommon.SendFakePack(curPlayer, serverDateTime)
|