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/GM/Commands/SetSignDay.py |   65 ++++++++------------------------
 1 files changed, 17 insertions(+), 48 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetSignDay.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetSignDay.py
index 34879fd..c7a4bdc 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetSignDay.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetSignDay.py
@@ -4,69 +4,38 @@
 #
 ##@package GM.Commands.SetSignDay
 #
-# @todo:设置签到
+# @todo:签到
 # @author hxp
-# @date 2018-03-29
+# @date 2025-10-09
 # @version 1.0
 #
-# 详细描述: 设置签到
+# 详细描述: 签到
 #
 #-------------------------------------------------------------------------------
-#"""Version = 2018-03-29 11:00"""
+#"""Version = 2025-10-09 16:30"""
 #-------------------------------------------------------------------------------
 
-import PlayerControl
-import PlayerSignDay
-import PlayerMagicWeapon
 import GameWorld
+import PlayerSignDay
 import ChConfig
 
-import datetime
-import time
-#---------------------------------------------------------------------
-## 设置每日签到
-#  @param curPlayer 玩家实例
-#  @param cmdList 参数列表
-#  @return None
-#  @remarks 
 def OnExec(curPlayer, cmdList):
-    if len(cmdList) == 1 and cmdList[0] == 0:
-        PlayerSignDay.ResetDaySign(curPlayer)
-        PlayerSignDay.Sync_SignDayInfo(curPlayer)
-        
-        startTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DayLoginSignStartTime) # 开始时间
-        GameWorld.DebugAnswer(curPlayer, "重置签到OK!%s" % GameWorld.ChangeTimeNumToStr(startTime))
-        PlayerMagicWeapon.CalcMagicWeaponAttr(curPlayer)
-        PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
-        return
     
     if not cmdList:
-        GameWorld.DebugAnswer(curPlayer, "设置:SetSignDay 已签次数 可补次数 是否次月 累计签到次数")
-        GameWorld.DebugAnswer(curPlayer, "重置:SetSignDay 0")
+        GameWorld.DebugAnswer(curPlayer, "重置签到: SetSignDay 0")
+        GameWorld.DebugAnswer(curPlayer, "设置签到: SetSignDay 天 状态")
+        GameWorld.DebugAnswer(curPlayer, "状态:1-已签到;2-可补签;3-已领取")
         return
     
-    signNum = cmdList[0]
-    canAddSignNum = cmdList[1] if len(cmdList) > 1 else 0
-    isMulti = cmdList[2] if len(cmdList) > 2 else 0
-    totalSignNum = cmdList[3] if len(cmdList) > 3 else signNum
+    value = cmdList[0]
+    if value <= 0:
+        GameWorld.DebugAnswer(curPlayer, "重置签到")
+        PlayerSignDay.ResetDaySign(curPlayer)
+        return
     
-    curTime = int(time.time())
-    curDateTime = GameWorld.ChangeTimeNumToDatetime(curTime)
-    
-    startDateTime = curDateTime - datetime.timedelta(days=(signNum + canAddSignNum))
-    startTimeStr = str(startDateTime)
-    startTime = GameWorld.ChangeTimeStrToNum(startTimeStr)
-    
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DayLoginSignState, 0) # 默认当前未签到
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DayLoginSignNum, signNum)
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TotalSignNum, totalSignNum)
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DayLoginSignIsMulti, isMulti)
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DayLoginSignStartTime, startTime)
+    day = value
+    state = cmdList[1] if len(cmdList) > 1 else 0
+    GameWorld.DebugAnswer(curPlayer, "设置签到: 天:%s, 状态:%s" % (day, state))
+    GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_SignInState, day - 1, state, False)
     PlayerSignDay.Sync_SignDayInfo(curPlayer)
-    
-    PlayerMagicWeapon.CalcMagicWeaponAttr(curPlayer)
-    PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
-    GameWorld.DebugAnswer(curPlayer, "设置已签次数:%s,可补次数:%s,是否次月:%s" % (signNum, canAddSignNum, isMulti))
-    GameWorld.DebugAnswer(curPlayer, "本轮开始签到时间:%s" % (startTimeStr))
     return
-

--
Gitblit v1.8.0