From 4180ba5f28c47d15a33d99973e2034f5337ab3fc Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 20 十二月 2022 17:04:17 +0800
Subject: [PATCH] 9731 【越南】【主干】【BT7】【BT8】转职业(转职附加重置灵根属性点)
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 1585 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,584 insertions(+), 1 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index dc58a90..f27cb3e 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -2330,6 +2330,54 @@
#------------------------------------------------------
+# B3 19 提升魅力等级 #tagCGCharmLVUp
+
+class tagCGCharmLVUp(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB3
+ self.SubCmd = 0x19
+ 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 = 0xB3
+ self.SubCmd = 0x19
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGCharmLVUp)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B3 19 提升魅力等级 //tagCGCharmLVUp:
+ Cmd:%s,
+ SubCmd:%s
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd
+ )
+ return DumpString
+
+
+m_NAtagCGCharmLVUp=tagCGCharmLVUp()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCharmLVUp.Cmd,m_NAtagCGCharmLVUp.SubCmd))] = m_NAtagCGCharmLVUp
+
+
+#------------------------------------------------------
# B3 09 魅力贡献榜查看 #tagCGCharmOfferBillboardQuery
class tagCGCharmOfferBillboardQuery(Structure):
@@ -3939,6 +3987,422 @@
#------------------------------------------------------
+# C0 21 跨服排位仙官申请回应 #tagCGChampionshipOfficialApplyReply
+
+class tagCGChampionshipOfficialApplyReply(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("MainOfficialID", c_ushort), #界主官职ID
+ ("OfficialID", c_ushort), #申请官职ID
+ ("PlayerID", c_int), #申请的玩家ID
+ ("IsOK", c_ubyte), #是否同意;1-是;0-否
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC0
+ self.SubCmd = 0x21
+ 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 = 0xC0
+ self.SubCmd = 0x21
+ self.MainOfficialID = 0
+ self.OfficialID = 0
+ self.PlayerID = 0
+ self.IsOK = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGChampionshipOfficialApplyReply)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C0 21 跨服排位仙官申请回应 //tagCGChampionshipOfficialApplyReply:
+ Cmd:%s,
+ SubCmd:%s,
+ MainOfficialID:%d,
+ OfficialID:%d,
+ PlayerID:%d,
+ IsOK:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.MainOfficialID,
+ self.OfficialID,
+ self.PlayerID,
+ self.IsOK
+ )
+ return DumpString
+
+
+m_NAtagCGChampionshipOfficialApplyReply=tagCGChampionshipOfficialApplyReply()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialApplyReply.Cmd,m_NAtagCGChampionshipOfficialApplyReply.SubCmd))] = m_NAtagCGChampionshipOfficialApplyReply
+
+
+#------------------------------------------------------
+# C0 23 跨服排位仙官挑战记录查询 #tagCGChampionshipOfficialChallengeQuery
+
+class tagCGChampionshipOfficialChallengeQuery(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("MainOfficialID", c_ushort), #界主官职ID
+ ("OfficialID", c_ushort), #查询官职ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC0
+ self.SubCmd = 0x23
+ 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 = 0xC0
+ self.SubCmd = 0x23
+ self.MainOfficialID = 0
+ self.OfficialID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGChampionshipOfficialChallengeQuery)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C0 23 跨服排位仙官挑战记录查询 //tagCGChampionshipOfficialChallengeQuery:
+ Cmd:%s,
+ SubCmd:%s,
+ MainOfficialID:%d,
+ OfficialID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.MainOfficialID,
+ self.OfficialID
+ )
+ return DumpString
+
+
+m_NAtagCGChampionshipOfficialChallengeQuery=tagCGChampionshipOfficialChallengeQuery()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialChallengeQuery.Cmd,m_NAtagCGChampionshipOfficialChallengeQuery.SubCmd))] = m_NAtagCGChampionshipOfficialChallengeQuery
+
+
+#------------------------------------------------------
+# C0 24 跨服排位辞退下级仙官 #tagCGChampionshipOfficialKick
+
+class tagCGChampionshipOfficialKick(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("MainOfficialID", c_ushort), #界主官职ID
+ ("OfficialID", c_ushort), #目标官职ID
+ ("PlayerID", c_int), #目标玩家ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC0
+ self.SubCmd = 0x24
+ 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 = 0xC0
+ self.SubCmd = 0x24
+ self.MainOfficialID = 0
+ self.OfficialID = 0
+ self.PlayerID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGChampionshipOfficialKick)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C0 24 跨服排位辞退下级仙官 //tagCGChampionshipOfficialKick:
+ Cmd:%s,
+ SubCmd:%s,
+ MainOfficialID:%d,
+ OfficialID:%d,
+ PlayerID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.MainOfficialID,
+ self.OfficialID,
+ self.PlayerID
+ )
+ return DumpString
+
+
+m_NAtagCGChampionshipOfficialKick=tagCGChampionshipOfficialKick()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialKick.Cmd,m_NAtagCGChampionshipOfficialKick.SubCmd))] = m_NAtagCGChampionshipOfficialKick
+
+
+#------------------------------------------------------
+# C0 25 跨服排位主动离任仙官 #tagCGChampionshipOfficialLeave
+
+class tagCGChampionshipOfficialLeave(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("MainOfficialID", c_ushort), #界主官职ID
+ ("OfficialID", c_ushort), #离任官职ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC0
+ self.SubCmd = 0x25
+ 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 = 0xC0
+ self.SubCmd = 0x25
+ self.MainOfficialID = 0
+ self.OfficialID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGChampionshipOfficialLeave)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C0 25 跨服排位主动离任仙官 //tagCGChampionshipOfficialLeave:
+ Cmd:%s,
+ SubCmd:%s,
+ MainOfficialID:%d,
+ OfficialID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.MainOfficialID,
+ self.OfficialID
+ )
+ return DumpString
+
+
+m_NAtagCGChampionshipOfficialLeave=tagCGChampionshipOfficialLeave()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialLeave.Cmd,m_NAtagCGChampionshipOfficialLeave.SubCmd))] = m_NAtagCGChampionshipOfficialLeave
+
+
+#------------------------------------------------------
+# C0 09 跨服战场召集场次修改 #tagCGCrossBattlefieldCallChange
+
+class tagCGCrossBattlefieldCallChange(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("Hour", c_ubyte), #战场开启时
+ ("Minute", c_ubyte), #战场开启分
+ ("ServerOnly", c_ubyte), #是否仅本服玩家可加入,0-否,1-是
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC0
+ self.SubCmd = 0x09
+ 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 = 0xC0
+ self.SubCmd = 0x09
+ self.Hour = 0
+ self.Minute = 0
+ self.ServerOnly = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGCrossBattlefieldCallChange)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C0 09 跨服战场召集场次修改 //tagCGCrossBattlefieldCallChange:
+ Cmd:%s,
+ SubCmd:%s,
+ Hour:%d,
+ Minute:%d,
+ ServerOnly:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.Hour,
+ self.Minute,
+ self.ServerOnly
+ )
+ return DumpString
+
+
+m_NAtagCGCrossBattlefieldCallChange=tagCGCrossBattlefieldCallChange()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldCallChange.Cmd,m_NAtagCGCrossBattlefieldCallChange.SubCmd))] = m_NAtagCGCrossBattlefieldCallChange
+
+
+#------------------------------------------------------
+# C0 08 跨服战场召集场次踢人 #tagCGCrossBattlefieldCallKick
+
+class tagCGCrossBattlefieldCallKick(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("Hour", c_ubyte), #战场开启时
+ ("Minute", c_ubyte), #战场开启分
+ ("TagPlayerID", c_int), #目标玩家ID,即要被踢出去的玩家ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC0
+ self.SubCmd = 0x08
+ 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 = 0xC0
+ self.SubCmd = 0x08
+ self.Hour = 0
+ self.Minute = 0
+ self.TagPlayerID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGCrossBattlefieldCallKick)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C0 08 跨服战场召集场次踢人 //tagCGCrossBattlefieldCallKick:
+ Cmd:%s,
+ SubCmd:%s,
+ Hour:%d,
+ Minute:%d,
+ TagPlayerID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.Hour,
+ self.Minute,
+ self.TagPlayerID
+ )
+ return DumpString
+
+
+m_NAtagCGCrossBattlefieldCallKick=tagCGCrossBattlefieldCallKick()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldCallKick.Cmd,m_NAtagCGCrossBattlefieldCallKick.SubCmd))] = m_NAtagCGCrossBattlefieldCallKick
+
+
+#------------------------------------------------------
+# C0 07 跨服战场加入召集场次 #tagCGCrossBattlefieldJoinByCall
+
+class tagCGCrossBattlefieldJoinByCall(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("Hour", c_ubyte), #战场开启时
+ ("Minute", c_ubyte), #战场开启分
+ ("BuyPlayerID", c_int), #加入目标玩家的召集队伍,即购买召集场的玩家ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC0
+ self.SubCmd = 0x07
+ 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 = 0xC0
+ self.SubCmd = 0x07
+ self.Hour = 0
+ self.Minute = 0
+ self.BuyPlayerID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGCrossBattlefieldJoinByCall)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C0 07 跨服战场加入召集场次 //tagCGCrossBattlefieldJoinByCall:
+ Cmd:%s,
+ SubCmd:%s,
+ Hour:%d,
+ Minute:%d,
+ BuyPlayerID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.Hour,
+ self.Minute,
+ self.BuyPlayerID
+ )
+ return DumpString
+
+
+m_NAtagCGCrossBattlefieldJoinByCall=tagCGCrossBattlefieldJoinByCall()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldJoinByCall.Cmd,m_NAtagCGCrossBattlefieldJoinByCall.SubCmd))] = m_NAtagCGCrossBattlefieldJoinByCall
+
+
+#------------------------------------------------------
# C0 03 强制退出跨服状态 #tagCGForceQuitCrossState
class tagCGForceQuitCrossState(Structure):
@@ -3984,6 +4448,106 @@
m_NAtagCGForceQuitCrossState=tagCGForceQuitCrossState()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGForceQuitCrossState.Cmd,m_NAtagCGForceQuitCrossState.SubCmd))] = m_NAtagCGForceQuitCrossState
+
+
+#------------------------------------------------------
+# C0 06 查询幸运云购开奖记录 #tagCGQueryLuckyCloudBuyLotteryRec
+
+class tagCGQueryLuckyCloudBuyLotteryRec(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ZoneID", c_ubyte), #查询分区ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC0
+ self.SubCmd = 0x06
+ 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 = 0xC0
+ self.SubCmd = 0x06
+ self.ZoneID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGQueryLuckyCloudBuyLotteryRec)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C0 06 查询幸运云购开奖记录 //tagCGQueryLuckyCloudBuyLotteryRec:
+ Cmd:%s,
+ SubCmd:%s,
+ ZoneID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ZoneID
+ )
+ return DumpString
+
+
+m_NAtagCGQueryLuckyCloudBuyLotteryRec=tagCGQueryLuckyCloudBuyLotteryRec()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryLuckyCloudBuyLotteryRec.Cmd,m_NAtagCGQueryLuckyCloudBuyLotteryRec.SubCmd))] = m_NAtagCGQueryLuckyCloudBuyLotteryRec
+
+
+#------------------------------------------------------
+# C0 05 查询幸运云购购买号码记录 #tagCGQueryLuckyCloudBuyNumRec
+
+class tagCGQueryLuckyCloudBuyNumRec(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC0
+ self.SubCmd = 0x05
+ 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 = 0xC0
+ self.SubCmd = 0x05
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGQueryLuckyCloudBuyNumRec)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C0 05 查询幸运云购购买号码记录 //tagCGQueryLuckyCloudBuyNumRec:
+ Cmd:%s,
+ SubCmd:%s
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd
+ )
+ return DumpString
+
+
+m_NAtagCGQueryLuckyCloudBuyNumRec=tagCGQueryLuckyCloudBuyNumRec()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryLuckyCloudBuyNumRec.Cmd,m_NAtagCGQueryLuckyCloudBuyNumRec.SubCmd))] = m_NAtagCGQueryLuckyCloudBuyNumRec
#------------------------------------------------------
@@ -4156,6 +4720,58 @@
m_NAtagCGViewCrossPlayerInfo=tagCGViewCrossPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGViewCrossPlayerInfo.Cmd,m_NAtagCGViewCrossPlayerInfo.SubCmd))] = m_NAtagCGViewCrossPlayerInfo
+
+
+#------------------------------------------------------
+# A1 21 转职业 #tagCMChangeJob
+
+class tagCMChangeJob(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("TagJob", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA1
+ self.SubCmd = 0x21
+ 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 = 0xA1
+ self.SubCmd = 0x21
+ self.TagJob = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMChangeJob)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A1 21 转职业 //tagCMChangeJob:
+ Cmd:%s,
+ SubCmd:%s,
+ TagJob:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.TagJob
+ )
+ return DumpString
+
+
+m_NAtagCMChangeJob=tagCMChangeJob()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChangeJob.Cmd,m_NAtagCMChangeJob.SubCmd))] = m_NAtagCMChangeJob
#------------------------------------------------------
@@ -5983,6 +6599,58 @@
m_NAtagCMSelectObj=tagCMSelectObj()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSelectObj.Cmd,m_NAtagCMSelectObj.SubCmd))] = m_NAtagCMSelectObj
+
+
+#------------------------------------------------------
+# A2 35 选择境界难度层级 #tagCMSelectRealmDifficulty
+
+class tagCMSelectRealmDifficulty(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("RealmDifficulty", c_ubyte), #境界难度 = 100 + 所选境界等级,如境界13,则发113
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA2
+ self.SubCmd = 0x35
+ 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 = 0xA2
+ self.SubCmd = 0x35
+ self.RealmDifficulty = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMSelectRealmDifficulty)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A2 35 选择境界难度层级 //tagCMSelectRealmDifficulty:
+ Cmd:%s,
+ SubCmd:%s,
+ RealmDifficulty:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.RealmDifficulty
+ )
+ return DumpString
+
+
+m_NAtagCMSelectRealmDifficulty=tagCMSelectRealmDifficulty()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSelectRealmDifficulty.Cmd,m_NAtagCMSelectRealmDifficulty.SubCmd))] = m_NAtagCMSelectRealmDifficulty
#------------------------------------------------------
@@ -9306,6 +9974,54 @@
#------------------------------------------------------
+# A5 46 购买通天令 #tagCMBuyTongTianLing
+
+class tagCMBuyTongTianLing(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x46
+ 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 = 0xA5
+ self.SubCmd = 0x46
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMBuyTongTianLing)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 46 购买通天令 //tagCMBuyTongTianLing:
+ Cmd:%s,
+ SubCmd:%s
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd
+ )
+ return DumpString
+
+
+m_NAtagCMBuyTongTianLing=tagCMBuyTongTianLing()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyTongTianLing.Cmd,m_NAtagCMBuyTongTianLing.SubCmd))] = m_NAtagCMBuyTongTianLing
+
+
+#------------------------------------------------------
#A5 3B 请求领取补偿#tagCMRequestCompensation
class tagCMRequestCompensation(Structure):
@@ -10340,6 +11056,58 @@
#------------------------------------------------------
+# A5 45 兑换通天令等级经验积分点 #tagCMExchangeTongTianLVPoint
+
+class tagCMExchangeTongTianLVPoint(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ExchangePoint", c_int), # 兑换点数
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x45
+ 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 = 0xA5
+ self.SubCmd = 0x45
+ self.ExchangePoint = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMExchangeTongTianLVPoint)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 45 兑换通天令等级经验积分点 //tagCMExchangeTongTianLVPoint:
+ Cmd:%s,
+ SubCmd:%s,
+ ExchangePoint:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ExchangePoint
+ )
+ return DumpString
+
+
+m_NAtagCMExchangeTongTianLVPoint=tagCMExchangeTongTianLVPoint()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExchangeTongTianLVPoint.Cmd,m_NAtagCMExchangeTongTianLVPoint.SubCmd))] = m_NAtagCMExchangeTongTianLVPoint
+
+
+#------------------------------------------------------
# A5 32 法器升级 #tagCMFaQiLVUp
class tagCMFaQiLVUp(Structure):
@@ -10778,6 +11546,114 @@
#------------------------------------------------------
+# A5 44 通天令领取等级奖励 #tagCMGetTongTianLVAward
+
+class tagCMGetTongTianLVAward(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("TTLV", c_ubyte), # 领取对应等级奖励,发255为一键领取所有等级奖励,包含仙品奖励
+ ("IsXian", c_ubyte), # 是否领取仙品奖励,仅指定等级奖励有效
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x44
+ 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 = 0xA5
+ self.SubCmd = 0x44
+ self.TTLV = 0
+ self.IsXian = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMGetTongTianLVAward)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 44 通天令领取等级奖励 //tagCMGetTongTianLVAward:
+ Cmd:%s,
+ SubCmd:%s,
+ TTLV:%d,
+ IsXian:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.TTLV,
+ self.IsXian
+ )
+ return DumpString
+
+
+m_NAtagCMGetTongTianLVAward=tagCMGetTongTianLVAward()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetTongTianLVAward.Cmd,m_NAtagCMGetTongTianLVAward.SubCmd))] = m_NAtagCMGetTongTianLVAward
+
+
+#------------------------------------------------------
+# A5 43 通天令领取任务奖励 #tagCMGetTongTianTaskAward
+
+class tagCMGetTongTianTaskAward(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("TaskID", c_ubyte), # 任务ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x43
+ 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 = 0xA5
+ self.SubCmd = 0x43
+ self.TaskID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMGetTongTianTaskAward)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 43 通天令领取任务奖励 //tagCMGetTongTianTaskAward:
+ Cmd:%s,
+ SubCmd:%s,
+ TaskID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.TaskID
+ )
+ return DumpString
+
+
+m_NAtagCMGetTongTianTaskAward=tagCMGetTongTianTaskAward()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetTongTianTaskAward.Cmd,m_NAtagCMGetTongTianTaskAward.SubCmd))] = m_NAtagCMGetTongTianTaskAward
+
+
+#------------------------------------------------------
# A5 56 神兵激活 #tagCMGodWeaponActivate
class tagCMGodWeaponActivate(Structure):
@@ -11179,6 +12055,110 @@
m_NAtagCMHorseUp=tagCMHorseUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorseUp.Cmd,m_NAtagCMHorseUp.SubCmd))] = m_NAtagCMHorseUp
+
+
+#------------------------------------------------------
+# A5 34 炼体突破 #tagCMLianTiLVUp
+
+class tagCMLianTiLVUp(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x34
+ 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 = 0xA5
+ self.SubCmd = 0x34
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMLianTiLVUp)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 34 炼体突破 //tagCMLianTiLVUp:
+ Cmd:%s,
+ SubCmd:%s
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd
+ )
+ return DumpString
+
+
+m_NAtagCMLianTiLVUp=tagCMLianTiLVUp()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLianTiLVUp.Cmd,m_NAtagCMLianTiLVUp.SubCmd))] = m_NAtagCMLianTiLVUp
+
+
+#------------------------------------------------------
+# A5 33 炼体提升 #tagCMLianTiUp
+
+class tagCMLianTiUp(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("UseItemCnt", c_int), #消耗材料个数
+ ("IsAutoBuy", c_ubyte), #是否自动购买
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x33
+ 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 = 0xA5
+ self.SubCmd = 0x33
+ self.UseItemCnt = 0
+ self.IsAutoBuy = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMLianTiUp)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 33 炼体提升 //tagCMLianTiUp:
+ Cmd:%s,
+ SubCmd:%s,
+ UseItemCnt:%d,
+ IsAutoBuy:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.UseItemCnt,
+ self.IsAutoBuy
+ )
+ return DumpString
+
+
+m_NAtagCMLianTiUp=tagCMLianTiUp()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLianTiUp.Cmd,m_NAtagCMLianTiUp.SubCmd))] = m_NAtagCMLianTiUp
#------------------------------------------------------
@@ -13928,6 +14908,241 @@
m_NAtagCMActGarbageSorting=tagCMActGarbageSorting()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGarbageSorting.Head.Cmd,m_NAtagCMActGarbageSorting.Head.SubCmd))] = m_NAtagCMActGarbageSorting
+
+
+#------------------------------------------------------
+# AA 20 天帝礼包选择物品 #tagCMActGodGiftChooseItem
+
+class tagCMActGodGiftChooseItemInfo(Structure):
+ ItemLibType = 0 #(BYTE ItemLibType)//物品库类型
+ Count = 0 #(BYTE Count)//选择个数
+ ItemNumList = list() #(vector<BYTE> ItemNumList)//选择物品编号列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.ItemLibType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.Count):
+ value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+ self.ItemNumList.append(value)
+ return _pos
+
+ def Clear(self):
+ self.ItemLibType = 0
+ self.Count = 0
+ self.ItemNumList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 1
+ length += 1
+ length += 1 * self.Count
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteBYTE(data, self.ItemLibType)
+ data = CommFunc.WriteBYTE(data, self.Count)
+ for i in range(self.Count):
+ data = CommFunc.WriteBYTE(data, self.ItemNumList[i])
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ ItemLibType:%d,
+ Count:%d,
+ ItemNumList:%s
+ '''\
+ %(
+ self.ItemLibType,
+ self.Count,
+ "..."
+ )
+ return DumpString
+
+
+class tagCMActGodGiftChooseItem(Structure):
+ Head = tagHead()
+ ActNum = 0 #(BYTE ActNum)//活动编号
+ ChooseLibCount = 0 #(BYTE ChooseLibCount)//选择库个数
+ ChooseItemList = list() #(vector<tagCMActGodGiftChooseItemInfo> ChooseItemList)//选择库物品信息列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x20
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.ChooseLibCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.ChooseLibCount):
+ temChooseItemList = tagCMActGodGiftChooseItemInfo()
+ _pos = temChooseItemList.ReadData(_lpData, _pos)
+ self.ChooseItemList.append(temChooseItemList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x20
+ self.ActNum = 0
+ self.ChooseLibCount = 0
+ self.ChooseItemList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 1
+ for i in range(self.ChooseLibCount):
+ length += self.ChooseItemList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.ActNum)
+ data = CommFunc.WriteBYTE(data, self.ChooseLibCount)
+ for i in range(self.ChooseLibCount):
+ data = CommFunc.WriteString(data, self.ChooseItemList[i].GetLength(), self.ChooseItemList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ ActNum:%d,
+ ChooseLibCount:%d,
+ ChooseItemList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.ActNum,
+ self.ChooseLibCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagCMActGodGiftChooseItem=tagCMActGodGiftChooseItem()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftChooseItem.Head.Cmd,m_NAtagCMActGodGiftChooseItem.Head.SubCmd))] = m_NAtagCMActGodGiftChooseItem
+
+
+#------------------------------------------------------
+# AA 21 天帝礼包抽奖 #tagCMActGodGiftlottery
+
+class tagCMActGodGiftlottery(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ActNum", c_ubyte), #活动编号
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xAA
+ self.SubCmd = 0x21
+ 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 = 0xAA
+ self.SubCmd = 0x21
+ self.ActNum = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMActGodGiftlottery)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 21 天帝礼包抽奖 //tagCMActGodGiftlottery:
+ Cmd:%s,
+ SubCmd:%s,
+ ActNum:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ActNum
+ )
+ return DumpString
+
+
+m_NAtagCMActGodGiftlottery=tagCMActGodGiftlottery()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftlottery.Cmd,m_NAtagCMActGodGiftlottery.SubCmd))] = m_NAtagCMActGodGiftlottery
+
+
+#------------------------------------------------------
+# AA 22 天帝礼包重置 #tagCMActGodGiftReset
+
+class tagCMActGodGiftReset(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ActNum", c_ubyte), #活动编号
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xAA
+ self.SubCmd = 0x22
+ 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 = 0xAA
+ self.SubCmd = 0x22
+ self.ActNum = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMActGodGiftReset)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 22 天帝礼包重置 //tagCMActGodGiftReset:
+ Cmd:%s,
+ SubCmd:%s,
+ ActNum:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ActNum
+ )
+ return DumpString
+
+
+m_NAtagCMActGodGiftReset=tagCMActGodGiftReset()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftReset.Cmd,m_NAtagCMActGodGiftReset.SubCmd))] = m_NAtagCMActGodGiftReset
#------------------------------------------------------
@@ -18793,6 +20008,322 @@
#------------------------------------------------------
+# C1 22 跨服排位竞猜 #tagCMChampionshipGuess
+
+class tagCMChampionshipGuess(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ZoneID", c_ubyte), #排位数据分区ID
+ ("GuessType", c_ubyte), #竞猜类型 8-8强;4-4强排位
+ ("PlayerID", c_int), #目标玩家ID
+ ("GuessCount", c_ubyte), #投注/追加份数
+ ("GuessRank", c_ubyte), # 竞猜名次,没有名次的竞猜默认0;1-代表第一名
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC1
+ self.SubCmd = 0x22
+ 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 = 0xC1
+ self.SubCmd = 0x22
+ self.ZoneID = 0
+ self.GuessType = 0
+ self.PlayerID = 0
+ self.GuessCount = 0
+ self.GuessRank = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMChampionshipGuess)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C1 22 跨服排位竞猜 //tagCMChampionshipGuess:
+ Cmd:%s,
+ SubCmd:%s,
+ ZoneID:%d,
+ GuessType:%d,
+ PlayerID:%d,
+ GuessCount:%d,
+ GuessRank:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ZoneID,
+ self.GuessType,
+ self.PlayerID,
+ self.GuessCount,
+ self.GuessRank
+ )
+ return DumpString
+
+
+m_NAtagCMChampionshipGuess=tagCMChampionshipGuess()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipGuess.Cmd,m_NAtagCMChampionshipGuess.SubCmd))] = m_NAtagCMChampionshipGuess
+
+
+#------------------------------------------------------
+# C1 20 跨服排位仙官申请 #tagCMChampionshipOfficialApply
+
+class tagCMChampionshipOfficialApply(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ZoneID", c_ubyte), #仙官数据分区ID
+ ("MainOfficialID", c_ushort), #界主官职ID
+ ("OfficialID", c_ushort), #申请官职ID
+ ("Cancel", c_ubyte), #是否取消申请,默认0-申请;1-取消申请
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC1
+ self.SubCmd = 0x20
+ 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 = 0xC1
+ self.SubCmd = 0x20
+ self.ZoneID = 0
+ self.MainOfficialID = 0
+ self.OfficialID = 0
+ self.Cancel = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMChampionshipOfficialApply)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C1 20 跨服排位仙官申请 //tagCMChampionshipOfficialApply:
+ Cmd:%s,
+ SubCmd:%s,
+ ZoneID:%d,
+ MainOfficialID:%d,
+ OfficialID:%d,
+ Cancel:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ZoneID,
+ self.MainOfficialID,
+ self.OfficialID,
+ self.Cancel
+ )
+ return DumpString
+
+
+m_NAtagCMChampionshipOfficialApply=tagCMChampionshipOfficialApply()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipOfficialApply.Cmd,m_NAtagCMChampionshipOfficialApply.SubCmd))] = m_NAtagCMChampionshipOfficialApply
+
+
+#------------------------------------------------------
+# C1 21 跨服排位仙官挑战 #tagCMChampionshipOfficialChallenge
+
+class tagCMChampionshipOfficialChallenge(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ZoneID", c_ubyte), #仙官数据分区ID
+ ("MainOfficialID", c_ushort), #界主官职ID
+ ("OfficialID", c_ushort), #挑战的目标官职ID
+ ("PlayerID", c_int), #挑战时的目标玩家ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC1
+ self.SubCmd = 0x21
+ 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 = 0xC1
+ self.SubCmd = 0x21
+ self.ZoneID = 0
+ self.MainOfficialID = 0
+ self.OfficialID = 0
+ self.PlayerID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMChampionshipOfficialChallenge)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C1 21 跨服排位仙官挑战 //tagCMChampionshipOfficialChallenge:
+ Cmd:%s,
+ SubCmd:%s,
+ ZoneID:%d,
+ MainOfficialID:%d,
+ OfficialID:%d,
+ PlayerID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ZoneID,
+ self.MainOfficialID,
+ self.OfficialID,
+ self.PlayerID
+ )
+ return DumpString
+
+
+m_NAtagCMChampionshipOfficialChallenge=tagCMChampionshipOfficialChallenge()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipOfficialChallenge.Cmd,m_NAtagCMChampionshipOfficialChallenge.SubCmd))] = m_NAtagCMChampionshipOfficialChallenge
+
+
+#------------------------------------------------------
+# C1 23 跨服排位膜拜 #tagCMChampionshipWorship
+
+class tagCMChampionshipWorship(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ZoneID", c_ubyte), #仙官数据分区ID
+ ("PlayerID", c_int), #目标玩家ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC1
+ self.SubCmd = 0x23
+ 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 = 0xC1
+ self.SubCmd = 0x23
+ self.ZoneID = 0
+ self.PlayerID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMChampionshipWorship)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C1 23 跨服排位膜拜 //tagCMChampionshipWorship:
+ Cmd:%s,
+ SubCmd:%s,
+ ZoneID:%d,
+ PlayerID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ZoneID,
+ self.PlayerID
+ )
+ return DumpString
+
+
+m_NAtagCMChampionshipWorship=tagCMChampionshipWorship()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipWorship.Cmd,m_NAtagCMChampionshipWorship.SubCmd))] = m_NAtagCMChampionshipWorship
+
+
+#------------------------------------------------------
+# C1 09 跨服战场购买开启场次 #tagCMCrossBattlefieldBuyOpen
+
+class tagCMCrossBattlefieldBuyOpen(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("Hour", c_ubyte), #战场开启时
+ ("Minute", c_ubyte), #战场开启分
+ ("Faction", c_ubyte), #阵营 1-红;2-蓝
+ ("ServerOnly", c_ubyte), #是否仅本服玩家可加入,0-否,1-是
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC1
+ self.SubCmd = 0x09
+ 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 = 0xC1
+ self.SubCmd = 0x09
+ self.Hour = 0
+ self.Minute = 0
+ self.Faction = 0
+ self.ServerOnly = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMCrossBattlefieldBuyOpen)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C1 09 跨服战场购买开启场次 //tagCMCrossBattlefieldBuyOpen:
+ Cmd:%s,
+ SubCmd:%s,
+ Hour:%d,
+ Minute:%d,
+ Faction:%d,
+ ServerOnly:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.Hour,
+ self.Minute,
+ self.Faction,
+ self.ServerOnly
+ )
+ return DumpString
+
+
+m_NAtagCMCrossBattlefieldBuyOpen=tagCMCrossBattlefieldBuyOpen()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMCrossBattlefieldBuyOpen.Cmd,m_NAtagCMCrossBattlefieldBuyOpen.SubCmd))] = m_NAtagCMCrossBattlefieldBuyOpen
+
+
+#------------------------------------------------------
# C1 06 跨服NPC对话 #tagCMCrossNPCTalk
class tagCMCrossNPCTalk(Structure):
@@ -19165,4 +20696,56 @@
m_NAtagCMExitCrossRealm=tagCMExitCrossRealm()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExitCrossRealm.Cmd,m_NAtagCMExitCrossRealm.SubCmd))] = m_NAtagCMExitCrossRealm
\ No newline at end of file
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExitCrossRealm.Cmd,m_NAtagCMExitCrossRealm.SubCmd))] = m_NAtagCMExitCrossRealm
+
+
+#------------------------------------------------------
+# C1 10 幸运云购购买 #tagCMLuckyCloudBuy
+
+class tagCMLuckyCloudBuy(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("BuyCount", c_ushort), # 购买份数
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC1
+ 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 = 0xC1
+ self.SubCmd = 0x10
+ self.BuyCount = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMLuckyCloudBuy)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C1 10 幸运云购购买 //tagCMLuckyCloudBuy:
+ Cmd:%s,
+ SubCmd:%s,
+ BuyCount:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.BuyCount
+ )
+ return DumpString
+
+
+m_NAtagCMLuckyCloudBuy=tagCMLuckyCloudBuy()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLuckyCloudBuy.Cmd,m_NAtagCMLuckyCloudBuy.SubCmd))] = m_NAtagCMLuckyCloudBuy
\ No newline at end of file
--
Gitblit v1.8.0