SlenderTop4ik

[MxINI] /givegun - выдать оружие

6 posts in this topic

Здравствуйте, я выкладываю команду /givegun. Что она может? Она выдает оружие игрокам. Код ниже:

Автор: SlenderTop4ik

Команду слил: SlenderTop4ik

	if(strcmp(cmd, "/givegun", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_YELLOW, "Помощь: /givegun [ид] [ид оружия] [патроны]");
				return 1;
			}
			new playa;
			new gun;
			new ammo;
			giveplayerid = ReturnUser(tmp);
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			playa = ReturnUser(tmp);
			tmp = strtok(cmdtext, idx);
			gun = strval(tmp);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_YELLOW, "Помощь: /givegun [ид] [ид оружия] [патроны]");
				SendClientMessage(playerid, COLOR_GRAD1, "1(кастет) 2(клюшка) 3(дубинка) 4(нож) 5(бита)");
				SendClientMessage(playerid, COLOR_GRAD1, "6(лопата) 7(кий) 8(катана) 9(пила) 10-13(фаллосы) 14(букет)");
				SendClientMessage(playerid, COLOR_GRAD1, "15(трость) 16(гранаты) 17(дым) 18(коктейль молотова)");
				SendClientMessage(playerid, COLOR_GRAD1, "22(кольт) 23(глушитель) 24(пустынный орел) 25(дробовик)");
				SendClientMessage(playerid, COLOR_GRAD1, "26(обрезы) 27(дробовик/7) 28(узи) 29(МР5)");
				SendClientMessage(playerid, COLOR_GRAD1, "30(АК47) 31(М16) 32(ТЕС9) 33(винтовка)");
				SendClientMessage(playerid, COLOR_GRAD1, "34(сн.винтовка) 35(базука) 36(базука с СР) 37(огнемет)");
				SendClientMessage(playerid, COLOR_GRAD1, "41(спрей) 42(огнетушитель) 43(фотокамера)");
				SendClientMessage(playerid, COLOR_GRAD1, "44(ПНВ) 45(ПТВ) 46(прашут)");
				return 1;
			}
			tmp = strtok(cmdtext, idx);
			ammo = strval(tmp);
			if(ammo <1||ammo > 9999)
			{ SendClientMessage(playerid, COLOR_GRAD1, "Кол-во патронов от 1 до 9999"); return 1; }
			if (PlayerInfo[playerid][pAdmin] >= 11)//Проверка на админа. Меняйте на свое
			{
				if(IsPlayerConnected(playa))
				{
					if(playa != INVALID_PLAYER_ID)
					{
						PyxiTime[playa] = 5;
						GivePlayerWeapon(playa, gun, ammo);
						SendClientMessage(playerid, COLOR_RED, "Выдано");
						format(string, sizeof(string), "[A] %s выдал %s оружие. (%d-%d-%d)",sendername,giveplayer,gun, ammo);
						ABroadCast(COLOR_GRAD1,string,7);
					}
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_GRAD1, "У вас нету прав!");
			}
		}
		return 1;
	}

 

Edited by SlenderTop4ik
Причина: Кое-что забыл добавить

Share this post


Link to post
Share on other sites

D:\!user\Desktop\[FS] Семья\gamemodes\new.pwn(755) : warning 217: loose indentation
D:\!user\Desktop\[FS] Семья\gamemodes\new.pwn(770) : error 017: undefined symbol "sendername"
D:\!user\Desktop\[FS] Семья\gamemodes\new.pwn(770) : error 017: undefined symbol "sendername"
D:\!user\Desktop\[FS] Семья\gamemodes\new.pwn(770) : error 029: invalid expression, assumed zero
D:\!user\Desktop\[FS] Семья\gamemodes\new.pwn(770) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664              Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.
 

Share this post


Link to post
Share on other sites

@Braavos какой в моде командный процессор используется. Скинь начало  любой команды. 

Share this post


Link to post
Share on other sites

причём тут mxINI ? (я про название темы)

Share this post


Link to post
Share on other sites

Функции:

  • ReturnUser,
  • ABroadCast

Предоставьте.

Edited by Skiffi

Share this post


Link to post
Share on other sites

Немного оптимизировал, вырезал лишнее, перевел на командный процессор DCMD.
Так же стоит отметить, что для нормальной компиляции и работы данного кода в моде должны быть подключены sscanf2 и foreach.

Спойлер

 


CMD:givegun(playerid, params[]) { //Основа самой команды
	if(PlayerInfo[playerid][pAdmin] < 11) //Проверка на администратора | Меняете на свою
		return SendClientMessage(playerid, COLOR_GRAD1, "У вас нету прав!"); //Выдача сообщения, если игрок не является администратором

	extract params -> new id, gunid, ammo; else //Проверка на валидность введенных данных
		return SendClientMessage(playerid,COLOR_YELLOW,!"Помощь: /givegun [ид] [ид оружия] [патроны]"); //Выдача сообщения при невалидности

	if(1 > ammo > 9999) //Проверка на введенное количество патронов
		return SendClientMessage(playerid,-1,!"Количество патронов от 1 до 9999"); //Выдача сообщения, если было введено невалидное количество патронов

	GivePlayerWeapon(playa, gun, ammo); //Выдача самого оружия

	new
		aName[MAX_PLAYER_NAME],
		pName[MAX_PLAYER_NAME]; //Переменные для получения имен игроков

	GetPlayerName(playerid,aName, sizeof(aName));
	GetPlayerName(id,pName, sizeof(pName)); //Получение имен игроков

	format(string,sizeof(string),"[A] %s выдал %s оружие. (%d-%d-%d)",aName,pName,gun, ammo); //Форматирование сообщения
	
	foreach(new i:Player) { //Цикл для выдачи сообщения администрации
		if(PlayerInfo[playerid][pAdmin] != 0) //Проверка на администратора | Меняете на свою
			SendClientMessage(i,-1,string); //Выдача сообщения
    }
	return SendClientMessage(playerid, COLOR_RED,!"Выдано"); //Выдача сообщения игроку, прописавшему команду, завершение действия команды
}


И.. Псс.. Чел ? А ты сам заметил что те сообщения с ID оружия, которые по твоей задумке должны выводится, просто напросто никогда не смогут вывестись? :D
Если поднять глаза чуть выше этих самых сообщений, можно найти абсолютно идентичную проверку, в конце которой стоит return, т.е. ты возвращаешь действие.

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   You have pasted content with formatting.   Remove formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Radmiz
      By Radmiz
      Добрый вечер, у меня образовалась проблема! Я уже как 1-2 месяца назад скачал этот мод, там было всё прекрасно но вдруг появилась проблема с маппингом типо он не удаляеться. Тоесть объекты были удалены а теперь как будто этого и не было вот скрины > https://yapx.ru/v/Kwrv1
    • _bogdan_
      By _bogdan_
      Добрый вечер, подскажите какой можно взять мод под основу. Сейчас на пабликах/видео ресурсах, везде рекламируют R*dmir rp. 
      Но все знают что мод багнутый. Хотелось бы узнать какие есть более менее годные игровые моды которые можно взять под основу.
      За ранее благодарен тем кто ответил.))