| | |
| | | self.__actionMgr.ClearFamilyAction(self.GetID())
|
| | | return
|
| | |
|
| | | #class FamilyViewBase():
|
| | | # ## 公会基础信息,本服跨服通用,一般用于本服公会需要用的基本信息,如查看,方便本服可直接取,由跨服同步
|
| | | # |
| | | # def __init__(self, familyID):
|
| | | # self._familyID = familyID
|
| | | # self._family = None
|
| | | # self._familyName = ""
|
| | | # self._serverID = 0
|
| | | # self._emblemID = 0
|
| | | # self._emblemWord = ""
|
| | | # return
|
| | | # |
| | | # def SetFamily(self, family): self._family = family
|
| | | # |
| | | # def GetID(self): return self._familyID
|
| | | # |
| | | # # 有值以设置的值为准-跨服同步过来的,否则以本服已存在的公会数据为准-即未互通时兼容取本服公会数据
|
| | | # def GetName(self): return self._familyName if self._familyName else (self._family.GetName() if self._family else "")
|
| | | # def GetServerID(self): return self._serverID if self._serverID else (self._family.GetServerID() if self._family else 0)
|
| | | # def GetEmblemID(self): return self._emblemID if self._emblemID else (self._family.GetEmblemID() if self._family else 0)
|
| | | # def GetEmblemWord(self): return self._emblemWord if self._emblemWord else (self._family.GetEmblemWord() if self._family else "")
|
| | | # |
| | | # def GetSyncData(self):
|
| | | # return [self.GetName(), self.GetServerID(), self.GetEmblemID(), self.GetEmblemWord()]
|
| | | # |
| | | # def UpdSyncData(self, syncData):
|
| | | # ## 根据跨服同步过来的更新
|
| | | # self._familyName = syncData[0] if len(syncData) > 0 else self._familyName
|
| | | # self._serverID = syncData[1] if len(syncData) > 1 else self._serverID
|
| | | # self._emblemID = syncData[2] if len(syncData) > 2 else self._emblemID
|
| | | # self._emblemWord = syncData[3] if len(syncData) > 3 else self._emblemWord
|
| | | # return
|
| | | |
| | | class ZoneFamilyMgr():
|
| | | ## 跨服公会互通分区,本服的也使用,默认分区0
|
| | | ## 【注意】跨服分区只是在原公会数据的基础上进行汇总归纳分区,即使分区异常也不要影响公会数据,可重复进行修改配置重新分区
|
| | |
| | |
|
| | | ## ------------------------ 【游戏服】专有信息,一般由所属互通跨服数据服同步 ----------------------
|
| | | # 互通公会基本信息 - 查看玩家页面需要看到的所属公会最简单的信息,一般只有游戏服用到
|
| | | #self.__familyViewBaseDict = {} # 公会ID对应基础查看信息 {familyID:FamilyViewBase, ...}
|
| | | self.__curZoneServerIDList = [] # 当前游戏服主服所属互通分区实际已经互通的服务器ID列表,同步给前端的
|
| | | self.__curCrossServerID = 0 # 当前游戏服主服公会所属跨服ID
|
| | | self.__curZoneID = 0 # 当前游戏服主服所属互通分区ID
|
| | |
| | | if crossServerID not in updCrossZoneCfgDict:
|
| | | GameWorld.Log("本跨服未分配分区的只更新配置即可!")
|
| | | self.__crossZoneCfgDict = updCrossZoneCfgDict
|
| | | if GameWorld.IsCrossCenter():
|
| | | return True
|
| | | return
|
| | | zoneDict = updCrossZoneCfgDict[crossServerID]
|
| | |
|
| | |
| | | zoneMgr = ZoneFamilyMgr(zoneID)
|
| | | self.__zoneFamilyMgrDict[zoneID] = zoneMgr
|
| | | return zoneMgr
|
| | | |
| | | # def GetFamilyViewBase(self, familyID):
|
| | | # ## 互通公会基本信息,本服跨服通用,实际的公会完整数据可能不在本服
|
| | | # vBase = None
|
| | | # if familyID in self.__familyViewBaseDict:
|
| | | # vBase = self.__familyViewBaseDict[familyID]
|
| | | # else:
|
| | | # vBase = FamilyViewBase(familyID)
|
| | | # self.__familyViewBaseDict[familyID] = vBase
|
| | | # vBase.SetFamily(self.FindFamily(familyID))
|
| | | # return vBase
|
| | |
|
| | | def GetCurCrossServerID(self):
|
| | | ## 游戏服获取所属的跨服互通服务器ID,一个游戏服主服只允许一个互通分区,不同分区的不能合服
|