pasmon79 Posted August 6, 2020 Author Share Posted August 6, 2020 Thanks, I discovered their locations(Change State). Link to comment Share on other sites More sharing options...
pasmon79 Posted August 6, 2020 Author Share Posted August 6, 2020 I have noted one more thing of interest that "<State Alertness="Relax" Id="Sandbox_Core">" runs parallel to all other "States corresponding to Defending". Link to comment Share on other sites More sharing options...
pasmon79 Posted September 30, 2020 Author Share Posted September 30, 2020 I could not figure out the real purpose of relocate command accomplish in Enclaves? It happens after you play for one full day in story-mode and seems to displace one of NPC enclave to a new place. <Action ActionFlags="WaitForNoMission, Repeats" ActionId="Relocate" Link to comment Share on other sites More sharing options...
qmjs Posted September 30, 2020 Share Posted September 30, 2020 Nothing at all. It is a generic event included in all enclaves, in story mode, breakdown, and Lifeline. I don't think it is ever used, but was probably just a holdover from an early enclave template. Link to comment Share on other sites More sharing options...
pasmon79 Posted November 1, 2020 Author Share Posted November 1, 2020 (edited) "Status.DailySummary.TimePlayedToday" reaches the cutoff point required to block "dailyreset" in "SandboxCore" after 10 seconds of gametime each time after it is reset by "Dailyreset" and is updated continuously till 17hrs. Does it and all other variables(not protected by outputdauration) get reset to the value defined by "rtsdata" everytime we exit and reload the game, otherwise there is no second mechanism for resetting it to allow "DailyReset" after it is initialized at the start of level? In the following code, Dailyreset plays only if Alt fails. <Action ActionFlags="" ActionId="DailyResetIfPlayedYesterday" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline=""> <RTSActionIcon Name="" Id="" /> <NameText Flags="" Notes="" Text="" /> <Actors /> <Alts> <Alt AltId="IncrementDaysOffline" AltOdds="100.0" /> </Alts> <Effects /> <Inputs /> <Outputs> <EventTrigger Event="SandboxEvent_Home_DailyReset" /> </Outputs> </Action> <Action ActionFlags="Alt" ActionId="IncrementDaysOffline" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline=""> <RTSActionIcon Name="" Id="" /> <NameText Flags="" Notes="" Text="" /> <Actors /> <Alts /> <Effects /> <Inputs> <Check InputAmount="10" InputFlags="" InputId="!Status.DailySummary.TimePlayedToday" /> </Inputs> <Outputs> <EventTrigger Event="fsEvent.Home_IncrementDaysOffline" /> </Outputs> </Action> Edited November 1, 2020 by pasmon79 Link to comment Share on other sites More sharing options...
qmjs Posted November 1, 2020 Share Posted November 1, 2020 (edited) Most variables are not reset when exiting and restarting the game, but a few things are. Fatecards timers restart at 0, hordes events are all removed and restarted, and zombie densities are recalculated. The actual daily reset is called by the <OnNextDay> process found at the beginning of the enclave state module.IncrementDaysOffline is used to check to see if the daily reset processes one day or two (maximum), with the action CallNextDayEvent starting EventTrigger Event="SandboxEvent_Home_DailyReset".The <Check InputAmount="10" InputFlags="" InputId="Status.DailySummary.TimePlayedToday" /> baiscally is simply used to initiate the process when starting the game, so it is the first thing that occurs. After the reset runs, ClearCounters sets these to 0: <RTSStat_Set DurationCancellable="" OutputAmount="0" OutputDuration="" OutputId="Status.DailySummary.TimePlayedToday" PauseWhenOffline="" /> <RTSStat_Set DurationCancellable="" OutputAmount="0" OutputDuration="" OutputId="Status.DailySummary.DaysOffline" PauseWhenOffline="" /> If the reset is not yet ready, this runs repeatedly: <Action ActionFlags="Hidden, Repeats" ActionId="UpdatePlayedToday" ActionType="Action.Passive" ExecuteTimeStandard="1s" OutputDelayTime="0.0" PauseWhenOffline="True"> <RTSActionIcon Name="" Id="" /> <NameText Flags="" Notes="" Text="" /> <Actors /> <Alts /> <Effects /> <Inputs /> <Outputs> <EventTrigger Event="fsEvent.UpdatePlayedToday" /> </Outputs> </Action> Which does this: <Inputs> <Check InputAmount="<60000" InputFlags="" InputId="Status.DailySummary.TimePlayedToday" /> </Inputs> <Outputs> <RTSStat_Add DurationCancellable="" OutputAmount="1" OutputDuration="" OutputId="Status.DailySummary.TimePlayedToday" PauseWhenOffline="" /> </Outputs> The actual daily reset itself is a 14 hour cycle (rtsdata <Value Default="50400" Name="NextDayTime">) So essentially this is the process:New game, time is set to 0, or when the daily reset is done, the time is set to 0. This value is saved when exiting. (It is also calculated from the save game time difference.)You may enter and exit the game any number of times before Status.DailySummary.TimePlayedToday reaches 50400 or more and it will be the same day.If you are playing and it counts up to 60000, the time stops counting. Continuing to count up is essentially pointless, for the next reason. As long as you continue to play, the next game process doesn't run.When loading a game, if the timer is 50400 or more, OR if the actual save game date/time difference is over 50400, the next day process is initiated upon loading. A couple of observations: you could reset the 50400 to a different value as long as the 60000 is a larger number. The way it is set up now, you will only get one daily reset per day no matter how much you are playing.In the original game (one of the first patch changes made) the game did not stop counting days offline at 2. You could go a week without playing and come back to a total mess... everyone sick or dead, all resources used up, and so on. Edited November 1, 2020 by qmjs Link to comment Share on other sites More sharing options...
pasmon79 Posted November 1, 2020 Author Share Posted November 1, 2020 Thanks. I misunderstood <Check InputAmount="10" InputFlags="" InputId="!Status.DailySummary.TimePlayedToday" />NextDayTime is used nowhere in game(probably by exe). So the game actually stores the result of our manipulation of the variable defined by rtsdata.xml. Link to comment Share on other sites More sharing options...
qmjs Posted November 1, 2020 Share Posted November 1, 2020 Yes, it does. The exe monitors the TimePlayedToday and triggers the <OnNextDay> condition during game load. Link to comment Share on other sites More sharing options...
pasmon79 Posted July 17, 2021 Author Share Posted July 17, 2021 (edited) So in "Breakdown" "nextday" events and their limit of counting days offline is strictly handled by "exe" via calculating the time difference of "savegame" date and time difference". I have checked that Lifeline has its own way of running nextday events, which are not controllable and are called by "Lifeline.AdvanceAfterSiege" and "Lifeline.NextDayEventOnly". Further In "Lifeline", <OnNextDay> at the start of "Siege State" is totally irrelevant as it applies to "Enclave.Home_Sandbox", which does not exist in the game. Edited July 17, 2021 by pasmon79 Link to comment Share on other sites More sharing options...
qmjs Posted July 17, 2021 Share Posted July 17, 2021 Yeah, there is a lot of stuff in each mode that doesn't need to be there... Breakdown has a massive amount of holdover junk from the story mode, and Lifeline has holdover stuff from story and Breakdown. If I recall correctly, the tactics option with Thin the Herd affects the time between seiges, so you may find some more information in there. Link to comment Share on other sites More sharing options...
Recommended Posts