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数值分析的更多相关文章

  1. 数值分析之奇异值分解(SVD)篇

    在很多线性代数问题中,如果我们首先思考若做SVD,情况将会怎样,那么问题可能会得到更好的理解[1].                                       --Lloyd N. ...

  2. 数值分析1:三角函数的计算(C语言实现)

    之前学习C语言的时候,一直有个疑问,计算机从芯片设计的角度来看,只能计算常规的加减乘及移位之类的操作,那么对于像sin .cos这些三角函数,人脑尚无可以直接运算的法则,那么计算机是怎么实现的呢?最近 ...

  3. 开源Math.NET基础数学类库使用(06)数值分析之线性方程组直接求解

    原文:[原创]开源Math.NET基础数学类库使用(06)数值分析之线性方程组直接求解 开源Math.NET基础数学类库使用系列文章总目录:   1.开源.NET基础数学计算组件Math.NET(一) ...

  4. 【数值分析】误差的分析与减少及Matlab解线性方程的四种方法

    1.误差的来源 模型误差:数学模型与实际问题之间的误差 观测误差:测量数据与实际数据的误差 方法误差:数学模型的精确解与数值方法得到的数值解之间的误差:例如 舍入误差:对数据进行四舍五入后产生的误差 ...

  5. 「学习记录」《数值分析》第二章计算实习题(Python语言)

    在假期利用Python完成了<数值分析>第二章的计算实习题,主要实现了牛顿插值法和三次样条插值,给出了自己的实现与调用Python包的实现--现在能搜到的基本上都是MATLAB版,或者是各 ...

  6. 数值分析-Legendre正交多项式 实现函数逼近

    数值分析-Legendre正交多项式 实现函数逼近 2016年12月18日 21:27:54 冰三点水 阅读数 4057   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请 ...

  7. 数值分析实验之曲线最小二乘拟合含有噪声扰动(python实现)

    一.实验目的 掌握最小二乘法拟合离散数据,多项式函数形式拟合曲线以及可以其他可以通过变量变换转化为多项式的拟合曲线目前待实现功能: 1. 最小二乘法的基本实现. 2. 用不同数据量,不同参数,不同的多 ...

  8. 数值分析案例:Newton插值预测2019城市(Asian)温度、Crout求解城市等温性的因素系数

    数值分析案例:Newton插值预测2019城市(Asian)温度.Crout求解城市等温性的因素系数 文章目录 数值分析案例:Newton插值预测2019城市(Asian)温度.Crout求解城市等温 ...

  9. 数值分析:幂迭代和PageRank算法

    1. 幂迭代算法(简称幂法) (1) 占优特征值和占优特征向量 已知方阵\(\bm{A} \in \R^{n \times n}\), \(\bm{A}\)的占优特征值是量级比\(\bm{A}\)所有 ...

随机推荐

  1. gradle 跳过junitTest的方法

    Web项目中不长会写JunitTest,但也会写.gradle build的时候回执行test 这项task.如果想跳过,通常有几种方法: 1.在build.gradle 文件中禁用task test ...

  2. 05-树8 File Transfer(25 point(s)) 【并查集】

    05-树8 File Transfer(25 point(s)) We have a network of computers and a list of bi-directional connect ...

  3. EASYARM-IMX283 制作ubifs文件系统

    ubifs主页:http://www.linux-mtd.infradead.org/doc/ubifs.html nandflash上常用的文件系统有jffs2.yaffs和ubifs,其中ubif ...

  4. jquery 用addClass之后 class有对应的事件,为什么要重新绑定一下事件呢

    假设有元素A,B,C,其中A和B都有class属性cls,如果在页面加载完成时,给具有class属性为cls的元素绑定某一事件,例如click,执行事件时调用alert.也就是说,页面加载完成后A和B ...

  5. 鸟哥的linux私房菜 - 第5/6/7/9章(在线求助 man page、Linux档案权限与目录配置、Linux档案与目录管理、压缩与打包)

    第五章.在线求助 man page X window与文本模式的切换 Ctrl+Alt+F1~F6:文字接口登入tty1~tty6终端机: Ctrl+Alt+F7:图形接口桌面. 注销当前用户:exi ...

  6. BZOJ 3709 [PA2014]Bohater:贪心【反过来考虑】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3709 题意: 在一款电脑游戏中,你需要打败n只怪物(从1到n编号). 为了打败第i只怪物, ...

  7. (转)MongoDB和Redis区别

    简介 MongoDB更类似Mysql,支持字段索引.游标操作,其优势在于查询功能比较强大,擅长查询JSON数据,能存储海量数据,但是不支持事务. Mysql在大数据量时效率显著下降,MongoDB更多 ...

  8. 树莓派与 Python —— GPIO

    首先来直观地认识树莓派提供的 40 个引脚(GPIO,general purpose i/o,接收外界输入,并向外界提供运算处理后的输出): 1. 安装 从远程库(repositories)中下载安装 ...

  9. yum 命令用法

    [root@hdp01 ~]# yum list available |grep ambari  ######列出可安装的程序包ambari-infra-solr.noarch 2.6.1.5-3 a ...

  10. aoj 0118 Property Distribution

    タナカ氏が HW アールの果樹園を残して亡くなりました.果樹園は東西南北方向に H × W の区画に分けられ.区画ごとにリンゴ.カキ.ミカンが植えられています.タナカ氏はこんな遺言を残していました. ...