Нужна система которая сохраняет копию предметов на событии конца раунда, смены карты по голосованию, а так же по расписанию каждые 5 минут, таким образом благодаря этому у игроков кто умер или что-то еще забыл сохранить, а карту сменили или слились будет возможность забрать свои данные.
Нужно сделать:
- Добавить задание стройке на снятие трех типов дампов предметов стройки: на конце раунда, на смене карты по голосованию, по расписанию каждые 5 минут (макс кол-во копий 12, при превышении этого числа удалять первую копию в стеке копий)
- Добавить в хранилище предметов на вторую страницу меню пункт "Машина времени", в котором будет возможность сохранить предметы игрока из копии. В этом пункте будет представлен список резервных копий отсортированный по типам:
1. Последний конец раунда.
2. Последняя смена карты
- При открытии резервной копии, отображать список слотов и кол-во предметов в каждом из них. По нажатию на слоты в резервной копии где есть предметы, при ответе на вопрос: вы уверены, что хотите сохранить предметы из слота <номер> в резервной копии в слот <номер>? выполнять сохранение предметов из резервной копии в базу данных напрямую.
Необходимые ограничения:
- Нельзя позволять игрокам сохранять объекты из резервной копии из одних слотов в другие слоты, предмет должен остаться в своем слоте иначе обязательно будут возможности скопировать предмет.
- Нельзя позволять загружать предметы с прошлой карты и из снапшотов не из этой карты.
Надо учитывать:
- Метод сохранения из копии должен понимать что если карту сменили и текущая отличается от той что в копии то он должен сохранять именно в слоты на карте из копии.
- Надо учитывать что копии по расписанию надо как-то защитить от краша / рестарта сервера, таким образом эти копии нужно хранить в каком-то другом формате. И похоже данного вида копий в первой версии не будет, но в первой будет понимание системой что типов копий три: конец раунда, за неск. сек до смены карты, по расписанию
Рекомендуемые комментарии
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.