注:kenco(第一部分作者)更新了他的帖子,该帖子在官方论坛有15页的回帖,而且很有技术含量.既然kenco根据回帖更新我也跟着更新.
Suppose a mob is attacking player 1. In order for the mob to switch to player 2, he must do more than just exceed the threat of player 1. If he is in melee range of the mob, he will draw aggro when he exceeds 110% of player 1's threat. If he is outside melee range of the mob, he will draw aggro when he exceeds 130% of player 1's threat.
假设一个怪物正在攻击玩家1. 为了让怪物目标变成玩家2,玩家2必须使自己仇恨远超过1.如果他在怪物的肉搏攻击范围内,他需要超过110%的1的仇恨;如果他在怪物的肉搏攻击范围之外,他需要130%的1的仇恨.
If player 2 has exceeded 110% threat but not 130% threat, they will draw aggro immediately if they do a threat-generating ability within melee range of the mob, but proximity alone will not cause the mob to shift to them.
如果玩家2仇恨在110%和130%之间,那么他在怪物肉搏攻击范围内使用一个仇恨技能就能立刻获得aggro,但只是接近怪物的话怪物是不会转移目标的.
Casting taunt causes three effects.
使用嘲讽后造成3个效果
A) The warrior is given as much threat as the person who currently has the mob's aggro. Obviously if the warrior has aggro, this will do nothing. Also, this effect will not lower the warriors threat. For example, if player 1 has 100 threat and aggro, a warrior could have 105 but not aggro; after taunt he would still be on 105 threat.
A)战士将获得当前得到怪物aggro的玩家的等量仇恨.显然如果这个战士本来就是目标,嘲讽将无意义,不过这个效果并不会降低战士的仇恨.例如如果玩家1有100仇恨并且获得aggro,战士可能有105仇恨但是没有aggro.那么战士使用嘲讽后还是有105的仇恨. B) The mob recalculates its actual aggro target. If the warrior was on the mob's hatelist before the original aggro target, the mob's actual aggro target will switch to the warrior. Otherwise, the mob will remember it's original target. B)怪物会重新计算谁成为当前aggro对象.如果战士在怪物仇恨列表的位置比嘲讽前那个aggro目标的位置靠前,那么这个战士将成为怪物的aggro对象,否则怪物会继续找以前那个目标.
C) The normal taunt debuff. The mob is forced to attack the warrior, even if the warrior is not its actual aggro target.
C)嘲讽的buff会强制怪物攻击战士,即使战士不是怪物真正的目标.
The threat that the warrior gains from (A) is permanent, regardless of the outcome of (B). Note that it will not necessarily give the warrior the equal highest threat on the mob. If player 1 has 100 threat and aggro, Player 2 has 109 threat but not aggro, and the warrior has 0 threat, then the warrior is given 100 threat, not 109, so he could easily lose aggro to Player 2 after taunting.
战士通过(A)获得的仇恨是永久的,而不管(B)的结果如何.注意战士获得的仇恨并不是怪物仇恨列表里最高那个.假如玩家1有100仇恨并且获得aggro,玩家2有109仇恨但是没有获得aggro,而战士有0仇恨,然后战士使用嘲讽后仇恨为100而不是109,因此他可能在嘲讽后失去aggro,而玩家2成为怪物目标
Let the tank pull! Then he will be first on all the mobs' hatelists, and his taunts will always return aggro to him.
让mt拉怪!他将在第一个出现在所有怪物的仇恨列表里,那么他的嘲讽将很容易获得aggro.
Given that targets at range will only draw aggro when they have more than 130% of the mob's target's current threat, it's important for a tank to keep the mobs well away from the casters. If a healer does draw aggro and you taunt it off him, make sure you also move it away.
与怪物保持距离的目标需要超过当前目标130%的仇恨才能获得aggro,那么mt把怪物拉远离施法者将很重要.如果一个治疗人员ot了然后你嘲讽,那么请务必也将怪物拉远点.
**************************************************************************************************************************************************************
---翻译原文---
大家普遍认为我们永远无法解算出仇恨以及仇恨列表以及怪物的AI,因为这个系统复杂未知,所以我们只能推导和得到一些粗略的近似值.我做了一些正规严格的测试,并且得出了我认为很优秀的包括仇恨列表,对获得和失去aggro以及嘲讽的合理解释. 本文将揭开关于仇恨系统的神秘面纱.
1) 定义
我们定义aggro为怪物正在攻击的目标,我们定义“仇恨”为怪物对于每个玩家在仇恨列表中的量化数值。需要注意的是,如我们下面要讲的,任何一个怪物,在仇恨列表里最高位并不是取得aggro的必要条件。
我们定义1点无修正伤害产生1点仇恨
2) 如何取得aggro(aggro:成为boss的目标)- 超越10%仇恨
想使怪物目标转到一个新目标上,那么新目标必须超过现有目标对该怪物仇恨的10%. 例如:怪物正在攻击玩家x, x对怪物造成100伤害,然后停止. 玩家y开始攻击怪物,当造成110伤害后怪物开始攻击y.
实验:很容易的证明,2个玩家都自动攻击一个怪(不要是战士或者盗贼,等会说明更为复杂的东西),玩家1先造成一定数量的伤害然后停止,玩家2继续攻击直到他取得aggro。你可以得到一个带有上下限范围的仇恨来取得aggro---玩家1攻击到造成怪物aggro的最少伤害,使用最低攻击(比如空手攻击),你可以得到一个非常准确的10%。
以上只能用来描述普通怪,显然有些怪物有特殊技能忽略当时的仇恨或者aggro而攻击第2目标。
3) 战士姿态的仇恨修正
战斗和狂爆姿态,战士的所有仇恨值为80%.防御姿态为130%,如果有defiance天赋为145%。
实验:让一个战士在防御姿态造成1000伤害,且没有defiance.一个非战士职业通过普通攻击取得aggro,你将发现在造成1430伤害前aggro无法取得. 防御姿态战士的1000伤害达到了1300的仇恨,而10%的设置需要高于1430的伤害来获得aggro。
4) 仇恨不会随时间消退
仇恨不会消退.这里有测试数据. 战斗姿态战士对怪物造成83点伤害,取得了aggro. 从上我们知道需要造成83x0.8x1.1=73.04仇恨才能抢到aggro. 战士等待了5分钟在攻击,然后法师开始缓慢攻击. 法师造成73点伤害带市未能获得aggro.法师又造成了2点伤害后,取得了aggro.。从战士开始攻击到失去aggro,全过程一共用了496秒。
假设仇恨衰减达到最大(73是临界值的话). 法师只需要73.000000001仇恨来取得aggro. 然后战士仇恨从66.4衰减到66.36363636. 这意味着他在496秒里失去了99.945%的仇恨。
根据这个最大仇恨衰减率,这个战士仇恨衰减到90%需要26.5小时.实际上,如果一个战士在服务器开始时候登陆,在下个星期服务器维护时也无法衰减50%仇恨.我认为这个足够可以无视仇恨衰减了。
5) 战士技能产生的仇恨值
下面的列表不够全面,但是包括了战士的几个主要拉仇恨技能。
注:下面的数值排列顺序不分先后,实际上战士有1.3或者0.8或者1.45的修正,取决于姿态和天赋
注:带*的技能仇恨不包括伤害带来的仇恨,这个以后讨论。
破甲: 260 (258.0 - 260.8)
英勇*: 145 (143.9 - 148.8)
复仇*: 315 (313.9 - 318.3)
复仇昏迷: 25 (23.4 - 29.1)
盾击*: 180 (175.4 - 180.3)
盾牌猛击*: ?? 250 (estimated from Cop's data. More on that later)
盾档: 0 (0 - 0. Can be higher - more on this later)
雷霆一击*: 130 (126.9 - 134.8)
挫志吼叫: 43 (42.8 - 43.8)
6) 治疗,“你获得xxxx”等
每点治疗,无天赋修正情况下造成0.5的仇恨值,通过(2)的实验中一个只负责治疗的人证明。
注:过量治疗不被计算。,计算实际治疗量。这个很容易论证。
战斗日志里的“你获得x法力”每点获得0.5仇恨值,生命值也一样。喝药水等都算,但是人物的自然回复的那部分以及撒满图腾提供的回复都无仇恨。
和治疗一样,状态满时候增加不会造成仇恨。
7) 解释cop的关于4:1的伤害与治疗换算比率
cop通过测试得到一个规律:战士1点伤害仇恨=牧师4点治疗仇恨,以下分析原因:
战士在防御姿态,并且有defiance天赋:1.45修正
战士在防御姿态,并且有defiance天赋:1.45修正 战士获得aggro:1.1修正 牧师有discipline天赋:80%仇恨 治疗:每点增加0.5仇恨
综合:1.45x1.1/0.8/0.5=3.9875 非常接近4。
8) add的仇恨?
拉怪本身并不产生仇恨。无论在引到怪后我们等待多久,我们通过用身体引到怪产生aggro都只产生一个最小化的仇恨。而用攻击拉怪不影响(2)的测试结果。(意即为拉怪本身不产生额外仇恨,只有攻击制造的仇恨,计算量同(2)的测试结果)
9) 嘲讽
最初嘲讽被认为是随机且难解的,例如你嘲讽一个怪,然后什么都不做,这个怪会一直攻击你直到嘲讽debuff消失,看起来似乎是给了一个临时的仇恨,那么,这个实验将对此观点予以反驳:任意一个职业对怪造成1000伤害然后停止。然后一个战士嘲讽这个怪物,什么都不做等到嘲讽debuff消失。怪物将会重新攻击开始那个玩家,此时战士开始做各种表情等等来拖段时间(当然不能太长以免他的伙伴挂了)然后战士用普通攻击直到他获得aggro。你将发现防御姿态切有defiance的战士在达到69伤害后开始获得aggro,战斗姿态则需要125伤害。
当你想到10%规则后会发觉嘲讽原理如此简单! 它将给你永久仇恨使你位于仇恨列表顶端,但并不给你aggro需要的10%仇恨,在debuff存在下让你获得临时的aggro!如果你什么都不做,你的仇恨将停留在怪物之前目标的仇恨数值上,并且失去aggro。仍需要相当的努力,才能获得aggro。
嘲讽可以被描述为“临时的aggro,永久的仇恨” 很容易就证明嘲讽不是给战士一个恒量的仇恨值:玩家1拉一个怪,但是不攻击他,那么此时他仇恨为0,但是他有aggro。然后一个战士嘲讽,什么都不做,3秒后战士将失去aggro。此时战士仇恨是0,但是根据10%规则,他没有大于0的仇恨值来获得aggro。
10) 推论
获得aggro,根据10%规则,你失去了aggro,必然有人造成了至少相当于你110%的仇恨值。为了拉回目标,你最少需要那个人110%的仇恨值,或者121%你自己的当前仇恨值。因此不要失去aggro,想拉回来很难。
嘲讽会把你移到仇恨列表最高位置,因为它带来的是永久仇恨。你不攻击而别人攻击怪物的时间越长,你通过嘲讽获得的仇恨就越多,但是根据10%规则,你需要在怪物转移目标前做大量事情来获取aggro。
英勇打击不是主仇恨技能。假设你在tank一个62级的怪,它有8000护甲,并且有5个破甲效果,然后实际为5750的护甲,因此他将受到48.89%的伤害。 15%的致命一击率并受到防御姿态10%的伤害调整,以及10%的格挡率格挡50%伤害。那么你可以预算HS造成的138伤害换算成67.5的平均伤害。最高212的无修正仇恨值。可是仍然只有1个破甲的82%仇恨效果。即使是1.3攻击速度的武器,仍然只有94%的破甲的TPS。(月猪:罗嗦半天就是说破甲比hs更好拉怪)
实际效果最好是破甲和hs一起使用来消耗掉过量的怒气
复仇,通过复仇可以获得345的无修正仇恨值,还有伤害造成的仇恨,这一切只需要少量的怒气,甚至已经花费10怒用在盾挡上。但是在盾挡上消耗怒气,承受伤害也下降了。2次格挡180伤害你可以跟4怒气说再见了。
挫志吼叫,1/6的破甲仇恨值。即便是防御姿态+defiance天赋,降低每个怪42dps也无法带来更多仇恨。除非了黑龙蛋的那些小龙和zg里的一些豹子,真看不出有什么理由用这个技能。
盾牌猛击,6秒的cd,使用盾牌猛击无法对TPS有任何改善。3破甲1盾牌猛击每6秒,大概212的无修正TPS。但是30怒的盾牌猛击可以使用1破甲和1.2的英勇,假设你有盾牌猛击天赋(无论你怎样的天赋树结构),每次英勇都从普通攻击中损失3怒。4破甲1.2英勇每6秒带来215点TPS。
唯一的好处是,当你一直在使用破甲和英勇打击,仍然希望获得更多的仇恨。
假设我们使用一个2s攻击速度的武器,英勇打击和破甲一直使用,这大概造成280的仇恨/秒。
如果把一个破甲换成盾牌猛击将给我们提供318点的额外怒气。当然,这个效果也可以通过换成1个1.4秒攻击速度的武器而更频繁的使用英勇打击来实现。但是,这个结果并没有考虑自动攻击的伤害造成的仇恨,实际上,使用一个1.4速度的武器,会使自动攻击的仇恨变小一些。
实际上,BLZ的怪物攻击目标的计算公式并没有什么特别秘密的计算方法。这个概念是很简单的,数值也很容易计算。甚至仇恨建立的数值和公式,也可以准确地计算出来----如果仇恨被很仔细的监视着。
好吧,我希望你们之中的有些人还是清醒的,能够从我的文章中发现一些有价值的东西。如果你。不好好看而只是扫了一遍,我鄙视你
|