Beaucoup d'objets, armes et ennemis de Breath of the Wild réapparaissent après un certain moment afin que le monde ne devienne pas trop vide. La façon exacte dont réapparaissent les objets est spécifique à chaque acteur.
Les GameData flags qui sont utilisés pour la réapparition des objets sont appelés Revival flags. Ils sont toujours chargés, que l'objet existe dans le monde ou non.
Objets des boutiques
Les objets des boutiques sont régénérés chaque jour à minuit, en supposant que les conditions suivantes soient remplies :
- le joueur n'est dans aucune des zones associées avec l'objet de la boutique ; alternativement, si le joueur n'est pas dans MainField (Hyrule)
- pour les objets avec le tag Arrow, le joueur possède moins de 50[1] flèches du type en question dans son inventaire.
[1.3.1+] La fonction de vérification de l'inventaire utilise les données d'inventaire du joueur réelles, et non les données de quête temporaires. Cela signifie que se téléporter dans les épreuves de l'Épée ou commencer n'importe quelle autre quête qui supprime temporairement l'inventaire afin de contourner GameDataMgr pour restocker les flèches ne fonctionne plus.
Les revival flags pour les objets de boutiques ont leur GameDataMgr mis à 3.
La grille de régénération des objets
La grille de régénération des objets est utilisée pour les objets de boutique et les objets régénérés de façon aléatoires. Elle est légèrement différente de la grille de carte normale et est composée de 10 colonnes (0 à 9) et 8 lignes (0 à 7).
Given an item located in column itemCol
and row itemRow
, the player is considered to not be in its map area if and only if:
- itemCol < playerCol1
- or itemCol > playerCol2
- or itemRow < playerRow1
- or itemRow > playerRow2
where the player column and row values are calculated as follows:
int col = std::clamp(((signed int)x + 5000) / 1000, 0, 9);
int row = std::clamp(((signed int)z + 4000) / 1000, 0, 7);
if ( (col + 0.5) * 1000.0 + -5000.0 >= x ) {
*col1 = col - 1;
*col2 = col;
} else {
*col1 = col;
*col2 = col + 1;
}
if ( (row + 0.5) * 1000.0 + -4000.0 >= z ) {
*row1 = row - 1;
*row2 = row;
} else {
*row1 = row;
*row2 = row + 1;
}
This grid is shown on the object map. It is also possible to show the no-revival area for an object by right clicking on it.
Revival during blood moons (RevivalBloodyMoon)
This policy is used for most weapons and enemies. Every time a blood moon occurs, all associated revival flags are reset to their initial value.
Revival flags for objects under this policy have their GameDataMgr set to 1.
ExpandActors under the RevivalBloodyMoon policy
No automatic revival (RevivalNone)
Objects under the RevivalNone policy will not be automatically revived.
ExpandActors under the RevivalNone policy
- Ancient Arrow (Obj_AncientArrow_A_01)
- Ancient Arrow x3 (Obj_AncientArrow_C_01)
- Ancient Arrow x5 (Obj_AncientArrow_B_01)
- Ancient Core (Item_Enemy_30)
- Ancient Gear (Item_Enemy_26)
- Ancient Screw (Item_Enemy_27)
- Ancient Shaft (Item_Enemy_29)
- Ancient Spring (Item_Enemy_28)
- Arrow (Obj_ArrowNormal_A_01)
- Arrow x10 (Obj_ArrowBundle_A_02)
- Arrow x5 (Obj_ArrowBundle_A_01)
- Arrow x[NUMBER] (Obj_ArrowBundle_A_10)
- Blue Rupee (PutRupee_Blue)
- Bokoblin Guts (Item_Enemy_02)
- Bomb Arrow (Obj_BombArrow_A_01)
- Bomb Arrow x10 (Obj_BombArrow_A_03)
- Bomb Arrow x20 (Obj_BombArrow_A_04)
- Bomb Arrow x5 (Obj_BombArrow_A_02)
- BreakableRock
- Calamity Ganon (Enemy_Ganon)
- Ceremonial Trident (Weapon_Spear_049)
- Daruk's Protection (Obj_HeroSoul_Goron)
- Daruk's Protection + (Obj_DLC_HeroSoul_Goron)
- DgnObj_WallCrack_C_01
- DgnObj_WallCrack_Wind_A_02
- Fire Arrow (Obj_FireArrow_A_01)
- Fire Arrow x10 (Obj_FireArrow_A_02)
- Fire Arrow x5 (Obj_FireArrow_A_03)
- Fireblight Ganon (Enemy_SiteBoss_Lsword)
- Fireblight Ganon (Enemy_SiteBoss_Lsword_R)
- FldObj_AssassinPicture_A_01
- FldObj_AssassinPicture_A_02
- FldObj_BreakableRockDeathMT_A_01
- FldObj_BreakableRockDeathMT_A_02
- Giant Ancient Core (Item_Enemy_31)
- Gold Rupee (PutRupee_Gold)
- Green Rupee (PutRupee)
- Guardian Scout II (Enemy_Guardian_Mini_Practice)
- Heart Container (Obj_HeartUtuwa_A_01)
- Hestu's Maracas (Obj_Maracas)
- Ice Arrow (Obj_IceArrow_A_01)
- Ice Arrow x10 (Obj_IceArrow_A_02)
- Ice Arrow x5 (Obj_IceArrow_A_03)
- IceWall
- IceWallRuins
- IceWallRuins_Challenge
- IceWall_100enemy
- IceWall_Tower
- Korok Seed (Obj_KorokNuts)
- Lizalfos Tail (Item_Enemy_05)
- Master Kohga (Enemy_Assassin_Senior)
- Master Sword (Weapon_Sword_070)
- Medoh's Emblem (Obj_DLC_HeroSeal_Rito)
- Mipha's Grace (Obj_HeroSoul_Zora)
- Mipha's Grace + (Obj_DLC_HeroSoul_Zora)
- Naboris's Emblem (Obj_DLC_HeroSeal_Gerudo)
- Obj_CursedStatue
- Obj_RockBroken_A_02
- Obj_ThunderRock
- One-Hit Obliterator (Weapon_Sword_502)
- Purple Rupee (PutRupee_Purple)
- Red Rupee (PutRupee_Red)
- Revali's Gale (Obj_HeroSoul_Rito)
- Revali's Gale + (Obj_DLC_HeroSoul_Rito)
- Rudania's Emblem (Obj_DLC_HeroSeal_Goron)
- Ruta's Emblem (Obj_DLC_HeroSeal_Zora)
- Sentry (RemainsFire_Drone_A_01)
- Shock Arrow (Obj_ElectricArrow_A_01)
- Shock Arrow (Obj_ElectricArrow_B_01)
- Shock Arrow x10 (Obj_ElectricArrow_A_02)
- Shock Arrow x5 (Obj_ElectricArrow_A_03)
- Silver Rupee (PutRupee_Silver)
- Spirit Orb (Obj_DungeonClearSeal)
- Stamina Vessel (Obj_StaminaUtuwa_A_01)
- Thunderblight Ganon (Enemy_SiteBoss_Sword)
- Thunderblight Ganon (Enemy_SiteBoss_Sword_R)
- Travel Medallion (Obj_WarpDLC)
- Treasure Chest (TBox_Field_Enemy)
- Treasure Chest (TBox_Field_Iron)
- Treasure Chest (TBox_Field_Iron_NoReaction)
- Treasure Chest (TBox_Field_Iron_NoReaction_Aoc)
- Treasure Chest (TBox_Field_Iron_NoReaction_Aoc_long)
- Treasure Chest (TBox_Field_Iron_NoReaction_Collabo)
- Treasure Chest (TBox_Field_Stone)
- Treasure Chest (TBox_Field_Stone_NoReaction)
- Treasure Chest (TBox_Field_Wood)
- TreasureSpot_00
- TwnObj_HyruleCastleObject_Wallcrack_Before_A_01
- TwnObj_HyruleCity_Tower_WallCrack_A_01
- Urbosa's Fury (Obj_HeroSoul_Gerudo)
- Urbosa's Fury + (Obj_DLC_HeroSoul_Gerudo)
- VolcanoEruptionField
- WallCrack
- WallCrack_Wind
- Waterblight Ganon (Enemy_SiteBoss_Spear)
- Waterblight Ganon (Enemy_SiteBoss_Spear_R)
- Windblight Ganon (Enemy_SiteBoss_Bow)
- Windblight Ganon (Enemy_SiteBoss_Bow_R)
No drop revival (RevivalNoneForDrop)
Drops for objects under the RevivalNoneForDrop policy will not be revived. This is used for broken Guardians.
ExpandActors under the RevivalNoneForDrop policy
- FldObj_RuinGuardianSand_A_Dynamic
- FldObj_RuinGuardianSnow_A_Dynamic
- FldObj_RuinGuardian_A_Dynamic
No revival for use flag (RevivalNoneForUsed)
The use status for objects under the RevivalNoneForUsed policy will not be reset. This is notably used for terminals.
ExpandActors under the RevivalNoneForUsed policy
- BM_Relief
- Desert Voe Headband (Mannequin_006_Head)
- Desert Voe Spaulder (Mannequin_006_Upper)
- Desert Voe Trousers (Mannequin_006_Lower)
- DgnObj_AncientReactor_B_01
- DgnObj_AncientReactor_B_01_on
- DgnObj_DownloadTerminal_A_01
- DgnObj_DungeonEntranceSP
- DgnObj_DungeonEntranceSP_Far
- DgnObj_EntranceTerminalSP
- DgnObj_EntranceTerminal_A_01
- DgnObj_RemainsLithogragh_A_02
- DgnObj_RemainsLithograph_A_01
- DgnObj_RemainsTerminalBody_A
- Flamebreaker Armor (Mannequin_005_Upper)
- Flamebreaker Boots (Mannequin_005_Lower)
- Flamebreaker Helm (Mannequin_005_Head)
- FldObj_DownloadTerminal_A_01
- FldObj_DownloadTerminal_A_02
- FldObj_Terminal_A_01
- Gerudo Sirwal (Mannequin_007_Lower)
- Gerudo Top (Mannequin_007_Upper)
- Gerudo Veil (Mannequin_007_Head)
- Hylian Hood (Mannequin_001_Head)
- Hylian Trousers (Mannequin_001_Lower)
- Hylian Tunic (Mannequin_001_Upper)
- Korok (Npc_HiddenKorokFly)
- Korok (Npc_HiddenKorokGround)
- Radiant Mask (Mannequin_008_Head)
- Radiant Shirt (Mannequin_008_Upper)
- Radiant Tights (Mannequin_008_Lower)
- ShutterKey
- Snowquill Headdress (Mannequin_004_Head)
- Snowquill Trousers (Mannequin_004_Lower)
- Snowquill Tunic (Mannequin_004_Upper)
- Soldier's Armor (Mannequin_002_Upper)
- Soldier's Greaves (Mannequin_002_Lower)
- Soldier's Helm (Mannequin_002_Head)
- Stealth Chest Guard (Mannequin_003_Upper)
- Stealth Mask (Mannequin_003_Head)
- Stealth Tights (Mannequin_003_Lower)
- SwitchCandlestickAncient
- SwitchCandlestickAncientOn
- Treasure Chest (TBox_Dungeon_Iron)
- Treasure Chest (TBox_Dungeon_Iron_050)
- Treasure Chest (TBox_Dungeon_Iron_FinalTrial)
- Treasure Chest (TBox_Dungeon_Iron_Hanged)
- Treasure Chest (TBox_Dungeon_Stone)
- Treasure Chest (TBox_Dungeon_Wood)
- Treasure Chest (TBox_Dungeon_Wood_AreaCulling)
- Treasure Chest (TBox_Field_Iron_GodTree)
- TwnObj_AncientCandlePoleRoofOff_A_01
- TwnObj_AncientReactorCoreOff_A_01
- TwnObj_AncientReactorCore_A_01
- TwnObj_ArtifactObservationPostBed_A_01
- TwnObj_GateKeeperBed_A_01
- TwnObj_HeburaLodgeBed_A_01
- TwnObj_HunterHouseBed_A_01
- TwnObj_Village_KorokBed_A_01
- TwnObj_Village_SakuradaBed_A_01
- TwnObj_Village_ZoraFacilityBed_A_01
- Warm Doublet (Mannequin_009_Upper)
Random revival (RevivalRandom)
Objects under the RevivalRandom policy will be revived at random times independently of blood moons. This is used for most materials (fruits, rocks, etc.)
Revival flags for objects under this policy have their GameDataMgr set to 0 and the position of the object on the main map is stored in the upper 7 bits of the initial flag value.
ExpandActors under the RevivalRandom policy
RevivalRandom and RevivalRandomForDrop logic
Every 60 seconds[2], RadarMgr determines where the player is on the revival grid.
If the player is on AocField (Trial of the Sword):
- Special flags (with the reset data set to 127) are skipped.
- Any other revival flag has a 1% chance of being reset.
Otherwise:
- If the player is on MainField, special flags have a 1% chance of being reset.
- If the player is not on MainField, non-special flags also have a 1% chance of being reset.
- In any other case, flags have a 1% chance of being reset, but only if the player is not in the same map area as the object that is to be revived.
Random drop revival (RevivalRandomForDrop)
Drops of objects under the RevivalRandomForDrop policy will be revived at random times independently of blood moons. This is used for wooden boxes and other things that contain materials (fruits, etc.)
Revival flags for objects under this policy have their GameDataMgr set to 0 and the position of the object on the main map is stored in the upper 7 bits of the initial flag value.
ExpandActors under the RevivalRandomForDrop policy
- Barrel (Barrel)
- Barrel_100enemy
- Barrel_CDungeon
- FldObj_KorokStoneLift_A_01
- Iron Box (Obj_BreakBoxIron)
- KibakoDesert_Contain_01
- KibakoJungle_Contain_01
- KibakoSeaside_Contain_01
- KibakoSnowMountain_Contain_01
- KibakoSnowMountain_Contain_100enemy
- KibakoVolcano_Contain_01
- KibakoZora_Contain_01
- Kibako_Contain_100enemy
- Obj_BreakBoxIron_100enemy
- Obj_LiftRockEldin_A_01
- Obj_LiftRockGerudo_A_01
- Obj_LiftRockWhite_100enemy
- Obj_LiftRockWhite_A_01
- Pot
- TwnObj_City_GerudoPot_A_LL_Act_02
- TwnObj_City_GerudoPot_A_M_Act_01
- TwnObj_City_GerudoPot_A_S_Act_01
- TwnObj_City_GoronPot_A_M_Act_01
- TwnObj_Village_FishingPot_A_M_Act_01
- TwnObj_Village_HatenoPot_A_L_Act_01
- TwnObj_Village_HatenoPot_A_M_Act_01
- TwnObj_Village_HatenoPot_A_S_Act_01
- TwnObj_Village_KorokPot_A_S_Act_01
- TwnObj_Village_RitoPot_A_M_Act_01
- TwnObj_Village_RitoPot_A_M_Act_02
- TwnObj_Village_RitoPot_A_S_Act_01
- TwnObj_Village_RitoPot_A_S_Act_02
- TwnObj_Village_SheikerPot_A_LL_Act_01
- TwnObj_Village_SheikerPot_A_L_Act_01
- TwnObj_Village_SheikerPot_A_M_Act_02
- TwnObj_Village_SheikerPot_A_S_Act_01
- TwnObj_Village_ZoraPot_A_M_Act_01
- Wooden Box (Kibako_Contain_01)
Revival whenever the Lord of the Mountain appears (RevivalUnderGodTime)
Objects under the RevivalUnderGodTime policy will be revived whenever the Lord of the Mountain appears (more precisely, when the AnimalMaster_Appearance flag is set by WorldMgr).
Revival flags for objects under this policy have their GameDataMgr set to 4.
ExpandActors under the RevivalUnderGodTime policy
- Blupee (Animal_RupeeRabbit_A)