From fd1197fd91110938802a68d998e6f45bb65495ed Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 09 二月 2026 20:12:07 +0800
Subject: [PATCH] 66 【公会】基础主体-服务端(公会讨伐支持跨服;test_OnDay等命令支持跨服同步过天等;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Zhenbaoge.py |   86 ++++++++++++++++++++-----------------------
 1 files changed, 40 insertions(+), 46 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Zhenbaoge.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Zhenbaoge.py
index e73d917..aaee7ab 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Zhenbaoge.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Zhenbaoge.py
@@ -34,56 +34,14 @@
     GameWorld.DebugAnswer(curPlayer, "本服公会未互通")
     return []
 
-def OnExec(curPlayer, msgList):
-    
-    isMainServer = GameWorld.IsMainServer()
+def OnExecCross(crossPlayer, msgList):
     if not msgList:
-        if not isMainServer:
-            return
-        GameWorld.DebugAnswer(curPlayer, "-----%s-----" % GameWorld.GetCurrentDataTimeStr())
-        GameWorld.DebugAnswer(curPlayer, "重置公会珍宝阁: Zhenbaoge 0")
-        GameWorld.DebugAnswer(curPlayer, "重置今日状态值: Zhenbaoge d")
-        GameWorld.DebugAnswer(curPlayer, "设置退公会时间: Zhenbaoge ft x分钟前")
-        GameWorld.DebugAnswer(curPlayer, "新增假砍价数据: Zhenbaoge 次数 [随机A值 至B值]")
-        GameWorld.DebugAnswer(curPlayer, "AB值没有填则按常规砍价价格计算")
         return
-    
-    crossPlayer = CrossPlayer.GetCrossPlayerMgr().FindCrossPlayer(curPlayer.GetPlayerID())
-    if not crossPlayer:
+    if GameWorld.IsMainServer() and DBDataMgr.GetFamilyMgr().GetCurCrossServerID():
+        # 本服公会已互通不再执行本服命令
         return
     
     familyID = crossPlayer.GetFamilyID()
-    if not familyID:
-        GameWorld.DebugAnswer(crossPlayer, "没有仙盟")
-        return
-    value1 = msgList[0]
-    
-    # 默认本服执行的
-    if value1 == "d":
-        if not isMainServer:
-            return
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyZhenbaogeCut, 0)
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyZhenbaogeBuy, 0)
-        PlayerFamilyZhenbaoge.Sync_ZhenbaogeInfo(curPlayer)
-        GameWorld.DebugAnswer(curPlayer, "重置珍宝阁玩家今日状态OK")
-        return
-    
-    elif value1 == "ft":
-        if not isMainServer:
-            return
-        minutes = msgList[1] if len(msgList) > 1 else 0
-        leaveFamilyTimeEx = int(time.time()) - minutes * 60
-        PlayerControl.SetLeaveFamilyTimeEx(curPlayer, leaveFamilyTimeEx)
-        GameWorld.DebugAnswer(curPlayer, "设置退仙盟时间:%s" % GameWorld.ChangeTimeNumToStr(leaveFamilyTimeEx))
-        return
-    
-    if isMainServer:
-        crossServerID = DBDataMgr.GetFamilyMgr().GetCurCrossServerID()
-        if crossServerID:
-            # 本服公会已互通不再执行本服命令
-            return
-        
-    # 本服、跨服通用
     familyMgr = DBDataMgr.GetFamilyMgr()
     curFamily = familyMgr.FindFamily(familyID)
     if not curFamily:
@@ -94,9 +52,10 @@
         zoneID = familyMgr.GetFamilyZoneID(familyID)
         GameWorld.DebugAnswer(crossPlayer, "跨服公会ID:%s,zoneID=%s" % (familyID, zoneID))
         
+    value1 = msgList[0]
     if value1 == 0:
         PlayerFamilyZhenbaoge.OnZhenbaogeReset(curFamily)
-        GameWorld.DebugAnswer(crossPlayer, "重置仙盟珍宝阁OK")
+        GameWorld.DebugAnswer(crossPlayer, "重置公会珍宝阁OK")
         return
     
     #添加假砍价
@@ -136,3 +95,38 @@
     nowPrice = PlayerFamilyZhenbaoge.GetFAPriceFinal(gActionData)
     GameWorld.DebugAnswer(crossPlayer, "添加假砍价数:%s,总砍价数:%s,当前价格:%s" % (fackCount, familyAction.Count() - 1, nowPrice))
     return
+
+def OnExec(curPlayer, msgList):
+    
+    if not msgList:
+        GameWorld.DebugAnswer(curPlayer, "-----%s-----" % GameWorld.GetCurrentDataTimeStr())
+        GameWorld.DebugAnswer(curPlayer, "重置公会珍宝阁: Zhenbaoge 0")
+        GameWorld.DebugAnswer(curPlayer, "重置今日状态值: Zhenbaoge d")
+        GameWorld.DebugAnswer(curPlayer, "设置退公会时间: Zhenbaoge ft x分钟前")
+        GameWorld.DebugAnswer(curPlayer, "新增假砍价数据: Zhenbaoge 次数 [随机A值 至B值]")
+        GameWorld.DebugAnswer(curPlayer, "AB值没有填则按常规砍价价格计算")
+        return
+    
+    crossPlayer = CrossPlayer.GetCrossPlayerMgr().FindCrossPlayer(curPlayer.GetPlayerID())
+    if not crossPlayer:
+        return
+    
+    value1 = msgList[0]
+    
+    # 默认本服执行的
+    if value1 == "d":
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyZhenbaogeCut, 0)
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyZhenbaogeBuy, 0)
+        PlayerFamilyZhenbaoge.Sync_ZhenbaogeInfo(curPlayer)
+        GameWorld.DebugAnswer(curPlayer, "重置珍宝阁玩家今日状态OK")
+        return
+    
+    elif value1 == "ft":
+        minutes = msgList[1] if len(msgList) > 1 else 0
+        leaveFamilyTimeEx = int(time.time()) - minutes * 60
+        PlayerControl.SetLeaveFamilyTimeEx(curPlayer, leaveFamilyTimeEx)
+        GameWorld.DebugAnswer(curPlayer, "设置退公会时间:%s" % GameWorld.ChangeTimeNumToStr(leaveFamilyTimeEx))
+        return
+    
+    OnExecCross(crossPlayer, msgList)
+    return

--
Gitblit v1.8.0