From d2350a9a6ec29bdd9fc2cb63cdc9e27b57bc9574 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 20 十月 2025 14:40:03 +0800
Subject: [PATCH] 232 【付费内容】历练秘笈-服务端
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 278 ++++++++++++++++++++++++-------------------------------
1 files changed, 122 insertions(+), 156 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 09fa5f6..6366384 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -8585,66 +8585,13 @@
#------------------------------------------------------
-# A3 41 成就完成 #tagMCSuccessFinish
+# A3 42 成就领奖记录列表 #tagSCSuccessAwardRecordList
-class tagMCSuccessFinish(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("SuccID", c_int), #成就id
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA3
- self.SubCmd = 0x41
- 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 = 0xA3
- self.SubCmd = 0x41
- self.SuccID = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCSuccessFinish)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A3 41 成就完成 //tagMCSuccessFinish:
- Cmd:%s,
- SubCmd:%s,
- SuccID:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.SuccID
- )
- return DumpString
-
-
-m_NAtagMCSuccessFinish=tagMCSuccessFinish()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuccessFinish.Cmd,m_NAtagMCSuccessFinish.SubCmd))] = m_NAtagMCSuccessFinish
-
-
-#------------------------------------------------------
-#A3 42 成就完成领奖记录列表 #tagMCSuccessFinishAwardRecordList
-
-class tagMCSuccessFinishAwardRecord(Structure):
+class tagSCSuccessAwardRecord(Structure):
_pack_ = 1
_fields_ = [
("RecordIndex", c_ushort), #第几个记录值 每个key存31个succid 0-30为0, 31-61为1..
- ("Record", c_int), #对应是否领取值
- ("PassportRecord", c_int), #通行证奖励是否领取值
+ ("Record", c_int), #根据成就ID位判断是否已领取
]
def __init__(self):
@@ -8659,33 +8606,30 @@
def Clear(self):
self.RecordIndex = 0
self.Record = 0
- self.PassportRecord = 0
return
def GetLength(self):
- return sizeof(tagMCSuccessFinishAwardRecord)
+ return sizeof(tagSCSuccessAwardRecord)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''//A3 42 成就完成领奖记录列表 //tagMCSuccessFinishAwardRecordList:
+ DumpString = '''// A3 42 成就领奖记录列表 //tagSCSuccessAwardRecordList:
RecordIndex:%d,
- Record:%d,
- PassportRecord:%d
+ Record:%d
'''\
%(
self.RecordIndex,
- self.Record,
- self.PassportRecord
+ self.Record
)
return DumpString
-class tagMCSuccessFinishAwardRecordList(Structure):
+class tagSCSuccessAwardRecordList(Structure):
Head = tagHead()
RecordCnt = 0 #(WORD RecordCnt)//记录个数
- RecordList = list() #(vector<tagMCSuccessFinishAwardRecord> RecordList)//记录列表
+ RecordList = list() #(vector<tagSCSuccessAwardRecord> RecordList)//记录列表
data = None
def __init__(self):
@@ -8699,7 +8643,7 @@
_pos = self.Head.ReadData(_lpData, _pos)
self.RecordCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
for i in range(self.RecordCnt):
- temRecordList = tagMCSuccessFinishAwardRecord()
+ temRecordList = tagSCSuccessAwardRecord()
_pos = temRecordList.ReadData(_lpData, _pos)
self.RecordList.append(temRecordList)
return _pos
@@ -8744,18 +8688,18 @@
return DumpString
-m_NAtagMCSuccessFinishAwardRecordList=tagMCSuccessFinishAwardRecordList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuccessFinishAwardRecordList.Head.Cmd,m_NAtagMCSuccessFinishAwardRecordList.Head.SubCmd))] = m_NAtagMCSuccessFinishAwardRecordList
+m_NAtagSCSuccessAwardRecordList=tagSCSuccessAwardRecordList()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCSuccessAwardRecordList.Head.Cmd,m_NAtagSCSuccessAwardRecordList.Head.SubCmd))] = m_NAtagSCSuccessAwardRecordList
#------------------------------------------------------
-# A3 40 成就信息列表 #tagMCSuccessInfoList
+# A3 40 成就信息列表 #tagSCSuccessInfoList
-class tagMCSuccessInfo(Structure):
+class tagSCSuccessInfo(Structure):
SuccType = 0 #(WORD SuccType)//成就类型
- Len = 0 #(WORD Len)//条件长度
- Condition = "" #(String Condition)//成就条件
- CntValue = 0 #(DWORD CntValue)//当前完成进度值
+ CLen = 0 #(BYTE CLen)
+ Conds = list() #(vector<DWORD> Conds)// 条件列表
+ CurValue = 0 #(DWORD CurValue)// 进度值,相同任务类型条件的进度值共享
data = None
def __init__(self):
@@ -8765,23 +8709,25 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
self.SuccType,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.Condition,_pos = CommFunc.ReadString(_lpData, _pos,self.Len)
- self.CntValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.CLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.CLen):
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+ self.Conds.append(value)
+ self.CurValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
self.SuccType = 0
- self.Len = 0
- self.Condition = ""
- self.CntValue = 0
+ self.CLen = 0
+ self.Conds = list()
+ self.CurValue = 0
return
def GetLength(self):
length = 0
length += 2
- length += 2
- length += len(self.Condition)
+ length += 1
+ length += 4 * self.CLen
length += 4
return length
@@ -8789,31 +8735,32 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteWORD(data, self.SuccType)
- data = CommFunc.WriteWORD(data, self.Len)
- data = CommFunc.WriteString(data, self.Len, self.Condition)
- data = CommFunc.WriteDWORD(data, self.CntValue)
+ data = CommFunc.WriteBYTE(data, self.CLen)
+ for i in range(self.CLen):
+ data = CommFunc.WriteDWORD(data, self.Conds[i])
+ data = CommFunc.WriteDWORD(data, self.CurValue)
return data
def OutputString(self):
DumpString = '''
SuccType:%d,
- Len:%d,
- Condition:%s,
- CntValue:%d
+ CLen:%d,
+ Conds:%s,
+ CurValue:%d
'''\
%(
self.SuccType,
- self.Len,
- self.Condition,
- self.CntValue
+ self.CLen,
+ "...",
+ self.CurValue
)
return DumpString
-class tagMCSuccessInfoList(Structure):
+class tagSCSuccessInfoList(Structure):
Head = tagHead()
- count = 0 #(WORD count)//信息个数
- SuccessInfoList = list() #(vector<tagMCSuccessInfo> SuccessInfoList)
+ Count = 0 #(WORD Count)//信息个数
+ SuccessInfoList = list() #(vector<tagSCSuccessInfo> SuccessInfoList)
data = None
def __init__(self):
@@ -8825,9 +8772,9 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
- self.count,_pos = CommFunc.ReadWORD(_lpData, _pos)
- for i in range(self.count):
- temSuccessInfoList = tagMCSuccessInfo()
+ self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ for i in range(self.Count):
+ temSuccessInfoList = tagSCSuccessInfo()
_pos = temSuccessInfoList.ReadData(_lpData, _pos)
self.SuccessInfoList.append(temSuccessInfoList)
return _pos
@@ -8837,7 +8784,7 @@
self.Head.Clear()
self.Head.Cmd = 0xA3
self.Head.SubCmd = 0x40
- self.count = 0
+ self.Count = 0
self.SuccessInfoList = list()
return
@@ -8845,7 +8792,7 @@
length = 0
length += self.Head.GetLength()
length += 2
- for i in range(self.count):
+ for i in range(self.Count):
length += self.SuccessInfoList[i].GetLength()
return length
@@ -8853,79 +8800,27 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteWORD(data, self.count)
- for i in range(self.count):
+ data = CommFunc.WriteWORD(data, self.Count)
+ for i in range(self.Count):
data = CommFunc.WriteString(data, self.SuccessInfoList[i].GetLength(), self.SuccessInfoList[i].GetBuffer())
return data
def OutputString(self):
DumpString = '''
Head:%s,
- count:%d,
+ Count:%d,
SuccessInfoList:%s
'''\
%(
self.Head.OutputString(),
- self.count,
+ self.Count,
"..."
)
return DumpString
-m_NAtagMCSuccessInfoList=tagMCSuccessInfoList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuccessInfoList.Head.Cmd,m_NAtagMCSuccessInfoList.Head.SubCmd))] = m_NAtagMCSuccessInfoList
-
-
-#------------------------------------------------------
-# A3 43 成就积分信息 #tagMCSuccessScoreInfo
-
-class tagMCSuccessScoreInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ScoreAwardState", c_int), #成就积分领奖记录,按奖励索引位记录是否领取
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA3
- 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 = 0xA3
- self.SubCmd = 0x43
- self.ScoreAwardState = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCSuccessScoreInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A3 43 成就积分信息 //tagMCSuccessScoreInfo:
- Cmd:%s,
- SubCmd:%s,
- ScoreAwardState:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ScoreAwardState
- )
- return DumpString
-
-
-m_NAtagMCSuccessScoreInfo=tagMCSuccessScoreInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuccessScoreInfo.Cmd,m_NAtagMCSuccessScoreInfo.SubCmd))] = m_NAtagMCSuccessScoreInfo
+m_NAtagSCSuccessInfoList=tagSCSuccessInfoList()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCSuccessInfoList.Head.Cmd,m_NAtagSCSuccessInfoList.Head.SubCmd))] = m_NAtagSCSuccessInfoList
#------------------------------------------------------
@@ -16752,6 +16647,7 @@
class tagSCArenaMatchInfo(Structure):
PlayerID = 0 #(DWORD PlayerID)//目标玩家ID
PlayerName = "" #(char PlayerName[33])
+ LV = 0 #(WORD LV)// 玩家等级
RealmLV = 0 #(WORD RealmLV)//境界,机器人读境界表取等级对应境界
FightPower = 0 #(DWORD FightPower)//战力求余亿部分
FightPowerEx = 0 #(DWORD FightPowerEx)//战力整除亿部分
@@ -16768,6 +16664,7 @@
self.Clear()
self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
+ self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -16779,6 +16676,7 @@
def Clear(self):
self.PlayerID = 0
self.PlayerName = ""
+ self.LV = 0
self.RealmLV = 0
self.FightPower = 0
self.FightPowerEx = 0
@@ -16792,6 +16690,7 @@
length += 4
length += 33
length += 2
+ length += 2
length += 4
length += 4
length += 4
@@ -16804,6 +16703,7 @@
data = ''
data = CommFunc.WriteDWORD(data, self.PlayerID)
data = CommFunc.WriteString(data, 33, self.PlayerName)
+ data = CommFunc.WriteWORD(data, self.LV)
data = CommFunc.WriteWORD(data, self.RealmLV)
data = CommFunc.WriteDWORD(data, self.FightPower)
data = CommFunc.WriteDWORD(data, self.FightPowerEx)
@@ -16816,6 +16716,7 @@
DumpString = '''
PlayerID:%d,
PlayerName:%s,
+ LV:%d,
RealmLV:%d,
FightPower:%d,
FightPowerEx:%d,
@@ -16826,6 +16727,7 @@
%(
self.PlayerID,
self.PlayerName,
+ self.LV,
self.RealmLV,
self.FightPower,
self.FightPowerEx,
@@ -35520,6 +35422,70 @@
#------------------------------------------------------
+# B1 28 历练秘笈信息 #tagSCLLMJInfo
+
+class tagSCLLMJInfo(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("MJLV", c_ubyte), # 秘笈等级,激活后从1开始
+ ("Zhanchui", c_int), # 秘笈累计消耗战锤
+ ("ExpEx", c_int), # 秘笈今日已额外获得经验
+ ("DecomposeEx", c_int), # 秘笈今日已额外获得分解货币
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB1
+ self.SubCmd = 0x28
+ 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 = 0xB1
+ self.SubCmd = 0x28
+ self.MJLV = 0
+ self.Zhanchui = 0
+ self.ExpEx = 0
+ self.DecomposeEx = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagSCLLMJInfo)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B1 28 历练秘笈信息 //tagSCLLMJInfo:
+ Cmd:%s,
+ SubCmd:%s,
+ MJLV:%d,
+ Zhanchui:%d,
+ ExpEx:%d,
+ DecomposeEx:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.MJLV,
+ self.Zhanchui,
+ self.ExpEx,
+ self.DecomposeEx
+ )
+ return DumpString
+
+
+m_NAtagSCLLMJInfo=tagSCLLMJInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCLLMJInfo.Cmd,m_NAtagSCLLMJInfo.SubCmd))] = m_NAtagSCLLMJInfo
+
+
+#------------------------------------------------------
# B1 19 形象信息 #tagSCModelInfo
class tagSCModel(Structure):
--
Gitblit v1.8.0