首页 > 春风满楼 > LazyScript教程-教程6:脚本复用
2023
10-28

LazyScript教程-教程6:脚本复用

教程6:脚本复用
===========
现在,你已经写了一些脚本,并且内容越来越多。如果它们包含相同的部分,你可以将该部分分离到另一个脚本中,并使用includeForm将其包含在其他脚本中。例如:
脚本“打断”:

kick-ifTargetIsCasting-ifNotTargetIs=Stunned
gouge-ifTargetIsCasting-ifNotInFrontAttackJustFailed-ifNotTargetIs=Stunned
ks-ifTargetIsCasting=Greater Heal,Prayer of Healing,Healing Touch,Holy Light,Healing Wave,Chain Heal-ifNotTargetIs=Stunned
blind-ifTargetIsCasting=Greater Heal,Prayer of Healing,Healing Touch,Holy Light,Healing Wave,Chain Heal-ifNotTargetIs=Stunned

脚本“战斗剑”:

includeForm=打断
riposte
evisc-5cp
ss

脚本“战匕”:

includeForm=打断
evisc-5cp
bs

这样就可以将脚本“打断”的内容加入脚本“战斗剑”和“战匕”的最前面,相当于你将整个脚本复制粘贴进去了。当你修改更改脚本“打断”的内容时,它将自动更新“战斗剑”和“战匕”。
注意:请注意不要自我复用脚本(A包含A),或者循环复用脚本(A包含B包括A)。这些将产生无限递归循环,导致堆栈溢出错误。
现在,您可能有一些只希望在某些条件下执行的操作,但不希望每次按下LazyScript快捷键都要检查整个脚本。我们看一下前面的例子,可以看到,“ifTargetIsCasting”是“打断”脚本中所有操作的判断条件,我们可以使用callForm重写前面的例子:
脚本“打断”:

kick
gouge-ifNotInFrontAttackJustFailed
ks-ifTargetIsCasting=Greater Heal,Prayer of Healing,Healing Touch,Holy Light,Healing Wave,Chain Heal
blind-ifTargetIsCasting=Greater Heal,Prayer of Healing,Healing Touch,Holy Light,Healing Wave,Chain Heal

脚本“战斗剑”:

callForm=打断-ifTargetIsCasting-ifNotTargetIs=Stunned
riposte
evisc-5cp
ss

脚本“战匕”:

callForm=打断-ifTargetIsCasting-ifNotTargetIs=Stunned
evisc-5cp
bs

有了这些变化,当你执行“战斗剑”或“战匕”时,仅当目标正在施法且没有昏迷时,才会调用“打断”脚本。当目标没有施法时,不会调用任何“打断”脚本内容,提升脚本运行效率。

觉得文章有用,微信打赏一元。