D2BarbarianIAS Whirlwind:修订间差异

跳转到导航 跳转到搜索
添加4,850字节 、​ 2025年3月17日 (星期一)
无编辑摘要
无编辑摘要
第8行: 第8行:
注意:旋风的实际攻击范围两把武器时仅以主手武器为准<br>
注意:旋风的实际攻击范围两把武器时仅以主手武器为准<br>
[https://maxroll.gg/d2/d2planner/ D2R攻速计算网站maxroll]
[https://maxroll.gg/d2/d2planner/ D2R攻速计算网站maxroll]
此网站计算D2R单手或双持武器时旋风能上3F与视频中说的重置版最高4F不相符所以待验证<br>
此网站计算D2R单手或双持武器时旋风的3F情况请查看最下面的原理计算<br>
另外视频中说的原版双手武器要>=60应该有误实际上根据计算器来说应该是59就行了<br>
另外视频中说的原版双手武器要>=60应该有误实际上根据计算器来说应该是59就行了<br>


第26行: 第26行:
注意:两把武器时副手武器也要达到4F不然主手砍两刀副手才砍一刀(4F+4F+8F)/3~=5.3F<br>
注意:两把武器时副手武器也要达到4F不然主手砍两刀副手才砍一刀(4F+4F+8F)/3~=5.3F<br>


= <span class=d2-white>D2R旋风攻速计算法 =
= <span class=d2-white>D2R重置版旋风攻速计算法 =
D2R在2.4.3版本之后改为了较为复杂的通用公式:<br>
D2R在2.4.3版本之后改为了较为复杂的通用公式:<br>
<span class=d2-red>最终攻速=状态攻速+120*(装备攻速+武器攻速)/(120+装备攻速+武器攻速)- 底材攻速</span><br>
<span class=d2-red>最终攻速=状态攻速+120*(装备攻速+武器攻速)/(120+装备攻速+武器攻速)- 底材攻速</span><br>
第165行: 第165行:
第17帧遇敌,又为4f,17-21-25-29-……。
第17帧遇敌,又为4f,17-21-25-29-……。
以上过程直到某个攻击帧时失去敌人,此时又开始4f-6f的循环。</poem>
以上过程直到某个攻击帧时失去敌人,此时又开始4f-6f的循环。</poem>
= <span class=d2-white>D2R重置版旋风攻速计算原理 =
<poem>作者:食不言
20220705更新:
更新了ww计算公式。更正了之前野蛮人部分档位的si。增加了刺客使用混沌ww的si(刺客ww公式和si待实测验证)。
根据github上warren1001和ubeogesh的讨论,ww使用FrameDataActionFlag参数计算旋风档位。
则旋风(ww)的最终计算公式为:
FPA=[256*FrameDataActionFlag/[AnimationSpeed*(1+SI/100)]],其中:
野蛮人使用单手武器(使用双手剑按单手武器计算)的FrameDataActionFlag为7;
野蛮人使用其他双手武器的FrameDataActionFlag为9;
野蛮人的AnimationSpeed均为256。
刺客使用爪类武器的FrameDataActionFlag为6,AnimationSpeed为208。
公式形式与我前面所推测的完全一致。
进而得到最新的SI档位表如下:
[[File:D2R旋风最新的SI档位表.png]]
其中:SI=SIAS+EIAS-WSM
SIAS包括狂热、狂乱等技能提速,以及衰老、减速等效果。
EIAS=120*ias/(120+ias),ias为该武器提速+非武器提速。
WSM是武器基础攻速,幻化为-30。
双持两把武器时,分别计算档位,然后取平均值再向上取整。
github上ChthonVII在讨论roundup还是rounddown的问题。其实这个问题并不本质。
因为:
<span class=d2-red>公式只是用来模拟游戏的情况,只要能够完美模拟游戏对应的帧数就够了。
游戏里实际计算并不是用rounddup和rounddown这种函数去计算帧数的,而是用counter去计算的。</span>
举个例子,野蛮人单手武器需要si=1才能达到6帧,而如果按照以前的公式模式则si=0即可达到6帧。
这里面的区别其实很简单,就是对counter判断时从≥变为>。
以前公式的游戏内部计算过程:
AnimationSpeed = 256
FramePerDirection = 7( Aframe从00到06,共7个Aframe)
BaseRate = 100
SpeedIncrease = 0
Terminating_value = 256* FramePerDirection = 256*7 = 1792
Increment = [AnimationSpeed * (BaseRate + SpeedIncrease) / 100] = 256*(100 + 0) / 100=256*100/100 = 256
从0开始计数,动作开始
Game tick 1
counter增加, counter=256
counter < 1792 动作继续
Aframe = 01(看上面的对照表counter=256时,Aframe = 01)
Game tick 2
counter增加, counter=512
counter < 1792
Aframe = 02  
Game tick 3
counter增加, counter=768
counter < 1792
Aframe = 03
Game tick 4
counter增加, counter=1024
counter < 1792
Aframe = 04
Game tick 5
counter增加, counter=1280
counter < 1792
Aframe = 05
Game tick 6
counter增加, counter=1536
counter < 1792
Aframe = 06
Game tick 7
counter增加, counter=1792
<span class=d2-red>counter>=1792</span>
动作结束,寻找下一个动作,counter重新计数,下一个动作从这个tick开始。(因此实际为6个tick,即6帧。)
<span style="color:#f46b63;">新旋风的前6个tick与上面基本相同,只是counter < 1792变为counter ≤ 1792</span>
Game tick 7
counter增加, counter=1792
counter <=1792
Aframe = 07
Game tick 8
counter增加, counter=2048
<span class=d2-red>counter>1792</span>
动作结束,寻找下一个动作,counter重新计数,下一个动作从这个tick开始。(因此实际为7个tick,即7帧。)
总之,帧数计算结束的条件从<span class=d2-red>counter>=256*FramePerDirection</span>变为<span class=d2-red>counter>256*FramePerDirection</span>,
所以导致si=0时由原来的6帧变为7帧。必须si=1才能达到6帧。
这么做就是一个目的,不让旋风达到3帧,但又能相对轻松达到4帧。
首先,如果按正常计算方式,达到actionflag后帧数只向上取整,不-1,
(与顺序技能类似)
这种情况下,只有si=75,才能达到4帧。条件苛刻,很难达到,与暴雪说的大部分武器档位不减是矛盾的。
因此必须想办法调整。
其次,如果达到actionflag后向上取整-1(与非顺序技能类似)
那么si=75时就能达到3帧,这也是暴雪不愿意看到的。
而把≥变为>,就必须si=76才能达到3帧,游戏si上限是75,从而旋风最高4帧,和原来一致。
补充另外一种increment计算方法的SI表格:
[[File:D2R旋风increment计算方法的SI表格.png]]
标黄部分为与主贴不同的地方。都是si为负的部分的档位。
需要经过测试才知道哪个计算方法是暴雪实际使用的方法。
举个例子:野蛮人单手武器土耳其剑,wsm=-20,其他为0速。被衰老后si=-50-(-20)=-30。
此时increment有两种计算方式:
一是[256*(1+si/100)]=[179.2]=179,对应的档位为[256*7/179]=[10.01]=10
(对应顶楼计算方法)
二是256+[256*si/100]=256+[-76.8]=256+(-76)=180,对应的档位为[256*7/180]=[9.96]=9
(对应此楼计算方法)
所以,根据实测土耳其剑被衰老后的旋风档位,就能确定是哪种计算方式。
</poem>
17,951

个编辑

导航菜单

MediaWiki Appliance - Powered by TurnKey Linux