From 483d2418798c6fbd97af60871e0d1f8edf635ea7 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 28 二月 2026 18:10:20 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(增加效果5512;优化黄月英怒气技能额外效果触发顺序;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_FamilyTransfer.py | 34 +++++++++++++++++++++++++---------
1 files changed, 25 insertions(+), 9 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
index bc8c11f..8269b70 100644
--- 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
@@ -18,6 +18,7 @@
import GMCommon
import GameWorld
import PlayerFamily
+import CrossPlayer
import PlayerMail
import DBDataMgr
@@ -32,6 +33,11 @@
if familyName == '':
return GMCommon.Def_ParamErr
+ if GameWorld.IsMainServer():
+ crossServerID = DBDataMgr.GetFamilyMgr().GetCurCrossServerID()
+ if crossServerID:
+ return GMCommon.Def_ParamErr, "公会已经跨服了,跨服ID=%s" % crossServerID
+
familyMgr = DBDataMgr.GetFamilyMgr()
if queryType == "FamilyID":
familyID = GameWorld.ToIntDef(familyName)
@@ -39,34 +45,44 @@
return GMCommon.Def_ParamErr
curFamily = familyMgr.FindFamily(familyID)
else:
- curFamily = familyMgr.FindFamilyByName(familyName)
-
+ curFamily = None
+ for zoneID in familyMgr.GetZoneIDListThisServer():
+ zoneMgr = familyMgr.GetZoneFamilyMgr(zoneID)
+ curFamily = zoneMgr.FindFamilyByName(familyName)
+ if curFamily:
+ break
+
if not curFamily:
GameWorld.DebugLogEx("目标工会不存在")
return GMCommon.Def_NoTag, "no tag family"
familyID = curFamily.GetID()
- tagPlayer = None
+ tagCrossPlayer = None
queryTagType = gmCmdDict.get("queryTagType", '')
queryTag = gmCmdDict.get("queryTag", '')
if queryTagType == "PlayerName":
- tagPlayer = GameWorld.GetPlayerManager().FindPlayerByName(queryTag)
+ tagCrossPlayer = None #GameWorld.GetPlayerManager().FindPlayerByName(queryTag)
else:
- tagPlayer = GameWorld.GetPlayerManager().FindPlayerByID(GameWorld.ToIntDef(queryTag))
+ tagCrossPlayer = CrossPlayer.GetCrossPlayerMgr().FindCrossPlayer(GameWorld.ToIntDef(queryTag))
- if not tagPlayer:
+ if not tagCrossPlayer:
GameWorld.DebugLogEx("目标玩家不在线")
return GMCommon.Def_NoTag, "tagPlayer is offLine"
- tagPlayerID = tagPlayer.GetPlayerID()
+ leaderID = curFamily.GetLeaderID()
+ tagPlayerID = tagCrossPlayer.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)
+ PlayerFamily.Broadcast_FamilyInfo(familyID, changeMemIDList=[leaderID, tagPlayerID])
# 邮件通知
- PlayerMail.SendMailByKey("FamilyLeaderAutoChange", tagPlayerID, [], [curFamily.GetName()])
+ toServerID = 0
+ if GameWorld.IsCrossServer():
+ toServerID = toMember.GetServerID()
+ PlayerMail.SendMailByKey("FamilyLeaderAutoChange", tagPlayerID, [], [curFamily.GetName()], toServerID=toServerID)
+
return GMCommon.Def_Success
--
Gitblit v1.8.0