Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

/givegun

Статус
В этой теме нельзя размещать новые ответы.

d3stro

Дебютант
Всем привет, обитатели форума Pawno-Info.
В этой теме я продемонстрирую вам команду /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;
}

Спасибо за внимание!​
Это моя первая команда, которую я выложил во всеобщий доступ. Так что жду жёсткую критику!​
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу