跳转到内容
输入关键词开始搜索。

通用剧情查询

通用剧情查询用于在剧情文本、命令参数、条件判断里临时取出一段游戏数据。它可以返回数字,也可以返回文字;游戏执行到这一段时,会先把查询指令替换成查询结果,再继续处理后面的文本或命令。

常见用途:

  • 在对话里显示玩家金钱、地点名称、角色名字。
  • IFSELECT 等条件里判断某个数值是否满足要求。
  • 把一个查询结果传给后续命令,例如先查出角色 ID,再用这个 ID 查询角色名字。

推荐使用 $ 写法:

[$QUERY:参数1:参数2$]

早期文档中的 % 写法仍可兼容:

[%QUERY:参数1:参数2%]

新文档统一优先写 $。两种写法的含义相同,区别只是包围符号不同。

查询指令里的冒号 : 用来分隔参数。所有符号都建议使用英文半角符号,例如 $:[]&|,不要用中文全角符号。

索引里的用法会出现一些大写占位符,它们不是要照抄的固定文字,而是提示你应该填什么。

  • QUERY:查询名称,例如 player_moneytagrole
  • INFO 或字段名:要查询的内容,例如 namelevelcampid
  • ID:某个配置或运行时对象的 ID,例如角色 ID、地点 ID、任务 ID。
  • INDEX:从 0 开始的序号。
  • TAG_KEY:配置表里自定义 TAG 的字段名。
  • VAR_ID:自定义变量 ID。
  • SUBARG:由 SET_SUBARG 预先保存的临时替换结果。

例如:

[$player_money$]
[$tagrole:name$]
[$tagrole:name:角色ID$]
[$tagrole:tag=TAG_KEY$]

第一行直接查询玩家金钱。第二行查询当前剧情上下文里的目标角色名字。第三行改为查询指定角色。第四行查询角色配置里的某个 TAG 值。

查询指令不适合直接套在另一个查询里面。需要先把里面那层查询保存成 SUBARG,再在下一条指令中使用。

例如,不要直接写成一长串嵌套查询。可以拆成两步:

SET_SUBARG*[$str_val:enemy$]
SETSTRVAR*[$tagrole:name:SUBARG$]

多层嵌套也按同样思路,从最里面一层开始逐步拆开。这样更容易检查,也能避免因为括号和分隔符太多导致脚本难以读懂。

查询结果经常会放进条件表达式中:

IF*[$player_money$][>=]100

这表示玩家金钱大于等于 100 时才继续执行 IF 里的命令。条件表达式的完整写法见 条件与数值表达式

通用剧情查询 ...

正在加载通用剧情查询...