通用剧情查询
通用剧情查询用于在剧情文本、命令参数、条件判断里临时取出一段游戏数据。它可以返回数字,也可以返回文字;游戏执行到这一段时,会先把查询指令替换成查询结果,再继续处理后面的文本或命令。
常见用途:
- 在对话里显示玩家金钱、地点名称、角色名字。
- 在
IF、SELECT等条件里判断某个数值是否满足要求。 - 把一个查询结果传给后续命令,例如先查出角色 ID,再用这个 ID 查询角色名字。
推荐使用 $ 写法:
[$QUERY:参数1:参数2$]早期文档中的 % 写法仍可兼容:
[%QUERY:参数1:参数2%]新文档统一优先写 $。两种写法的含义相同,区别只是包围符号不同。
查询指令里的冒号 : 用来分隔参数。所有符号都建议使用英文半角符号,例如 $、:、[、]、&、|,不要用中文全角符号。
占位符怎么读
Section titled “占位符怎么读”索引里的用法会出现一些大写占位符,它们不是要照抄的固定文字,而是提示你应该填什么。
QUERY:查询名称,例如player_money、tagrole。INFO或字段名:要查询的内容,例如name、level、campid。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 里的命令。条件表达式的完整写法见 条件与数值表达式。
正在加载通用剧情查询...