From 6aeee7efd261fc1f553a4f3a748402f6dbb3cd79 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 27 二月 2026 16:07:54 +0800
Subject: [PATCH] 501 【武将】武将时装-服务端(武将时装激活、升级、穿戴、属性;武将战斗预览;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 100 +++++++++++++++++++++++++++++++++++++-------------
1 files changed, 74 insertions(+), 26 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index cd9d3ff..22c353f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -22496,16 +22496,12 @@
#------------------------------------------------------
# B1 22 武将信息 #tagSCHeroInfo
-class tagSCHero(Structure):
+class tagSCHeroSkin(Structure):
_pack_ = 1
_fields_ = [
- ("HeroID", c_int), # 武将ID
- ("SkinState", c_int), # 武将皮肤已解锁状态信息,按皮肤所在索引二进制位运算判断是否解锁,0索引位默认皮肤,不用验证
- ("BookInitState", c_ubyte), # 图鉴激活状态:0-未激活;1-可激活;2-已激活
- ("BookStarLV", c_ushort), # 图鉴星级等级
- ("BookBreakLV", c_ushort), # 图鉴突破等级
- ("BookStarLVH", c_ushort), # 图鉴星级历史最高等级
- ("BookBreakLVH", c_ushort), # 图鉴突破历史最高等级
+ ("SkinID", c_int), #皮肤ID,只通知非默认皮肤
+ ("State", c_ubyte), #是否已激活
+ ("Star", c_ubyte), #星级
]
def __init__(self):
@@ -22518,39 +22514,91 @@
return _pos + self.GetLength()
def Clear(self):
- self.HeroID = 0
- self.SkinState = 0
- self.BookInitState = 0
- self.BookStarLV = 0
- self.BookBreakLV = 0
- self.BookStarLVH = 0
- self.BookBreakLVH = 0
+ self.SkinID = 0
+ self.State = 0
+ self.Star = 0
return
def GetLength(self):
- return sizeof(tagSCHero)
+ return sizeof(tagSCHeroSkin)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
DumpString = '''// B1 22 武将信息 //tagSCHeroInfo:
+ SkinID:%d,
+ State:%d,
+ Star:%d
+ '''\
+ %(
+ self.SkinID,
+ self.State,
+ self.Star
+ )
+ return DumpString
+
+
+class tagSCHero(Structure):
+ HeroID = 0 #(DWORD HeroID)// 武将ID
+ BookInitState = 0 #(BYTE BookInitState)// 图鉴激活状态:0-未激活;1-可激活;2-已激活
+ SkinCnt = 0 #(BYTE SkinCnt)
+ SkinList = list() #(vector<tagSCHeroSkin> SkinList)// 非默认皮肤信息列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.HeroID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.BookInitState,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.SkinCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.SkinCnt):
+ temSkinList = tagSCHeroSkin()
+ _pos = temSkinList.ReadData(_lpData, _pos)
+ self.SkinList.append(temSkinList)
+ return _pos
+
+ def Clear(self):
+ self.HeroID = 0
+ self.BookInitState = 0
+ self.SkinCnt = 0
+ self.SkinList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 4
+ length += 1
+ length += 1
+ for i in range(self.SkinCnt):
+ length += self.SkinList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteDWORD(data, self.HeroID)
+ data = CommFunc.WriteBYTE(data, self.BookInitState)
+ data = CommFunc.WriteBYTE(data, self.SkinCnt)
+ for i in range(self.SkinCnt):
+ data = CommFunc.WriteString(data, self.SkinList[i].GetLength(), self.SkinList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
HeroID:%d,
- SkinState:%d,
BookInitState:%d,
- BookStarLV:%d,
- BookBreakLV:%d,
- BookStarLVH:%d,
- BookBreakLVH:%d
+ SkinCnt:%d,
+ SkinList:%s
'''\
%(
self.HeroID,
- self.SkinState,
self.BookInitState,
- self.BookStarLV,
- self.BookBreakLV,
- self.BookStarLVH,
- self.BookBreakLVH
+ self.SkinCnt,
+ "..."
)
return DumpString
--
Gitblit v1.8.0