Перейти к основному содержимому

Система серверных переменных

Система серверных переменных (в сокращении SVar) - это новый способ динамического создания серверных переменных в глобальном пространстве, т.е. к одной переменной можно получить доступ и из игрового мода (gamemode), и из подключаемого сценария (filterscript).

Они работают точно так же, как PVars, но не привязаны к конкретному ID игрока.

warning

Эта система была представлена в SA-MP 0.3.7 R2-1 и не будет работать на ранних версиях!

примечание

Система SVar аналогична системе PVar, за исключением того, что SVar создаёт глобальные серверные переменные, не привязанные к ID игроков, которые не изменяются даже при смене игрового режима (gamemode).

Преимущества

  • SVar'ы могут быть созданы и считаны во всех запущенных сценариях сервера (игровые режимы, скрипты, инклуды и т.д.)

  • SVar легко вывести или записать куда-то с помощью перебора. Это делает отладку намного проще.

  • Если попытаться получить доступ к ещё не созданной серверной переменной, она всё ещё вернёт значение по умолчанию - 0.

  • В SVar можно хранить очень большие строки при помощи динамически выделяемой памяти.

  • Можно устанавливать, получать и создавать SVar прямо во время игры.

Недостатки

  • SVar в несколько раз медленнее, чем обычные переменные. Как правило, предпочтительнее пожертвовать памятью, нежели скоростью, но не наоборот.

Функции

  • SetSVarInt: установить целочисленное значение серверной переменной.
  • GetSVarInt: получить целочисленное значение серверной переменной.
  • SetSVarString: установить строчное значение серверной переменной.
  • GetSVarString: получить строчное значение серверной переменной.
  • SetSVarFloat: установить число с плавающей точкой в качестве значения серверной переменной.
  • GetSVarFloat: получить целочисленное значение серверной переменной в виде числа с плавающей точкой.
  • DeleteSVar: удалить серверную переменную.