В теме 6 сообщений

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;
	}

 

Отредактировано пользователем SlenderTop4ik
Причина: Кое-что забыл добавить

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


Ссылка на сообщение
Поделиться на другие сайты
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.
 

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


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

Функции:

  • ReturnUser,
  • ABroadCast

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

Отредактировано пользователем Skiffi

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


Ссылка на сообщение
Поделиться на другие сайты
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, т.е. ты возвращаешь действие.

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


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

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

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

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

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


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

Войти

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


Войти

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

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

  • Похожий контент

    • x4reo
      От x4reo
      EPOCH ROLE PLAY | ВОЗВРАЩЕНИЕ В 90-Е Создаем атмосферный Full RP проект без «фарма» и лишней «дичи»     О ПРОЕКТЕ Epoch Role Play — это площадка для тех, кто ценит качество, а не статистику. Мы строим живой мир, где каждое действие имеет последствия, а экономика строится на социальном взаимодействии.   КОГО МЫ ИЩЕМ? • Lead Developer (Pawn/C#/JS): Создание ядра мода, БД, оптимизация. • Mapper/Level Designer: Создание аутентичных интерьеров 90-х. • Game Designer: Проработка ролевых правил и сценариев. • SMM-менеджер: Ведение соцсетей, создание контента. • Дизайнер: Оформление медиа и UI проекта. • Discord-архитектор: Настройка каналов и безопасности. • Web-разработчик: Сайт и форум проекта. • Bot-developer (VK/TG): Безопасность: 2FA, привязка аккаунтов.   НАШИ УСЛОВИЯ 1. Энтузиазм: Проект стартует без бюджета. Мы ищем единомышленников. 2. Соавторство: Каждый участник — полноценный совладелец проекта. 3. Партнерство: Вся прибыль от монетизации распределяется пропорционально вкладу.     КОНТАКТЫ ДЛЯ СВЯЗИ Telegram: x4reoo  
    • Gabriel C
      От Gabriel C
      Всем привет. Ищу клиентскую сборку Flin RP для ПК.
      Нужна полноценная версия клиента со всеми необходимыми файлами для запуска игры и подключения к серверу.
      Желательно сборку примерно 2023 года, так как по имеющимся файлам видно, что обновления клиента и систем Real Cars / Real Skins были сделаны в начале 2023 года.
      Нужна именно ПК-сборка/клиент Flin RP:
      лаунчер (если был); папка с игрой; ASI/плагины; cache/modpack с моделями. Если у кого-то осталась рабочая сборка или архив клиента — буду благодарен за помощь.
    • снайк
      От снайк
      Рады приветствовать всех пользователей форума! Meridian Online — это строящийся игровой проект CR:MP, который сейчас находится на стадии активного создания и улучшения. Наша цель — реализовать качественный игровой процесс и адаптировать его под современные стандарты для вашего комфорта.
       
      🛠 Наши ключевые особенности:
      Обновление интерфейсов: Мы переводим важные меню на технологию CEF. Это делает визуальную часть более аккуратной и современной.
      Проработанный геймплей: Мы детально настраиваем баланс внутриигровой экономики, систем фракций и работ, чтобы игровой процесс был увлекательным, честным и разнообразным для каждого игрока.
      Уникальная карта: На сервере создается проработанный игровой мир с кастомными локациями, качественными маппинг-решениями и вниманием к мелким деталям, которые создают нужную атмосферу.
      Стабильность клиента и лаунчера: Мы разрабатываем собственный надежный лаунчер и оптимизируем игровой клиент. Это гарантирует быструю загрузку файлов, отсутствие крашей и стабильное подключение к серверу.
      Проработка геймплея: Детально настраиваем баланс экономики и игровых систем для интересной игры.
      Собственный форум проекта: Мы активно ведем разработку полноценного форума. Она станет удобным местом для общения игроков, публикации гайдов, подачи жалоб и заявлений во фракции, а также для тесного взаимодействия между аудиторией и командой проекта.
       
      🔗 Следите за процессом!
      Мы регулярно делимся новостями и скриншотами. Присоединяйтесь к нашим сообществам, чтобы первыми узнавать о выходе обновлений и старте будущих тестов.
      📱 Наш Telegram-канал: https://t.me/meridian_roleplay
      🎮 Наш Discord-сервер: https://discord.gg/KkeTZrRcsS