SetSVarString

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск

Описание:

Устанавливает значение серверной переменной строкового типа.

Параметры:

(varname[], string_value[])
varname[] Название переменной.
string_value[] Строковое значение, которое требуется записать в переменную.


Возвращаемое значение:

1 в случае успеха, либо 0, если игрок не подключен, вместо названия переменной (параметр varname) указана пустая строка или если длина названия больше 40 символов.

Info rhombus.png
Примечание
SVar'ы создаются в момент установки их значения (SetSVarInt(), SetSVarFloat(), SetSVarString()) и сохраняют своё значение при перезагрузке мода/фильтрскриптов, однако могут быть удалены вручную с помощью функции DeleteSVar().
Максимальная длина названия SVar'а - 40 символов (41 с учётом символа конца строки '\0').
Названия SVar'ов не чувствительны к регистру. Например, названия "admin", "ADMIN", "Admin" и "AdMiN" будут обозначать один и тот же SVar.
Всего можно создать до 2000 SVar'ов.
В одном SVar'е может быть только одно значение - нельзя хранить 2 или 3 значения разных типов.


Bug.png
Баг SA-MP
Содержимое массивов varname и string_value не изменяется во время работы функции, однако сами массивы объявлены без атрибута const:
native SetSVarString(varname[], string_value[]);
в то время, как правильный (const-корректный) заголовок функции должен выглядеть так:
native SetSVarString(const varname[], const string_value[]);
Если аргумент-массив объявлен без const, компилятор считает, что функция записывает в него данные, и потому не позволяет передавать в функцию неизменяемые массивы, выдавая ошибку несоответствия типов.
static const var_name[] = "var1";
SetSVarString(var_name, "1234"); // error 035: argument type mismatch (argument 1)
static const value[] = "5678";
SetSVarString("var2", value); // error 035: argument type mismatch (argument 2)


Пример использования:

// В коде гейммода.
new string[144 + 1];
GetSVarString("event_name", string, sizeof(string));
format(string, sizeof(string), "Приглашаем Вас на мероприятие \"%s\"! (введите \"/event\" для телепортации)");
SendClientMessage(playerid, -1, string);

// Где-то ещё (в одном из фильтрскриптов?)
static event_name[] = "Голодные игры";
SetSVarString("event_name", event_name);


См. также: