[word-core-grammar-basic] 词库语法基础包!

koishi-plugin-word-core-grammar-basic

词库引擎,基础语法扩展

语法内容

添加物品到背包

语法格式:

作用 语法格式 返回值
添加任意数量的物品到玩家背包 (+:物品名称:数量:用户id?) 操作的数量
添加随机数量的物品到玩家背包 (+:物品名称:数量~数量:用户id?) 操作的数量
添加以背包内原数量百分之x的物品到玩家背包 (+:物品名称:数量%:用户id?) 操作的数量

用户idthat时,代表为在触发时,被at的用户的id

用户id项可不填,此时此项前的:也不需要填写,这种情况下,为触发者自身添加物品

使用举例:

作用 语法 返回值
添加1条小鱼干到背包 (+:小鱼干:1) 1
添加1~100随机条小鱼干到背包 (+:小鱼干:1~100) 18
添加30%*背包内小鱼干的数量到背包(如果背包内有100条鱼) (+:小鱼干:30%) 30
添加1条小鱼干到被at的人的背包 (+:小鱼干:1:that) 1

从背包内减少物品

语法格式:

作用 语法格式 返回值
从玩家背包减少任意数量的物品 (+:物品名称:数量:用户id?) 操作的数量
从玩家背包减少随机数量的物品 (+:物品名称:数量~数量:用户id?) 操作的数量
从玩家背包减少以背包内原数量百分之x的物品 (+:物品名称:数量%:用户id?) 操作的数量

用户idthat时,代表为在触发时,被at的用户的id

用户id项可不填,此时此项前的:也不需要填写,这种情况下,为触发者自身减少物品

使用举例:

作用 语法 返回值
减少1条小鱼干 (-:小鱼干:1) 1
减少1~100随机条小鱼干 (-:小鱼干:1~100) 18
减少30%背包内的小鱼干(如果背包内有100条鱼) (-:小鱼干:30%) 30
被at的人减少1条小鱼干背包 (-:小鱼干:1:that) 1

判断背包内物品数量是否满足要求

语法格式:

作用 语法
当背包内物品的数量满足要求则显示信息,否则不显示 (?:物品名称:关系:数量:信息?:用户id?)

关系项可以填写如下符号:

大于 >
小于 <
等于 ==
不等于 !=
大于等于 <=
小于等于 >=

用户idthat时,代表为在触发时,被at的用户的id

用户id项可不填,此时此项前的:也不需要填写,这种情况下,为判断触发者自身的物品是否满足条件

信息项可不填或为空,当不填时此项前的:也不需要填写,这种情况下:

  • 当物品数量满足要求时,继续执行本条语句

  • 当物品数量不满足要求时,结束当前语句的执行重新从触发词的回答序列中随机挑选一句语句,重新解析直到无可执行的语句或语句成功输出时结束

使用举例:

作用 语法 返回值
如果自身小鱼干>10,则显示你的小鱼干满足要求! (?:小鱼干:>:10:你的鱼干满足要求啦!) 你的鱼干满足要求啦!
如果自身小鱼干>10,则继续执行本条解析 (?:小鱼干:>:10) <语句继续运行>
如果对方的小鱼干>10,则提示你的也满足啦 (?:小鱼干:>:10:你的鱼干满足要求啦!:that) 你的鱼干满足要求啦!
如果对方的小鱼干>10,则继续执行本条语句 (?:小鱼干:>:10::that) <语句继续运行>

输出背包内某物品数量

语法格式:

作用 语法 返回值
查看背包内小鱼干的数量 (#:物品名称:用户id?) 执行此语句时,背包内物品数量

用户idthat时,代表为在触发时,被at的用户的id

用户id项可不填,此时此项前的:也不需要填写,这种情况下,为查询触发者自身物品数量

使用举例:

作用 语法 返回值
查看自己的小鱼干数量 (#:小鱼干) 114
查看被at者的小鱼干数量 (#:小鱼干:that) 514

概率判断是否成功

语法格式:

作用 语法 返回值
有0~100的概率会输出信息 (%:概率(0~100):消息?) 信息

信息`项可不填或为空,当不填时此项前的:也不需要填写,这种情况下:

  • 当物品数量满足要求时,继续执行本条语句

  • 当物品数量不满足要求时,结束当前语句的执行,并且提示"判定失败"

使用举例:

作用 语法 返回值
30%的可能输出赢啦 (%:30:赢啦) 赢啦

延迟发送

语法格式&使用举例:

作用 语法 返回值
延迟发送一句话或者一段话 (&:时间:消息?) 信息项

时间相为纯数字,单位是秒(s)

信息项可不填或为空,当不填时此项前的:也不需要填写,这种情况下:

  • 当物品数量满足要求时,继续执行本条语句
  • 当物品数量不满足要求时,结束当前语句的执行重新从触发词的回答序列中随机挑选一句语句,重新解析直到无可执行的语句或语句成功输出时结束

使用举例:


作用 语法 返回值
延迟10秒发送哼哼a (&:10:哼哼a) 哼哼a

查看触发者的用户名

语法格式&使用举例:

作用 语法 返回值
查看触发者的名字 (@this) 触发者用户名

查看触发者的id

语法格式&使用举例:

作用 语法 返回值
查看触发者的id (#this) 触发者id

查看被at人的用户名

语法格式&使用举例:

作用 语法 返回值
查看被at的对方的用户名 (@that) 在触发句中被at的人的用户名

查看被at者的id

语法格式&使用举例:

作用 语法 返回值
查看被at的对方的id (#that) 在触发句中被at的人的id

主插件

Todo List

语法:books:

隐式执行
cd语法
鉴权语法

功能:gear:

事件触发器

3 个赞

基础插件使用说明:

2 个赞

进阶说明:

不同语法都进行组合,并且遵循从内而外,从前到后的原则。

比如我们可以达到这样的效果,出售自己背包内的所有鱼,并且给予自己同等价格的金币:

(+:金币:(-:小鱼干:100%))

因为由内而外,从前到后,所以系统会先解析(-:小鱼干:100%),从上面的教程我们可以知道-这个语法,会返回操作的数量,100%会返回背包内的所有小鱼干数量。假如一开始我们背包内包含100条小鱼干,当解析完(-:小鱼干:100%)这一段后,我们背包内的小鱼干会清空,原先的(+:金币:(-:小鱼干:100%))会变成(+:金币:100)

类似这样的操作,我们可以构建一个,简单的rpg文字小游戏)))

2 个赞

煮波,我感觉这样子写下来会很乱,有一种自带混淆代码的美

1 个赞

你可以参考一下QRSpeed这个软件的词库教程,b站有,可以试试看能不能做成一个类似的

1 个赞

唔qr的词库其实我也参考过了很大一部分…不过我感觉我的码力好像不太能顶呜呜呜
之前做过一版类似这样的
+小鱼干 10+
但是后面发现我的语法解释器写的非常屎山…很难扩展)

1 个赞

可以阅读龙书:

2 个赞

因为我想做嵌套的…所以…))

1 个赞

(((soda!有点看不懂…
之前尝试看过一丢丢编译器原理的东东…然后木有看透…
但是学到了点!现在的这个是搓成树然后遍历搓的…)))

以前的那个解释器用while(/+([\s\S]+)+/.test(回答句))写的,非常逆天

1 个赞

(还试图搓过vsc的语法高亮插件…发现更逆天了)

1 个赞

给个思路,使用fs模块,读取文件.txt,然后将.txt的文件里的内容进行编译或者可以写个标识,让代码来编译

1 个赞

(现在是这样的类似的思路)))

1 个赞

然后这个现在大概是这样跑的:

1 个赞

这是什么聊天软件?

1 个赞

欸嘿)

1 个赞

这!koishi有东西可以接入进去?

1 个赞

也是我写的)adapter-iirose

1 个赞

wc,佬!

1 个赞

阿巴)来花园玩姆)

1 个赞

玩不了噢!

1 个赞