Данные
Хранилище
Storage хранит текст по ключу, как Map<string, string>, только на диске:
то, что плагин сохранил, переживает смену карты и перезапуск сервера. Это
место для накопленных очков игрока, его последнего визита, настройки.
const visits = new Storage("myplugin_visits");
server.addEventListener("putInServer", (event) => countVisit(event.player));
function countVisit(player: Client) {
const saved = visits.get(player.steamId); // string | null: null, если ключа нет
const count = saved == null ? 1 : parseInt(saved) + 1;
visits.set(player.steamId, count.toString());
console.log(`${player.name}: заход номер ${count}`);
}
| Метод | Что делает |
|---|---|
get(key) | значение под key или null |
set(key, value) | кладёт value под key, заменяя то, что там было |
has(key) | true, если под key есть значение |
delete(key) | удаляет key; если ключа нет, ничего не происходит |
Имя — это файл хранилища: new Storage("myplugin_visits") держит данные в
addons/amxmodx/data/vault/myplugin_visits.vault. Давайте каждому хранилищу
своё имя, начиная с имени плагина. Файл открывается при первом обращении.
Это файл nVault, поэтому плагин на Pawn может открыть то же хранилище через
nvault_open("myplugin_visits").
Ключи и значения — текст. Число кладётся через toString(), а достаётся
через parseInt или parseFloat. Значение читается длиной до 255 байт
UTF-8: 255 латинских букв, около 127 русских.
Когда данные попадают на диск
Изменения держатся в памяти и записываются в файл при смене карты или при нормальном выключении сервера. Если сервер упал или его убили, всё, что записано после последней смены карты, пропадёт.
Изменения держатся в памяти и записываются в файл при смене карты или при нормальном выключении сервера. Если сервер упал или его убили, всё, что записано после последней смены карты, пропадёт.