LOL数值分析
http://blog.sina.com.cn/s/blog_704133cb01018hud.html
为了从理论层面提高自己打《英雄联盟》的水平,再加上自己也有这方面的兴趣,所以我最近研究了一下英雄联盟中的一些数值计算公式,不算很系统,主要是自己的一些试验跟网上查的资料总结,仅仅面向菜鸟,大神勿喷。
首先介绍一下大家都很喜欢的一件装备:耀光。耀光的被动相当犀利,每次释放技能后下一次攻击基础攻击力提升100%,这里的计算是这样的,如果单位的基础攻击力是A,身上有一把长剑加B攻击力,那么下一击的单位打出的伤害是A*(1+100%)+B,也就是说B不计入提升内,当然这也不是敌人实际扣的血量,因为对方还有物理防御。
另外一个有趣的数值是躲闪几率,虽然现在已经被LOL设计者砍掉,主要是带躲闪的英雄过于变态吧(怀念一下我最爱的武器大师),但在很多游戏里都会有躲闪几率,躲闪几率的计算公式符合效果递减:如果单位本身躲闪几率是a,物品提供b,那么最终躲闪几率是a+b-a*b,其中a,b是小于等于1的正数。
相信与吸血鬼对过线的玩家都非常讨厌他的吸血技能,那么吸血效果是如何计算的呢?吸血效果受物理跟魔法抗性的影响(看你的是物理吸血还是法术吸血了)。例如你打出了100点物理伤害,对方有10%物理减伤,那你造成的实际伤害是90点,如果你的物理吸血效果是10%,那么可以吸取9点血。吸血效果的好处是没有上限而且可以叠加,所以可以获得超过100%的吸血。
接下来是护甲与魔抗,网上很多都把护甲与魔抗转换成血量来估计收益,例如100点护甲相当于原有血量x2,200点护甲相当于x3,其实我觉得这样不够直观,因为你这样没法一次性算到一次打在你身上100点的物理伤害在你护甲100时你实际上扣了多少血。我研究了一下其实公式很简单,假设护甲为n点,物理免伤百分比x=1/(1+n/100),也就是说如果护甲为100点物理免伤为50%,护甲为300点物理免伤为25%(也就是说100点伤害最终只扣你血的25点)。魔抗的计算也是一样的。
既然有了护甲与魔抗,自然也少不了护甲穿透与法术穿透。以护甲穿透为例,如果你有15点护甲穿透,如果敌人护甲为n,就相当于对方的护甲减少了15点,也就是n-15;如果你有40%护甲穿透,就相当于对方护甲为n*(1-40%)。这也引发了一个有趣的问题,如果单位身上拿着一把残暴(+15点护甲穿透)和一张穿甲弓(+40%护甲穿透),那么对方的护甲值最终是(n-15)*40%还是n*40%-15呢?于是我做了一个实验,如下图,
LOL《英雄联盟》数值分析
其中蓝色巨像的护甲为20,如果公式2是正确的,20*40%-15<0,那么巨像的护甲应该为0而我此时造成的伤害应该是154,与我的攻击力一样才对。但得出的结果是149,所以我们先通过公式1求出护甲为n=(20-15)*40%得3,把n=3带入上面说的护甲免伤公式即造成的伤害:154*(1/(1+n/100))=149.514,符合我们的实验结果,所以公式1是正确的。游戏设计者这样设计也很合理,因为残暴是对护甲低的单位收益大,穿甲弓是针对护甲高的单位收益大,公式1的设计符合这个思想,而公式2的设计会让护甲降低一大截以后再扣护甲值,这样的话残暴这件前中期装备在后期也显得太变态了。
最后说说移动速度,假设单位原来的移动速度300,如果买了一双+70移动速度的鞋,那么速度自然是370。这没什么特别的,有意思的是移动速度有收益递减,在LOL里面当单位的移动速度超过475后,每点移动速度的收益将减少50%。所以如果单位的最终移动速度是700,那么它的实际移动速度将被减为475+(700-475)*0.5=587。当单位的移动速度值超过400后,每点移动速度的收益将减少20%。所以如果在所有因素的作用下,你最终的移动速度是430,那么实际移动速度将是400+30*0.8=424。
以上分析是根据我自己的实验分析以及查阅网上资料总结得出,通过这样的分析确实对LOL有了更深入的了解,也更了解设计者的意图。文章有点长,仅供参考以及自娱自乐。
英雄联盟中攻速计算为直接加成。
比如:幻影之舞装备介绍中为增加50%攻速,就是在原始攻速上直接增加0.5的攻击速度。
原始为0.65攻速,装备幻影之舞后就为0.65+0.5=1.15攻击速度。
英雄联盟中攻击速度是以秒为单位,攻击速度1代表每秒攻击1次。
英雄攻击速度上限值为2.5。
假设英雄初始攻速0.65,每级成长4%,出了攻速鞋25%,红叉50%,破败40%,等级18级,则其攻速为V=0.65×(1+0.25+0.5+0.4)+18×0.04=2.1175=2.12
LOL攻速问题讨论贴
https://tieba.baidu.com/p/3417419390
LOL数值分析的更多相关文章
- 数值分析之奇异值分解(SVD)篇
在很多线性代数问题中,如果我们首先思考若做SVD,情况将会怎样,那么问题可能会得到更好的理解[1]. --Lloyd N. ...
- 数值分析1:三角函数的计算(C语言实现)
之前学习C语言的时候,一直有个疑问,计算机从芯片设计的角度来看,只能计算常规的加减乘及移位之类的操作,那么对于像sin .cos这些三角函数,人脑尚无可以直接运算的法则,那么计算机是怎么实现的呢?最近 ...
- 开源Math.NET基础数学类库使用(06)数值分析之线性方程组直接求解
原文:[原创]开源Math.NET基础数学类库使用(06)数值分析之线性方程组直接求解 开源Math.NET基础数学类库使用系列文章总目录: 1.开源.NET基础数学计算组件Math.NET(一) ...
- 【数值分析】误差的分析与减少及Matlab解线性方程的四种方法
1.误差的来源 模型误差:数学模型与实际问题之间的误差 观测误差:测量数据与实际数据的误差 方法误差:数学模型的精确解与数值方法得到的数值解之间的误差:例如 舍入误差:对数据进行四舍五入后产生的误差 ...
- 「学习记录」《数值分析》第二章计算实习题(Python语言)
在假期利用Python完成了<数值分析>第二章的计算实习题,主要实现了牛顿插值法和三次样条插值,给出了自己的实现与调用Python包的实现--现在能搜到的基本上都是MATLAB版,或者是各 ...
- 数值分析-Legendre正交多项式 实现函数逼近
数值分析-Legendre正交多项式 实现函数逼近 2016年12月18日 21:27:54 冰三点水 阅读数 4057 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请 ...
- 数值分析实验之曲线最小二乘拟合含有噪声扰动(python实现)
一.实验目的 掌握最小二乘法拟合离散数据,多项式函数形式拟合曲线以及可以其他可以通过变量变换转化为多项式的拟合曲线目前待实现功能: 1. 最小二乘法的基本实现. 2. 用不同数据量,不同参数,不同的多 ...
- 数值分析案例:Newton插值预测2019城市(Asian)温度、Crout求解城市等温性的因素系数
数值分析案例:Newton插值预测2019城市(Asian)温度.Crout求解城市等温性的因素系数 文章目录 数值分析案例:Newton插值预测2019城市(Asian)温度.Crout求解城市等温 ...
- 数值分析:幂迭代和PageRank算法
1. 幂迭代算法(简称幂法) (1) 占优特征值和占优特征向量 已知方阵\(\bm{A} \in \R^{n \times n}\), \(\bm{A}\)的占优特征值是量级比\(\bm{A}\)所有 ...
随机推荐
- Yii 框架 URL路径简化
Yii 框架的訪问地址若不简化会让人认为非常繁琐.未简化的地址一般格式例如以下: http://localhost:80/test/index.php?r=xxx/xxx/xxx 若是带有參数会更复杂 ...
- Spring Boot 支持多种外部配置方式
Spring Boot 支持多种外部配置方式 http://blog.csdn.net/isea533/article/details/50281151 这些方式优先级如下: 命令行参数 来自java ...
- Android 虚拟机 程序安装目录
Android应用安装涉及到如下几个目录:system/app系统自带的应用程序,无法删除.data/app用户程序安装的目录,有删除权限.安装时把apk文件复制到此目录.data/data存放应用程 ...
- com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '88888888' for key 'PRIMARY'
严重: Servlet.service() for servlet jsp threw exceptioncom.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityC ...
- Maximum Subsequence Sum 【DP】
Given a sequence of K integers { N1, N2, -, NK }. A continuous subsequence is defined to be ...
- 多线程(三) iOS中的锁
锁的类别:互斥锁,递归锁,条件锁,自旋锁等 锁的实现方式:NSLock,NSRecursiveLock, NSConditionLock,@synchronized,GCD的信号量等 下面说一下常用的 ...
- loader与plugin,module与chunk,compiler与compilation
loader将各类型的文件转为webpack能处理的有效模块(module) 插件处理范围更广的任务,例如打包优化.压缩等 module程序的离散功能块,一个文件对应一个module chunk若干m ...
- valgrind报错VEX temporary storage exhausted
valgrind的使用请参考: 使用valgrind进行内存泄漏和非法内存操作检测 最近在使用valgrind进行内存泄漏检测是时,竟然报错,如下: VEX temporary storage exh ...
- POJ1625 Censored! —— AC自动机 + DP + 大数
题目链接:https://vjudge.net/problem/POJ-1625 Censored! Time Limit: 5000MS Memory Limit: 10000K Total S ...
- 分布式任务调度平台XXL-Job搭建
下载: https://github.com/xuxueli/xxl-job 下载 然后倒入到自己的工程里面 引入后: 导入数据:跑一边 导入: 修改: Window -->show view- ...