Jump to content

Storing the state of changing content


madmax

Recommended Posts

Storing the state of changing content

https://github.com/mangoszero/server/issues/95

Currently any game content which is not simply a static spawn, but instead has movement, events, scripts running, will be despawned when the last player is out of range, since the grid will be unloaded.

This does pose an issue, since returning characters will find the game content at it's initial state once returning to the grid area, as the content will be starting at it's initial state once again.

Desired outcome

Any game content which does change during it's lifetime should instead of just being unloaded, store it's state prior to unloading, so that upon characters reentering the grid, we can calculate the how far the content would have progress in it's defined changes.

Examples

In Undercity, there is a constant event where Warlock trainers will summon all kinds of demons for training purposes. Currently when all characters have left the grid, this event would be unloaded, and once a characters enters the grid, the event would start from where it left off.

A proper solution would save the current progress in the events chain of things, and calculate how far the event would have progressed meanwhile, so that instead of seeing the event start again, you would now see the end if if had progress a few steps while the grid was unloaded.

Requirements

In order to achieve this, any kind of script, event, would need to have timing information, and we would need to store pointers towards all scripts, events, movements, etc. including time stamps, in order to calculate the events progress while it was not visible.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use