From cb45ad934671c0c54c1024f834e630109dfa5c73 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 14 四月 2025 15:01:13 +0800
Subject: [PATCH] 10367 【越南】【英语】【BT】【砍树】仙盟攻城战-服务端(增加查看其他指定仙盟/跨服仙盟支持;增加领取点赞奖励;修改仙盟轮次伤害计算规则受当前城池剩余生命影响;)

---
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py |  240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 240 insertions(+), 0 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 7d19ab1..a86e5bf 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -2712,6 +2712,246 @@
 
 
 #------------------------------------------------------
+# A4 13 查看目标仙盟返回信息 #tagGCTagFamilyInfo
+
+class  tagGCTagFamilyMember(Structure):
+    PlayerID = 0    #(DWORD PlayerID)
+    NameLen = 0    #(BYTE NameLen)
+    Name = ""    #(String Name)//size = NameLen
+    FamilyLV = 0    #(BYTE FamilyLV)//家族成员等级
+    LV = 0    #(WORD LV)
+    Job = 0    #(BYTE Job)//职业
+    Face = 0    #(DWORD Face)//头像
+    FacePic = 0    #(DWORD FacePic)//头像外框
+    OfficialRank = 0    #(BYTE OfficialRank)//境界
+    FightPower = 0    #(DWORD FightPower)//成员战力,求余亿部分
+    FightPowerEx = 0    #(DWORD FightPowerEx)//成员战力,整除亿部分
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
+        self.FamilyLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.OfficialRank,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        return _pos
+
+    def Clear(self):
+        self.PlayerID = 0
+        self.NameLen = 0
+        self.Name = ""
+        self.FamilyLV = 0
+        self.LV = 0
+        self.Job = 0
+        self.Face = 0
+        self.FacePic = 0
+        self.OfficialRank = 0
+        self.FightPower = 0
+        self.FightPowerEx = 0
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 4
+        length += 1
+        length += len(self.Name)
+        length += 1
+        length += 2
+        length += 1
+        length += 4
+        length += 4
+        length += 1
+        length += 4
+        length += 4
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteDWORD(data, self.PlayerID)
+        data = CommFunc.WriteBYTE(data, self.NameLen)
+        data = CommFunc.WriteString(data, self.NameLen, self.Name)
+        data = CommFunc.WriteBYTE(data, self.FamilyLV)
+        data = CommFunc.WriteWORD(data, self.LV)
+        data = CommFunc.WriteBYTE(data, self.Job)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
+        data = CommFunc.WriteBYTE(data, self.OfficialRank)
+        data = CommFunc.WriteDWORD(data, self.FightPower)
+        data = CommFunc.WriteDWORD(data, self.FightPowerEx)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                PlayerID:%d,
+                                NameLen:%d,
+                                Name:%s,
+                                FamilyLV:%d,
+                                LV:%d,
+                                Job:%d,
+                                Face:%d,
+                                FacePic:%d,
+                                OfficialRank:%d,
+                                FightPower:%d,
+                                FightPowerEx:%d
+                                '''\
+                                %(
+                                self.PlayerID,
+                                self.NameLen,
+                                self.Name,
+                                self.FamilyLV,
+                                self.LV,
+                                self.Job,
+                                self.Face,
+                                self.FacePic,
+                                self.OfficialRank,
+                                self.FightPower,
+                                self.FightPowerEx
+                                )
+        return DumpString
+
+
+class  tagGCTagFamilyInfo(Structure):
+    Head = tagHead()
+    FamilyID = 0    #(DWORD FamilyID)
+    FamilyName = ""    #(char FamilyName[33])//家族名称
+    FamilyLV = 0    #(WORD FamilyLV)//家族等级
+    BroadcastLen = 0    #(WORD BroadcastLen)//公告
+    Broadcast = ""    #(String Broadcast)//size = BroadcastLen
+    MemberCount = 0    #(WORD MemberCount)//人数
+    Member = list()    #(vector<tagGCTagFamilyMember> Member)//size = MemberCount
+    FightPower = 0    #(DWORD FightPower)//仙盟总战力,求余亿部分
+    FightPowerEx = 0    #(DWORD FightPowerEx)//仙盟总战力,整除亿部分
+    EmblemID = 0    #(DWORD EmblemID)//徽章ID
+    ServerID = 0    #(DWORD ServerID)//仙盟区服ID
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA4
+        self.Head.SubCmd = 0x13
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,33)
+        self.FamilyLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.BroadcastLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Broadcast,_pos = CommFunc.ReadString(_lpData, _pos,self.BroadcastLen)
+        self.MemberCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        for i in range(self.MemberCount):
+            temMember = tagGCTagFamilyMember()
+            _pos = temMember.ReadData(_lpData, _pos)
+            self.Member.append(temMember)
+        self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.EmblemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA4
+        self.Head.SubCmd = 0x13
+        self.FamilyID = 0
+        self.FamilyName = ""
+        self.FamilyLV = 0
+        self.BroadcastLen = 0
+        self.Broadcast = ""
+        self.MemberCount = 0
+        self.Member = list()
+        self.FightPower = 0
+        self.FightPowerEx = 0
+        self.EmblemID = 0
+        self.ServerID = 0
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 4
+        length += 33
+        length += 2
+        length += 2
+        length += len(self.Broadcast)
+        length += 2
+        for i in range(self.MemberCount):
+            length += self.Member[i].GetLength()
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteDWORD(data, self.FamilyID)
+        data = CommFunc.WriteString(data, 33, self.FamilyName)
+        data = CommFunc.WriteWORD(data, self.FamilyLV)
+        data = CommFunc.WriteWORD(data, self.BroadcastLen)
+        data = CommFunc.WriteString(data, self.BroadcastLen, self.Broadcast)
+        data = CommFunc.WriteWORD(data, self.MemberCount)
+        for i in range(self.MemberCount):
+            data = CommFunc.WriteString(data, self.Member[i].GetLength(), self.Member[i].GetBuffer())
+        data = CommFunc.WriteDWORD(data, self.FightPower)
+        data = CommFunc.WriteDWORD(data, self.FightPowerEx)
+        data = CommFunc.WriteDWORD(data, self.EmblemID)
+        data = CommFunc.WriteDWORD(data, self.ServerID)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                FamilyID:%d,
+                                FamilyName:%s,
+                                FamilyLV:%d,
+                                BroadcastLen:%d,
+                                Broadcast:%s,
+                                MemberCount:%d,
+                                Member:%s,
+                                FightPower:%d,
+                                FightPowerEx:%d,
+                                EmblemID:%d,
+                                ServerID:%d
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.FamilyID,
+                                self.FamilyName,
+                                self.FamilyLV,
+                                self.BroadcastLen,
+                                self.Broadcast,
+                                self.MemberCount,
+                                "...",
+                                self.FightPower,
+                                self.FightPowerEx,
+                                self.EmblemID,
+                                self.ServerID
+                                )
+        return DumpString
+
+
+m_NAtagGCTagFamilyInfo=tagGCTagFamilyInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTagFamilyInfo.Head.Cmd,m_NAtagGCTagFamilyInfo.Head.SubCmd))] = m_NAtagGCTagFamilyInfo
+
+
+#------------------------------------------------------
 #A4 01  查看申请入会的玩家信息 #tagGCViewFamilyRequestInfo
 
 class  tagtMemberInfo(Structure):

--
Gitblit v1.8.0