可以使用形如 {物品名称} 的方式指代 NPC 或物品 id,执行时会自动进行替换,例如:
// raid.flow
select {r崔莺莺};ask {r崔莺莺} about 东厢
id 占位符的格式如下:
{<位置><关键字><品质><是否为精确查找><获取数量>}<可为 null 否>
除了关键字外,其他均为可选参数,下面来介绍这些可选参数:
位置
- r: room 房间内
- b: bag 包裹内
- d: dialog 最近打开的列表面板内(目前支持仓库列表和商人列表)
执行打开列表面板的系统命令后,需要调用
@dialog
以等待列表面板的确实打开,之后再使用 id 占位符。
如果未指定位置:
- 也未指定品质,则会按照房间内、包裹内、列表面板内的顺序查找
-
品质
对于物品,可以指定品质:
g:green 绿色
- b:blue 蓝色
- y:yellow 黄色
- p:purple 紫色
- o: orange 橙色
- r:red 红色
如果物品名称是从系统提示中截取的,则已包含品质信息可直接使用:
// raid.flow
@tip 你从平一指购买了一枚($pill)。
use {b(pill)}
是否为精确查找
默认使用模糊查找,即目标 NPC 或物品名称包含 {}
中给出的关键字即可。
添加 %
表示进行精确查找,物品名称必须完全吻合 {}
中给出的关键字。例如,下面语句中的前者就是精确查找:
// raid.flow
select {r财主女儿 崔莺莺%};ask {r崔莺莺} about 东厢
获取数量
如果希望获取数量而非 id,则可通过添加 #
标明。例如,将武道残页保存到仓库:
// raid.flow
[if] {b武道残页o%}? != null
store {b武道残页o%#} {b武道残页o%}
可为 null 否
默认会持续等待,直到找到该 NPC 或物品。
为什么要如此设置?例如: go west ok {r丫鬟} go west 后的房间信息需要等待服务器返回,{r丫鬟} 会持续等到房间信息(包含房间内的 NPC 信息)返回,以便获取丫鬟的 id。
如果允许找不到,则需要添加 ?
,未找到则为 null
。
// raid.flow
[if] {b蒙古g}? != null
fenjie {b蒙古g}?