From 7d0019192b6df3e01bcfee0c2f4b62d036fa9e3a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 02 三月 2026 19:58:13 +0800
Subject: [PATCH] 501 【武将】武将时装-服务端(增加时装形象,与时装属性相互独立;每个武将物品独立,UserData原78-皮肤形象索引,增加82-皮肤属性索引;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 232 ++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 176 insertions(+), 56 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 8bb63c4..2ef3d6c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -8138,6 +8138,118 @@
#------------------------------------------------------
+# AA 02 武将登场招募武将选择 #tagCSActHeroAppearCallHeroSelect
+
+class tagCSActHeroAppearCallHeroSelect(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ActNum", c_ubyte), # 活动编号
+ ("CallHeroIndex", c_ubyte), # 招募选择的武将ID索引
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xAA
+ self.SubCmd = 0x02
+ 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 = 0x02
+ self.ActNum = 0
+ self.CallHeroIndex = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCSActHeroAppearCallHeroSelect)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 02 武将登场招募武将选择 //tagCSActHeroAppearCallHeroSelect:
+ Cmd:%s,
+ SubCmd:%s,
+ ActNum:%d,
+ CallHeroIndex:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ActNum,
+ self.CallHeroIndex
+ )
+ return DumpString
+
+
+m_NAtagCSActHeroAppearCallHeroSelect=tagCSActHeroAppearCallHeroSelect()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSActHeroAppearCallHeroSelect.Cmd,m_NAtagCSActHeroAppearCallHeroSelect.SubCmd))] = m_NAtagCSActHeroAppearCallHeroSelect
+
+
+#------------------------------------------------------
+# AA 01 武将登场升星武将选择 #tagCSActHeroAppearStarHeroSelect
+
+class tagCSActHeroAppearStarHeroSelect(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ActNum", c_ubyte), # 活动编号
+ ("StarHeroIndex", c_ubyte), # 升星计划选择的武将ID索引
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xAA
+ self.SubCmd = 0x01
+ 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 = 0x01
+ self.ActNum = 0
+ self.StarHeroIndex = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCSActHeroAppearStarHeroSelect)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 01 武将登场升星武将选择 //tagCSActHeroAppearStarHeroSelect:
+ Cmd:%s,
+ SubCmd:%s,
+ ActNum:%d,
+ StarHeroIndex:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ActNum,
+ self.StarHeroIndex
+ )
+ return DumpString
+
+
+m_NAtagCSActHeroAppearStarHeroSelect=tagCSActHeroAppearStarHeroSelect()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSActHeroAppearStarHeroSelect.Cmd,m_NAtagCSActHeroAppearStarHeroSelect.SubCmd))] = m_NAtagCSActHeroAppearStarHeroSelect
+
+
+#------------------------------------------------------
# AA 25 炼器操作 #tagCMActLianqiOP
class tagCMActLianqiOP(Structure):
@@ -10195,6 +10307,70 @@
#------------------------------------------------------
+# B2 36 武将皮肤操作 #tagCSHeroSkinOP
+
+class tagCSHeroSkinOP(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("HeroID", c_int), #武将ID
+ ("SkinID", c_int), #时装ID
+ ("OPType", c_ubyte), #操作 1-激活;2-选择形象;3-升星;4-选择属性
+ ("ItemIndex", c_ushort), #武将物品所在武将背包位置索引,仅佩戴时有效
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x36
+ 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 = 0x36
+ self.HeroID = 0
+ self.SkinID = 0
+ self.OPType = 0
+ self.ItemIndex = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCSHeroSkinOP)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 36 武将皮肤操作 //tagCSHeroSkinOP:
+ Cmd:%s,
+ SubCmd:%s,
+ HeroID:%d,
+ SkinID:%d,
+ OPType:%d,
+ ItemIndex:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.HeroID,
+ self.SkinID,
+ self.OPType,
+ self.ItemIndex
+ )
+ return DumpString
+
+
+m_NAtagCSHeroSkinOP=tagCSHeroSkinOP()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSHeroSkinOP.Cmd,m_NAtagCSHeroSkinOP.SubCmd))] = m_NAtagCSHeroSkinOP
+
+
+#------------------------------------------------------
# B2 31 武将升星 #tagCSHeroStarUP
class tagCSHeroStarUP(Structure):
@@ -10329,62 +10505,6 @@
m_NAtagCSHeroWash=tagCSHeroWash()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSHeroWash.Head.Cmd,m_NAtagCSHeroWash.Head.SubCmd))] = m_NAtagCSHeroWash
-
-
-#------------------------------------------------------
-# B2 36 武将换肤 #tagCSHeroWearSkin
-
-class tagCSHeroWearSkin(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ItemIndex", c_ushort), #武将物品所在武将背包位置索引
- ("SkinIndex", c_ubyte), #皮肤索引
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xB2
- self.SubCmd = 0x36
- 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 = 0x36
- self.ItemIndex = 0
- self.SkinIndex = 0
- return
-
- def GetLength(self):
- return sizeof(tagCSHeroWearSkin)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// B2 36 武将换肤 //tagCSHeroWearSkin:
- Cmd:%s,
- SubCmd:%s,
- ItemIndex:%d,
- SkinIndex:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ItemIndex,
- self.SkinIndex
- )
- return DumpString
-
-
-m_NAtagCSHeroWearSkin=tagCSHeroWearSkin()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSHeroWearSkin.Cmd,m_NAtagCSHeroWearSkin.SubCmd))] = m_NAtagCSHeroWearSkin
#------------------------------------------------------
--
Gitblit v1.8.0