显示页面过去修订反向链接回到顶部 本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 ====== 指令嵌套与变量 ====== 指令中支持嵌套另一个指令,这是一种比较高级的玩法,适用于需要一些按顺序投多次骰子的场合。 例如:在某种玩法中,我们需要先投%% %%''d10''%% %%假设结果为%% %%''x'',然后再投%% %%''x''%% %%个%% %%''d10''。当然我们可以分两次骰,但如果这种操作很频繁,还是有些麻烦。 我们可以通过指令嵌套语法,把它们整合到一个表达式中,将前一次的表达式用双层中括号包裹即可: <code -> .[[d10]]d10 Maca 🎲 先是 🎲 d10: [6] = 6 最后 🎲 6d10: [6, 7, 3, 10, 1, 1] = 28 </code> 当然,嵌套也是支持多层的。例如我们将前一次投骰的结果作为后一次投骰的面数: <code -> .d[[d[[d[[d10]]]]]] Maca 🎲 先是 🎲 d10: [8] = 8 然后 🎲 d8: [3] = 3 然后 🎲 d3: [2] = 2 最后 🎲 d2: [1] = 1 </code> 在嵌套中可以引用之前投骰的结果,例如:先投%% %%''d10''%% %%假设结果为%% %%''x'',然后再投%% %%''x''%% %%个%% %%''d10''%% %%和%% %%''x+1''%% %%个%% %%''d6'': <code -> .[[d10]]d10+[[$1+1]]d6 Maca 🎲 先是 🎲 d10: [3] = 3 然后 🎲 3+1: 3+1 = 4 最后 🎲 3d10+4d6: [3, 1, 6]+[3, 1, 4, 6] = 24 </code> 表达式中的%% %%''$1''%% %%代表你第一次投骰的结果。第一次的结果是%% %%''d10 = 3'',故%% %%''$1 = 3''。最终的表达式就是%% %%''3d10+4d6''。同理你也可以使用%% %%''$2''、''$3''%% %%代表第二次、第三次投骰的结果。 ---- 指令选项中的暗骰(h)选项,当用在嵌套指令中,代表投骰但不出现在最终的表达式里。利用这个特性,我们可以模拟出变量的功能: <code -> .[[hd10]][[$1]]d10+[[$1+1]]d6 Maca 🎲 先是 🎲 d10: [5] = 5 然后 🎲 5: 5 = 5 然后 🎲 5+1: 5+1 = 6 最后 🎲 5d10+6d6: [9, 9, 7, 4, 1]+[3, 5, 4, 3, 5, 5] = 55 </code> 这里我们首先投%% %%''hd10 = 5'',这个结果%% %%''5''%% %%不会出现在最终表达式里,但是会赋予%% %%''$1''。因此后面的%% %%''[[$1]]d10+[[$1+1]]d6''%% %%就会被解析为%% %%''5d10+6d6''。 ---- 综合上述的功能,我们就能组合出复杂的指令出来。就以理智检定为例,已知直视伟大的克苏鲁掉 san%% %%''1d10/1d100'',我们可以使用: <code -> .[[hd%<=$san]][[$1]]*d10+[[1-$1]]*d100 直视伟大的克苏鲁 Maca 🎲 直视伟大的克苏鲁 先是 🎲 d%<=31: [42] = 0 然后 🎲 0: 0 = 0 然后 🎲 1-0: 1-0 = 1 最后 🎲 0*d10+1*d100: 0*[6]+1*[74] = 74 </code> 这里首先投%% %%''hd%<=$san'',人物卡 san 值为 31,%% %%''d%<=31''%% %%代表投一个百分骰,计算小于等于当前 san 值(31)的骰子个数。因此: 当理智检定通过时,''d%<=31''%% %%为%% %%''1'',即%% %%''$1 = 1'', 表达式解析为%% %%''1*d10+0*d100'',即%% %%''d10''; 当理智检定失败时,''d%<=31''%% %%为%% %%''0'',即%% %%''$1 = 0'',表达式解析为%% %%''0*d10+1*d100'',即%% %%''d100''。 ---- 当然,这种复杂的指令使用起来并不方便,但你正好可以利用**自定义指令别名**功能,自己起一个喜欢的名字来代替这一长串指令。恭喜你,发明了一个新的骰子指令! ---- [[:骰娘|返回骰娘首页]] 骰娘/指令嵌套与变量.txt 最后更改: 2023/12/10 15:28由 127.0.0.1