xdh
2019-04-12 b7e1778a79eb2a8d96b94b2e24094841c122fd8c
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -27,28 +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 PlayerHorsePetBoss
import PlayerCompensation
import PlayerFamilyRedPacket
import PlayerFamilyStore
import PyDataManager
#import PlayerFamilyStore
import PlayerSocial
import PlayerFamilyParty
import PlayerSealDemon
@@ -67,9 +60,19 @@
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 当前时间
@@ -103,6 +106,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)
@@ -126,14 +143,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)
        #封魔坛
@@ -162,12 +181,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
## 增加高手玩家上线广播
@@ -198,9 +216,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
@@ -219,11 +234,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:
@@ -491,7 +502,8 @@
    PlayerGeTui.NewGuyCallBackGeTui(curPlayer, tick)
    # 设置家族成员离线时间
    SetPlayerOfflineTime(curPlayer)
    #拍卖行
    AuctionHouse.OnPlayerLeaveServer(curPlayer)
    #------------镖车逻辑
    #TruckPlayerDisconnectProcess(curPlayer, tick)
    return
@@ -598,8 +610,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:
#        #这里应该通知组队那边刷新
@@ -629,7 +639,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);
    
@@ -753,7 +766,7 @@
#===============================================================================
    #自己已经初始化成功
    curPlayer.SetInitOK(True)
    GMShell.OnPlayerLogin(curPlayer)
    #发送请求至目标地图(任务需要登陆家族长触发事件)
    __RefreshFamilyToMapServer(curPlayer)
    return
@@ -879,11 +892,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)