Shield durability/zh: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
No edit summary
(Created page with "* ShieldRideBaseFrame (盾滑基礎幀數)是 120<ref>https://github.com/leoetlino/botw/blob/v1.6.0/Actor/GeneralParamList/GlobalParameter.gparamlist.yml#L26</ref>,而 S...")
Line 39: Line 39:
* 大部分盾牌的 RideBreakRatio(滑致損比)都是 1.0。例外的盾牌包括古代兵裝·盾的 0.2。換句話說,同樣的滑行時間,古代兵裝·盾損失的耐用度是別的盾牌的 20%。在[https://docs.google.com/spreadsheets/u/0/d/1qhh_TLCF_1vMdpPY0QHbhYhN-eUIyh6R3Povo-gziMg/pubhtml 這個表格] 裡列出了所有盾牌的 RideBreakRatio,以及其他更多隱藏參數。
* 大部分盾牌的 RideBreakRatio(滑致損比)都是 1.0。例外的盾牌包括古代兵裝·盾的 0.2。換句話說,同樣的滑行時間,古代兵裝·盾損失的耐用度是別的盾牌的 20%。在[https://docs.google.com/spreadsheets/u/0/d/1qhh_TLCF_1vMdpPY0QHbhYhN-eUIyh6R3Povo-gziMg/pubhtml 這個表格] 裡列出了所有盾牌的 RideBreakRatio,以及其他更多隱藏參數。


* ShieldRideBaseFrame is 120<ref>https://github.com/leoetlino/botw/blob/v1.6.0/Actor/GeneralParamList/GlobalParameter.gparamlist.yml#L26</ref> and ShieldRideHitBaseDamage is 1<ref>https://github.com/leoetlino/botw/blob/v1.6.0/Actor/GeneralParamList/GlobalParameter.gparamlist.yml#L27</ref>. This means that shield surfing costs <code>RideBreakRatio * 1</code> durability points every 4 seconds.
* ShieldRideBaseFrame (盾滑基礎幀數)是 120<ref>https://github.com/leoetlino/botw/blob/v1.6.0/Actor/GeneralParamList/GlobalParameter.gparamlist.yml#L26</ref>,而 ShieldRideHitBaseDamage (盾滑基礎損失)則是1<ref>https://github.com/leoetlino/botw/blob/v1.6.0/Actor/GeneralParamList/GlobalParameter.gparamlist.yml#L27</ref>。前者的意思是每 120 幀(現實四秒)扣耐用度 <code>RideBreakRatio * 1</code> 這麼多點。


* This damage is also applied when you start surfing.
* This damage is also applied when you start surfing.

Revision as of 04:30, 30 May 2020

Other languages:


盾牌的耐用度会随著玩家抵挡怪物的攻击与盾牌滑行逐渐降低。

抵挡攻击

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]

盾牌滑行

这个 gist 里有原始码[3](很长所以不放在这里),总结逻辑如下:

  • 林克在盾牌上滑行的时候,一个计时器(和盾绑定)会纪录滑行的时间。
  • 如果林克在“光滑的表面”滑行滑行的速度小于 0.03,则不扣耐用度。
  • 否则,每当计时器计到 ShieldRideBaseFrame (as configured in GlobalParameter) 这个数字时,盾牌的耐用度就会减少 RideBreakRatio * ShieldRideHitBaseDamage * Damage 这么多点,然后计时器归零。

1.6.0 版的参数如下:

  • 大部分盾牌的 RideBreakRatio(滑致损比)都是 1.0。例外的盾牌包括古代兵装·盾的 0.2。换句话说,同样的滑行时间,古代兵装·盾损失的耐用度是别的盾牌的 20%。在这个表格 里列出了所有盾牌的 RideBreakRatio,以及其他更多隐藏参数。
  • ShieldRideBaseFrame (盾滑基础帧数)是 120[4],而 ShieldRideHitBaseDamage (盾滑基础损失)则是1[5]。前者的意思是每 120 帧(现实四秒)扣耐用度 RideBreakRatio * 1 这么多点。
  • 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