d3stro
Дебютант
Всем привет, обитатели форума Pawno-Info.
В этой теме я продемонстрирую вам команду /givegun.
Данную команду я писал на движке DC_CMD.
В этой теме я продемонстрирую вам команду /givegun.
Данную команду я писал на движке DC_CMD.
Думаю, начнем!
Добавляем в конец мода:
PHP:
CMD:givegun(playerid, params[])
{
if(sscanf(params, "udd", params[0], params[1], params[2])) return SCM(playerid, -1, "{49FF1C}[Подсказка]{FFFFFF} Введите: /givegun [ID] [ID оружия] [Кол-во патронов]");
if(!IsPlayerConnected(params[0]) || params[0] == INVALID_PLAYER_ID) return SCM(playerid, -1, "{FF0000}[X]{FFFFFF} Игрок не найден!");
if(params[1] < 1 || params [1] > 46 || params[1] == 19 || params[1] == 20 || params[1] == 21) return SCM(playerid, -1, "{FF0000}[X]{FFFFFF} Неверный ID оружия!");
if(params[2] < 1 || params[2] > 999) return SCM(playerid, -1, "{FF0000}[X]{FFFFFF} Кол-во патронов не может быть больше 999!");
new gun[95], gun1[90];
format(gun, sizeof(gun), "Вы выдали игроку {12D0FF}%s{FFFFFF} оружие: [%s]. Кол-во патронов: %d.", player_info[playerid][NAME], weaponname(params[1]), params[2]);
SCM(playerid, -1, gun);
format(gun1, sizeof(gun1), "Администратор {12D0FF}%s{FFFFFF} выдал вам оружие: [%s].", player_info[playerid][NAME], weaponname(params[1]));
SCM(playerid, -1, gun1);
GivePlayerWeapon(playerid, params[1], params[2]);
return 1;
}
Нужный дефайн:
PHP:
#define SCM SendClientMessage
Также нужен сток, для определения названия выданного оружия:
PHP:
stock weaponname(weaponid)
{
new weapon[32];
GetWeaponName(weaponid, weapon, sizeof(weapon));
if(weaponid == 0) format(weapon, sizeof(weapon), "None");
return weapon;
}
Теперь приступим к объяснению, что за что отвечает:
PHP:
CMD:givegun(playerid, params[]) //Имя команды, строки
{
if(sscanf(params, "udd", params[0], params[1], params[2])) return SCM(playerid, -1, "{49FF1C}[Подсказка]{FFFFFF} Введите: /givegun [ID] [ID оружия] [Кол-во патронов]"); //Создаем строки, в которые будут заноситься данные. Если хоть одна строка не будет введена, будет выдаваться текст.
if(!IsPlayerConnected(params[0]) || params[0] == INVALID_PLAYER_ID) return SCM(playerid, -1, "{FF0000}[X]{FFFFFF} Игрок не найден!"); //Проверка на наличие игрока на сервере или на его ИД. Если такого нету, выдает текст.
if(params[1] < 1 || params [1] > 46 || params[1] == 19 || params[1] == 20 || params[1] == 21) return SCM(playerid, -1, "{FF0000}[X]{FFFFFF} Неверный ID оружия!"); //Проверка на ИД оружия. Если введен неверный, выдает текст.
if(params[2] < 1 || params[2] > 999) return SCM(playerid, -1, "{FF0000}[X]{FFFFFF} Кол-во патронов не может быть больше 999!"); //Проверка на введенное кол-во патронов. Если количество превышено, выдает ошибку.
new gun[95], gun1[90]; //Новые переменные
format(gun, sizeof(gun), "Вы выдали игроку {12D0FF}%s{FFFFFF} оружие: [%s]. Кол-во патронов: %d.", player_info[playerid][NAME], weaponname(params[1]), params[2]); //Выдаём текст при вводе команды [1].
SCM(playerid, -1, gun); //Выдаём предыдущий текст игроку.
format(gun1, sizeof(gun1), "Администратор {12D0FF}%s{FFFFFF} выдал вам оружие: [%s].", player_info[playerid][NAME], weaponname(params[1])); //Выдаём текст при вводе команды [2].
SCM(playerid, -1, gun1); //Выдаём предыдущий текст Вам.
GivePlayerWeapon(playerid, params[1], params[2]); //Выдаём оружие игроку.
return 1;
}
Спасибо за внимание!
Это моя первая команда, которую я выложил во всеобщий доступ. Так что жду жёсткую критику!
