From f7a8b9973ec7ca6625b922520a3eef092b7a2d2e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 22 十二月 2025 09:43:24 +0800
Subject: [PATCH] 1111 后台转让会长支持;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_FamilyTransfer.py |   72 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 0 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_FamilyTransfer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_FamilyTransfer.py
new file mode 100644
index 0000000..bc8c11f
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_FamilyTransfer.py
@@ -0,0 +1,72 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package PyMongoDB.GMToolLogicProcess.Commands.GMT_FamilyTransfer
+#
+# @todo:GM工具命令 - 转让会长
+# @author hxp
+# @date 2025-12-21
+# @version 1.0
+#
+# 详细描述: GM工具命令 - 转让会长
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2025-12-21 17:30"""
+#-------------------------------------------------------------------------------
+
+import GMCommon
+import GameWorld
+import PlayerFamily
+import PlayerMail
+import DBDataMgr
+
+## 收到gm命令执行
+# @param gmCmdDict:gm命令字典
+# @return None 
+def OnExec(gmCmdDict):
+    
+    queryType = gmCmdDict.get(GMCommon.Def_GMKey_QueryType, '')      
+    familyName = gmCmdDict.get(GMCommon.Def_GMKey_FamilyName, '')
+    
+    if familyName == '':
+        return GMCommon.Def_ParamErr
+    
+    familyMgr = DBDataMgr.GetFamilyMgr()
+    if queryType == "FamilyID":
+        familyID = GameWorld.ToIntDef(familyName)
+        if not familyID:
+            return GMCommon.Def_ParamErr
+        curFamily = familyMgr.FindFamily(familyID)
+    else:
+        curFamily = familyMgr.FindFamilyByName(familyName)
+        
+    if not curFamily:
+        GameWorld.DebugLogEx("目标工会不存在")
+        return GMCommon.Def_NoTag, "no tag family"
+    
+    familyID = curFamily.GetID()
+    tagPlayer = None
+    queryTagType = gmCmdDict.get("queryTagType", '')  
+    queryTag = gmCmdDict.get("queryTag", '')
+    if queryTagType == "PlayerName":
+        tagPlayer = GameWorld.GetPlayerManager().FindPlayerByName(queryTag)
+    else:
+        tagPlayer = GameWorld.GetPlayerManager().FindPlayerByID(GameWorld.ToIntDef(queryTag))
+        
+    if not tagPlayer:
+        GameWorld.DebugLogEx("目标玩家不在线")
+        return GMCommon.Def_NoTag, "tagPlayer is offLine"
+    
+    tagPlayerID = tagPlayer.GetPlayerID()
+    toMember = curFamily.FindMember(tagPlayerID)
+    if not toMember:
+        GameWorld.DebugLogEx("目标玩家非该工会成员: tagPlayerID=%s", tagPlayerID)
+        return GMCommon.Def_NoTag, "tagPlayer is not this family member"
+    
+    PlayerFamily.ChangeFamilyLeader(curFamily, toMember)
+    PlayerFamily.Broadcast_FamilyChange(familyID, PlayerFamily.FamilyChangeType_LeaderChange)
+    
+    # 邮件通知
+    PlayerMail.SendMailByKey("FamilyLeaderAutoChange", tagPlayerID, [], [curFamily.GetName()])
+    return GMCommon.Def_Success

--
Gitblit v1.8.0