From dae842ad6e4a43d66255251e3ca60880af8d08bb Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 09 十月 2025 16:26:25 +0800
Subject: [PATCH] 242 【福利内容】每日签到-服务端

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py |   85 +++++++++++++++++++++---------------------
 1 files changed, 42 insertions(+), 43 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index a4ce5cd..f9aad71 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
 
 
 #------------------------------------------------------

--
Gitblit v1.8.0