From 9d5ec7599f3abe0cebb76ce1df3c3b8c4e0aa51e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 10 二月 2026 11:40:15 +0800
Subject: [PATCH] 66 【公会】基础主体-服务端(跨服聊天;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreateFamily.py |   54 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 30 insertions(+), 24 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreateFamily.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreateFamily.py
index 834e6c7..4b32228 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreateFamily.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreateFamily.py
@@ -27,39 +27,26 @@
 def GetGMServerIDList(curPlayer):
     ## 获取命令额外发送到其他服务器,如跨服
     crossServerID = DBDataMgr.GetFamilyMgr().GetCurCrossServerID()
-    GameWorld.DebugAnswer(curPlayer, "本服公会互通跨服ID:%s" % crossServerID)
     if crossServerID:
+        GameWorld.DebugAnswer(curPlayer, "本服公会已互通跨服ID:%s" % crossServerID)
         return [crossServerID]
+    GameWorld.DebugAnswer(curPlayer, "本服公会未互通")
     return []
 
 def OnExecCross(crossPlayer, gmList):
-    ## 跨服执行命令
+    if not gmList:
+        return
+    if GameWorld.IsMainServer() and DBDataMgr.GetFamilyMgr().GetCurCrossServerID():
+        # 本服公会已互通不再执行本服命令
+        return
+    
     playerID = crossPlayer.GetPlayerID()
     familyMgr = DBDataMgr.GetFamilyMgr()
     familyID = familyMgr.GetPlayerFamilyID(playerID)
     zoneID = familyMgr.GetFamilyZoneID(familyID)
-    GameWorld.DebugAnswer(crossPlayer, "跨服公会ID:%s,zoneID=%s" % (familyID, zoneID))
-    OnExec(crossPlayer, gmList)
-    return
-
-def OnExec(curPlayer, gmList):
-    ## 游戏服执行命令
-    
-    if not gmList:
-        if GameWorld.IsCrossServer():
-            return
-        GameWorld.DebugAnswer(curPlayer, "创建假人公会: CreatFamily 个数 [总战力 ServerID 等级 成员数  是否审核 官职限制]")
-        GameWorld.DebugAnswer(curPlayer, "删除假人公会: CreatFamily 0")
-        GameWorld.DebugAnswer(curPlayer, "输出公会列表: CreatFamily pl [条数 从第x名]")
-        GameWorld.DebugAnswer(curPlayer, "输出公会明细: CreatFamily pf 公会ID")
-        GameWorld.DebugAnswer(curPlayer, "添加假申请人: CreatFamily sq [申请数 公会ID]")
-        GameWorld.DebugAnswer(curPlayer, "添加公会成员: CreatFamily m 人数 [公会ID]")
-        return
-    
-    crossPlayer = CrossPlayer.GetCrossPlayerMgr().FindCrossPlayer(curPlayer.GetPlayerID())
-    if not crossPlayer:
-        return
-    
+    if GameWorld.IsCrossServer():
+        GameWorld.DebugAnswer(crossPlayer, "跨服公会ID:%s,zoneID=%s" % (familyID, zoneID))
+        
     value1 = gmList[0]
     if value1 == "pl":
         __printFamilyList(crossPlayer, gmList)
@@ -84,6 +71,25 @@
     __createFackFamily(crossPlayer, gmList)
     return
 
+def OnExec(curPlayer, gmList):
+    ## 游戏服执行命令
+    if not gmList:
+        GameWorld.DebugAnswer(curPlayer, "-----%s-----" % GameWorld.GetCurrentDataTimeStr())
+        GameWorld.DebugAnswer(curPlayer, "创建假人公会: CreatFamily 个数 [总战力 ServerID 等级 成员数  是否审核 官职限制]")
+        GameWorld.DebugAnswer(curPlayer, "删除假人公会: CreatFamily 0")
+        GameWorld.DebugAnswer(curPlayer, "输出公会列表: CreatFamily pl [条数 从第x名]")
+        GameWorld.DebugAnswer(curPlayer, "输出公会明细: CreatFamily pf 公会ID")
+        GameWorld.DebugAnswer(curPlayer, "添加假申请人: CreatFamily sq [申请数 公会ID]")
+        GameWorld.DebugAnswer(curPlayer, "添加公会成员: CreatFamily m 人数 [公会ID]")
+        return
+    
+    crossPlayer = CrossPlayer.GetCrossPlayerMgr().FindCrossPlayer(curPlayer.GetPlayerID())
+    if not crossPlayer:
+        return
+    
+    OnExecCross(crossPlayer, gmList)
+    return
+
 def __addFackMember(crossPlayer, gmList):
     memCnt = gmList[1] if len(gmList) > 1 else 1
     familyID = gmList[2] if len(gmList) > 2 else crossPlayer.GetFamilyID()

--
Gitblit v1.8.0