Skip to content

关于语法的嵌套

BSTluo edited this page Nov 4, 2024 · 1 revision

讨论内容

词库的语法是支持嵌套的: 比如有个获取当前是本月第几号的语法:(time:4)

它的返回值是一个数字,这就意味着它能够使用在任何需要数字的地方: 比如:(+:鱼:(time:4))

词库在解析每个语法的时候,检测到参数的值是一个语法或者包含语法的时候,会将参数内的语法执行后,将返回值返回!

举个例子,有个回复是这样的:你获得了(+:鱼:(time:4))条鱼,词库进行解析的时候是这样的:

你获得了(+:鱼:(time:4))
↓
检测到词库语法(+:鱼:(time:4))
↓
开始抽取物品名称:鱼
开始抽取物品数量:(time:4)
↓
发现物品数量为词库语法
↓
开始执行词库语法:(time:4)
↓
当前是26号,(time:4)执行结果是26
↓
释放结果:26
↓
(+:鱼:26)
执行语句
↓
各参数无词库语法,执行
↓
添加26条鱼,释放结果
↓
你获得了26条鱼

这就意味着你甚至可以如下方式拼接判断物品数量的语法和随机数的语法:

(?:鱼:>:(~:1:100))

这个语法可以判断鱼的数量是否大于一个1~100中的随机数

相关链接

https://github.com/BSTluo/koishi-plugin-word-core/issues/10#issuecomment-2375567725