xdh
2019-04-19 b8205147a83828c471db21fc889b33d3221dbbb4
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -27,29 +27,21 @@
import GMCommon
import ShareDefine
#import PlayerFamilyTech
import PlayerDataCollect
import time
import ChPyNetSendPack
import NetPackCommon
import GameDataRecord
import GameConfig
import ReadChConfig
import UpdatePlayerName
import GameWorldBoss
import PlayerFamilyBoss
#import PlayerManorWar
import PlayerBourse
import GameWorldActionTeHui
import PlayerZhuXianBoss
import PlayerXMZZ
import GameWorldShopItem
import PlayerTruck
import HighLadder
import EventReport
import MergePlayer
import PlayerHorsePetBoss
import PlayerCompensation
import PlayerFamilyRedPacket
import PlayerFamilyStore
import PyDataManager
#import PlayerFamilyStore
import PlayerSocial
import PlayerFamilyParty
import PlayerSealDemon
@@ -68,9 +60,20 @@
import GMShell
import IPY_PlayerDefine
import CrossRealmPK
import AuctionHouse
import PlayerFB
#---------------------------------------------------------------------
#---------------------------------------------------------------------
def DoRefreshMainServerRole(curPlayer):
    ## 刷新本服角色信息
    curTeam = curPlayer.GetTeam()
    if curTeam:
        PlayerTeam.Sync_TeamMemberInfo(curTeam)
    return
## 玩家登录初始化(封包参数)
#  @param index 玩家索引
#  @param tick 当前时间
@@ -104,6 +107,20 @@
    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)
@@ -127,14 +144,16 @@
        PlayerTruck.SyncPlayerTruckStartTime(curPlayer)
        #通知玩家交易所挂单情况
        PlayerBourse.OnPlayerLogin(curPlayer)
        #拍卖行
        AuctionHouse.OnPlayerLogin(curPlayer)
        #上线广播
        __CheckWorldNotifyOnLogin(curPlayer, tick)
        
        #仙盟红包
        PlayerFamilyRedPacket.OnPlayerLogin(curPlayer)
        #仙盟仓库
        PlayerFamilyStore.OnPlayerLogin(curPlayer)
        #PlayerFamilyStore.OnPlayerLogin(curPlayer)
        #仙盟宴会
        PlayerFamilyParty.OnPlayerLogin(curPlayer)
        #封魔坛
@@ -163,12 +182,11 @@
        PlayerFBHelpBattle.OnHelpPlayerLogin(curPlayer)
        #跨服PK
        CrossRealmPK.OnPlayerLogin(curPlayer)
        GMShell.OnPlayerLogin(curPlayer)
        #诛仙BOSS
        PlayerZhuXianBoss.OnPlayerLogin(curPlayer)
        #骑宠boss状态通知
        PlayerHorsePetBoss.OnLogin(curPlayer)
        GMT_CTG.OnPlayerLogin(curPlayer)
    #通知地图服务器自己初始化成功
    curPlayer.MapServer_InitOK()
    return
## 增加高手玩家上线广播
@@ -199,9 +217,6 @@
            if checkMark not in ShareDefine.BillboardTypeList:
                continue
            
            if checkMark in [ShareDefine.Def_BT_HighLadder]:
                continue
            billboard = GameWorld.GetBillboard().FindBillboard(checkMark)
            if not billboard:
                continue
@@ -220,11 +235,7 @@
                objBillboard = billboard.At(index)
                if curPlayer.GetID() == objBillboard.GetID():
                    msgMark = notifyDict[order]
                    break
#        # 竞技场
#        elif checkMark == "HighLadder":
#            highLadderOrder = HighLadder.GetPlayerOrder(curPlayer.GetID()) + 1
#            msgMark = notifyDict.get(highLadderOrder, "")
                    break
        
        # 有可以广播的,马上广播,退出,不再检查
        if msgMark:
@@ -480,6 +491,9 @@
#  @remarks 函数详细说明.
def __Func_PlayerDisconnect(curPlayer, tick):
    
    if GameWorld.IsCrossServer():
        PlayerFB.OnPlayerDisconnectCrossServer(curPlayer)
    #跨服匹配PK
    CrossRealmPK.OnLeaveServer(curPlayer)
    
@@ -492,8 +506,8 @@
    PlayerGeTui.NewGuyCallBackGeTui(curPlayer, tick)
    # 设置家族成员离线时间
    SetPlayerOfflineTime(curPlayer)
    #MergePlayer.OnPlayerLeaveGotoMergeServer(curPlayer, tick)
    #拍卖行
    AuctionHouse.OnPlayerLeaveServer(curPlayer)
    #------------镖车逻辑
    #TruckPlayerDisconnectProcess(curPlayer, tick)
    return
@@ -600,8 +614,6 @@
    elif packType == IPY_GameServer.CDBPlayerRefresh_Job:
        curPlayer.SetJob(packValue)
    elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr1:
        PlayerControl.SetJobRank(curPlayer, packValue)
        
#    elif packType == IPY_GameServer.CDBPlayerRefresh_CurrentPlayerType:
#        #这里应该通知组队那边刷新
@@ -631,7 +643,10 @@
        
    elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr11:
        PlayerControl.SetTodayXianyuanCoin(curPlayer, packValue)
    elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr13:
        PlayerControl.SetPlayerServerGroupID(curPlayer, packValue)
    elif packType == IPY_GameServer.CDBPlayerRefresh_OperateInfo:
        curPlayer.SetOperateInfo(packValue);
    
@@ -742,6 +757,9 @@
    #改到mapServer登录成功通知
    #Sync_PyServerDataTimeToClient(curPlayer, tick)
    
    if GameWorld.IsCrossServer():
        PlayerFB.PlayerLoginLoadCrossMapOK(curPlayer)
    PlayerTeam.OnPlayerReadMapOK(curPlayer, tick)
    
    #刷新人物日期状态
@@ -755,7 +773,7 @@
#===============================================================================
    #自己已经初始化成功
    curPlayer.SetInitOK(True)
    GMShell.OnPlayerLogin(curPlayer)
    #发送请求至目标地图(任务需要登陆家族长触发事件)
    __RefreshFamilyToMapServer(curPlayer)
    return
@@ -881,11 +899,13 @@
    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)