并不是很bad的news,所以也不用太紧张
这个帖子涉及技术问题,我尽量简单的说,如果看不懂也不要紧,直接看结论也成
在早先,每个玩家只有一个条,或者是能量,蓝,怒气,在系统里统一表示为UnitMana(或者UnitPower,两个名字,但是同一个值) 即 目标的法力(能量)
只有德鲁伊不同
所有职业的属性里都存在一个UnitMana2,但是对于其它职业来说,这个值是完全用不到的
而这个值表示德鲁伊变形后的能量或者怒气
每当德鲁伊变形的时候,UnitMana和UnitMana2会在服务器端交换位置,而在客户端,也就是玩家这边看来,就相当于换了一个条子
这个从程序角度上表明,德鲁伊从最初被设计的时候,就有英雄职业的待遇------有一个专有的储存变量,并且也连带让其它职业也有了一个专有的变量,虽然它们用不到
---->这个机制,通俗点讲,就是,在不变形的时候,德鲁伊只有一个条,而变形的瞬间,会计算出一个额外的条给德鲁伊用
所以老版本激怒,是德鲁伊在变猫的时候,生成40点能量,正是对应这个机制的
但是也有相应的bug,比如说这个计算会有微小的延迟,所以激怒之后不会立即获得能量/怒气
在2.x版本里,客户端,也就是插件运行的时候,只能查询到一个值,就是当前形态下的蓝/怒气/能量值
所以2.x版本里,变形后显示蓝条的插件,实际上是根据变形之前的蓝和精神回蓝以及5秒规则,估算出来的值
这个值并不精确,尤其在有暗牧/智慧审判的时候
而在3.x版本里,整个计算方式被完全重做了,托德鲁伊的福,所有职业现在都有了3个条分别是UnitPower(,0);UnitPower(,1);UnitPower(,2)
当然其它职业(包括dk)永远只能用到其中的一个条
但是德鲁伊可以用到3个
--->这个设计,通俗一点讲,就是德鲁伊不论在哪个形态都拥有完整的3个条,无论是否变形
所以新的激怒变成,德鲁伊变形的时候,最多保留100点能量,这个是对应机制的改变
这个机制没有延迟,因为没有换条的操作,所以变形会很平滑,变形也会立即获得怒气/能量
新的机制下,客户端可以通过和上面相同的命令来直接查询怒气/蓝/能量,也就是说,插件再也不用[估算]变形后的蓝了,而是可以直接用一个函数去获得准确的值
但是有一个小小的缺陷,只有当前形态的能量/蓝是0.1秒更新一次,而不是当前形态的时候,比如熊形态的时候,能量和蓝是2秒更新一次--------不过不用担心,只是这么显示而已,当你变过去的时候它会马上更新成准确的值
所以我们是有3个条的人了,怒,蓝,能量,加上血量是4个,如我的头像
我们实际上从一开始就是英雄职业,至少从程序设计角度是这样的,blz背地里最喜欢我们,嗯...虽然表面上一点也看不出来
bad news是,不仅仅可以查询自己,也可以查询别人
3.0对单位的血量和蓝量(或者能量怒气)都没有隐瞒,所以mobhealth这种显示怪物玩家血量(实际上是也估算值)的插件再也用不到了,直接就可以查询到精确数值
虽然默认的头像框体并不显示额外的两个条,但是实际上如果插件去要求的话,可以得到准确的值
也就是说,一个简单的目标头像插件就可以显示出目标德鲁伊的所有4个条,正如同这个德鲁伊专用的头像插件的效果
也就是说,即使在熊形态,别人也可以看到准确的蓝和能量值,正如它看到怒气和血量那么精确
与玩家有关的结论:
好消息:我们有4个条,头像插件显示蓝条更精确,变形之后立即获得怒气/能量,不再有延迟
坏消息:不论什么形态都无法隐瞒蓝和能量的具体数值,如果其它人感兴趣的话