| | |
| | | #
|
| | | ##@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 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))
|
| | | 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)
|
| | | |
| | | PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
|
| | | GameWorld.DebugAnswer(curPlayer, "设置已签次数:%s,可补次数:%s,是否次月:%s" % (signNum, canAddSignNum, isMulti))
|
| | | GameWorld.DebugAnswer(curPlayer, "本轮开始签到时间:%s" % (startTimeStr))
|
| | | return
|
| | |
|