教程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
有了这些变化,当你执行“战斗剑”或“战匕”时,仅当目标正在施法且没有昏迷时,才会调用“打断”脚本。当目标没有施法时,不会调用任何“打断”脚本内容,提升脚本运行效率。
- 本文固定链接: https://www.fengshen.cn/2023/10/lazyscript教程-教程6:脚本复用/etcofwind/
- 转载请注明: fengshen 发表于 Dream of Wind | 一梦风神
觉得文章有用,微信打赏一元。
