ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -919,6 +919,63 @@
    PlayerFamilyEmblem.OnChangeFamilyEmblem(curPlayer, changeEmblemID)
    return
#// A4 14 查看目标仙盟 #tagCGViewTagFamily
#
#struct    tagCGViewTagFamily
#{
#    tagHead        Head;
#    DWORD        TagFamilyID;    // 目标仙盟ID,支持查看跨服仙盟
#};
def OnViewTagFamily(index, clientData, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    playerID = curPlayer.GetPlayerID()
    tagFamilyID = clientData.TagFamilyID
    clientPack = __GetTagFamilyInfoPack(tagFamilyID)
    if not clientPack:
        # 发送跨服服务器查询,可能是跨服仙盟
        dataMsg = {"playerID":playerID, "tagFamilyID":tagFamilyID}
        CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_QueryCrossFamily, dataMsg)
        return
    NetPackCommon.SendFakePack(curPlayer, clientPack)
    return
def __GetTagFamilyInfoPack(tagFamilyID):
    ## 获取查看目标仙盟同步封包
    familyManager = GameWorld.GetFamilyManager()
    family = familyManager.FindFamily(tagFamilyID)
    if not family:
        return
    clientPack = ChPyNetSendPack.tagGCTagFamilyInfo()
    clientPack.FamilyID = tagFamilyID
    clientPack.FamilyName = family.GetName()
    clientPack.FamilyLV = family.GetLV()
    clientPack.Broadcast = family.GetBroadcast()
    clientPack.BroadcastLen = len(clientPack.Broadcast)
    clientPack.Member = []
    for index in range(family.GetCount()):
        curMember = family.GetAt(index)
        mem = ChPyNetSendPack.tagGCTagFamilyMember()
        mem.PlayerID = curMember.GetPlayerID()
        mem.Name = curMember.GetName()
        mem.NameLen = len(mem.Name)
        mem.FamilyLV = curMember.GetFamilyLV()
        mem.LV = curMember.GetLV()
        mem.Job = curMember.GetJob()
        mem.Face = curMember.GetFace()
        mem.FacePic = curMember.GetFacePic()
        mem.OfficialRank = curMember.GetOfficialRank()
        fightPower = GetMemberFightPower(curMember)
        mem.FightPower = fightPower % ChConfig.Def_PerPointValue
        mem.FightPowerEx = fightPower / ChConfig.Def_PerPointValue
        clientPack.Member.append(mem)
    clientPack.MemberCount = len(clientPack.Member)
    familyFightPower = GetFamilyTotalFightPower(family)
    clientPack.FightPower = familyFightPower % ChConfig.Def_PerPointValue
    clientPack.FightPowerEx = familyFightPower / ChConfig.Def_PerPointValue
    clientPack.EmblemID = GetFamilyEmblemID(family)
    clientPack.ServerID = family.GetServerID()
    return clientPack
#class   IPY_CFamilyChangeBroadcast
#{
#public:
@@ -4193,3 +4250,18 @@
        
    return
def ClientServerMsg_QueryCrossFamily(serverGroupID, msgData):
    ## 子服查询跨服仙盟
    playerID = msgData["playerID"]
    tagFamilyID = msgData.get("tagFamilyID", 0)
    if tagFamilyID:
        clientPack = __GetTagFamilyInfoPack(tagFamilyID)
        if clientPack:
            NetPackCommon.SendFakePackByCross({playerID:serverGroupID}, clientPack)
        else:
            PlayerControl.NotifyCodeCross(serverGroupID, playerID, "TagFamilyNotExist")
        return
    # 可扩展查看跨服仙盟列表信息...
    return