词条方法
词条方法放在 entry/ 目录。图纸产物、可选材料、额外条件和指令发放物品时,都可以调用这些方法来修改最终物品。
快捷调用
yaml
强度初始化: "setvar('强度', round(random(1, 100)))"
品质初始化: "setvar('品质', weight('传说=50', '史诗=200', '极品=350', '优秀=200', '普通=200'))"在图纸里调用:
yaml
entry:
- "{强度初始化}"
- "{品质初始化}"常用数值方法
| 方法 | 说明 |
|---|---|
random() | 取 0-1 随机数。 |
random(最大) | 取 0-最大 随机数。 |
random(最小, 最大) | 取范围随机数。 |
int() | 去小数取整。 |
ceil() | 向上取整。 |
floor() | 向下取整。 |
round() | 四舍五入。 |
double(位数, 数值) | 保留指定小数位。 |
max() | 上限限制。 |
min() | 下限限制。 |
avg() | 平均值。 |
chance(百分比) | 概率判断,返回 true 或 false。 |
玩家与变量方法
| 方法 | 说明 |
|---|---|
papi('%变量%') | 读取 PAPI 变量。 |
permission('权限') | 判断玩家权限。 |
forgeCount('图纸ID') | 读取玩家指定图纸已锻造次数。 |
setvar('变量', '值') | 设置锻造变量。 |
getvar('变量', '默认值') | 获取锻造变量,不存在时返回默认值。 |
字符串方法
| 方法 | 说明 |
|---|---|
replace() | 按映射替换文本。 |
array() | 自动换行。 |
repeat() | 重复字符串。 |
splice() | 拼接字符串。 |
split() | 分割字符串。 |
sel() | 按位置选择参数。 |
size() | 统计参数数量。 |
trim() | 去除首尾空格。 |
contains() | 判断包含。 |
equals() | 判断完全相等。 |
startsWith() | 判断开头。 |
endWith() | 判断结尾。 |
length() | 取字符串长度。 |
index() | 取文本位置。 |
表达式
表达式使用 ${...} 包裹,支持加减乘除、次方、取余和条件判断。
示例:${max(1, 1.314)+min(2, 1.314)}。
示例:品质和强度系数
下面这段包含双花括号,文档里需要用 v-pre 禁止 Vue 解析;复制到配置里时保留原样。
yaml
品质系数: "replace(getvar('品质'), '普通=1.0', '优秀=1.2', '极品=1.5', '史诗=1.9', '传说=2.4')"
强度系数: "${(100+getvar('强度'))*0.01}"
数值计算: "${{品质系数}*{强度系数}}"装备 Lore 可以写成下面这种格式来计算最终数值:
text
攻击力+${{数值计算}*100}