| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #---------------------------------------------------------------------  | 
| #  | 
| #---------------------------------------------------------------------  | 
| ##@package PlayerFamilySWRH  | 
| # @todo: ÊØÎÀÈË»Ê  | 
| #  | 
| # @author: xdh  | 
| # @date 2018-04-02  | 
| # @version 1.0  | 
| #  | 
| #---------------------------------------------------------------------  | 
| #"""Version = 2018-04-02 16:00"""  | 
| #---------------------------------------------------------------------  | 
| import GameWorld  | 
| import PyGameData  | 
| import ChPyNetSendPack  | 
| import NetPackCommon  | 
| import ShareDefine  | 
| import ChConfig  | 
| import copy  | 
| #---------------------------------------------------------------------  | 
|   | 
| def OnLogin(curPlayer):  | 
|     familyID = curPlayer.GetFamilyID()  | 
|     if familyID:  | 
|         NotifySWRHInfo(curPlayer, familyID)  | 
|     return  | 
|   | 
| def SWRHFBOver(familyID):  | 
|     if familyID not in PyGameData.g_swrhJoinRecord:  | 
|         PyGameData.g_swrhJoinRecord.append(familyID)  | 
|           | 
|     NotifySWRHFamily(familyID)  | 
|     return  | 
|   | 
| def NotifySWRHFamily(familyID):  | 
|     #֪ͨ  | 
|     family = GameWorld.GetFamilyManager().FindFamily(familyID)  | 
|     if not family:  | 
|         return  | 
|     for i in range(0, family.GetCount()):  | 
|         notifyMember = family.GetAt(i)  | 
|         curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(notifyMember.GetPlayerID())          | 
|         if curPlayer == None:  | 
|             continue  | 
|         NotifySWRHInfo(curPlayer, familyID)  | 
|     return  | 
|   | 
| def NotifySWRHInfo(curPlayer, familyID):  | 
|     familySWRHInfo = ChPyNetSendPack.tagGCFamilySWRHInfo()  | 
|     familySWRHInfo.HasJoin = familyID in PyGameData.g_swrhJoinRecord  | 
|     NetPackCommon.SendFakePack(curPlayer, familySWRHInfo)  | 
|     return  | 
|   | 
|   | 
| def OnSWRHStateChange(dictName, isOpen):  | 
|       | 
|     copyJoinRecord = copy.deepcopy(PyGameData.g_swrhJoinRecord)  | 
|     PyGameData.g_swrhJoinRecord = []  | 
|       | 
|     if isOpen:  | 
|         for familyID in copyJoinRecord:  | 
|             NotifySWRHFamily(familyID)  | 
|               | 
|     return  | 
|   | 
| #ÊÇ·ñÔÚÊØÎÀÈ˻ʻÖÐ  | 
| def IsInFamilySWRH():return GameWorld.GetGameWorld().GetDictByKey(ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_FamilyInvade)  | 
|   |