Callback
Компетентный
Доброго времени суток, уважаемые посетители Pawno-Info.Ru. Сегодня пойдёт речь о SVars ( Server Variables ).
- Fixes an index problem with PVars and SVars where *GetUpperIndex would return 1 when all vars had been deleted.
- Исправлена проблема с PVar'ами и SVar'ами, когда *GetUpperIndex возвращал 1, когда все переменные были удалены.
Ну по сути, тоже самое что и PVar's, только для сервера.
Начнем.
Сами манипуляции:
PHP:
SetSVarInt(varname[], int_value); // Установить int значение для SVar'a
GetSVarInt(varname[]); // Узнать int значение SVar'a
SetSVarString(varname[], string_value[]); // Установить string значение SVar'у
GetSVarString(varname[], string_return[], len); // Узнать string значение SVar'a
SetSVarFloat(varname[], Float:float_value); // Установить float значение SVar'y
Float:GetSVarFloat(varname[]); // Узнать float Значение SVar'a
// Как вы заметили можно использовать так:
new Float:_floatsv = GetSVarFloat("Test");
DeleteSVar(varname[]); // Удаляет SVar из памяти
Классификация SVar's
PHP:
#define SERVER_VARTYPE_NONE 0
#define SERVER_VARTYPE_INT 1
#define SERVER_VARTYPE_STRING 2
#define SERVER_VARTYPE_FLOAT 3
Остальные функции:
PHP:
native GetSVarsUpperIndex(); // Возвращает максимальный ID из созданных SVar's
native GetSVarNameAtIndex(index, ret_varname[], ret_len); // Возвращает название SVar'a по его индексу
native GetSVarType(varname[]); // Возвращает тип SVar'a по его названию
Думаю тут понятно и ясеню как их использовать.
Пример:
PHP:
// Допустим установим погоду и дадим серверу её запомнить
new weather = random(20);
SetWeather(weather);
SetSVarInt("_weatherID", weather); // Записали ID установленной погоды в SVar Int типа
// Ну, допустим гравитация
native GetGravity(); // Т.к она не объявлена в a_samp.inc, объявляем её сами
SetSVarFloat("_gravityVal", GetGravity());
// Название например
new h_name[18];
GetServerVarAsString("hostname", h_name, 18); // записываем
SetSVarString("_hname", h_name);
// Чтение
// Например та же погода
SetWeather(GetSVarInt("_weatherID"));
// Гравитация
SetGravity(GetSVarFloat("_gravityVal"));
// Ну или запишем наш хостнейм
new string[18];
GetSVarString("_hname", string, sizeof(string));
printf("%s", string);
// Удаление
DeleteSVar("Test");
