Данные

Хранилище

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 русских.

Когда данные попадают на диск
Изменения держатся в памяти и записываются в файл при смене карты или при нормальном выключении сервера. Если сервер упал или его убили, всё, что записано после последней смены карты, пропадёт.