FANDOM


!!!警告!!!
下列內容含有程式碼,可能會引起頭暈嘔吐等症狀。


戰鬥時頭上那堆數字到底是怎麼來的,根據不能說的來源,傷害計算公式如下:

DamageValue = BaseDamageValue + AddDamageValue

譯:傷害值 = 基礎傷害 + 追加傷害

基礎傷害编辑

就這樣,不解釋。

BaseDamageValue = math.floor(math.max(1, (attackerBaseAttack - defenderBaseDefense / 2) / 2))

追加傷害编辑

就是+號右邊的數字

ComboCorrect = math.max(0, ComboCorrectTable(combo - 1) * (1 + correct))
AddDamageValue = math.max(0, math.ceil(BaseDamageValue * ComboCorrect(Combo, Correct)))

以上,計算完畢。

所以那堆八府是怎麼回事?编辑

如果上面那幾行已經讓你頭痛了,那底下的東西就可以不用看了。
為了您的生命安全,請直接左轉離開。

以下正題编辑

上面算出來的是無視屬性和各種增減益效果的基本傷害,加了各種亂七八糟效果之後的最終傷害值皆以BaseDamageValue為基礎值計算。
計算順序如下:

# 普通攻擊/技能攻擊倍率補正
# AttackRate: 就是所謂的攻擊倍率。為什麼電○的倍率會和這裡不一樣:逆算會有誤差。
# ComboRate: 一般是1,但是部分技能會依據連擊數改變(EX:課程後的啦啦隊美紀)。
num = math.clamp(attacker.AttackValue - defence.DefenceValue, 0, 2147483647) / 10 * AttackRate * ComboRate + damageValue

# 武器補正
num *= attacker.WeaponBlockRate(weaponBlock, weaponAffinity)

# 增減益補正
num += num * (attacker.AttackEffectValue - defence.DefenceEffectValue)

# 金屬判定
if hitAttr.HasFlag(PenetrationMetal) then return 1 end

# 傷害浮動
num6 = cint(num)
if num6 > 30 Then
	num7 = random.range(-1, 2)
Else
	num8 = random.range(0, 1)
	num7 = num6 * random.range(-0.03, 0.03)
	num7 = (if((num7 <= 0), math.min(num7, -num8), math.max(num7, num8)))
End
num6 = math.ceil(num6 + num7)
if num6 <= 3 then num6 = random.range(2, 4) end

# 最終結果
return num6

是的,傷害有上限值,只要膨脹速度和隔壁一樣的話很快就可以看到了。
※上列計算不考慮敵人對玩家之攻擊。

ComboRate编辑

姑且稱之為連擊倍率吧,只有一小部分技能有這個東西,會隨著連擊數變化。

num = 1

if combo < minCombo then
	return if((minRate <= 0), num, minRate)
end
if combo >= maxCombo then
	return if((maxRate <= 0), num, maxRate)
end

num2 = maxCombo - minCombo
if num2 <= 0 then return num end

num3 = maxRate - minRate
if num3 < 0 then return num end

num = minRate + (combo - minCombo) * num3 / num2
if num <= 0 then num = 1 end

return num

若以課程後的啦啦隊美紀來做計算的話:
minCombo = 15
minRate = 18.4
maxCombo = 31
maxRate = 27.6
combo1 = 18.4+(1-15)*9.2/16 = 10.35
combo31 = 18.4+(31-15)*9.2/16 = 27.6

看起來很可怕對不對?
重點:沒有實裝,所以請當這一段是廢話。(逃)

異常狀態的命中判定编辑

# addRate: 追加補正,俗稱的抗性包含在這裡。
random.range(0, 100) <= effectiveRate + addRate

問:就這樣?
答:不然你想怎樣?
問:為什麼蹦蹦跳西吼的極低機率劇毒命中率這麼高?
答:因為基礎命中率是50%。(煙)

參考資料编辑

你所不知道的戰鬥女子學園 . 民明書房 . [2015-04-16]

您使用了广告屏蔽软件!


Wikia通过广告运营为用户提供免费的服务。我们对用户通过嵌入广告屏蔽软件访问网站进行了使用调整。

如果您使用了广告屏蔽软件,将无法使用我们的服务。请您移除广告屏蔽软件,以确保页面正常加载。

查看其他FANDOM

随机维基