if {[info exists queue($variable)} {
if {[expr [unixtime] - $queue($variable)]<86400} {
set calctime [expr [unixtime] - queue($variable)]
putquick "PRIVMSG $channel :you cant because you need to wait $calctime"
}
}
set queue($variable) [unixtime]
我的Tcl脚本中有这个代码,所以每个用户都需要等待24小时再重新执行命令。
我想把倒计时显示他们需要等待多长时间(小时,分钟,秒)才可以再做一次。但目前我唯一能做的就是将秒数与$calctime
知道我该怎么办吗?绝对是我$calctime
的尝试失败了:P
答案 0 :(得分:1)
使用clock format将秒数视为相对于纪元。不要遗漏-gmt 1
,否则你会错过几个小时。多少取决于您所在的时区。
putquick "PRIVMSG $channel :you cant because you need to wait \
[clock format $calctime -format "%T" -gmt 1]"
或者自己计算:
set seconds [expr {$calctime % 60}]
set calctime [expr {$calctime / 60}]
set minutes [expr {$calctime % 60}]
set hours [expr {$calctime / 60}]
putquick "PRIVMSG $channel :you cant because you need to wait \
$hours hours, $minutes minutes and $seconds seconds"
答案 1 :(得分:0)
要显示用户必须等待的时间,您可以使用eggdrop特定命令duration
。
if {[info exists queue($variable)} {
if {[clock seconds] - $queue($variable) < 60*60*24 } {
set calctime [duration [expr {[clock seconds] - queue($variable)}]]
putmsg $channel "you cant because you need to wait $calctime"
return
}
}
set queue($variable) [clock seconds]
# Do the command stuff