Shield durability/zh: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Created page with "1.6.0 版的 ShieldDamageRatio (攻換防比)是 0.2。也就是說,敵人的攻擊力比防禦力低的時候,抵擋一次扣 1 點耐用度。攻擊力比防禦高...") |
||
Line 25: | Line 25: | ||
minDmg (最小扣耐用)在大部分的時候都是 1 的樣子。意思是耐用度至少會降低 1。 | minDmg (最小扣耐用)在大部分的時候都是 1 的樣子。意思是耐用度至少會降低 1。 | ||
1.6.0 版的 ShieldDamageRatio (攻換防比)是 0.2。也就是說,敵人的攻擊力比防禦力低的時候,抵擋一次扣 1 點耐用度。攻擊力比防禦高的時候,攻擊力每增加 5 點,盾牌的耐用度就多扣 1 點。<ref>https://github.com/leoetlino/botw/blob/v1.6.0/Actor/GeneralParamList/GlobalParameter.gparamlist.yml#L28</ref> | |||
== Shield surfing == | == Shield surfing == |
Revision as of 04:15, 30 May 2020
盾牌的耐用度會隨著玩家抵擋怪物的攻擊與盾牌滑行逐漸降低。
抵擋攻擊
The logic is as follows[1]:
float damageRatio = GlobalParameter::sInstance->globalParam->shieldDamageRatio.value();
int damage = damageRatio * (param->attackPower - guardPower - additionalGuardPower);
if (param->forceOnlyOneDamage)
minDamage = 1;
else
minDamage = param->minDmg;
weapon->takeDamage(max(damage, minDamage));
damageRatio
(攻換防比)是從 GlobalParameter 裡來的("Global" 底下的 "ShieldDamageRatio")。attackPower
是被抵擋的攻擊的攻擊力。guardPower
是盾牌的防禦力,也是 bgparamlist 來的("WeaponCommon" 底下的 "GuardPower").additionalGuardPower
就是防禦力加成加多少(沒有加成則是零)。
minDmg (最小扣耐用)在大部分的時候都是 1 的樣子。意思是耐用度至少會降低 1。
1.6.0 版的 ShieldDamageRatio (攻換防比)是 0.2。也就是說,敵人的攻擊力比防禦力低的時候,抵擋一次扣 1 點耐用度。攻擊力比防禦高的時候,攻擊力每增加 5 點,盾牌的耐用度就多扣 1 點。[2]
Shield surfing
Here is a gist of the logic[3]:
- Whenever Link is shield surfing, a timer (which is tied to the shield) is incremented.
- If Link is surfing on a "no shield damage floor", or if the L2 norm of his velocity is lower than 0.03, then the shield takes no damage.
- Otherwise, every time the timer reaches ShieldRideBaseFrame (as configured in GlobalParameter), the shield takes
RideBreakRatio * ShieldRideHitBaseDamage * Damage
and the timer is reset.
In 1.6.0:
- RideBreakRatio is 1.0 for the majority of shields, and 0.2 for the Ancient Shield, which means that the latter takes shield surfing damage at a 20% rate compared to most other shields. Refer to this spreadsheet for more information on shield stats, including the hidden RideBreakRatio.
- ShieldRideBaseFrame is 120[4] and ShieldRideHitBaseDamage is 1[5]. This means that shield surfing costs
RideBreakRatio * 1
durability points every 4 seconds.
- This damage is also applied when you start surfing.
Since the timer is tied to the shield instance, switching to another shield will reset the timer and doing so lets the player avoid taking any surf damage.
References
- ↑ 0x71002F0844 [nx-1.5.0 executable]
- ↑ https://github.com/leoetlino/botw/blob/v1.6.0/Actor/GeneralParamList/GlobalParameter.gparamlist.yml#L28
- ↑ 0x71002CEAF4 [nx-1.5.0 executable]: https://gist.github.com/leoetlino/34a2ce6273f7cfcbbabceda24d19aa5d
- ↑ https://github.com/leoetlino/botw/blob/v1.6.0/Actor/GeneralParamList/GlobalParameter.gparamlist.yml#L26
- ↑ https://github.com/leoetlino/botw/blob/v1.6.0/Actor/GeneralParamList/GlobalParameter.gparamlist.yml#L27