找回密码
 点一下
查看: 3004|回复: 2

转一篇关于WOW的仇恨系统的文章.

[复制链接]
发表于 2006-4-2 13:08:44 | 显示全部楼层 |阅读模式
大家普遍认为我们永远无法解算出仇恨以及仇恨列表以及怪物的AI,因为这个系统复杂未知,所以我们只能推导和得到一些粗略的近似值.我做了一些正规严格的测试,并且得出了我认为很优秀的包括仇恨列表,对获得和失去aggro以及嘲讽的合理解释. 本文将揭开关于仇恨系统的神秘面纱.
1) Definitions 定义


我们定义aggro为怪物正在攻击的目标,我们定义“仇恨”为怪物对于每个玩家在仇恨列表中的量化数值。需要注意的是,如我们下面要讲的,任何一个怪物,在仇恨列表里最高位并不是取得aggro的必要条件。

We define arbitratily that 1 point of unmodified damage gives 1 point of threat.
我们定义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) Threat modifiers from Warrior Stances 战士姿态的仇恨修正

战斗和狂爆姿态,战士的所有仇恨值为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) 战士技能产生的仇恨值

the following list is not exhaustive, but includes all the major tanking abilities.
下面的列表不够全面,但是包括了战士的几个主要拉仇恨技能。
Note: the following values are given in raw terms. In reality the warrior must have either a 1.3 or 0.8 or 1.45 modifier on these, depending on his stance and talents.
注:下面的数值排列顺序不分先后,实际上战士有1.3或者0.8或者1.45的修正,取决于姿态和天赋
Note: * All abilities do not include threat generated by their damage. This will be discussed more later.
注:带*的技能仇恨不包括伤害带来的仇恨,这个以后讨论。
破甲: 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) Healing, "you gain x ___", etc 治疗,“你获得xxxx”等

Each point of healing, when completely unmodified by talents, gives 0.5 threat. Replace the proof for (2) by the second person only healing.
每点治疗,无天赋修正情况下造成0.5的仇恨值,通过(2)的实验中一个只负责治疗的人证明。

Note: overhealing doesn't count, only the actual amount healed. This is easy to demonstrate.
注:过量治疗不被计算。,计算实际治疗量。这个很容易论证。
Abilities that put "you gain x mana" in the combat log give 0.5 threat per point gained; life is the same. Examples would be drinking potions, but not natural regen, or the Shaman's mana spring totem.
战斗日志里的“你获得x法力”每点获得0.5仇恨值,生命值也一样。喝药水等都算,但是人物的自然回复的那部分以及撒满图腾提供的回复都无仇恨。
Abilities that put "you gain x rage" in the combat log give 5 threat per point gained. However, this is not modified by warrior stance. Such abilities include bloodrage, improved blocking talent, unbridled wrath, and 5/8 Might.
战斗日志里“你获得x点怒气”每点获得5点仇恨值。但是,这些不会因为战士姿态而修正。获得怒气的技能包括包括嗜血狂怒,增强盾挡天赋,无尽怒气,5件力量套等。
Like healing, these only give threat if you are below the maximum.
和治疗一样,状态满时候增加不会造成仇恨。

7) Explaining Cop's 4.0 damage to heal ratio 解释cop的关于4:1的伤害与治疗换算比率

Cop stated that in his tests, each point of damage by the warrior took approximately 4 points of healing by the priest, for the priest to get aggro. Here's how:
cop通过测试得到一个规律:战士1点伤害仇恨=牧师4点治疗仇恨,以下分析原因:

Warrior in defensive stance, with defiance: 1.45 multiplier
Gaining aggro from Warrior: 1.1 multiplier
Priest with discipline: 80% threat
Healing: each point gives 0.5 threat
战士在防御姿态,并且有defiance天赋:1.45修正
战士获得aggro:1.1修正
牧师有discipline天赋:80%仇恨
治疗:每点增加0.5仇恨
Together, 1.45 * 1.1 / 0.8 / 0.5 = 3.9875. Pretty darn close to 4.
综合:1.45x1.1/0.8/0.5=3.9875 非常接近4。


8) Threat from pulling? add的仇恨?
拉怪本身并不产生仇恨。无论在引到怪后我们等待多久,我们通过用身体引到怪产生aggro都只产生一个最小化的仇恨。而用攻击拉怪不影响(2)的测试结果。(意即为拉怪本身不产生额外仇恨,只有攻击制造的仇恨,计算量同(2)的测试结果)

9) Taunt 嘲讽

.
最初嘲讽被认为是随机且难解的,例如你嘲讽一个怪,然后什么都不做,这个怪会一直攻击你直到嘲讽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) Implications 推论

.
获得aggro,根据10%规则,你失去了aggro,必然有人造成了至少相当于你110%的仇恨值。为了拉回目标,你最少需要那个人110%的仇恨值,或者121%你自己的当前仇恨值。因此不要失去aggro,想拉回来很难。


嘲讽会把你移到仇恨列表最高位置,因为它带来的是永久仇恨。你不攻击而别人攻击怪物的时间越长,你通过嘲讽获得的仇恨就越多,但是根据10%规则,你需要在怪物转移目标前做大量事情来获取aggro。

a sunder would give. Even with a 1.3 speed weapon, you will still do 94% the threat of sunder per time interval.
英勇打击不是主仇恨技能。假设你在tank一个62级的怪,它有8000护甲,并且有5个破甲效果,然后实际为5750的护甲,因此他将受到48.89%的伤害。 15%的致命一击率并受到防御姿态10%的伤害调整,以及10%的格挡率格挡50%伤害。那么你可以预算HS造成的138伤害换算成67.5的平均伤害。最高212的无修正仇恨值。可是仍然只有1个破甲的82%仇恨效果。即使是1.3攻击速度的武器,仍然只有94%的破甲的TPS。(月猪:罗嗦半天就是说破甲比hs更好拉怪)

Best practice is to spam sunder, and use HS in between to soak up excess rage.
实际效果最好是破甲和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速度的武器,会使自动攻击的仇恨变小一些。
发表于 2006-4-2 13:11:00 | 显示全部楼层
请注明是转自哪里。
回复

使用道具 举报

发表于 2006-4-3 15:52:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-22 10:01 , Processed in 0.056476 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表