From 88effa2034b78c46426b2e7f7924a9493da9af4f Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 03 十二月 2018 16:22:15 +0800
Subject: [PATCH] 5161 子 【1.3.100】修复在仙盟任务副本中退出仙盟还能继续任务的BUG

---
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py |  292 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 288 insertions(+), 4 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 0c0f4c9..431d95b 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -24481,6 +24481,119 @@
 
 
 #------------------------------------------------------
+# B2 08 获得仙缘币信息 #tagMCAddXianyuanCoinMsg
+
+class  tagMCAddXianyuanCoinMsg(Structure):
+    Head = tagHead()
+    MapID = 0    #(DWORD MapID)
+    FuncLineID = 0    #(BYTE FuncLineID)
+    Relation = 0    #(BYTE Relation)// 当时的关系:0-无,1-好友,2-盟友
+    RelationCoinAdd = 0    #(BYTE RelationCoinAdd)// 社交关系总加成
+    XianyuanCoinAdd = 0    #(WORD XianyuanCoinAdd)// 实际增加的仙缘币
+    Reason = 0    #(BYTE Reason)//仙缘币为0时的原因:1-助战次数上限;2-每日获得上限
+    CallPlayerID = 0    #(DWORD CallPlayerID)// 助战的玩家ID,有值时代表真实助战,没有值时为自己打的
+    NameLen = 0    #(BYTE NameLen)
+    CallPlayerName = ""    #(String CallPlayerName)// 助战的玩家名,size = NameLen
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB2
+        self.Head.SubCmd = 0x08
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FuncLineID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.Relation,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.RelationCoinAdd,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.XianyuanCoinAdd,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Reason,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.CallPlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.CallPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xB2
+        self.Head.SubCmd = 0x08
+        self.MapID = 0
+        self.FuncLineID = 0
+        self.Relation = 0
+        self.RelationCoinAdd = 0
+        self.XianyuanCoinAdd = 0
+        self.Reason = 0
+        self.CallPlayerID = 0
+        self.NameLen = 0
+        self.CallPlayerName = ""
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 4
+        length += 1
+        length += 1
+        length += 1
+        length += 2
+        length += 1
+        length += 4
+        length += 1
+        length += len(self.CallPlayerName)
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteDWORD(data, self.MapID)
+        data = CommFunc.WriteBYTE(data, self.FuncLineID)
+        data = CommFunc.WriteBYTE(data, self.Relation)
+        data = CommFunc.WriteBYTE(data, self.RelationCoinAdd)
+        data = CommFunc.WriteWORD(data, self.XianyuanCoinAdd)
+        data = CommFunc.WriteBYTE(data, self.Reason)
+        data = CommFunc.WriteDWORD(data, self.CallPlayerID)
+        data = CommFunc.WriteBYTE(data, self.NameLen)
+        data = CommFunc.WriteString(data, self.NameLen, self.CallPlayerName)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                MapID:%d,
+                                FuncLineID:%d,
+                                Relation:%d,
+                                RelationCoinAdd:%d,
+                                XianyuanCoinAdd:%d,
+                                Reason:%d,
+                                CallPlayerID:%d,
+                                NameLen:%d,
+                                CallPlayerName:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.MapID,
+                                self.FuncLineID,
+                                self.Relation,
+                                self.RelationCoinAdd,
+                                self.XianyuanCoinAdd,
+                                self.Reason,
+                                self.CallPlayerID,
+                                self.NameLen,
+                                self.CallPlayerName
+                                )
+        return DumpString
+
+
+m_NAtagMCAddXianyuanCoinMsg=tagMCAddXianyuanCoinMsg()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAddXianyuanCoinMsg.Head.Cmd,m_NAtagMCAddXianyuanCoinMsg.Head.SubCmd))] = m_NAtagMCAddXianyuanCoinMsg
+
+
+#------------------------------------------------------
 # B2 10 仙盟联赛玩家排名信息 #tagMCFamilyWarBillboard
 
 class  tagMCFamilyWarPlayer(Structure):
@@ -24838,6 +24951,7 @@
                   ("SubCmd", c_ubyte),
                   ("ObjID", c_int),    # 助战实例ID
                   ("PlayerID", c_int),    # 助战镜像ID,大于1小于100代表机器人,如果是机器人前端按顺序自己记录对应实例ID代表已召唤
+                  ("Job", c_ubyte),    # 职业
                   ]
 
     def __init__(self):
@@ -24856,6 +24970,7 @@
         self.SubCmd = 0x06
         self.ObjID = 0
         self.PlayerID = 0
+        self.Job = 0
         return
 
     def GetLength(self):
@@ -24869,13 +24984,15 @@
                                 Cmd:%s,
                                 SubCmd:%s,
                                 ObjID:%d,
-                                PlayerID:%d
+                                PlayerID:%d,
+                                Job:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
                                 self.ObjID,
-                                self.PlayerID
+                                self.PlayerID,
+                                self.Job
                                 )
         return DumpString
 
@@ -24893,6 +25010,7 @@
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
                   ("IsOK", c_ubyte),    #是否成功
+                  ("IsLogin", c_ubyte),    #是否登录同步已登记
                   ]
 
     def __init__(self):
@@ -24910,6 +25028,7 @@
         self.Cmd = 0xB2
         self.SubCmd = 0x05
         self.IsOK = 0
+        self.IsLogin = 0
         return
 
     def GetLength(self):
@@ -24922,12 +25041,14 @@
         DumpString = '''// B2 05 助战登记结果 //tagMCHelpBattleCheckInResult:
                                 Cmd:%s,
                                 SubCmd:%s,
-                                IsOK:%d
+                                IsOK:%d,
+                                IsLogin:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
-                                self.IsOK
+                                self.IsOK,
+                                self.IsLogin
                                 )
         return DumpString
 
@@ -25114,6 +25235,169 @@
 
 
 #------------------------------------------------------
+# B2 11 助战记录列表 #tagMCHelpBattleRecordList
+
+class  tagMCHelpBattleRecord(Structure):
+    CallPlayerID = 0    #(DWORD CallPlayerID)// 邀请助战的玩家ID
+    NameLen = 0    #(BYTE NameLen)
+    CallPlayerName = ""    #(String CallPlayerName)// 邀请助战的玩家名,size = NameLen
+    MapID = 0    #(DWORD MapID)
+    FuncLineID = 0    #(BYTE FuncLineID)
+    XianyuanCoinAdd = 0    #(WORD XianyuanCoinAdd)// 增加的仙缘币,0代表已达上限
+    Relation = 0    #(BYTE Relation)// 当时的关系:0-无,1-好友,2-盟友
+    VIPLV = 0    #(BYTE VIPLV)// 当时的VIP等级
+    HelpTime = ""    #(char HelpTime[19])// 助战时间yyyy-MM-dd hh:mm:ss
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        self.CallPlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.CallPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
+        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FuncLineID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.XianyuanCoinAdd,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Relation,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.VIPLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.HelpTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
+        return _pos
+
+    def Clear(self):
+        self.CallPlayerID = 0
+        self.NameLen = 0
+        self.CallPlayerName = ""
+        self.MapID = 0
+        self.FuncLineID = 0
+        self.XianyuanCoinAdd = 0
+        self.Relation = 0
+        self.VIPLV = 0
+        self.HelpTime = ""
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 4
+        length += 1
+        length += len(self.CallPlayerName)
+        length += 4
+        length += 1
+        length += 2
+        length += 1
+        length += 1
+        length += 19
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteDWORD(data, self.CallPlayerID)
+        data = CommFunc.WriteBYTE(data, self.NameLen)
+        data = CommFunc.WriteString(data, self.NameLen, self.CallPlayerName)
+        data = CommFunc.WriteDWORD(data, self.MapID)
+        data = CommFunc.WriteBYTE(data, self.FuncLineID)
+        data = CommFunc.WriteWORD(data, self.XianyuanCoinAdd)
+        data = CommFunc.WriteBYTE(data, self.Relation)
+        data = CommFunc.WriteBYTE(data, self.VIPLV)
+        data = CommFunc.WriteString(data, 19, self.HelpTime)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                CallPlayerID:%d,
+                                NameLen:%d,
+                                CallPlayerName:%s,
+                                MapID:%d,
+                                FuncLineID:%d,
+                                XianyuanCoinAdd:%d,
+                                Relation:%d,
+                                VIPLV:%d,
+                                HelpTime:%s
+                                '''\
+                                %(
+                                self.CallPlayerID,
+                                self.NameLen,
+                                self.CallPlayerName,
+                                self.MapID,
+                                self.FuncLineID,
+                                self.XianyuanCoinAdd,
+                                self.Relation,
+                                self.VIPLV,
+                                self.HelpTime
+                                )
+        return DumpString
+
+
+class  tagMCHelpBattleRecordList(Structure):
+    Head = tagHead()
+    RecordCount = 0    #(WORD RecordCount)// 记录数
+    RecordList = list()    #(vector<tagMCHelpBattleRecord> RecordList)
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB2
+        self.Head.SubCmd = 0x11
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.RecordCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        for i in range(self.RecordCount):
+            temRecordList = tagMCHelpBattleRecord()
+            _pos = temRecordList.ReadData(_lpData, _pos)
+            self.RecordList.append(temRecordList)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xB2
+        self.Head.SubCmd = 0x11
+        self.RecordCount = 0
+        self.RecordList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 2
+        for i in range(self.RecordCount):
+            length += self.RecordList[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteWORD(data, self.RecordCount)
+        for i in range(self.RecordCount):
+            data = CommFunc.WriteString(data, self.RecordList[i].GetLength(), self.RecordList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                RecordCount:%d,
+                                RecordList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.RecordCount,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCHelpBattleRecordList=tagMCHelpBattleRecordList()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHelpBattleRecordList.Head.Cmd,m_NAtagMCHelpBattleRecordList.Head.SubCmd))] = m_NAtagMCHelpBattleRecordList
+
+
+#------------------------------------------------------
 # B2 04 冰晶矿脉信息通知 #tagMCIceLodeInfo
 
 class  tagMCIceLodeInfo(Structure):

--
Gitblit v1.8.0