Инфо cvars.inc
/**
* Позволяет плагину узнать значение клиентского квара, путем отправки специального запроса.
*
* @note пример того, как можно оформить вызываемую callback функцию
*
* public cvar_query_callback(id, const cvar[], const value[], const param[])
* id - индекс игрока
* cvar - запрашиваемый квар
* value - значение квара у игрока
* param - необязательные доп. данные
*
* @param id индекс игрока
* @param cvar запрашиваемый квар
* @param resultFunc имя callback функции
* @param paramlen размер массива доп. данных
* @param params доп. данные, которые будут переданы в callback
*
* @noreturn
* @error Сообщение об ошибке будет выдано в следующих случаях:
* - если индекс игрока находится за пределами диапазона от 1 до
* MaxClients
* - игрок не подключен
* - callback функция не объявлена
* - в процессе запроса возникли проблемы
*/
native query_client_cvar(id, const cvar[], const resultFunc[], paramlen=0, const params[]="");
пример проверки:
#include <amxmodx>
#define PLUGIN "Check client cvar"
#define VERSION "1.0"
#define AUTHOR "amxxmodx.ru"
#define MAX_CLIENTS 32
#define NAME_LEN 32
#define TASKID_CHECK_CLIENT_CVAR 12345
// Название квара
#define CVAR_NAME "rate"
new user_name[NAME_LEN];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
}
public client_putinserver(id)
{
set_task(1.0, "check_client_cvar", id + TASKID_CHECK_CLIENT_CVAR);
}
public check_client_cvar(taskid)
{
new id = taskid - TASKID_CHECK_CLIENT_CVAR;
if (!is_user_connected(id)) {
return;
}
// Запрашиваем значение клиентского квара
query_client_cvar(id, CVAR_NAME, "cvar_query_callback");
}
public cvar_query_callback(id, const cvar[], const value[])
{
get_user_name(id, user_name, charsmax(user_name));
// Если квар не существует value будет 'Bad CVAR request'
log_amx("User: '%s', cvar: '%s', value: '%s'", user_name, cvar, value);
}