WorldMgr/zh: Difference between revisions

Updating to match new version of source page
No edit summary
(Updating to match new version of source page)
 
(14 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 138: Line 140:
增加 WM_NumberOfDays(總共過了幾個遊戲天)。
增加 WM_NumberOfDays(總共過了幾個遊戲天)。


'''如果「血月該出現了」'''
'''如果「血月該出現了」'''
  (如果 WM_BloodyDay 是 true)(可以看到東方有紅色滿月就是這個狀態,雙子驛站的西納巴岡會告訴你內心有股騷動。)
  (如果 WM_BloodyDay 是 true)(可以看到東方有紅色滿月就是這個狀態,雙子驛站的西納巴岡會告訴你內心有股騷動。)


* 如果沒辦法出現血月(下面有列原因),血月計時器會被設在 2880.0。
* 如果沒辦法出現血月(下面有列原因),血月計時器會被設在 2880.0。
* 如果血月可以出現,呼叫 Demo011_0(又到了紅月出現的時刻,林克你要小心) 然後血月計時器歸零。
* 如果血月可以出現,播放 [https://eventviewer.zeldamods.org/viewer.html?data=/d/Demo011_0.json&params=1 Demo011_0](又到了紅月出現的時刻,林克你要小心), 然後血月計時器歸零。


'''「好久沒有血月了」''':
'''「好久沒有血月了」''':
Line 163: Line 165:
* SkyMgr's field_2B4 is set to 15 and field_2B8 >= 1.0
* SkyMgr's field_2B4 is set to 15 and field_2B8 >= 1.0


請注意:即使血月被阻止,血月計時器也不會歸零,還是會繼續增加。這些理由也不能阻止 WM_BloodyDay from being set。
請注意:即使血月被阻止,血月計時器也不會歸零,還是會繼續增加。這些理由也不能阻止 WM_BloodyDay 被設成 true。


Note: Vah Rudania is missing from the list. This is normal and blood moons still cannot happen during the Vah Rudania battle sequence because the BloodyMoonProhibition flag is set during it.
注意二:瓦‧魯達尼亞看似沒有在這個表裡,但是瓦‧魯達尼亞會去設 BloodyMoonProhibition,所以血月還是不會出現。
 
=== 日夜標籤 ===
 
這些標籤讓程式的其他部分可以用有語義的方式檢查現在是早上還是晚上等等。


=== Day/night time flag ===
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"
! Start !! End !! Division !! Time type (1) !! Time type (2)
! !! !! 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:
|}
|}


Note: all intervals include the start time and exclude the end time.
筆記:上述的時間區間左閉右開。


=== 月相 ===
=== 月相 ===
Line 207: Line 214:
山林霸主會在 AnimalMaster_Appearance flag 是 true 的時候出現。 山林霸主出不出現是由一個有限狀態自動機控制的。
山林霸主會在 AnimalMaster_Appearance flag 是 true 的時候出現。 山林霸主出不出現是由一個有限狀態自動機控制的。


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


====State 0 沈默狀態====
====State 0 沈默狀態====
Line 226: Line 233:


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


====State 4 熄滅狀態====
====State 4 熄滅狀態====
等月相是 5 的時候再進到 State 0.
等月相是 5(眉月)的時候再進到 State 0.


== WeatherMgr ==
== WeatherMgr ==
Line 235: Line 242:
=== Weather types ===
=== Weather types ===
{|class="wikitable"
{|class="wikitable"
! 值 !! Name
! 值 !!
|-
|-
| 0 || Bluesky
| 0 || Bluesky
Line 257: Line 264:


<!--T:40-->
<!--T:40-->
[[Category:Internals]]
[[Category:Internals{{#translation:}}]]
[[Category:Subsystems (BotW)]]
[[Category:Subsystems (BotW){{#translation:}}]]
826

edits