From 17ebbfe89b8d70b008b589079773b8bf39abddc1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 11 二月 2026 12:05:03 +0800
Subject: [PATCH] 66 【公会】基础主体-服务端(跨服中心未分配互通公会分区时也要通知最新热更配置信息;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/StructData/DBFamily.py | 55 ++++++++++---------------------------------------------
1 files changed, 10 insertions(+), 45 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/StructData/DBFamily.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/StructData/DBFamily.py
index 0140257..8706aed 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/StructData/DBFamily.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DB/StructData/DBFamily.py
@@ -440,39 +440,6 @@
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
## 【注意】跨服分区只是在原公会数据的基础上进行汇总归纳分区,即使分区异常也不要影响公会数据,可重复进行修改配置重新分区
@@ -589,6 +556,14 @@
family = Family()
return family
+ def FamilyRemainName(self, family, newName):
+ if newName in self.__familyNameDict:
+ return
+ self.__familyNameDict.pop(family.GetName(), None) # 去除旧名
+ family.SetName(newName)
+ self.__familyNameDict[newName] = family # 设置新名
+ return True
+
def GetCount(self): return len(self.__familyList)
def GetAt(self, index):
family = None
@@ -642,7 +617,6 @@
## ------------------------ 【游戏服】专有信息,一般由所属互通跨服数据服同步 ----------------------
# 互通公会基本信息 - 查看玩家页面需要看到的所属公会最简单的信息,一般只有游戏服用到
- #self.__familyViewBaseDict = {} # 公会ID对应基础查看信息 {familyID:FamilyViewBase, ...}
self.__curZoneServerIDList = [] # 当前游戏服主服所属互通分区实际已经互通的服务器ID列表,同步给前端的
self.__curCrossServerID = 0 # 当前游戏服主服公会所属跨服ID
self.__curZoneID = 0 # 当前游戏服主服所属互通分区ID
@@ -833,6 +807,8 @@
if crossServerID not in updCrossZoneCfgDict:
GameWorld.Log("本跨服未分配分区的只更新配置即可!")
self.__crossZoneCfgDict = updCrossZoneCfgDict
+ if GameWorld.IsCrossCenter():
+ return True
return
zoneDict = updCrossZoneCfgDict[crossServerID]
@@ -937,17 +913,6 @@
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,一个游戏服主服只允许一个互通分区,不同分区的不能合服
--
Gitblit v1.8.0