[打印本页]
《超级宏官方教程》第三章·第4节:时间戳(nowtime) —— 主稿:YYL
作者: 无色幽明    时间: 2014-03-26 16:56

标题: 《超级宏官方教程》第三章·第4节:时间戳(nowtime) —— 主稿:YYL

第三章·第4节:时间戳(nowtime)
主稿:YYL




时间戳——nowtime参数<nowtime>/<now>基本含义
该参数返回的当前时间,单位为秒。其数值本身没有实际意义。
他的常见使用方式为:
1)某一个特殊时刻,将now赋值给某一个自定义变量
2)通过该变量与now进行大小比较判断,执行需要的语句
示例一:对某部分语句进行执行频率限制
有某玩家遇到由于网络延迟,导致切换武器不停变化。
由此提出能不能只对换武器的语句段落进行频率限制,限制他0.5秒只执行一次!
so easy,好吧!使用<nowtime>命令帮助你!

示例:
/If [now>(v_Mark;0)]
/Var [now+0.5]v_Mark
/end

如上例,模拟上面语句执行过程:
第一次执行,v_mark尚未赋值,返回值为<false>,从而[(v_Mark;0)]执行结果为0,
接着[now>0]判断为真,就进入/If内部语句的执行。接着对v_Mark赋值为<现在的时间+0.5秒>。执行换武器语句段.
第二次执行,<v_mark>为数值,即为进行[now>v_mark]的判断,
如果两次间隔小于0.5秒,那么判断为假,其内部语句不会执行。
如果间隔大于0.5秒,判断为真,则执行/if内部的语句,赋值,切换武器等…
完美地对换武器语句进行了限制
对抗服务器延迟,解决冰心4玳弦问题
由于超级宏释放技能之间缝隙极小,外加服务器及网络的延迟因素导致的玳弦急曲第三段的效果延迟出现
从而使使用用常规语句的宏会多打一次玳弦
那么,我们可以从now入手,解决这个问题
/If [ota]
/if [0.2<otaleft:玳弦急曲<0.5,tmbuff:急曲=2] –识别第三段快结束时的时刻
/Var [now+0.6]v_marktime –赋值自定义变量,进行标记
/end
/Return –保护引导
/end
/Skill [tmbuff:急曲=3] 剑气长江
/Skill [tmbuff:急曲=2 , now<v_marktime] 剑气长江 –预判急曲已经三层
/Skill 玳弦急曲
上面示例通过now的时间轴变量,预判了急曲buff层数,从而完美地解决了这个问题。
也可以看作是模拟手动的一种方式!