From 09c67573ee3759802de4d40ea70813d2ce71be0c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 13 一月 2026 10:27:16 +0800
Subject: [PATCH] 423 【内政】命格系统-服务端(初版不含属性;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 504 +++++++++++++++++++++++++------------------------------
1 files changed, 231 insertions(+), 273 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 5345c6c..9cd7499 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -4769,227 +4769,6 @@
#------------------------------------------------------
-# A5 71 命格分解 #tagCMBirthChartDecompose
-
-class tagCMBirthChartDecompose(Structure):
- Head = tagHead()
- IsAll = 0 #(BYTE IsAll)// 是否全部分解,优先级最高,锁定除外
- QualityCnt = 0 #(BYTE QualityCnt)// 按全部分解品质数
- QualityList = list() #(vector<BYTE> QualityList)// 全部分解的品质列表,发送的品质会全部分解,锁定除外
- Count = 0 #(BYTE Count)// 指定批量分解数,最大不超过50个
- PlaceIndexList = list() #(vector<WORD> PlaceIndexList)// 批量分解位置索引列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA5
- self.Head.SubCmd = 0x71
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.QualityCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.QualityCnt):
- value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
- self.QualityList.append(value)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- value,_pos=CommFunc.ReadWORD(_lpData,_pos)
- self.PlaceIndexList.append(value)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA5
- self.Head.SubCmd = 0x71
- self.IsAll = 0
- self.QualityCnt = 0
- self.QualityList = list()
- self.Count = 0
- self.PlaceIndexList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 1
- length += 1 * self.QualityCnt
- length += 1
- length += 2 * self.Count
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.IsAll)
- data = CommFunc.WriteBYTE(data, self.QualityCnt)
- for i in range(self.QualityCnt):
- data = CommFunc.WriteBYTE(data, self.QualityList[i])
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteWORD(data, self.PlaceIndexList[i])
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- IsAll:%d,
- QualityCnt:%d,
- QualityList:%s,
- Count:%d,
- PlaceIndexList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.IsAll,
- self.QualityCnt,
- "...",
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagCMBirthChartDecompose=tagCMBirthChartDecompose()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBirthChartDecompose.Head.Cmd,m_NAtagCMBirthChartDecompose.Head.SubCmd))] = m_NAtagCMBirthChartDecompose
-
-
-#------------------------------------------------------
-# A5 72 命格锁定状态变更 #tagCMBirthChartLock
-
-class tagCMBirthChartLock(Structure):
- Head = tagHead()
- LockState = 0 #(BYTE LockState)// 锁定状态, 0-锁定,1-解锁
- Count = 0 #(BYTE Count)// 批量操作数,最大不超过50个
- PlaceIndexList = list() #(vector<WORD> PlaceIndexList)// 批量操作位置索引列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA5
- self.Head.SubCmd = 0x72
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.LockState,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- value,_pos=CommFunc.ReadWORD(_lpData,_pos)
- self.PlaceIndexList.append(value)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA5
- self.Head.SubCmd = 0x72
- self.LockState = 0
- self.Count = 0
- self.PlaceIndexList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 1
- length += 2 * self.Count
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.LockState)
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteWORD(data, self.PlaceIndexList[i])
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- LockState:%d,
- Count:%d,
- PlaceIndexList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.LockState,
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagCMBirthChartLock=tagCMBirthChartLock()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBirthChartLock.Head.Cmd,m_NAtagCMBirthChartLock.Head.SubCmd))] = m_NAtagCMBirthChartLock
-
-
-#------------------------------------------------------
-# A5 70 命格升级 #tagCMBirthChartUp
-
-class tagCMBirthChartUp(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("PlaceType", c_ubyte), # 位置类型;0-命格背包,1-命格孔
- ("PlaceIndex", c_ushort), # 位置索引
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x70
- 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 = 0x70
- self.PlaceType = 0
- self.PlaceIndex = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMBirthChartUp)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A5 70 命格升级 //tagCMBirthChartUp:
- Cmd:%s,
- SubCmd:%s,
- PlaceType:%d,
- PlaceIndex:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.PlaceType,
- self.PlaceIndex
- )
- return DumpString
-
-
-m_NAtagCMBirthChartUp=tagCMBirthChartUp()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBirthChartUp.Cmd,m_NAtagCMBirthChartUp.SubCmd))] = m_NAtagCMBirthChartUp
-
-
-#------------------------------------------------------
# A5 52 购买功能NPC采集次数 #tagCMBuyCollectionCnt
class tagCMBuyCollectionCnt(Structure):
@@ -7371,58 +7150,6 @@
m_NAtagCSTreasureWishSelect=tagCSTreasureWishSelect()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSTreasureWishSelect.Head.Cmd,m_NAtagCSTreasureWishSelect.Head.SubCmd))] = m_NAtagCSTreasureWishSelect
-
-
-#------------------------------------------------------
-# A5 73 解锁命格孔 #tagCMUnLockBirthChartHole
-
-class tagCMUnLockBirthChartHole(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("BirthChartIndex", c_ubyte), # 孔索引
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x73
- 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 = 0x73
- self.BirthChartIndex = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMUnLockBirthChartHole)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A5 73 解锁命格孔 //tagCMUnLockBirthChartHole:
- Cmd:%s,
- SubCmd:%s,
- BirthChartIndex:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.BirthChartIndex
- )
- return DumpString
-
-
-m_NAtagCMUnLockBirthChartHole=tagCMUnLockBirthChartHole()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMUnLockBirthChartHole.Cmd,m_NAtagCMUnLockBirthChartHole.SubCmd))] = m_NAtagCMUnLockBirthChartHole
#------------------------------------------------------
@@ -12699,6 +12426,237 @@
#------------------------------------------------------
+# B2 51 命格分解 #tagCSMinggeDecompose
+
+class tagCSMinggeDecompose(Structure):
+ Head = tagHead()
+ Count = 0 #(BYTE Count)
+ IndexList = list() #(vector<BYTE> IndexList)// 推演背包中的物品格子索引列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB2
+ self.Head.SubCmd = 0x51
+ 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):
+ value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+ self.IndexList.append(value)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB2
+ self.Head.SubCmd = 0x51
+ self.Count = 0
+ self.IndexList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 1 * self.Count
+
+ 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.WriteBYTE(data, self.IndexList[i])
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ Count:%d,
+ IndexList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.Count,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagCSMinggeDecompose=tagCSMinggeDecompose()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSMinggeDecompose.Head.Cmd,m_NAtagCSMinggeDecompose.Head.SubCmd))] = m_NAtagCSMinggeDecompose
+
+
+#------------------------------------------------------
+# B2 52 命格装备替换 #tagCSMinggeEquip
+
+class tagCSMinggeEquip(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("MGNum", c_ubyte), # 装到哪一套命格,目前支持3套,从1开始
+ ("Index", c_ubyte), # 推演背包中的物品格子索引
+ ("AutoDec", c_ubyte), # 是否自动分解
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x52
+ 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 = 0xB2
+ self.SubCmd = 0x52
+ self.MGNum = 0
+ self.Index = 0
+ self.AutoDec = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCSMinggeEquip)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 52 命格装备替换 //tagCSMinggeEquip:
+ Cmd:%s,
+ SubCmd:%s,
+ MGNum:%d,
+ Index:%d,
+ AutoDec:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.MGNum,
+ self.Index,
+ self.AutoDec
+ )
+ return DumpString
+
+
+m_NAtagCSMinggeEquip=tagCSMinggeEquip()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSMinggeEquip.Cmd,m_NAtagCSMinggeEquip.SubCmd))] = m_NAtagCSMinggeEquip
+
+
+#------------------------------------------------------
+# B2 53 命格祈灵#tagCSMinggeQiling
+
+class tagCSMinggeQiling(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("UseCount", c_int), #使用个数
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x53
+ 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 = 0xB2
+ self.SubCmd = 0x53
+ self.UseCount = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCSMinggeQiling)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 53 命格祈灵//tagCSMinggeQiling:
+ Cmd:%s,
+ SubCmd:%s,
+ UseCount:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.UseCount
+ )
+ return DumpString
+
+
+m_NAtagCSMinggeQiling=tagCSMinggeQiling()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSMinggeQiling.Cmd,m_NAtagCSMinggeQiling.SubCmd))] = m_NAtagCSMinggeQiling
+
+
+#------------------------------------------------------
+# B2 50 命格推演 #tagCSMinggeTuiyan
+
+class tagCSMinggeTuiyan(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("Count", c_ubyte), #推演个数
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x50
+ 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 = 0xB2
+ self.SubCmd = 0x50
+ self.Count = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCSMinggeTuiyan)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 50 命格推演 //tagCSMinggeTuiyan:
+ Cmd:%s,
+ SubCmd:%s,
+ Count:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.Count
+ )
+ return DumpString
+
+
+m_NAtagCSMinggeTuiyan=tagCSMinggeTuiyan()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSMinggeTuiyan.Cmd,m_NAtagCSMinggeTuiyan.SubCmd))] = m_NAtagCSMinggeTuiyan
+
+
+#------------------------------------------------------
# B2 07 重置加点 #tagCMResetAttrPoint
class tagCMResetAttrPoint(Structure):
--
Gitblit v1.8.0