From 0684a9b035835b1e97e7ebc2ff9b949e72181e8c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 21 一月 2025 14:15:18 +0800
Subject: [PATCH] 10263 【越南】【英文】【BT】【砍树】后端支持NPC仿真实玩家战斗和快速战斗(优化镜像玩家移动)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyAction.py |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 52 insertions(+), 0 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyAction.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyAction.py
index 356f27f..463e12b 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyAction.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyAction.py
@@ -557,6 +557,58 @@
         
     return
 
+def SendFamilyAction(actionDataList, curPlayer=None):
+    ## 同步指定action
+    # @param actionDataList: 支持列表或指定actionData
+    if not isinstance(actionDataList, list):
+        actionDataList = [actionDataList]
+    if not actionDataList:
+        return
+    familyActionData = actionDataList[0]
+    familyID = familyActionData.GetFamilyId()
+    
+    actionInfoPack = ChPyNetSendPack.tagGCFamilyActionInfo()
+    actionInfoPack.Clear()
+    actionInfoPack.FamilyID = familyID
+    actionInfoPack.ActionType = familyActionData.GetActionType()
+    actionInfoPack.FamilyActionList = []    
+    
+    for familyActionData in actionDataList:
+        actionData = ChPyNetSendPack.tagGCFamilyAction()
+        actionData.Clear()
+        actionData.Time = familyActionData.GetTime()
+        actionData.Name = familyActionData.GetName()
+        actionData.NameLen = len(actionData.Name)
+        actionData.Value1 = familyActionData.GetValue1()
+        actionData.Value2 = familyActionData.GetValue2()
+        actionData.Value3 = familyActionData.GetValue3()
+        actionData.Value4 = familyActionData.GetValue4()
+        actionData.Value5 = familyActionData.GetValue5()
+        actionData.Value6 = familyActionData.GetValue6()
+        actionData.UseData = familyActionData.GetUseData()
+        actionData.UseDataLen = len(actionData.UseData)
+        actionInfoPack.FamilyActionList.append(actionData)
+        
+    actionInfoPack.Count = len(actionInfoPack.FamilyActionList)
+    
+    if curPlayer:
+        NetPackCommon.SendFakePack(curPlayer, actionInfoPack)
+        return
+    
+    # 没有指定玩家的情况下通知全战盟
+    family = GameWorld.GetFamilyManager().FindFamily(familyID)
+    if not family:
+        return
+    
+    for index in xrange(family.GetCount()):
+        curMember = family.GetAt(index)
+        curPlayer = curMember.GetPlayer()
+        #不在线
+        if curPlayer == None:
+            continue
+        NetPackCommon.SendFakePack(curPlayer, actionInfoPack)
+        
+    return
 
 ## 删除时机: 1-降为普通成员;2-退出家族
 def DelFamilyOfficerModelEquip(familyID, delPlayerID):

--
Gitblit v1.8.0