hxp
2020-02-20 aba770321dd1bf504f0389bd655ca43188c35d68
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -41,6 +41,7 @@
import PlayerViewCache
import GameWorldBoss
import AuctionHouse
import PlayerAssist
import PlayerTalk
import PlayerTeam
@@ -405,6 +406,8 @@
    PlayerFamilyParty.NotifyFamilyPartyQuestion(jionPlayer)
    #通知守卫人皇信息
    PlayerFamilySWRH.NotifySWRHInfo(jionPlayer, curFamily.GetID())
    #通知仙盟协助信息
    PlayerAssist.SyncFamilyAssist(jionPlayer)
    #oss记录加入家族信息
    DataRecordPack.DR_PlayerJoinFamily(jionPlayer, curFamily.GetID(), curFamily.GetName(), curFamily.GetCount())
    return
@@ -608,7 +611,7 @@
    #===============================================================================================
    return
def SendFamilyFakePack(familyID, clientPack):
def SendFamilyFakePack(familyID, clientPack, excludePlayerIDList=[]):
    ## 广播家族成员PY封包
    family = GameWorld.GetFamilyManager().FindFamily(familyID)
    if not family:
@@ -617,8 +620,11 @@
    for index in xrange(family.GetCount()):
        member = family.GetAt(index)
        memPlayer = member.GetPlayer()
        if memPlayer:
            NetPackCommon.SendFakePack(memPlayer, clientPack)
        if not memPlayer:
            continue
        if excludePlayerIDList and memPlayer.GetPlayerID() in excludePlayerIDList:
            continue
        NetPackCommon.SendFakePack(memPlayer, clientPack)
    return
def Sync_PyAllFamilyInfo(curPlayer, allPageCnt, viewPage, startIndex, endIndex):
@@ -1465,10 +1471,10 @@
    PlayerFamilyAction.AddFamilyActionNote(tagPlayerName, curFamily.GetID(), ShareDefine.Def_ActionType_FamilyEvent,
                                           [ShareDefine.Def_FamilyActionEvent_MemberChange, ShareDefine.Def_FamilyMemberChange_KickOut], tick)
    #删除玩家
    curFamily.DeleteMember(tagPlayerID)
    __DoPlayerLeaveFamilyByID(curFamily, tagPlayerID)
    curFamily.DeleteMember(tagPlayerID)
    tagPlayer = playerManager.FindPlayerByID(tagMemberID)
    __DoPlayerLeaveFamilyByID(curFamily, tagPlayerID, tagPlayer)
    #玩家在线, 设置这个玩家的属性
    PlayerForceLeaveFamily(tagPlayer, tick)
    
@@ -1565,7 +1571,7 @@
    curFamily.DeleteMember(curMember.GetPlayerID())
    #玩家在线, 设置这个玩家的属性
    PlayerForceLeaveFamily(curPlayer, tick)  
    __DoPlayerLeaveFamilyByID(curFamily, curPlayerID)
    __DoPlayerLeaveFamilyByID(curFamily, curPlayerID, curPlayer)
    DataRecordPack.DR_PlayerLeaveFamily(curPlayer, curFamily.GetID(), curFamily.GetName(), curFamily.GetCount(),
                                        familyLV, curPlayer.GetPlayerID(), curPlayer.GetName(), familyLV, updTime)
@@ -1583,12 +1589,13 @@
#  @param curFamily 离开的家族
#  @param leavePlayerID 离开的玩家ID
#  @return None
def __DoPlayerLeaveFamilyByID(curFamily, leavePlayerID):
def __DoPlayerLeaveFamilyByID(curFamily, leavePlayerID, tagPlayer=None):
    PlayerFamilyAction.DelFamilyOfficerModelEquip(curFamily.GetID(), leavePlayerID)
    # 玩家战盟名变更处理
    __OnFamilyNameChange(leavePlayerID, '')
    AddFamilyIDToFightPowerChangeList(curFamily.GetID())
    PlayerViewCache.OnPlayerFamilyChange(leavePlayerID, 0, "")
    PlayerAssist.OnPlayerLeaveFamily(curFamily.GetID(), leavePlayerID, tagPlayer)
    if leavePlayerID in PyGameData.g_autoViceleaderDict.get(curFamily.GetID(),[]):
        PyGameData.g_autoViceleaderDict[curFamily.GetID()].remove(leavePlayerID)
    return