諾艾爾武器爭(zhēng)議之螭骨劍與白影劍的選擇

諾艾爾武器選擇有很大爭(zhēng)議,許多人和我評(píng)論說(shuō)白影劍與螭骨劍差距很大(一般圣遺物下),而我的描述是白影劍與螭骨劍不相上下(極品圣遺物下)。為此,我特意結(jié)合諾艾爾(女仆)角色數(shù)據(jù)來(lái)計(jì)算女仆開(kāi)大后的傷害,以證明白影劍和螭骨劍的差距。
我為之前計(jì)算過(guò)程中的錯(cuò)誤感到抱歉。滿(mǎn)精螭骨劍的極限輸出是略強(qiáng)于滿(mǎn)精白影劍的。
上次計(jì)算沒(méi)有考慮圣遺物歪防御,圣遺物最好雙暴拉滿(mǎn),考慮到歪防御情況,同精螭骨劍比白影劍至少?gòu)?qiáng)4%,歪的越多,差距越大??紤]的越多,越覺(jué)得女仆防御稀釋的嚴(yán)重。
先說(shuō)結(jié)論,精一螭骨劍和精二精三白影劍不相上下,精四精三螭骨劍與精五白影劍也是不相上下,然后,極限情況下,考慮到圣遺物套裝加傷、雙巖共鳴,白影劍和螭骨劍差距不大。但是,白影劍開(kāi)大要先疊滿(mǎn)被動(dòng)。一般地,滿(mǎn)精螭骨劍都是強(qiáng)于滿(mǎn)精白影劍的。
只有一個(gè)例外,就是滿(mǎn)精蒼古滿(mǎn)命阿貝多(輔助加傷49%)輔助下的極品女仆套裝,(極限情況下)白影劍(36173.04)可以略強(qiáng)于螭骨劍(36127.13)。
總之,螭骨劍綜合來(lái)說(shuō)比白影劍強(qiáng)很多,但也不是白影劍追不上的程度。
女仆命座六開(kāi)大提高50%防御力的攻擊力,開(kāi)大(13級(jí)天賦)加85%防御力的攻擊力,總共增加135%防御力的攻擊力。圣遺物方面選擇角斗士套(逆飛套最好用鐘離保證盾覆蓋),加上雙巖共鳴和巖傷杯,附加傷害有96.6%,沙漏選擇防御砂,選擇暴擊頭(暴傷頭)。注意,女仆突破加30%防御力,圣遺物副屬性至少29.144%防御力。這導(dǎo)致女仆防御收益遠(yuǎn)不如雙暴。
開(kāi)始計(jì)算極限情況下的(代碼在文章最后):

精五螭骨劍:[dmg,points,attr_val] = noelle_points(510,['ctr';'add'],[27.6 50],450)
dmg = 30202.32? 約為重?fù)粞h(huán)傷害
points = 156.80
attr_val =
???????? 44.37??????? 132.44 ?? 暴擊100.00??? 暴傷248.02??? 加傷146.60??? 白值701.00
面板攻擊力為144.37%*701=1012,面板防御力為232.44%*799=1857,開(kāi)大后攻擊力3519

精五白影劍:[dmg,points,attr_val] = noelle_points(510,['def';'atk';'def'],[51.7 48 48],450)
dmg = 28956.11? 約為重?fù)粞h(huán)傷害
points = 219.18
attr_val =
???????? 92.37??????? 217.14??? 暴擊100.00??? 暴傷208.81???? 加傷96.60??? 白值701.00
疊滿(mǎn)被動(dòng),面板攻擊力為192.37%*701=1349,面板防御力為317.14%*799=2534,開(kāi)大后攻擊力4769
這里兩者幾乎一樣,還是螭骨劍略強(qiáng)于白影劍,差距4.3%,然后,繪制所有情況下的傷害圖像:(一般情況下,滿(mǎn)精白影劍與滿(mǎn)精螭骨劍差距4%~10%)

最后采用matlab代碼計(jì)算,代碼如下:(修復(fù)了防御力過(guò)低的問(wèn)題)
function [dmg,points,attr_val] = noelle_points(atk,attr,val,pot)
%arms_points 武器自帶屬性點(diǎn)數(shù)計(jì)算,同時(shí)計(jì)算武器在100%倍率下的一般傷害
%[dmg,points,attr_val] = noelle_points(atk,attr,val,pot)
% atk? 武器白值
% attr 武器屬性項(xiàng)
% val? 武器屬性值,為負(fù)則獨(dú)立計(jì)算
% pot? 圣遺物副屬性點(diǎn)數(shù)
% dmg? 諾艾爾武器的極限傷害
% points 武器自帶屬性點(diǎn)數(shù)
points=0;
wadd=50; % 圣遺物和雙巖共鳴加傷
wphy=0;
watk=0;
mindef=58.3+30+29.144; % 防御沙漏和突破屬性和圣遺物副屬性歪防御
p=0;
i=1;
for in = attr'
??? switch in'
??? case 'atk' % 攻擊力%
??????? watk=watk+val(i);
??????? points=points+val(i)/0.5829;
??? case 'ctr' % 暴擊率
??????? p=p+val(i)/0.3886;
??? case 'ctd' % 暴擊傷害
??????? p=p+val(i)/0.7772;
??? case 'ene' % 元素充能
??????? p=p+val(i)/0.6477;
??? case 'cxx' % 元素精通
??????? points=points+val(i)/2.3316;
??? case 'add' % 附加傷害
??????? wadd=wadd+val(i);
??????? points=points+val(i)/0.5829;
??? case 'phy' % 物理傷害
??????? wphy=wphy+val(i);
??????? points=points+val(i)/0.7286;
??? case 'lef' % 生命%
??????? points=points+val(i)/0.5829;
??? case 'def' % 防御%
??????? p=p+val(i)/0.7286;
??????? mindef=mindef+val(i);
??? case 'att' % 固定攻擊力
??????? watk=watk+(val(i)/(atk+191))*100;
??????? points=points+(val(i)/(atk+191))*100/0.5829;
??? end
??? i=i+1;
end
points=points+p;
p=p+pot+160; % 加上的是圣遺物副屬性點(diǎn)數(shù)、沙漏和頭主屬性點(diǎn)數(shù)之和
if wphy>10
??? wphy=wphy+58.3;
else
??? wadd=wadd+46.6;
end
watk=watk+(311/(atk+191))*100;
syms a b c t;
f(a,b,c)=((1+watk/100)*(atk+191)+(1+0.7286*a/100)*799*1.35)*...
??? (1+(0.3886*b+5)*(0.7772*c+50)/10000)*(1+(wadd+wphy)/100);
g=a+b+c-p;
L=f-t*g;
sln=solve(diff(L,a)==0,diff(L,b)==0,diff(L,c)==0,g==0);
[dmg,n]=max(eval(f(sln.a,sln.b,sln.c)));
attr_val=zeros(1,5);
attr_val(1)=watk; % 攻擊力綠字白字百分比
attr_val(2)=vpa(sln.a(n),10)*0.7286; % 防御力綠字白字百分比
attr_val(3)=vpa(sln.b(n),10)*0.3886+5; % 暴擊率
attr_val(4)=vpa(sln.c(n),10)*0.7772+50; % 暴擊傷害
attr_val(5)=wadd+wphy; % 附加傷害
attr_val(6)=atk+191; % 白字
i=0;
if attr_val(2) < mindef % 分配防御過(guò)低
??? i=1;
??? p=p-mindef/0.7286;
??? f(b,c)=((1+watk/100)*(atk+191)+(1+mindef/100)*799*1.35)*...
??? (1+(0.3886*b+5)*(0.7772*c+50)/10000)*(1+(wadd+wphy)/100);
??? g=b+c-p;
??? L=f-t*g;
??? sln=solve(diff(L,b)==0,diff(L,c)==0,g==0);
??? [dmg,n]=max(eval(f(sln.b,sln.c)));
??? attr_val(2)=mindef;
??? attr_val(3)=vpa(sln.b(n),10)*0.3886+5;
??? attr_val(4)=vpa(sln.c(n),10)*0.7772+50;
end
if attr_val(3) > 100 % 分配暴擊率過(guò)高
??? p=p-95/0.3886;
??? if i == 0
??????? f(a,c)=((1+watk/100)*(atk+191)+(1+0.7286*a/100)*799*1.35)*...
??????????? (1+(0.7772*c+50)/100)*(1+(wadd+wphy)/100);
??????? g=a+c-p;
??????? L=f-t*g;
??????? sln=solve(diff(L,a)==0,diff(L,c)==0,g==0);
??????? [dmg,n]=max(eval(f(sln.a,sln.c)));
??????? attr_val(2)=vpa(sln.a(n),10)*0.7286;
??????? attr_val(3)=100;
??????? attr_val(4)=vpa(sln.c(n),10)*0.7772+50;
??? else
??????? attr_val(3)=100;
??????? attr_val(4)=0.7772*p+50;
??????? dmg=((1+watk/100)*(atk+191)+(1+mindef/100)*799*1.35)*...
??????????? (1+(0.7772*p+50)/100)*(1+(wadd+wphy)/100);
??? end
end
end