一种英雄联盟召唤师战力值算法
TL;DR
一个玩家的战力值由排位分,游戏分,英雄分加其他分数组成。
前言
最近尝试计算出对局开始时一个玩家的战力值,顾名思义就是用数值描述这个玩家的能力。初步得出基于排位分 + 游戏分 + 英雄分 + 其他因素的计算公式。
排位分
段位越高的玩家自然表示能力越强,排除代练,买号,代打等情况。以前的 Rank 分就是说明,不过现在 Rank 分被段位取代了,所以这里的排位分模拟 Rank 分。
排位分是一个玩家的基础分数,是决定玩家战力高低的根本,没有定级的玩家会有一个默认分数。
一种情况是以前的段位比现在高,但是本赛季还没有达到之前的段位,这种情况下会补偿一些分数,表示当前段位不是真实实力。
另一种情况是以前最高段位比现在低,说明当前的实力上升,这种情况会取当前段位作为计算基础。
游戏分
根据玩家最近游戏表现计算,有多种计算维度,获取金钱,补兵数,参团率,伤害占比,KDA 等因素。计算最近 10 局游戏的数据,大乱斗和峡谷数据区分。每一局游戏默认 100 分,再根据玩家的数据进行加减,每种因素对一局游戏的影响力不同,所以分值也不同。
计算因子
- 获得金钱
- 获得经验
- 获得击杀
- 参团率
- 伤害量
- 承伤量
- 治疗量
- KDA
- 助攻
- 死亡数
…
英雄分
玩家的英雄熟练度越高分值越高,同时根据英雄当前版本的层级进行加减分。
如果没有熟练度,说明是练英雄,那么英雄分将是负分。
其他因素
超过多久没玩游戏战力减少,AFK 时间越长战力减少越多;
组队因素,如果有组队战力值增加;
分路变化,不熟悉的位置战力减少;
连败连胜,连胜加分,连败减分
模式变化 大乱斗 -> 峡谷 战力减少; 特殊模式 -> 峡谷 战力减少;
总结
这个计分方式只是个人研究所得,属于抛砖引玉之作,不足之处欢迎指出,如有更好的方案欢迎联系作者讨论。
参考
https://minihat.github.io/LoL-Match-Prediction
https://github.com/real-web-world/hh-lol-prophet/blob/main/%E8%AE%A1%E5%88%86%E6%96%B9%E5%BC%8F.md