Difficulty scaling/zh: Difference between revisions

Created page with "厄咒加儂也有升級版,不過是依據的是另一個完全獨立的系統。 具體升級的內容是:神獸裡的厄咒加儂的血量是由玩家打死過多少別..."
Simple (talk | contribs)
No edit summary
 
(25 intermediate revisions by 3 users not shown)
Line 27: Line 27:
== 阻止升級的情況 ==  
== 阻止升級的情況 ==  


下面這個情況會導致敵人跟武器維持原樣(總而言之就是林克在劍之考驗裡)
下面這個情況會導致敵人跟武器維持原樣。
* WorldMgr::sInstance->stageType == 1 (Open World stage)
* WorldMgr::sInstance->stageType == 1 (Open World stage)
* 且 WorldMgr::sInstance->isAocField (current map is Trial of the Sword)
* 且 WorldMgr::sInstance->isAocField (current map is Trial of the Sword)
* 且 WorldMgr::sInstance->disableScaling (set to true when entering Trial of the Sword)
* 且 WorldMgr::sInstance->disableScaling (set to true when entering Trial of the Sword)
總而言之,遊戲不會升級劍之考驗裡的武器和敵人。
另一種會跳過升級的情況是 [[map area]] 等於 28, 也就是林克位在 "HateruSea",野外的考驗的塞哈特諾島。
另一種會跳過升級的情況是 [[map area]] 等於 28, 也就是林克位在 "HateruSea",野外的考驗的塞哈特諾島。


Line 42: Line 45:
* '''敵人手上的武器''': The flag <code>{MapName}_WeaponDrop_{ID}</code> is false, '''and''' [the actor property 'LevelSensorMode' is higher than 1 ''or'' the enemy is a Guardian Scout ('Enemy_Guardian_Mini' 廟裡的守護者)].
* '''敵人手上的武器''': The flag <code>{MapName}_WeaponDrop_{ID}</code> is false, '''and''' [the actor property 'LevelSensorMode' is higher than 1 ''or'' the enemy is a Guardian Scout ('Enemy_Guardian_Mini' 廟裡的守護者)].


註記:從 NPC 那裡拿到的武器(阿卡莱古代研究所、英傑武器)不在上面的列表裡,從而不升級。
註記:從 NPC 那裡拿到的武器(阿卡莱古代研究所、英傑武器、怪物商人)不在上面的列表裡,從而不升級。


== 武器加成 ==  
== 武器加成 ==  
Line 50: Line 53:
二是武器的攻擊、防禦、耐久等數值擇一增加;
二是武器的攻擊、防禦、耐久等數值擇一增加;
三是增加多少。
三是增加多少。
藍標、白標(Blue/White)是比較低階的升級,標記成「某某某提升」。黃標(Yellow)是高階的升級,標記成「某某某大提升」。以攻擊力為例,藍標可能會增加 10~20 的攻擊力(攻擊力提升 +14),而黃標會增加 20~30(攻擊力大提升 +24)。


=== 加成的方向 ===  
=== 加成的方向 ===  
Line 56: Line 61:


{|class="wikitable"
{|class="wikitable"
! 加成的方向 !! Available in modifier tiers
! 加成的方向 !! Available in bonus tiers
|-
|-
|-
|-
Line 77: Line 82:
| ZoomRapid || Yellow
| ZoomRapid || Yellow
|}
|}
藍標、白標(Blue/White)是比較低階的升級,標記成「某某某提升」。黃標(Yellow)是高階的升級,標記成「某某某大提升」。以攻擊力為例,藍標可能會增加 10~20 的攻擊力(攻擊力提升 +14),而黃標會增加 20~30(攻擊力大提升 +24)。


需注意的是:
需注意的是:
Line 181: Line 184:
|-
|-
| 1
| 1
| '''RandomBlue''':  可能是藍標也可能是黃標,隨機決定。 (with <code>weaponCommonSharpWeaponPer</code> being the probability).
| '''RandomBlue''':  要麼是藍標以上的加成,要麼不加成,隨機決定。 (with <code>weaponCommonSharpWeaponPer</code> being the probability).
|-
|-
| 2
| 2
Line 235: Line 238:
=== <code>Ecosystem::LevelSensor::scaleWeapon</code> ===  
=== <code>Ecosystem::LevelSensor::scaleWeapon</code> ===  


它負責處理武器的升級。有三個東西會呼叫它:寶箱、敵人{{Check}}、
它負責處理武器的升級。有三個東西會呼叫它:寶箱、敵人{{Check}}、 <code>Ecosystem::LevelSensor::scaleActor</code>。
<code>Ecosystem::LevelSensor::scaleActor</code>。


呼叫時給定一個武器的名字、預設的加成(至少多少)、跟目前玩家的經驗值。然後這個函數會回傳一個武器名稱(可能跟給定的不一樣),其中包括應當使用何種加成。
呼叫時給定一個武器的名字、預設的加成(至少多少)、跟目前玩家的經驗值。然後這個函數會回傳一個武器名稱(可能跟給定的不一樣),其中包括應當使用何種加成。
Line 365: Line 367:
<source lang="c++">__int64 SiteBoss::getInitialHP(SiteBoss *this) // 0x71002D01F4
<source lang="c++">__int64 SiteBoss::getInitialHP(SiteBoss *this) // 0x71002D01F4
{
{
   const int baseHp = Enemy::getInitialHP(this);
   const int baseHp = Enemy::getInitialHP(this); // 基礎血量(底)
   const int halfBaseHp = baseHp >> 1;
   const int halfBaseHp = baseHp >> 1; // 除以 2(台)
   const bool dieGanonWind = hasFlag_Die_PGanonWind(0);
   const bool dieGanonWind = hasFlag_Die_PGanonWind(0); // 打過風嗎?
   const bool dieGanonWater = hasFlag_Die_PGanonWater(0);
   const bool dieGanonWater = hasFlag_Die_PGanonWater(0); // 打過水嗎?
   const bool dieGanonFire = hasFlag_Die_PGanonFire(0);
   const bool dieGanonFire = hasFlag_Die_PGanonFire(0); // 打過火嗎?
   const bool dieGanonElectric = hasFlag_Die_PGanonElectric(0);
   const bool dieGanonElectric = hasFlag_Die_PGanonElectric(0); // 打過雷嗎?
   const int flags = this->siteBossFlags & 0xFFFFFFFC;
   const int flags = this->siteBossFlags & 0xFFFFFFFC; // 玩家在哪裡
   int multiplier;
   int multiplier;
   if ( flags == 4 )
   if ( flags == 4 ) // 城堡裡
    multiplier = 3;
   multiplier = 3;
   else if ( flags == 8 )
   else if ( flags == 8 ) // 幻影空間
    multiplier = 4;
   multiplier = 4;
   else
   else
     multiplier = dieGanonFire + dieGanonWind + dieGanonWater + dieGanonElectric;
     multiplier = dieGanonFire + dieGanonWind + dieGanonWater + dieGanonElectric;
Line 382: Line 384:
}</source>
}</source>


Effectively, this means that the first blight Link fights will have 800+0×400 = 800 HP, the second will have 800+1×400 = 1200 HP, the third 800+2×400 = 1600 HP and the last one 800+3×400 = 2000 HP.
換句換說,玩家第一個擊倒的厄咒加儂的血量是 800,下一個 1200,再下一個 1600,最後一個 2000


=== Special case 1: Castle Blights ===  
=== Special case 1: 城堡裡的厄咒加儂 ===  


Castle blights have <code>IsRemainBoss</code> set to false in their root AI parameters (see [[AIDef:AI/SiteBossSpearRoot]] for example), which sets flag 4.
Castle blights have <code>IsRemainBoss</code> set to false in their root AI parameters (see [[AIDef:AI/SiteBossSpearRoot]] for example), which sets flag 4.


Thus, blights that are fought in the Castle always have 800+3×400 = 2000 HP regardless of story progression.
城堡裡的厄咒加儂,不管是第幾隻,血量都是 800+3×400 = 2000


If flag 4 is set, the [[AIDef:Action/SiteBossDie]] code will NOT increment the &#x22;defeated&#x22; counter. This means castle blights do not give any scaling points.
打死城堡裡的厄咒加儂並不計入經驗值。(相應的計數器不會增加。)


=== Special case 2: DLC2 Blights ===  
=== Special case 2: 幻影空間裡的厄咒加儂 ===  


Illusory Realm blights possess the <code>EnemySiteBoss_R</code> actor tag. This causes flag 8 to be set. So they will always have 500+4×250 = 1500 HP.
Illusory Realm blights possess the <code>EnemySiteBoss_R</code> actor tag. This causes flag 8 to be set. So they will always have 500+4×250 = 1500 HP.
補充:幻影裡的厄咒加儂基礎血量是 500,其他情況是 800。


Interestingly, the Windblight AI function relies doesn't check the actor tag but the actor name instead. For flag 8 to be set, the actor name must be <code>Enemy_SiteBoss_Bow_R</code>.
Interestingly, the Windblight AI function doesn't check the actor tag but the actor name instead. For flag 8 to be set, the actor name must be <code>Enemy_SiteBoss_Bow_R</code>.




<references />
<references />
[[Category:Internals]]
[[Category:Internals{{#translation:}}]]
[[Category:Game mechanics]]
[[Category:Game mechanics{{#translation:}}]]