WorldMgr/zh: Difference between revisions

m
月相列表
imported>Simple
m (邏輯謬誤,標點)
imported>Simple
m (月相列表)
Line 1: Line 1:
'''World Manager''' (WorldMgr) 是遊戲裡的一個子系統。
'''World Manager''' (WorldMgr) 是遊戲裡的一個子系統。
它控制時間、血月、氣候、天氣、霧、風、閃電、雲、山林霸主的出現等等。
它控制時間、血月、氣候、天氣、霧、風、閃電、雲、山林霸主的出現等等。
Line 4: Line 6:
這個子系統很大/複雜,它的功能被切成九個部分。
這個子系統很大/複雜,它的功能被切成九個部分。


譯者注:原文(英文)的寫作方式是盡可能地忠實呈現遊戲原始碼的意圖,
譯者注:
原文是 [[WorldMgr]]。
原文的寫作方式是盡可能地忠實呈現遊戲原始碼的意圖,
譯者在原文外自行加入了遊玩過程中累積的經驗。
譯者在原文外自行加入了遊玩過程中累積的經驗。
譯者沒辦法理解的或翻譯之後無法忠於原意的部分保留英文原文。
譯者沒辦法理解的或翻譯之後無法忠於原意的部分保留英文原文。
Line 157: Line 161:
'''「好久沒有血月了」''':
'''「好久沒有血月了」''':
* 如果 FirstTouchdown flag is set(出台地了)而且血月計時器 > 2520.0 (遊戲內過了整整七天,營火快轉不算):
* 如果 FirstTouchdown flag is set(出台地了)而且血月計時器 > 2520.0 (遊戲內過了整整七天,營火快轉不算):
** WM_BloodyDay is set to true. 代表下個子夜檢查時就會執行上面的'''「血月該出現了」'''。
** WM_BloodyDay is set to true. 代表下個子夜檢查時就會執行上面的「血月該出現了」。
** 血月計時器歸零。
** 血月計時器歸零。
* Otherwise, the "Bloody end reserve timer" is set to 150. This ensures that the WM_BloodyDay flag is cleared 5 in-game minutes (= 5 seconds in real life) after a Blood Moon occurs. (不確定這句意思,先別管它。)
* Otherwise, the "Bloody end reserve timer" is set to 150. This ensures that the WM_BloodyDay flag is cleared 5 in-game minutes (= 5 seconds in real life) after a Blood Moon occurs. (不確定這句意思,先別管它。)
Line 168: Line 172:
* IsInHyruleCastleArea is set(在城堡裡之類的地方)(不過實測食堂會有血月)
* IsInHyruleCastleArea is set(在城堡裡之類的地方)(不過實測食堂會有血月)
* LastBossGanonBeastGenerateFlag is set (fighting Dark Beast Ganon)(在打魔獸加儂)
* LastBossGanonBeastGenerateFlag is set (fighting Dark Beast Ganon)(在打魔獸加儂)
* BloodyMoonProhibition is set
* BloodyMoonProhibition is set(這是什麼?)
* Wind_Relic_BattleStart is set (Vah Medoh battle)(在打瓦‧梅德)
* Wind_Relic_BattleStart is set (Vah Medoh battle)(在打瓦‧梅德)
* Electric_Relic_Battle is set (Vah Naboris battle)(在打瓦‧娜波力斯)
* Electric_Relic_Battle is set (Vah Naboris battle)(在打瓦‧娜波力斯)
Line 213: Line 217:
這裡的 x 在下午的時候是 1,上午的時候是 0。
這裡的 x 在下午的時候是 1,上午的時候是 0。
百分號是模運算(除以八的餘數)。
百分號是模運算(除以八的餘數)。
也就是說,每過一次中午月相就前進一格。
也就是說,每過一次正午月相就前進一格。
從 0 開始,滿月、十六夜、下弦月、殘月、新月、眉月、上弦月、十三夜。


如果有什麼東西直接設定月相的話 (例如 [[AIDef:Action/EventSetMoonType]]),那月相就會是設定過的值。
如果有什麼東西直接設定月相的話 (例如 [[AIDef:Action/EventSetMoonType]]),那月相就會是設定過的值。
Line 221: Line 226:
雙子驛站的西納巴岡在內心沒有騷動的時候會告訴你今晚的月相。
雙子驛站的西納巴岡在內心沒有騷動的時候會告訴你今晚的月相。
請注意:月相跟血月沒有任何關係。
請注意:月相跟血月沒有任何關係。
血月不一定會在本來應該是滿月的晚上出現,血月後也不會接到下弦月。
血月不只會在本來應該是滿月的晚上出現,血月後也不會接到下弦月。


=== 山林霸主 ===
=== 山林霸主 ===
Line 229: Line 234:


Note that whenever a stage is unloaded, the AnimalMaster_Appearance flag is reset to false.
Note that whenever a stage is unloaded, the AnimalMaster_Appearance flag is reset to false.
(只要讀檔,山林霸主就會消失。)
只要讀檔,山林霸主就會消失。


====State 0 - Wait for conditions====
====State 0 沈默狀態====


如果以下全真
如果以下全真


* [[#月相]] 是 5(眉月)
* [[#月相]] 是 5(眉月)
* AnimalMaster_Existence flag is false(山林霸主還沒出現)
* AnimalMaster_Existence flag false(山林霸主還沒出現)
* The current [[map area]] number is not 64 ("HyruleHill",就是薩托利山這個區域)
* The current [[map area]] number is not 64 ("HyruleHill",就是林克處在薩托利山這個區域)


那麼遊戲會從 [0 .. 22] 這個區間生成一個隨機的數值(這個數值代表山林霸主幾點出現),
那麼遊戲會從 [0 .. 22] 這個區間生成一個隨機的數值(這個數值代表山林霸主幾點出現),
然後進到 State 1。
然後進到 State 1。


====State 1 - Wait for the appearance time====
====State 1 蓄勢待發狀態====


如果你進到 map area 64 (薩托利山這個區域)那就回到 State 0(隨機數值也作廢)。
如果你進到 map area 64 (薩托利山這個區域)那就回到 State 0(隨機數值也作廢)。


如果你不在 map area 64,那遊戲會一直等等到現在的時間(小時)是上面說的出現的小時。
如果你不在 map area 64,那遊戲會一直等等到現在的時間(小時)是上面生成的出現的小時。
(請注意這個檢查是每幀都做。)
(請注意這個檢查是每幀都做。)
這時 AnimalMaster_Appearance 設成 true,山林霸主會出現/薩托利山會發光。
這時 AnimalMaster_Appearance 設成 true,山林霸主會出現/薩托利山會發光。
然後進到 State 2。
然後進到 State 2。


====State 2====
====State 2 發光狀態====


一個遊戲內小時後,遊戲會紀錄星期幾,然後進到 State 3.
一個遊戲內小時後,遊戲會紀錄星期幾,然後進到 State 3.


====State 3====
====State 3 繼續發光狀態====


兩天之後, ''or'' 「『過了一天』且『現在的小時 >= 出現的小時』」,山林霸主消失。
「兩天之後」 ''or'' 「『過了一天』且『現在的小時 >= 出現的小時』」,山林霸主消失。
(意思應該是山林霸主只會維持整整 24 遊戲內小時/現時分鐘。)
(意思應該是山林霸主只會維持整整 24 遊戲內小時/現時分鐘。)


====State 4====
====State 4 熄滅狀態====


等月相是 5 的時候再進到 State 0.
等月相是 5 的時候再進到 State 0.
Anonymous user