| | |
| | | import PlayerFamilyBoss
|
| | | #import PlayerManorWar
|
| | | import PlayerBourse
|
| | | import GameWorldActionTeHui
|
| | | import PlayerZhuXianBoss
|
| | | import PlayerXMZZ
|
| | | import GameWorldMergePK
|
| | | import GameWorldShopItem
|
| | | import MergeChildMsg
|
| | | import PlayerTruck
|
| | | import PlayerMergeEvent
|
| | | import HighLadder
|
| | | import EventReport
|
| | | import MergePlayer
|
| | | import PlayerCompensation
|
| | | import PlayerFamilyRedPacket
|
| | | import PlayerFamilyStore
|
| | | #import PlayerFamilyStore
|
| | | import PyDataManager
|
| | | import PlayerSocial
|
| | | import PlayerFamilyParty
|
| | |
| | | import PyGameData
|
| | | import GMShell
|
| | | import IPY_PlayerDefine
|
| | | import CrossRealmPK
|
| | | import AuctionHouse
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | def DoRefreshMainServerRole(curPlayer):
|
| | | ## 刷新本服角色信息
|
| | | |
| | | curTeam = curPlayer.GetTeam()
|
| | | if curTeam:
|
| | | PlayerTeam.Sync_TeamMemberInfo(curTeam)
|
| | | return
|
| | |
|
| | | ## 玩家登录初始化(封包参数)
|
| | | # @param index 玩家索引
|
| | | # @param tick 当前时间
|
| | |
| | | InitPlayerOnLineReply(curPlayer, tick)
|
| | | # 统计登入人数
|
| | | GameDataRecord.PlayerLoginRecord(curPlayer, tick)
|
| | | __DoPlayerLoginServer(curPlayer, tick)
|
| | | |
| | | #通知地图服务器自己初始化成功
|
| | | curPlayer.MapServer_InitOK()
|
| | | return
|
| | |
|
| | | def __DoPlayerLoginServer(curPlayer, tick):
|
| | | ''' 玩家登录需要处理的内容,本服及跨服服务器分开
|
| | | '''
|
| | | if GameWorld.IsCrossServer():
|
| | | #跨服PK
|
| | | CrossRealmPK.OnPlayerLoginCrossServer(curPlayer)
|
| | | return
|
| | | |
| | | #玩家家族刷新
|
| | | #家族任务需要刷新 FamilyLV, 地图服务器需要知道FamilyLV来通知玩家家族任务次数
|
| | | PlayerFamily.PlayerLoginRefreshFamily(curPlayer, tick)
|
| | |
| | | # 通知广播信息
|
| | | GMCommon.SendBroadCastToClient(curPlayer)
|
| | |
|
| | | |
| | | # 在非跨服服务器上线时,在跨服PK赛期间如果roomID不为0则重置
|
| | | #if not GameWorld.IsMergeServer() and GameWorldMergePK.IsMergePKMatchOpen() \
|
| | | # and curPlayer.GetVsRoomId() != 0:
|
| | | # PlayerControl.SetVsRoomId(curPlayer, 0)
|
| | | |
| | | PlayerTruck.SyncPlayerTruckStartTime(curPlayer)
|
| | | #通知玩家交易所挂单情况
|
| | | PlayerBourse.OnPlayerLogin(curPlayer)
|
| | |
|
| | | #拍卖行
|
| | | AuctionHouse.OnPlayerLogin(curPlayer)
|
| | | |
| | | #上线广播
|
| | | __CheckWorldNotifyOnLogin(curPlayer, tick)
|
| | | #上线奖励处理
|
| | | #PlayerMergeEvent.MergeEventOnPlayerLogin(curPlayer)
|
| | | #MergePlayer.OnPlayerLogin(curPlayer)
|
| | |
|
| | | #仙盟红包
|
| | | PlayerFamilyRedPacket.OnPlayerLogin(curPlayer)
|
| | | #仙盟仓库
|
| | | PlayerFamilyStore.OnPlayerLogin(curPlayer)
|
| | | #PlayerFamilyStore.OnPlayerLogin(curPlayer)
|
| | | #仙盟宴会
|
| | | PlayerFamilyParty.OnPlayerLogin(curPlayer)
|
| | | #封魔坛
|
| | |
| | | PyGameData.g_todayPlayerLVDict[curPlayer.GetID()] = curPlayer.GetLV()
|
| | | #副本助战
|
| | | PlayerFBHelpBattle.OnHelpPlayerLogin(curPlayer)
|
| | | #跨服PK
|
| | | CrossRealmPK.OnPlayerLogin(curPlayer)
|
| | | #诛仙BOSS
|
| | | PlayerZhuXianBoss.OnPlayerLogin(curPlayer)
|
| | |
|
| | | GMShell.OnPlayerLogin(curPlayer)
|
| | | GMT_CTG.OnPlayerLogin(curPlayer)
|
| | | |
| | | #通知地图服务器自己初始化成功
|
| | | curPlayer.MapServer_InitOK()
|
| | | return
|
| | |
|
| | | ## 增加高手玩家上线广播
|
| | |
| | | # @return None
|
| | | def __CheckWorldNotifyOnLogin(curPlayer, tick):
|
| | | # 跨服服务器不广播
|
| | | if GameWorld.IsMergeServer():
|
| | | if GameWorld.IsCrossServer():
|
| | | return
|
| | |
|
| | | limitLV = IpyGameDataPY.GetFuncCfg("BillBoardPlayerLoginNotify", 2) # 最低等级限制
|
| | |
| | | diff_Time = loginTime - logoffTime
|
| | | #天数 * 24小时 * 60 分钟 + 秒
|
| | | return diff_Time.days * 24 * 60 * 60 + diff_Time.seconds
|
| | |
|
| | | ## 统计客户端跨服赛激活时间
|
| | | # @param index 玩家索引
|
| | | # @return None
|
| | | def SendMergeWarOpen(curPlayer):
|
| | | # 发送跨服赛服务器信息
|
| | | mapConfig = GameConfig.GetConfig()
|
| | | mergeServerIP = mapConfig.get("MergeServerIP")
|
| | | mergeServerPort = mapConfig.get("MergeServerPort")
|
| | | if not mergeServerIP:
|
| | | return
|
| | | mergeServerInfo = ChPyNetSendPack.tagMergeServerInfo()
|
| | | mergeServerInfo.ServerIPLen = len(mergeServerIP)
|
| | | mergeServerInfo.ServerIP = mergeServerIP
|
| | | mergeServerInfo.Port = mergeServerPort
|
| | | mergeServerInfo.IsMergeServer = GameWorld.IsMergeServer()
|
| | | NetPackCommon.SendFakePack(curPlayer, mergeServerInfo)
|
| | | return
|
| | |
|
| | | ## 跨服赛通知奖励
|
| | | # @param curPlayer: 玩家实例
|
| | | # @return: None
|
| | | def MSGetReward(curPlayer):
|
| | | #PlayerCanGetReward.SynClient_CanGetRewardList(curPlayer)
|
| | | return
|
| | |
|
| | | ## 运营登陆信息处理
|
| | | # @param curPlayer
|
| | |
| | | def __Func_PlayerDisconnect(curPlayer, tick):
|
| | |
|
| | | #跨服匹配PK
|
| | | #GameWorldMergePK.OnLeaveServer(curPlayer)
|
| | | CrossRealmPK.OnLeaveServer(curPlayer)
|
| | |
|
| | | #组队玩家离线
|
| | | PlayerTeam.DoPlayerLogOffTeamLogic(curPlayer, tick)
|
| | |
| | | PlayerGeTui.NewGuyCallBackGeTui(curPlayer, tick)
|
| | | # 设置家族成员离线时间
|
| | | SetPlayerOfflineTime(curPlayer)
|
| | | |
| | | #MergePlayer.OnPlayerLeaveGotoMergeServer(curPlayer, tick)
|
| | | #拍卖行
|
| | | AuctionHouse.OnPlayerLeaveServer(curPlayer)
|
| | | #------------镖车逻辑
|
| | | #TruckPlayerDisconnectProcess(curPlayer, tick)
|
| | | return
|
| | |
| | | #===============================================================================
|
| | | #自己已经初始化成功
|
| | | curPlayer.SetInitOK(True)
|
| | | |
| | | GMShell.OnPlayerLogin(curPlayer)
|
| | | #发送请求至目标地图(任务需要登陆家族长触发事件)
|
| | | __RefreshFamilyToMapServer(curPlayer)
|
| | | return
|
| | |
| | | fblinePack = ChPyNetSendPack.tagGCFBLinePlayerCnt()
|
| | | fblinePack.MapID = tagMapID
|
| | | fblinePack.FBLineInfoList = []
|
| | | for lineID, playerCnt in fbLinePlayerCntDict.items():
|
| | | for lineID, infoList in fbLinePlayerCntDict.items():
|
| | | mapLineState = ChPyNetSendPack.tagGCFBLineInfo()
|
| | | mapLineState.Clear()
|
| | | mapLineState.FBLineID = lineID
|
| | | mapLineState.PlayerCnt = playerCnt
|
| | | mapLineState.PlayerCnt = infoList[0] if infoList else 0
|
| | | mapLineState.ExtraStr = infoList[1] if len(infoList) > 1 else ''
|
| | | mapLineState.ExtraStrLen = len(mapLineState.ExtraStr)
|
| | | fblinePack.FBLineInfoList.append(mapLineState)
|
| | |
|
| | | fblinePack.Count = len(fblinePack.FBLineInfoList)
|