From e4a5fbde4c804262a7cfd17d89d427b4ff36accb Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 09 十月 2025 19:41:26 +0800
Subject: [PATCH] 225 【付费内容】功能基金-服务端

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py |  376 ++++++-----------------------------------------------
 1 files changed, 46 insertions(+), 330 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index c32e6bf..e78ab7a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -4395,71 +4395,70 @@
 
 
 #------------------------------------------------------
-#A3 0D 玩家签到信息记录 # tagMCDaySignInfo
+#A3 0D 玩家签到信息记录 # tagSCDaySignInfo
 
-class  tagMCDaySignInfo(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("DaySignCount", c_ubyte),    #已经签到天数
-                  ("ReplenishSignCount", c_ubyte),    # 可以补签天数
-                  ("IsSign", c_ubyte),    #当天是否已经签到,发送0和1
-                  ("IsFrist", c_ubyte),    #是否是第一个月
-                  ("TotalSignCount", c_ushort),    #累计总签到天数
-                  ]
+class  tagSCDaySignInfo(Structure):
+    Head = tagHead()
+    Count = 0    #(BYTE Count)
+    SignStateList = list()    #(vector<BYTE> SignStateList)//每日签到状态记录列表 [第1天状态, ...]  状态:0-不可签到;1-已签到;2-可补签;3-已领取
+    data = None
 
     def __init__(self):
         self.Clear()
-        self.Cmd = 0xA3
-        self.SubCmd = 0x0D
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x0D
         return
 
-    def ReadData(self, stringData, _pos=0, _len=0):
+    def ReadData(self, _lpData, _pos=0, _Len=0):
         self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
+        _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.SignStateList.append(value)
+        return _pos
 
     def Clear(self):
-        self.Cmd = 0xA3
-        self.SubCmd = 0x0D
-        self.DaySignCount = 0
-        self.ReplenishSignCount = 0
-        self.IsSign = 0
-        self.IsFrist = 0
-        self.TotalSignCount = 0
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x0D
+        self.Count = 0
+        self.SignStateList = list()
         return
 
     def GetLength(self):
-        return sizeof(tagMCDaySignInfo)
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 1 * self.Count
+
+        return length
 
     def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
+        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.SignStateList[i])
+        return data
 
     def OutputString(self):
-        DumpString = '''//A3 0D 玩家签到信息记录 // tagMCDaySignInfo:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                DaySignCount:%d,
-                                ReplenishSignCount:%d,
-                                IsSign:%d,
-                                IsFrist:%d,
-                                TotalSignCount:%d
+        DumpString = '''
+                                Head:%s,
+                                Count:%d,
+                                SignStateList:%s
                                 '''\
                                 %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.DaySignCount,
-                                self.ReplenishSignCount,
-                                self.IsSign,
-                                self.IsFrist,
-                                self.TotalSignCount
+                                self.Head.OutputString(),
+                                self.Count,
+                                "..."
                                 )
         return DumpString
 
 
-m_NAtagMCDaySignInfo=tagMCDaySignInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDaySignInfo.Cmd,m_NAtagMCDaySignInfo.SubCmd))] = m_NAtagMCDaySignInfo
+m_NAtagSCDaySignInfo=tagSCDaySignInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCDaySignInfo.Head.Cmd,m_NAtagSCDaySignInfo.Head.SubCmd))] = m_NAtagSCDaySignInfo
 
 
 #------------------------------------------------------
@@ -8114,80 +8113,6 @@
 
 
 #------------------------------------------------------
-#A3 08 在线奖励信息 #tagMCOnlinePrize
-
-class  tagMCOnlinePrize(Structure):
-    Head = tagHead()
-    OnlineTime = 0    #(DWORD OnlineTime)//在线时间毫秒
-    Len = 0    #(BYTE Len)
-    PrizeInfo = list()    #(vector<DWORD> PrizeInfo)//领奖记录
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x08
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.OnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Len):
-            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
-            self.PrizeInfo.append(value)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x08
-        self.OnlineTime = 0
-        self.Len = 0
-        self.PrizeInfo = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 1
-        length += 4 * self.Len
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.OnlineTime)
-        data = CommFunc.WriteBYTE(data, self.Len)
-        for i in range(self.Len):
-            data = CommFunc.WriteDWORD(data, self.PrizeInfo[i])
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                OnlineTime:%d,
-                                Len:%d,
-                                PrizeInfo:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.OnlineTime,
-                                self.Len,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCOnlinePrize=tagMCOnlinePrize()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlinePrize.Head.Cmd,m_NAtagMCOnlinePrize.Head.SubCmd))] = m_NAtagMCOnlinePrize
-
-
-#------------------------------------------------------
 # A3 19 分包下载奖励记录 #tagMCPackDownloadRecord
 
 class  tagMCPackDownloadRecord(Structure):
@@ -8293,145 +8218,6 @@
 
 m_NAtagMCPlayerLVAwardGetRecord=tagMCPlayerLVAwardGetRecord()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerLVAwardGetRecord.Cmd,m_NAtagMCPlayerLVAwardGetRecord.SubCmd))] = m_NAtagMCPlayerLVAwardGetRecord
-
-
-#------------------------------------------------------
-#A3 03 玩家在线奖励信息(暂停使用) #tagMCPlayerOnlinePrizeInfo
-
-class  tagMCOnlinePrizeItem(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("PrizeItem", c_int),    
-                  ("ItemCount", c_ubyte),    
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA3
-        self.SubCmd = 0x03
-        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 = 0x03
-        self.PrizeItem = 0
-        self.ItemCount = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCOnlinePrizeItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//A3 03 玩家在线奖励信息(暂停使用) //tagMCPlayerOnlinePrizeInfo:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                PrizeItem:%d,
-                                ItemCount:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.PrizeItem,
-                                self.ItemCount
-                                )
-        return DumpString
-
-
-class  tagMCPlayerOnlinePrizeInfo(Structure):
-    Head = tagHead()
-    RemaindTime = 0    #(DWORD RemaindTime)//产生奖励剩余时间
-    HasPrize = 0    #(BYTE HasPrize)//是否可以领取 
-    PrizeType = 0    #(BYTE PrizeType)//在线奖励类型
-    PrizeCnt = 0    #(BYTE PrizeCnt)//在线奖励类型
-    PrizeInfo = list()    #(vector<tagMCOnlinePrizeItem> PrizeInfo)//在线奖励类型
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x03
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.RemaindTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.HasPrize,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.PrizeType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.PrizeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.PrizeCnt):
-            temPrizeInfo = tagMCOnlinePrizeItem()
-            _pos = temPrizeInfo.ReadData(_lpData, _pos)
-            self.PrizeInfo.append(temPrizeInfo)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x03
-        self.RemaindTime = 0
-        self.HasPrize = 0
-        self.PrizeType = 0
-        self.PrizeCnt = 0
-        self.PrizeInfo = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 1
-        length += 1
-        length += 1
-        for i in range(self.PrizeCnt):
-            length += self.PrizeInfo[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.RemaindTime)
-        data = CommFunc.WriteBYTE(data, self.HasPrize)
-        data = CommFunc.WriteBYTE(data, self.PrizeType)
-        data = CommFunc.WriteBYTE(data, self.PrizeCnt)
-        for i in range(self.PrizeCnt):
-            data = CommFunc.WriteString(data, self.PrizeInfo[i].GetLength(), self.PrizeInfo[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                RemaindTime:%d,
-                                HasPrize:%d,
-                                PrizeType:%d,
-                                PrizeCnt:%d,
-                                PrizeInfo:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.RemaindTime,
-                                self.HasPrize,
-                                self.PrizeType,
-                                self.PrizeCnt,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCPlayerOnlinePrizeInfo=tagMCPlayerOnlinePrizeInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerOnlinePrizeInfo.Head.Cmd,m_NAtagMCPlayerOnlinePrizeInfo.Head.SubCmd))] = m_NAtagMCPlayerOnlinePrizeInfo
 
 
 #------------------------------------------------------
@@ -30581,6 +30367,7 @@
 class  tagSCFirstCharge(Structure):
     _pack_ = 1
     _fields_ = [
+                  ("FirstID", c_ubyte),    #首充ID
                   ("ChargeTime", c_int),    #充值该首充的时间戳
                   ("AwardRecord", c_ushort),    #首充奖励领奖记录,按二进制位记录首充第X天是否已领取
                   ]
@@ -30595,6 +30382,7 @@
         return _pos + self.GetLength()
 
     def Clear(self):
+        self.FirstID = 0
         self.ChargeTime = 0
         self.AwardRecord = 0
         return
@@ -30607,10 +30395,12 @@
 
     def OutputString(self):
         DumpString = '''// AA 02 首充信息 //tagSCFirstChargeInfo:
+                                FirstID:%d,
                                 ChargeTime:%d,
                                 AwardRecord:%d
                                 '''\
                                 %(
+                                self.FirstID,
                                 self.ChargeTime,
                                 self.AwardRecord
                                 )
@@ -37377,80 +37167,6 @@
 
 m_NAtagMCNotifyPlayerMove=tagMCNotifyPlayerMove()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNotifyPlayerMove.Cmd,m_NAtagMCNotifyPlayerMove.SubCmd))] = m_NAtagMCNotifyPlayerMove
-
-
-#------------------------------------------------------
-# B1 13 在线奖励信息新 #tagMCOnlinePrizeNew
-
-class  tagMCOnlinePrizeNew(Structure):
-    Head = tagHead()
-    OnlineTime = 0    #(DWORD OnlineTime)//在线时间毫秒
-    Len = 0    #(BYTE Len)
-    PrizeInfo = list()    #(vector<DWORD> PrizeInfo)//领奖记录
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB1
-        self.Head.SubCmd = 0x13
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.OnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Len):
-            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
-            self.PrizeInfo.append(value)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xB1
-        self.Head.SubCmd = 0x13
-        self.OnlineTime = 0
-        self.Len = 0
-        self.PrizeInfo = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 1
-        length += 4 * self.Len
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.OnlineTime)
-        data = CommFunc.WriteBYTE(data, self.Len)
-        for i in range(self.Len):
-            data = CommFunc.WriteDWORD(data, self.PrizeInfo[i])
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                OnlineTime:%d,
-                                Len:%d,
-                                PrizeInfo:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.OnlineTime,
-                                self.Len,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCOnlinePrizeNew=tagMCOnlinePrizeNew()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlinePrizeNew.Head.Cmd,m_NAtagMCOnlinePrizeNew.Head.SubCmd))] = m_NAtagMCOnlinePrizeNew
 
 
 #------------------------------------------------------

--
Gitblit v1.8.0