6 posts in this topic

SlenderTop4ik
Новичок

Здравствуйте, я выкладываю команду /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
Braavos
Новичок

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
DEST
Maintainer

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

Share this post


Link to post
Share on other sites
Skiffi
Активный

Функции:

  • ReturnUser,
  • ABroadCast

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

Edited by Skiffi

Share this post


Link to post
Share on other sites
Skiffi
Активный

Немного оптимизировал, вырезал лишнее, перевел на командный процессор 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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Fosper [BS]
      By Fosper [BS]
      Здравствуйте уважаемы читатели, хочу обьявить набор в команду для разработки CRMP проекта на телефон!
      Нам нужны: 
       
      1) PAWN разработчик
      2) Маппер - человек который будет работать над картой и интерьером
      3) Челоек который раньше занимался разработкой CRMP проекта на телефон
      Пока что нужны данные специалисты в случае чего в этой теме добавлю еще вакансии, 
      РАБОТА НЕ БУДЕТ БЕСПЛАТНОЙ, ПРОДЕЛАННАЯ ВАМИ РАБОТА БУДЕТ ОПЛАЧИАВТЬСЯ
      ВК для связи: @alkhasovvvm
       
      Всем спасибо за внимание, ждем вас 
       
    • снайк
      By снайк
      Проект Meridian Project (CR:MP) выходит на стадию активного расширения. Мы серьезно обновили основу мода и теперь ищем талантливых разработчиков, готовых вместе с нами дополнять и улучшать игровой мир.
       
      Важное уточнение по условиям: На текущем этапе мы работаем на энтузиазме и долгосрочную перспективу. В данный момент все средства уходят на техническую разработку и поддержание серверной инфраструктуры, поэтому сразу оплачивать работу мы не сможем.
       
      Как только сервер будет успешно запущен и начнет функционировать в штатном режиме, мы перейдем на оплату труда. Со своей стороны гарантируем честность и различные «плюшки» на сервере для членов команды.
       
      Что мы предлагаем:
      Работа над структурированным и оптимизированным модом.
      Четкие ТЗ и адекватное руководство.
      Возможность стать частью ключевого состава на старте.
       
      Наши требования:
      Уверенное владение языком PAWN.
      Знание MySQL и основ оптимизации.
      Желание развивать качественный проект, а не просто «накидать код».
      Ответственность: взялись за задачу — довели до конца.
       
      Ваши задачи:
      Разработка и внедрение новых систем (работы, функционал фракций и др.).
      Исправление багов и доработка текущего функционала.
       
      Убедительная просьба: если вас не устраивают условия работы на перспективу или вам не интересен сам процесс создания качественного продукта — пожалуйста, не тратьте наше и своё время. Мы ищем единомышленников, которые готовы расти вместе с проектом, а не тех, кто ищет легкой и быстрой наживы здесь и сейчас.
       
      Связаться с нами: 
      Telegram: https://t.me/escape_log
      ВКонтакте: https://vk.com/oskar_novicc
    • tamikmod
      By tamikmod
      проблема на фото указана, прошу помочь