hxp
2019-11-26 ac4f3139e69d4671a46a299df51159f018a5da13
8346 【恺英】【后端】协助系统(封包、表)
10个文件已修改
1204 ■■■■■ 已修改文件
PySysDB/PySysDBG.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py 340 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py 340 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBG.h
@@ -221,6 +221,7 @@
    DWORD        StoneNPCID;    //墓碑NPCID
    WORD        RebornPreNotifyTime;    //复活前X秒通知
    char        SourceName;    //BOSS来源
    BYTE        CanAssist;    //是否可协助
};
//Boss首杀
PySysDB/PySysDBPY.h
@@ -932,6 +932,7 @@
    BYTE        RelatedType;    //刷怪关联类型
    WORD        RelatedID;    //关联ID
    DWORD        StoneNPCID;    //墓碑NPCID
    BYTE        CanAssist;    //是否可协助
};
//Boss首杀
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -1960,6 +1960,120 @@
#------------------------------------------------------
# B0 13 取消协助Boss #tagCGCancelAssistBoss
class  tagCGCancelAssistBoss(Structure):
    Head = tagHead()
    GUID = ""    #(char GUID[40])
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x13
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x13
        self.GUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.GUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GUID
                                )
        return DumpString
m_NAtagCGCancelAssistBoss=tagCGCancelAssistBoss()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCancelAssistBoss.Head.Cmd,m_NAtagCGCancelAssistBoss.Head.SubCmd))] = m_NAtagCGCancelAssistBoss
#------------------------------------------------------
# B0 15 领取协助感谢礼物 #tagCGGetAssistGift
class  tagCGGetAssistGift(Structure):
    Head = tagHead()
    GUID = ""    #(char GUID[40])
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x15
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x15
        self.GUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.GUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GUID
                                )
        return DumpString
m_NAtagCGGetAssistGift=tagCGGetAssistGift()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistGift.Head.Cmd,m_NAtagCGGetAssistGift.Head.SubCmd))] = m_NAtagCGGetAssistGift
#------------------------------------------------------
#B0 25 请求家族悬赏任务完成情况 #tagQueryFamilyArrestOverState
class  tagQueryFamilyArrestOverState(Structure):
@@ -2005,6 +2119,120 @@
m_NAtagQueryFamilyArrestOverState=tagQueryFamilyArrestOverState()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagQueryFamilyArrestOverState.Cmd,m_NAtagQueryFamilyArrestOverState.SubCmd))] = m_NAtagQueryFamilyArrestOverState
#------------------------------------------------------
# B0 14 发送协助感谢礼物 #tagCGSendAssistGift
class  tagCGSendAssistGift(Structure):
    Head = tagHead()
    GUID = ""    #(char GUID[40])
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x14
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x14
        self.GUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.GUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GUID
                                )
        return DumpString
m_NAtagCGSendAssistGift=tagCGSendAssistGift()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGSendAssistGift.Head.Cmd,m_NAtagCGSendAssistGift.Head.SubCmd))] = m_NAtagCGSendAssistGift
#------------------------------------------------------
# B0 12 开始协助Boss #tagCGStartAssistBoss
class  tagCGStartAssistBoss(Structure):
    Head = tagHead()
    GUID = ""    #(char GUID[40])
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x12
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x12
        self.GUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.GUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GUID
                                )
        return DumpString
m_NAtagCGStartAssistBoss=tagCGStartAssistBoss()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGStartAssistBoss.Head.Cmd,m_NAtagCGStartAssistBoss.Head.SubCmd))] = m_NAtagCGStartAssistBoss
#------------------------------------------------------
@@ -13940,6 +14168,118 @@
#------------------------------------------------------
# B0 10 请求协助Boss #tagCMRequestAssistBoss
class  tagCMRequestAssistBoss(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ObjID", c_int),
                  ("NPCID", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB0
        self.SubCmd = 0x10
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB0
        self.SubCmd = 0x10
        self.ObjID = 0
        self.NPCID = 0
        return
    def GetLength(self):
        return sizeof(tagCMRequestAssistBoss)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B0 10 请求协助Boss //tagCMRequestAssistBoss:
                                Cmd:%s,
                                SubCmd:%s,
                                ObjID:%d,
                                NPCID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ObjID,
                                self.NPCID
                                )
        return DumpString
m_NAtagCMRequestAssistBoss=tagCMRequestAssistBoss()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistBoss.Cmd,m_NAtagCMRequestAssistBoss.SubCmd))] = m_NAtagCMRequestAssistBoss
#------------------------------------------------------
# B0 11 请求协助组队副本 #tagCMRequestAssistTeamFB
class  tagCMRequestAssistTeamFB(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MapID", c_ushort),
                  ("LineID", c_ushort),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB0
        self.SubCmd = 0x11
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB0
        self.SubCmd = 0x11
        self.MapID = 0
        self.LineID = 0
        return
    def GetLength(self):
        return sizeof(tagCMRequestAssistTeamFB)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B0 11 请求协助组队副本 //tagCMRequestAssistTeamFB:
                                Cmd:%s,
                                SubCmd:%s,
                                MapID:%d,
                                LineID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MapID,
                                self.LineID
                                )
        return DumpString
m_NAtagCMRequestAssistTeamFB=tagCMRequestAssistTeamFB()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistTeamFB.Cmd,m_NAtagCMRequestAssistTeamFB.SubCmd))] = m_NAtagCMRequestAssistTeamFB
#------------------------------------------------------
# B0 05 开始世界传送 #tagCMWorldTransfer
class  tagCMWorldTransfer(Structure):
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -5778,6 +5778,254 @@
#------------------------------------------------------
# B0 01 新增协助 #tagGCAssistInfoList
class  tagGCAssistInfo(Structure):
    GUID = ""    #(char GUID[40])
    PlayerName = ""    #(char PlayerName[33])
    Job = 0    #(BYTE Job)
    LV = 0    #(WORD LV)//等级
    RealmLV = 0    #(BYTE RealmLV)//境界
    AssistType = 0    #(BYTE AssistType)//协助类型 1-boss, 2-副本, 3-
    AssistValue1 = 0    #(DWORD AssistValue1)//协助参数1,由协助类型决定
    AssistValue2 = 0    #(DWORD AssistValue2)//协助参数2
    AssistValue3 = 0    #(DWORD AssistValue3)//协助参数3
    AssistValue4 = 0    #(DWORD AssistValue4)//协助参数4
    AssistValue5 = 0    #(DWORD AssistValue5)//协助参数5
    AssistDataLen = 0    #(WORD AssistDataLen)
    AssistData = ""    #(String AssistData)//其他自定义数据
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.AssistType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.AssistValue1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AssistValue2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AssistValue3,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AssistValue4,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AssistValue5,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AssistDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.AssistData,_pos = CommFunc.ReadString(_lpData, _pos,self.AssistDataLen)
        return _pos
    def Clear(self):
        self.GUID = ""
        self.PlayerName = ""
        self.Job = 0
        self.LV = 0
        self.RealmLV = 0
        self.AssistType = 0
        self.AssistValue1 = 0
        self.AssistValue2 = 0
        self.AssistValue3 = 0
        self.AssistValue4 = 0
        self.AssistValue5 = 0
        self.AssistDataLen = 0
        self.AssistData = ""
        return
    def GetLength(self):
        length = 0
        length += 40
        length += 33
        length += 1
        length += 2
        length += 1
        length += 1
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        length += 2
        length += len(self.AssistData)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, 40, self.GUID)
        data = CommFunc.WriteString(data, 33, self.PlayerName)
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.RealmLV)
        data = CommFunc.WriteBYTE(data, self.AssistType)
        data = CommFunc.WriteDWORD(data, self.AssistValue1)
        data = CommFunc.WriteDWORD(data, self.AssistValue2)
        data = CommFunc.WriteDWORD(data, self.AssistValue3)
        data = CommFunc.WriteDWORD(data, self.AssistValue4)
        data = CommFunc.WriteDWORD(data, self.AssistValue5)
        data = CommFunc.WriteWORD(data, self.AssistDataLen)
        data = CommFunc.WriteString(data, self.AssistDataLen, self.AssistData)
        return data
    def OutputString(self):
        DumpString = '''
                                GUID:%s,
                                PlayerName:%s,
                                Job:%d,
                                LV:%d,
                                RealmLV:%d,
                                AssistType:%d,
                                AssistValue1:%d,
                                AssistValue2:%d,
                                AssistValue3:%d,
                                AssistValue4:%d,
                                AssistValue5:%d,
                                AssistDataLen:%d,
                                AssistData:%s
                                '''\
                                %(
                                self.GUID,
                                self.PlayerName,
                                self.Job,
                                self.LV,
                                self.RealmLV,
                                self.AssistType,
                                self.AssistValue1,
                                self.AssistValue2,
                                self.AssistValue3,
                                self.AssistValue4,
                                self.AssistValue5,
                                self.AssistDataLen,
                                self.AssistData
                                )
        return DumpString
class  tagGCAssistInfoList(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    AssistInfoList = list()    #(vector<tagGCAssistInfo> AssistInfoList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x01
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temAssistInfoList = tagGCAssistInfo()
            _pos = temAssistInfoList.ReadData(_lpData, _pos)
            self.AssistInfoList.append(temAssistInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x01
        self.Count = 0
        self.AssistInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.AssistInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.AssistInfoList[i].GetLength(), self.AssistInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                AssistInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagGCAssistInfoList=tagGCAssistInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistInfoList.Head.Cmd,m_NAtagGCAssistInfoList.Head.SubCmd))] = m_NAtagGCAssistInfoList
#------------------------------------------------------
# B0 02 删除协助 #tagGCClearAssist
class  tagGCClearAssist(Structure):
    Head = tagHead()
    GUID = ""    #(char GUID[40])
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x02
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x02
        self.GUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.GUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GUID
                                )
        return DumpString
m_NAtagGCClearAssist=tagGCClearAssist()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCClearAssist.Head.Cmd,m_NAtagGCClearAssist.Head.SubCmd))] = m_NAtagGCClearAssist
#------------------------------------------------------
#B0 26 家族悬赏任务完成情况 #tagFamilyArrestOverStateInfo
class  tagFamilyArrestOverState(Structure):
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -201,6 +201,7 @@
                        ("DWORD", "StoneNPCID", 0),
                        ("WORD", "RebornPreNotifyTime", 0),
                        ("char", "SourceName", 0),
                        ("BYTE", "CanAssist", 0),
                        ),
                "BOSSFirstKill":(
@@ -923,7 +924,8 @@
        self.NoUpdataCnt = 0
        self.StoneNPCID = 0
        self.RebornPreNotifyTime = 0
        self.SourceName = ""
        self.SourceName = ""
        self.CanAssist = 0
        return
        
    def GetNPCID(self): return self.NPCID # ID
@@ -934,7 +936,8 @@
    def GetNoUpdataCnt(self): return self.NoUpdataCnt # 多少次未更新实时在线数量字段时强制更新
    def GetStoneNPCID(self): return self.StoneNPCID # 墓碑NPCID
    def GetRebornPreNotifyTime(self): return self.RebornPreNotifyTime # 复活前X秒通知
    def GetSourceName(self): return self.SourceName # BOSS来源
    def GetSourceName(self): return self.SourceName # BOSS来源
    def GetCanAssist(self): return self.CanAssist # 是否可协助
# Boss首杀
class IPY_BOSSFirstKill():
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -1784,3 +1784,9 @@
                       2:[RedPackType_FeastSucc],
                       }
# 协助类型
AssistType = (
AssistType_Boss,
AssistType_TeamFB,
) = range(1, 3)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -1960,6 +1960,120 @@
#------------------------------------------------------
# B0 13 取消协助Boss #tagCGCancelAssistBoss
class  tagCGCancelAssistBoss(Structure):
    Head = tagHead()
    GUID = ""    #(char GUID[40])
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x13
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x13
        self.GUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.GUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GUID
                                )
        return DumpString
m_NAtagCGCancelAssistBoss=tagCGCancelAssistBoss()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCancelAssistBoss.Head.Cmd,m_NAtagCGCancelAssistBoss.Head.SubCmd))] = m_NAtagCGCancelAssistBoss
#------------------------------------------------------
# B0 15 领取协助感谢礼物 #tagCGGetAssistGift
class  tagCGGetAssistGift(Structure):
    Head = tagHead()
    GUID = ""    #(char GUID[40])
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x15
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x15
        self.GUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.GUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GUID
                                )
        return DumpString
m_NAtagCGGetAssistGift=tagCGGetAssistGift()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistGift.Head.Cmd,m_NAtagCGGetAssistGift.Head.SubCmd))] = m_NAtagCGGetAssistGift
#------------------------------------------------------
#B0 25 请求家族悬赏任务完成情况 #tagQueryFamilyArrestOverState
class  tagQueryFamilyArrestOverState(Structure):
@@ -2005,6 +2119,120 @@
m_NAtagQueryFamilyArrestOverState=tagQueryFamilyArrestOverState()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagQueryFamilyArrestOverState.Cmd,m_NAtagQueryFamilyArrestOverState.SubCmd))] = m_NAtagQueryFamilyArrestOverState
#------------------------------------------------------
# B0 14 发送协助感谢礼物 #tagCGSendAssistGift
class  tagCGSendAssistGift(Structure):
    Head = tagHead()
    GUID = ""    #(char GUID[40])
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x14
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x14
        self.GUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.GUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GUID
                                )
        return DumpString
m_NAtagCGSendAssistGift=tagCGSendAssistGift()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGSendAssistGift.Head.Cmd,m_NAtagCGSendAssistGift.Head.SubCmd))] = m_NAtagCGSendAssistGift
#------------------------------------------------------
# B0 12 开始协助Boss #tagCGStartAssistBoss
class  tagCGStartAssistBoss(Structure):
    Head = tagHead()
    GUID = ""    #(char GUID[40])
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x12
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x12
        self.GUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.GUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GUID
                                )
        return DumpString
m_NAtagCGStartAssistBoss=tagCGStartAssistBoss()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGStartAssistBoss.Head.Cmd,m_NAtagCGStartAssistBoss.Head.SubCmd))] = m_NAtagCGStartAssistBoss
#------------------------------------------------------
@@ -13940,6 +14168,118 @@
#------------------------------------------------------
# B0 10 请求协助Boss #tagCMRequestAssistBoss
class  tagCMRequestAssistBoss(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ObjID", c_int),
                  ("NPCID", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB0
        self.SubCmd = 0x10
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB0
        self.SubCmd = 0x10
        self.ObjID = 0
        self.NPCID = 0
        return
    def GetLength(self):
        return sizeof(tagCMRequestAssistBoss)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B0 10 请求协助Boss //tagCMRequestAssistBoss:
                                Cmd:%s,
                                SubCmd:%s,
                                ObjID:%d,
                                NPCID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ObjID,
                                self.NPCID
                                )
        return DumpString
m_NAtagCMRequestAssistBoss=tagCMRequestAssistBoss()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistBoss.Cmd,m_NAtagCMRequestAssistBoss.SubCmd))] = m_NAtagCMRequestAssistBoss
#------------------------------------------------------
# B0 11 请求协助组队副本 #tagCMRequestAssistTeamFB
class  tagCMRequestAssistTeamFB(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MapID", c_ushort),
                  ("LineID", c_ushort),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB0
        self.SubCmd = 0x11
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB0
        self.SubCmd = 0x11
        self.MapID = 0
        self.LineID = 0
        return
    def GetLength(self):
        return sizeof(tagCMRequestAssistTeamFB)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B0 11 请求协助组队副本 //tagCMRequestAssistTeamFB:
                                Cmd:%s,
                                SubCmd:%s,
                                MapID:%d,
                                LineID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MapID,
                                self.LineID
                                )
        return DumpString
m_NAtagCMRequestAssistTeamFB=tagCMRequestAssistTeamFB()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistTeamFB.Cmd,m_NAtagCMRequestAssistTeamFB.SubCmd))] = m_NAtagCMRequestAssistTeamFB
#------------------------------------------------------
# B0 05 开始世界传送 #tagCMWorldTransfer
class  tagCMWorldTransfer(Structure):
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -5778,6 +5778,254 @@
#------------------------------------------------------
# B0 01 新增协助 #tagGCAssistInfoList
class  tagGCAssistInfo(Structure):
    GUID = ""    #(char GUID[40])
    PlayerName = ""    #(char PlayerName[33])
    Job = 0    #(BYTE Job)
    LV = 0    #(WORD LV)//等级
    RealmLV = 0    #(BYTE RealmLV)//境界
    AssistType = 0    #(BYTE AssistType)//协助类型 1-boss, 2-副本, 3-
    AssistValue1 = 0    #(DWORD AssistValue1)//协助参数1,由协助类型决定
    AssistValue2 = 0    #(DWORD AssistValue2)//协助参数2
    AssistValue3 = 0    #(DWORD AssistValue3)//协助参数3
    AssistValue4 = 0    #(DWORD AssistValue4)//协助参数4
    AssistValue5 = 0    #(DWORD AssistValue5)//协助参数5
    AssistDataLen = 0    #(WORD AssistDataLen)
    AssistData = ""    #(String AssistData)//其他自定义数据
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.AssistType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.AssistValue1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AssistValue2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AssistValue3,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AssistValue4,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AssistValue5,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AssistDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.AssistData,_pos = CommFunc.ReadString(_lpData, _pos,self.AssistDataLen)
        return _pos
    def Clear(self):
        self.GUID = ""
        self.PlayerName = ""
        self.Job = 0
        self.LV = 0
        self.RealmLV = 0
        self.AssistType = 0
        self.AssistValue1 = 0
        self.AssistValue2 = 0
        self.AssistValue3 = 0
        self.AssistValue4 = 0
        self.AssistValue5 = 0
        self.AssistDataLen = 0
        self.AssistData = ""
        return
    def GetLength(self):
        length = 0
        length += 40
        length += 33
        length += 1
        length += 2
        length += 1
        length += 1
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        length += 2
        length += len(self.AssistData)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, 40, self.GUID)
        data = CommFunc.WriteString(data, 33, self.PlayerName)
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.RealmLV)
        data = CommFunc.WriteBYTE(data, self.AssistType)
        data = CommFunc.WriteDWORD(data, self.AssistValue1)
        data = CommFunc.WriteDWORD(data, self.AssistValue2)
        data = CommFunc.WriteDWORD(data, self.AssistValue3)
        data = CommFunc.WriteDWORD(data, self.AssistValue4)
        data = CommFunc.WriteDWORD(data, self.AssistValue5)
        data = CommFunc.WriteWORD(data, self.AssistDataLen)
        data = CommFunc.WriteString(data, self.AssistDataLen, self.AssistData)
        return data
    def OutputString(self):
        DumpString = '''
                                GUID:%s,
                                PlayerName:%s,
                                Job:%d,
                                LV:%d,
                                RealmLV:%d,
                                AssistType:%d,
                                AssistValue1:%d,
                                AssistValue2:%d,
                                AssistValue3:%d,
                                AssistValue4:%d,
                                AssistValue5:%d,
                                AssistDataLen:%d,
                                AssistData:%s
                                '''\
                                %(
                                self.GUID,
                                self.PlayerName,
                                self.Job,
                                self.LV,
                                self.RealmLV,
                                self.AssistType,
                                self.AssistValue1,
                                self.AssistValue2,
                                self.AssistValue3,
                                self.AssistValue4,
                                self.AssistValue5,
                                self.AssistDataLen,
                                self.AssistData
                                )
        return DumpString
class  tagGCAssistInfoList(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    AssistInfoList = list()    #(vector<tagGCAssistInfo> AssistInfoList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x01
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temAssistInfoList = tagGCAssistInfo()
            _pos = temAssistInfoList.ReadData(_lpData, _pos)
            self.AssistInfoList.append(temAssistInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x01
        self.Count = 0
        self.AssistInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.AssistInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.AssistInfoList[i].GetLength(), self.AssistInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                AssistInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagGCAssistInfoList=tagGCAssistInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistInfoList.Head.Cmd,m_NAtagGCAssistInfoList.Head.SubCmd))] = m_NAtagGCAssistInfoList
#------------------------------------------------------
# B0 02 删除协助 #tagGCClearAssist
class  tagGCClearAssist(Structure):
    Head = tagHead()
    GUID = ""    #(char GUID[40])
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x02
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x02
        self.GUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.GUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GUID
                                )
        return DumpString
m_NAtagGCClearAssist=tagGCClearAssist()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCClearAssist.Head.Cmd,m_NAtagGCClearAssist.Head.SubCmd))] = m_NAtagGCClearAssist
#------------------------------------------------------
#B0 26 家族悬赏任务完成情况 #tagFamilyArrestOverStateInfo
class  tagFamilyArrestOverState(Structure):
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -769,6 +769,7 @@
                        ("BYTE", "RelatedType", 0),
                        ("WORD", "RelatedID", 0),
                        ("DWORD", "StoneNPCID", 0),
                        ("BYTE", "CanAssist", 0),
                        ),
                "BOSSFirstKill":(
@@ -3074,7 +3075,8 @@
        self.IsNeedShunt = 0
        self.RelatedType = 0
        self.RelatedID = 0
        self.StoneNPCID = 0
        self.StoneNPCID = 0
        self.CanAssist = 0
        return
        
    def GetNPCID(self): return self.NPCID # ID
@@ -3083,7 +3085,8 @@
    def GetIsNeedShunt(self): return self.IsNeedShunt # 是否需要分流
    def GetRelatedType(self): return self.RelatedType # 刷怪关联类型
    def GetRelatedID(self): return self.RelatedID # 关联ID
    def GetStoneNPCID(self): return self.StoneNPCID # 墓碑NPCID
    def GetStoneNPCID(self): return self.StoneNPCID # 墓碑NPCID
    def GetCanAssist(self): return self.CanAssist # 是否可协助
# Boss首杀
class IPY_BOSSFirstKill():
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -1784,3 +1784,9 @@
                       2:[RedPackType_FeastSucc],
                       }
# 协助类型
AssistType = (
AssistType_Boss,
AssistType_TeamFB,
) = range(1, 3)