Перейти к содержанию
Авторизация  
Vladimir_Kulkov

Команда /makeadmin на dc_cmd

Рекомендуемые сообщения

Vladimir_Kulkov

Всем привет не видел на данном форуме такую команду как /makeadmin и решил её выложить.
Итак начнем!

Сначала сделаем #define

#define SCM SendClientMessage

К вашим командам.

CMD:makeadmin(playerid, params[])
{
if(Player[playerid][pAdmin] < 8) return SCM(playerid, 0xFF0000AA, "Вы не уполномочены использовать данную команду");
if(sscanf(params, "ii", params[0], params[1])) return SCM(playerid, 0xFF0000AA, "Введите: /makeadmin [0-7]");
if(!IsPlayerConnected(params[0])) return SCM(playerid, 0xFF0000AA, "Данный игрок не в сети!");
if(params[1] < 0 || params[1] > 7) return SCM(playerid, 0xFF0000AA, "Уровень админа [0-7]");
Player[params[0]][pAdmin] = params[1];
static const fmt_str[] = "Админ %s изменил ваш уровень админа на: %d";
new string[sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+1];
format(string, sizeof(string), fmt_str, Player[playerid][pName], params[1]);
SCM(params[0], 0xFFFF00FF, string);
return true;
}

А теперь давайте разберем код.

new string[128]; // Отвечает за размер строки (Не менять больше! т.к нагружать сервер будет)
if(Player[playerid][pAdmin] < 8) // Отвечает за проверку уровня админа (Player - Это переменная где хранятся данные об игроке например у меня: Player) pAdmin - Это массив отвечающий за админа меняйте на свой, (( < 8 - Если уровень админа меньше 8, то возникает ошибка ))
if(sscanf(params, "ii", params[0], params[1])) // params, "ii" - Отвечает за текст и айди игрока, params[0] - ид игрока, params[1] - уровень админа
if(!IsPlayerConnected(params[0])) // Проверка на в сети ли игрок, params[0] - ид игрока который был введен
if(params[1] < 0 || params[1] > 7) // params[1] < 0 если введеный уровень меньше 0, params[1] > 7 если введеный уровень больше 7, то возникнет ошибка, (params[1] - отвечает за текст)
Player[params[0]][pAdmin] = params[1]; // Присвоение игроку уровень админа, Player[params[0] - ИД игрока, = params[1] - Уровень который хотят дать
    format(string, sizeof(string), "Админ %s изменил ваш уровень админа на: %d", Player[playerid][pName], params[1]); // Player[playerid][pName] - Ваш массив с именем (Ставите свой), params[1] - Сколько игроку поставили уровень админа
    SendClientMessage(params[0], 0xFFFFFFAA, string);
return true; // Действие повторяется

Автор : неизвестно

Изменено пользователем Vladimir_Kulkov
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

не видел на данном форуме такую команду как /makeadmin

А это что?)

 

 

Отвечает за размер строки (Не менять больше! т.к нагружать сервер будет)

он и так будет нагружать сервер, лучше использовать так:

CMD:makeadmin(playerid, params[])
{
if(Player[playerid][pAdmin] < 8) return SCM(playerid, 0xFF0000AA, "Вы не уполномочены использовать данную команду");
if(sscanf(params, "ii", params[0], params[1])) return SCM(playerid, 0xFF0000AA, "Введите: /makeadmin [0-7]");
if(!IsPlayerConnected(params[0])) return SCM(playerid, 0xFF0000AA, "Данный игрок не в сети!");
if(params[1] < 0 || params[1] > 7) return SCM(playerid, 0xFF0000AA, "Уровень админа [0-7]");
Player[params[0]][pAdmin] = params[1];
static const fmt_str[] = "Админ %s изменил ваш уровень админа на: %d";
new string[sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+1];
format(string, sizeof(string), fmt_str, Player[playerid][pName], params[1]);
SCM(params[0], 0xFFFF00FF, string);
return true;
}
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vladimir_Kulkov

 

 


CMD:makeadmin(playerid, params[]) { if(Player[playerid][pAdmin] 7) return SCM(playerid, 0xFF0000AA, "Уровень админа [0-7]"); Player[params[0]][pAdmin] = params[1]; static const fmt_str[] = "Админ %s изменил ваш уровень админа на: %d"; new string[sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+1]; format(string, sizeof(string), fmt_str, Player[playerid][pName], params[1]); SCM(params[0], 0xFFFF00FF, string); return true; }

Изменил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

@Vladimir_Kulkov,а само объяснение?) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vladimir_Kulkov

, хм.. Если она конечно повторяется, прошу удалить тему

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vegas

Автор: Avisomik :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.