夜雨晨风丶
本帖最后由 夜雨晨风丶 于 2022-12-1 03:33 编辑

我希望的结果是取【23-系统当前时间小时+5】,如果大于23,返回【4-系统当前时间】,如果小于23则返回【23-系统当前时间小时+5】
举例:当前系统时间为0:07,23-0+5=28>23,那么结果应该返回4-0=4,如果当前时间为21:13,则返回23-21+5=7
使用sbp的截取文本可以获得时间的前两位,使用if可以返回不同结果,但组合起来就头晕了。
%s_if({.math_0_23-{.server_time_H.}+5.}>23,{.math_0_{.server_time_H.}+4.},{.math_0_23-{.server_time_H.}+5.})%
  1. slice(原文本, 起始位置, 结束位置)

  2. 返回原文本从起始位置开始至结束位置的文本。

  3. %s_slice(hello there I am xm,2,9)%
  4. > ello the
复制代码
  1. if(true/false, 如果true, 如果false)

  2. 如果参数1的数是true, 就返回第一个参数, 否则返回第二个参数。

  3. # if的第一个参数用到了条件运算符,插件会自动解析成true,因为是true所以返回参数二,也就是1。
  4. %s_if(5>3,1,2)%
  5. > 1
复制代码





已自行解决 %s_if(23-papi(server_time_H)+5>23,4-papi(server_time_H),23-papi(server_time_H)+5)%

llf0421
本帖最后由 llf0421 于 2022-11-30 08:48 编辑

%s_if(28-#%s_timeformat(HH)%>23,#%s_timeformat(HH)%+4,28-#%s_timeformat(HH)%)%

%s_if(28-#(timeformat(HH))>23,#(timeformat(HH))+4,28-#(timeformat(HH)))%

%s_if(28-#timeformat(HH)>23,#timeformat(HH)+4,28-#timeformat(HH))%

不确定语法对不对
大概是这个逻辑



作者在wiki上提供了一个timeformat的方法,使用类似于Java的语法

可以直接按格式转换并拿取当前时间戳的特定格式信息
就不需要调用
  1. slice(原文本, 起始位置, 结束位置)
复制代码



第一页 上一页 下一页 最后一页