Пятница, 29.11.2024, 04:08Привет Гость
ArmA-2 Моды, миссии, кампании, аддоны, скрипты, редактор

Главная | Файлы | FAQ | Платформа | О сайте | Контакты | Зарегистрироваться | Войти
[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Сохрание / восстановление данных из внешнего хранилища
PIONEERДата: Понедельник, 14.02.2011, 20:02 | Сообщение # 1
Лейтенант
Сообщений: 589
Репутация: 16
Статус: Offline
Есть возможность реализовать сериализацию / десериализацию произвольных данных во внешнее (абстрактное) хранилище. Основной смысл всего этого - возможность рестарта MP-сервера с последующим восстановлением прогресса (например, для rpg-style миссий), в том числе - с динамической сериализацией / десериализацией прямо в процессе игры.
В коде это выглядит примерно так:

Code
// сохранение данных
variable = [1,2, "text"];
["userState1", variable] call AOS_SERIALIZE;

// Загрузка данных
variable = ["userState1"] call AOS_DESERIALIZE;


Сохрание / восстановление данных из внешнего хранилища
Есть возможность реализовать сериализацию / десериализацию произвольных данных во внешнее (абстрактное) хранилище. Основной смысл всего этого - возможность рестарта MP-сервера с последующим восстановлением прогресса (например, для rpg-style миссий), в том числе - с динамической сериализацией / десериализацией прямо в процессе игры.
В коде это выглядит примерно так:
Код:

// сохранение данных
variable = [1,2, "text"];
["userState1", variable] call AOS_SERIALIZE;

// Загрузка данных
variable = ["userState1"] call AOS_DESERIALIZE;

При сохранении данных нужно указать ключ-строку, по которой потом можно будет идентифицировать данные для загрузки.
Данные при сохранении перезаписываются поверх существующих данных, связанных с этим ключом. Ключи привязываются к карте (для разных карт можно хранить разные сохраненные состояния).
При загрузке, если данных по такому ключу нет, то вернется пустой массив []. Если что-то пошло не так при загрузке - вернется nil.

При вызове функций сериализации/десериализации используется блокировка одновременного доступа, так что вызывать функции следует только из параллельных потоков.

Для подключения функционала достаточно просто скомпилировать файл или подключить его любым удобным способом.

Для мониторинга сообщений и сохранения используется внешняя мониторилка. Ее нужно держать запущенной все время работы армы.
Для работы монитора требуется MS .Net Framework 3.5 SP1.

Путь до хранилища настраивается в конфиге (файлик с расширением .config, должен лежать в каталоге с монитором).

З.Ы. Для альтернативно одаренных: "Что такое сериализация?"

Автор: Leopotam

Прикрепления: AOS.zip (7.0 Kb)




Хотите больше новостей? Подписывайтесь на мою рассылку
 
  • Страница 1 из 1
  • 1
Поиск:





Copyright web-pioneer.at.ua © 2011 | Используются технологии uCoz
Админ: PIONEER | web-pioneer@yandex.ru | Любое или частичное копирования материала с веб-сайта web-pioneer.at.ua запрещено! А то прокляну.