联赛积分公式如何运作?
每个联赛根据您在创建或编辑联赛时选择的计分系统为其玩家在每场锦标赛中授予积分:
- 对数
- 平方根
- 线性
- 固定(您为每个名次输入确切的积分)
- 自定义(编写您自己的公式)
自定义公式变量
自定义公式在锦标赛结束时为每位玩家计算一次。其中一些变量描述锦标赛,因此对每个参与者保持相同的值,而另一些变量描述正在计分的玩家。了解哪些是哪些是编写公式的主要技巧。
关于锦标赛,对每位玩家都相同:
| p | 玩家人数 |
| n | 报名人次(包括重新报名) |
| b | 买入 |
| z | 奖金池 |
| m | 获奖名次数 |
| t | 锦标赛格式(1 标准,2 分段,3 淘汰赛,4 神秘赏金) |
关于正在计分的玩家:
| f | 完赛名次 |
| c | 他们的花费(买入加上他们自己的重购和增购) |
| k | 他们完成的击杀数 |
| r | 他们进行的重购次数 |
| a | 他们进行的增购次数 |
| x | 他们使用的子弹数(他们的总买入次数) |
| w | 奖金(他们赢得的金额) |
| d | 距离淘汰赛决赛的轮数(1 是决赛轮) |
例如,此公式为每位玩家每击败一名对手给予一分,每次击杀给予2分奖励,并为每次重购扣除一分:
(p - f + 1) + (2 * k) - r
高级:编写您自己的公式
除了算术运算,两种表示法在真实联赛公式中完成了大部分工作:条件和积分表。您还可以使用 sqrt、log、log10、exp、pow、round、floor、fix、abs、min 和 max,以及 ^ 表示幂运算。
使用 ? : 的条件
条件读作 测试 ? 为真时的值 : 否则的值。
f == 1 ? 50 : 10
这为冠军授予50分,为其他所有人授予10分。注意使用双等号 == 表示"等于"。您还可以使用 <、<=、>、>= 和 !=, 并且可以使用 and 和 or 连接测试:
p >= 20 and f <= 3 ? 10 : 0
条件可以链接,这是俱乐部为每个名次编写不同规则的方式。每个 : 传递给下一个测试:
f == 1 ? 30 : f == 2 ? 20 : f == 3 ? 15 : 5
使用 [ ... ][f] 的积分表
您可以按顺序列出积分并选择玩家完赛名次对应的积分,而不是链接条件:
[100, 85, 70][f]
列表按位置读取:第一名获得100分,第二名85分,第三名70分。位置从1开始,因此 f 无需任何调整即可与列表对齐。
始终用条件保护积分表。如果玩家的完赛名次低于列表末尾,公式将失败,该玩家将完全不得分。三个条目的列表需要
f < 4:
f < 4 ? [100, 85, 70][f] : 0使用
:值为其他所有人设置底线,例如: 5为参加者给予5分。
注意括号
乘法和加法在比较之前应用,这会悄悄改变公式测试的内容。不带括号书写:
30 * k + f < p / 3 + 1 ? 100 : 1
测试变成"是否 30 * k + f 小于 p / 3 + 1",而不是"是否 f 在前三分之一内"。联赛可能以这种方式用错误的规则运行整个赛季。将条件或整个条件表达式用括号括起来:
30 * k + (f < p / 3 + 1 ? 100 : 1)
俱乐部实际使用的公式
这些是在 Blind Valet 上运行的联赛中的真实模式,仅在俱乐部的名次列表非常长的地方进行了简化。
| 俱乐部想要的 | 公式 |
|---|---|
| 参加即得一分,没有其他 | 1 |
| 仅胜利的排行榜 | f == 1 ? 1 : 0 |
| 击杀数,加上胜利得一分 | k + (f == 1 ? 1 : 0) |
| 每击败一名对手得一分,加上领奖台奖励 | p - f + 1 + (f < 4 ? [4, 2, 1][f] : 0) |
| 固定表格,但其他所有人仍得分 | f < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100 |
| 更高赌注级别价值更高,每次重购扣除积分 | log(p + 1) / f * 10 + b - c / 4 |
| 积分按奖金池大小缩放 | sqrt(p + 1) / f * z / 500 |
| 仅前三分之一得分,按参赛人数缩放 | 30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1) |
| 每个名次是随参赛人数增长的基数的百分比 | f == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74) |
赌注级别示例显示了为什么这两组很重要。它使用 b 和 c,它们看起来相似但位于相反的一侧:添加 b 会提升更高买入锦标赛中的每个分数,因为买入属于锦标赛,而减去 c 会扣除每位玩家个人花费的份额。重购两次的玩家比在相同名次只用一颗子弹的玩家获得的积分更少。
检查您的公式
联赛设置会在您输入时预览每个完赛名次的积分,因此您可以在保存之前查看奖励的形状。如果预览为空白,则公式尚未有效:检查是否缺少括号,或者积分表是否会在低名次时超出末尾。