Formula Info
这是一个未列出的页面,它被嵌入在 Item Filtering 中。
正式定义
公式可以在战利品过滤器的任何地方使用 Formula[KEY]: FORMULA 来定义。对公式的引用必须采用 FORMULAKEY 的形式。Formula[_A]: STAT1!=STAT2 可以通过 FORMULA_A 或 %FORMULA_A% 来引用。
公式键名只能使用 '_' 或 'A' 到 'Z'。 别名不能在定义中使用。
内联定义
内联公式定义是块内的公式 $f(STAT1!=STAT2)。'f' 必须小写,括号必须匹配。
物品输入
公式可以用作布尔值、值或添加条件的一部分。 别名可以在定义中使用。
| 条件 | 描述 |
|---|---|
| ItemDisplay[$f(STAT1+STAT2)>25] | 值比较 |
| ItemDisplay[$f(STAT1+STAT2>20)] | 布尔条件 |
| ItemDisplay[$f(STAT1)+STAT2>15] | 添加条件 |
公式的"真值"基于值不等于零。
| 公式 | 描述 |
|---|---|
| 1.5 | 真,因为 1.5 != 0 |
| TRUE | 真,因为 TRUE (1) != 0 |
| FALSE | 假,因为 FALSE (0) == 0 |
| 0 | 假,因为 0 == 0 |
| .0000001 | 真,x != 0 |
物品输出
公式的结果是一个实数。它以 0-2 位小数呈现,具体取决于小数部分。如果发生数学错误或值太大无法呈现,则文本为 f_err。可呈现结果的最大绝对值是 2^31 (2147483648)。
| 公式 | 中间文本 | 呈现文本 |
|---|---|---|
| 1.49 | 1.49 | 1.49 |
| 1.495 | 1.50 | 1.5 |
| 1.494 | 1.49 | 1.49 |
| 1.5 | 1.50 | 1.5 |
| TRUE | 1.00 | 1 |
| FALSE | 0.00 | 0 |
| 0 | 0.00 | 0 |
| .0000001 | 0.00 | 0 |
运算符
==, >, <, !=, >=, <=, +, -, *, /, ^, !
变量
所有变量都不区分大小写。每个变量都镜像了输入或输出中使用的代码。
带参数
参数是用 ',' 分隔的整数。
| 代码 | 示例 | 详情 | 参数 |
|---|---|---|---|
| stat | stat3 | 体力 vitality | 1 |
| multi | MULTI83,2 | 死灵法师技能;必须有两个参数 | 2 |
| charstat | CHARSTAT15 | 仓库中的金币 | 1 |
无参数
| 代码 | ||||
|---|---|---|---|---|
| allattrib | allsk | alvl | amazon | ar |
| area | armor | arper | assassin | automod |
| axe | bar | barbarian | baseblock | basemaxkick |
| basemaxoneh | basemaxsmite | basemaxthrow | basemaxtwoh | baseminkick |
| baseminoneh | baseminsmite | baseminthrow | basemintwoh | belt |
| boots | bow | buyprice | charm | charstat |
| chest | chsk | circ | cl | class |
| clsk | club | clvl | craft | craftalvl |
| cres | cube | dagger | def | dex |
| diff | din | dru | druid | dtm |
| ed | edam | edef | elt | eq |
| equipped | eth | exc | false | fbr |
| fcr | fhr | filtlvl | fools | fres |
| frw | gem | gemlevel | gemmed | gemtype |
| gfind | gloves | gold | ground | hammer |
| height | helm | ias | id | ilvl |
| inf | inventory | jav | jewelry | life |
| lres | lvlreq | mace | maek | mag |
| mana | mapid | maptier | maxdmg | maxdur |
| maxres | maxsockets | merc | mfind | mindmg |
| misc | multi | nec | necromancer | nmag |
| norm | onehand | os | paladin | polearm |
| pres | price | qlvl | qty | quiver |
| rare | repair | replife | repquant | reqdex |
| reqlvl | reqstr | rerollalvl | res | rune |
| rw | scepter | sellprice | set | shield |
| shop | sin | sk | sock | sockets |
| sor | sorceress | spear | staff | stash |
| stat | str | sup | sword | tabsk |
| throwing | tmace | true | twohand | uni |
| updex | uplvl | upstr | wand | weapon |
| width | wp | xbow | zon | |
函数
所有函数需要一个或多个参数(元数)。
| 名称 | 详情 | 元数 | 示例 |
|---|---|---|---|
| if | 如果为真则返回第二个参数,否则返回第三个 | 3 | IF(STAT3>100,TRUE,FALSE) |
| and | 如果所有值都为真则返回真,否则返回假 | 1+ | AND(STAT3>100,STAT0>100) |
| or | 如果任何值为真则返回真,否则返回假 | 1+ | OR(STAT3>100,STAT0>100) |
| exp | 欧拉数 (e) 的幂次方 | 1 | exp(ln(STAT2))==STAT2 |
| ln | 以 e 为底的对数 | 1 | ln(STAT2) |
| floor | 将数字向下舍入到最接近的整数 | 1 | floor(1.5)==1 |
| ceil | 将数字向上舍入到最接近的整数 | 1 | ceil(1.49)==2 |
| round | 按标准规则舍入数字 | 1 | round(1.49)==1; round(1.5)==2 |
| min | 最小值 | 1+ | MIN(STAT2,50)<=50 |
| max | 最大值 | 1+ | MAX(STAT2,50)>=50 |
| mod | A/B 的模数 | 2 | MOD(-17,5)==-2 |
| average | n 个参数的平均值 | 1+ | AVERAGE(8,8,8,8,8)==8 |
| sqrt | 非负数的平方根 | 1 | SQRt(4)==2 |
| pow | 数字的幂次方 | 2 | pow(2, 2)==4 |
| count | 真值的数量 | 1+ | COUNT(1,0,1,TRUE)==3 |
| countif | 等于最后一个值的数量 | 2+ | COUNTIF(1,0,1)==1 |
| xor | 如果奇数个参数为真则返回真 | 1+ | XOR(1,0)==1 |
| abs | x 的绝对值 | 1 | abs(-1)==1 |
| sign | x 的符号 | 1 | sign(-1)==-1; sign(0)==0; sign(1)==1 |
次要细节
可能会或可能不会改变的小细节。
AND和OR是 短路求值的- 常量表达式如
POW(3,3)或IF(TRUE,STAT1,STAT2)只计算一次 - 输入引用只需要首字母 (F) 大写,其余不区分大小写
- 输出引用始终不区分大小写