826
edits
(Created page with "注意二:瓦‧魯達尼亞看似沒有在這個表裡,但是瓦‧魯達尼亞會去設 BloodyMoonProhibition,所以血月還是不會出現。") |
(Updating to match new version of source page) |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> | <languages/> | ||
<!--T:1--> | <!--T:1--> | ||
{{Subsystem infobox|name=WorldMgr|init_addr_switch150=00000071010F2920|is_name_official=1|description= | {{Subsystem infobox|name=WorldMgr|init_addr_switch150=00000071010F2920|is_name_official=1|description=Manages world state (time, blood moons, climates, weather, etc.)}} | ||
World Manager (WorldMgr) 是遊戲裡的一個子系統。 它控制時間、血月、氣候、天氣、霧、風、閃電、雲、山林霸主的出現等等。 | World Manager (WorldMgr) 是遊戲裡的一個子系統。 它控制時間、血月、氣候、天氣、霧、風、閃電、雲、山林霸主的出現等等。 | ||
Line 51: | Line 51: | ||
* "Bloody Moon end reserve timer" is set to 0.(這個計時器不是用來倒數血月何時出現的那個,下面會詳述。) | * "Bloody Moon end reserve timer" is set to 0.(這個計時器不是用來倒數血月何時出現的那個,下面會詳述。) | ||
<div class="mw-translate-fuzzy"> | |||
=== TimeMgr::reset === | === TimeMgr::reset === | ||
This is called whenever a stage is unloaded (essentially every time the loading screen is shown). 意思是凡是讀檔就會呼叫這個函數。 | This is called whenever a stage is unloaded (essentially every time the loading screen is shown). 意思是凡是讀檔就會呼叫這個函數。 | ||
* 血月相關檢查會被延後。 | * 血月相關檢查會被延後。 | ||
* 山林霸主的 flag 會被設為 false,意思是不要出現。 | * 山林霸主的 flag 會被設為 false,意思是不要出現。 | ||
</div> | |||
=== TimeMgr::calc === | === TimeMgr::calc === | ||
Line 142: | Line 144: | ||
* 如果沒辦法出現血月(下面有列原因),血月計時器會被設在 2880.0。 | * 如果沒辦法出現血月(下面有列原因),血月計時器會被設在 2880.0。 | ||
* | * 如果血月可以出現,播放 [https://eventviewer.zeldamods.org/viewer.html?data=/d/Demo011_0.json¶ms=1 Demo011_0](又到了紅月出現的時刻,林克你要小心), 然後血月計時器歸零。 | ||
'''「好久沒有血月了」''': | '''「好久沒有血月了」''': | ||
Line 167: | Line 169: | ||
注意二:瓦‧魯達尼亞看似沒有在這個表裡,但是瓦‧魯達尼亞會去設 BloodyMoonProhibition,所以血月還是不會出現。 | 注意二:瓦‧魯達尼亞看似沒有在這個表裡,但是瓦‧魯達尼亞會去設 BloodyMoonProhibition,所以血月還是不會出現。 | ||
=== | === 日夜標籤 === | ||
這些標籤讓程式的其他部分可以用有語義的方式檢查現在是早上還是晚上等等。 | |||
From 00:00 to 06:00 (closed interval) and from 18:00 to 00:00 (closed interval), WM_DaytimeFlag is set to false and WM_NighttimeFlag is true. | From 00:00 to 06:00 (closed interval) and from 18:00 to 00:00 (closed interval), WM_DaytimeFlag is set to false and WM_NighttimeFlag is true. | ||
In any other case, WM_DaytimeFlag is set to true and WM_NighttimeFlag to false. | |||
In any other case, WM_DaytimeFlag is set to true and WM_NighttimeFlag to false. | In any other case, WM_DaytimeFlag is set to true and WM_NighttimeFlag to false. | ||
Line 174: | Line 181: | ||
=== Time division, IsMorning, IsNoon, etc. === <!--T:26--> | === Time division, IsMorning, IsNoon, etc. === <!--T:26--> | ||
{|class="wikitable" | {|class="wikitable" | ||
! | ! 自 !! 至 !! Division !! Time type (1) !! Time type (2) | ||
|- | |- | ||
| 04:00 || 05:00 || 0 || MorningA || Morning_A1 | | 04:00 || 05:00 || 0 || MorningA || Morning_A1 | ||
Line 195: | Line 202: | ||
|} | |} | ||
筆記:上述的時間區間左閉右開。 | |||
=== 月相 === | === 月相 === | ||
Line 207: | Line 214: | ||
山林霸主會在 AnimalMaster_Appearance flag 是 true 的時候出現。 山林霸主出不出現是由一個有限狀態自動機控制的。 | 山林霸主會在 AnimalMaster_Appearance flag 是 true 的時候出現。 山林霸主出不出現是由一個有限狀態自動機控制的。 | ||
再次強調:只要讀檔,山林霸主就會消失。 | |||
====State 0 沈默狀態==== | ====State 0 沈默狀態==== | ||
Line 226: | Line 233: | ||
====State 3 準備消失狀態==== | ====State 3 準備消失狀態==== | ||
「兩天之後」 or 「『過了一天』且『現在的小時 | 「兩天之後」 or 「『過了一天』且『現在的小時 ≥ 出現的小時』」,山林霸主消失。 (意思是山林霸主只會維持整整 24 遊戲內小時/現時分鐘。) | ||
====State 4 熄滅狀態==== | ====State 4 熄滅狀態==== | ||
等月相是 | 等月相是 5(眉月)的時候再進到 State 0. | ||
== WeatherMgr == | == WeatherMgr == | ||
Line 235: | Line 242: | ||
=== Weather types === | === Weather types === | ||
{|class="wikitable" | {|class="wikitable" | ||
! 值 !! | ! 值 !! 名 | ||
|- | |- | ||
| 0 || Bluesky | | 0 || Bluesky | ||
Line 257: | Line 264: | ||
<!--T:40--> | <!--T:40--> | ||
[[Category:Internals]] | [[Category:Internals{{#translation:}}]] | ||
[[Category:Subsystems (BotW)]] | [[Category:Subsystems (BotW){{#translation:}}]] |