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

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

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

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

/r /d /f

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

Jackson_Clark

Новичок
Всем привет, выкладываю более-менее оптимизированные команды /r, /d, и /f на DC_CMD + sscanf. Приступим)​

define:
PHP:
#define COLOR_LIGHTRED 0xFF6347AA // Цвет
#define TEAM_AZTECAS_COLOR 0x01FCFFC8 // Цвет
#define GPN GetPlayerName(playerid, playername, sizeof(playername)); // Дефайн для получение никнейма игрока
#define SCM SendClientMessage // Дефайн функции отправки сообщений
В данном случае, объявим глобальную переменную:
PHP:
new stringcmd[128];// Глобальная переменная
[HR][/HR]
Вот команда /r:
PHP:
CMD:r(playerid,params[])
{
	GPN
	if(PlayerInfo[playerid][pMember] == 0) return SCM(playerid, COLOR_LIGHTRED, "Вы не состоите в гос.фракции!");
	if(sscanf(params,"s[128]", params[0])) return SCM(playerid, -1, "Используй: /r [текст]");
	if(PlayerInfo[playerid][pMuted] == 1) return SCM(playerid, COLOR_LIGHTRED, "У вас бан чата!");

	new rangz[20];
	GetPVarString(playerid,"RangName",rangz,20);

	if(FormaFrac[playerid] > 0)
	{
		format(stringcmd, sizeof(stringcmd), "[R] %s %s[%d]: %s",rangz ,playername, playerid, params[0]);
		SendRadioMessage(FormaFrac[playerid], 0x78DB36FF, stringcmd);
		return true;
	}
	else SCM(playerid, COLOR_RED, "Вы не в форме!");
	return 1;
}
Команда /d:
PHP:
CMD:d(playerid,params[])
{
	GPN
	if(PlayerInfo[playerid][pMember] == 0) return SCM(playerid, COLOR_LIGHTRED, "Вы не состоите в гос.фракции!");
	if(sscanf(params,"s[128]", params[0])) return SCM(playerid, -1, "Используй: /d [текст]");
	if(PlayerInfo[playerid][pMuted] == 1) return SCM(playerid, COLOR_LIGHTRED, "У вас бан чата!");
	if(PlayerInfo[playerid][pRank] < 1) return SCM(playerid, COLOR_GREY, "Вы не уполномочены писать в депортамент");

	new rangz[20];
	GetPVarString(playerid,"RangName",rangz,20);

	if(FormaFrac[playerid] > 0)
	{
		format(stringcmd, sizeof(stringcmd), "[%s] %s %s[%d]: %s",Fraction[PlayerInfo[playerid][pMember]] ,rangz ,playername, playerid, params[0]);
		SendTeamMessage(1, 0x4E95CEFF, stringcmd);
	}
	else SCM(playerid, COLOR_RED, "Вы не в форме!");
	return 1;
}
И команда /f:
PHP:
CMD:f(playerid,params[])
{
	if(PlayerInfo[playerid][pMuted] == 1) return SCM(playerid, COLOR_LIGHTRED, "У Вас бан чата!");
	GPN
	if(sscanf(params,"s[128]", params[0])) return SCM(playerid, -1, "Используй: /f [текст]");

	new rangz[20];
	GetPVarString(playerid,"RangName",rangz,20);

	if(PlayerInfo[playerid][pMember] >= 1)
	{
		switch(PlayerInfo[playerid][pMember])
		{
			case 5,6,8,9,12,13,14,15,17,18,23,26:
			{
				format(stringcmd, sizeof(stringcmd), "[F] %s %s: %s",rangz ,playername, params[0]);
				SendFamilyMessage(PlayerInfo[playerid][pMember], TEAM_AZTECAS_COLOR, stringcmd);
			}
			case 16,20,11:
			{
				if(FormaFrac[playerid] == PlayerInfo[playerid][pMember])
				format(stringcmd, sizeof(stringcmd), "[F] %s %s: %s", rangz ,playername, params[0]);
				SendFamilyMessage(PlayerInfo[playerid][pMember], TEAM_AZTECAS_COLOR, stringcmd);
			}
		}
		return true;
	}
	else
	{
		SCM(playerid, COLOR_GREY, "Вы не член фракции");
	}
	return 1;
}
[HR][/HR]
Сток с рангами: (Данный сток может пригодится везде, например в /d /f, также для статистики игрока)
PHP:
stock rangall(playerid)
{
	new rangz[20];
	switch(PlayerInfo[playerid][pMember])
	{
		case 0: rangz = "Нет";
		case 1,10,21,27:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Генерал";
					case 9: rangz = "Полковник";
					case 8: rangz = "Подполковник";
					case 7: rangz = "Майор";
					case 6: rangz = "Капитан";
					case 5: rangz = "Лейтенант";
					case 4: rangz = "Прапорщик";
					case 3: rangz = "Ст.Сержант";
					case 2: rangz = "Сержант";
					case 1: rangz = "Кадет";
				}
	    }
	    case 2:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Директор ФБР";
					case 9: rangz = "Зам. директора";
					case 8: rangz = "Инспектор";
					case 7: rangz = "Глава CID";
					case 6: rangz = "Агент CID";
					case 5: rangz = "Глава GNK";
					case 4: rangz = "Агент GNK";
					case 3: rangz = "Глава CJIS";
					case 2: rangz = "Агент CJIS";
					case 1: rangz = "Стажёр";
				}
	    }
		case 3,19,25:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Генерал";
					case 9: rangz = "Полковник";
					case 8: rangz = "Подполковник";
					case 7: rangz = "Майор";
					case 6: rangz = "Капитан";
					case 5: rangz = "Лейтенант";
					case 4: rangz = "Прапорщик";
					case 3: rangz = "Старшина";
					case 2: rangz = "Сержант";
					case 1: rangz = "Ефрейтор";
				}
	    }
		case 4,22,24:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Глав. врач";
					case 9: rangz = "Зам. Глав. врача";
					case 8: rangz = "Терапевт";
					case 7: rangz = "Хирург";
					case 6: rangz = "Педиатр";
					case 5: rangz = "Санитар";
					case 4: rangz = "Интерн";
					case 3: rangz = "Дежурный";
					case 2: rangz = "Стажер";
					case 1: rangz = "Практикант";
				}
	    }
		case 5:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Дон";
					case 9: rangz = "Консильери";
					case 8: rangz = "Младший Босс";
					case 7: rangz = "Капо";
					case 6: rangz = "Сотто-Капо";
					case 5: rangz = "Боец";
					case 4: rangz = "Солдато";
					case 3: rangz = "Солдатав";
					case 2: rangz = "Ассосиато";
					case 1: rangz = "Новицио";
				}
	    }
	    case 6:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Кумитё";
					case 9: rangz = "Оябун-кобун";
					case 8: rangz = "Cайко комон";
					case 7: rangz = "Оядзи";
					case 6: rangz = "Камбу";
					case 5: rangz = "Со-хобунтё";
					case 4: rangz = "Вакагасира";
					case 3: rangz = "Сятейгасира";
					case 2: rangz = "Кёдай";
					case 1: rangz = "Вакасю";
				}
	    }
	    case 7:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Мэр";
					case 9: rangz = "Зам.Мэра";
					case 8: rangz = "Министр";
					case 7: rangz = "Дипломат";
					case 6: rangz = "Нач.Охраны";
					case 5: rangz = "Адвокат";
					case 4: rangz = "Секретарь";
					case 3: rangz = "Зам.Секретаря";
					case 2: rangz = "Охранник";
					case 1: rangz = "Водитель";
				}
	    }
	    case 8:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Король улиц";
					case 9: rangz = "Король дрифта";
					case 8: rangz = "Король драга";
					case 7: rangz = "Гонщик";
					case 6: rangz = "Профессионал";
					case 5: rangz = "Опытный Стритрейсер";
					case 4: rangz = "Стритрейсер";
					case 3: rangz = "Водила";
					case 2: rangz = "Новичек";
					case 1: rangz = "Изгой";
				}
	    }
		case 9,16,20:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Главный редактор";
					case 9: rangz = "Зам.Гл.Редактора";
					case 8: rangz = "Журналист";
					case 7: rangz = "Писатель";
					case 6: rangz = "Ст.Редактор";
					case 5: rangz = "Редактор";
					case 4: rangz = "Видео-редактор";
					case 3: rangz = "Фотограф";
					case 2: rangz = "Папарацци";
					case 1: rangz = "Стажер";
				}
	    }
	    case 11:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Управляющий";
					case 9: rangz = "Директор";
					case 8: rangz = "Ст. Менеджер";
					case 7: rangz = "Мл. Менеджер";
					case 6: rangz = "Кординатор";
					case 5: rangz = "Ст. Инструктор";
					case 4: rangz = "Инструктор";
					case 3: rangz = "Экзаменатор";
					case 2: rangz = "Стажер";
					case 1: rangz = "Практикант";
				}
	    }
		case 12:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Биг Вилли";
					case 9: rangz = "Райч Нига";
					case 8: rangz = "Фолкс";
					case 7: rangz = "Федерал Блок";
					case 6: rangz = "Гангстер";
					case 5: rangz = "Ап Бро";
					case 4: rangz = "Гун брo";
					case 3: rangz = "Крэкер";
					case 2: rangz = "Младший Нига";
					case 1: rangz = "Блайд";
				}
	    }
	    case 13:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Падре";
					case 9: rangz = "Падрино";
					case 8: rangz = "Лидер V.E.G";
					case 7: rangz = "Асесор";
					case 6: rangz = "Авторитарио";
					case 5: rangz = "Асестно";
					case 4: rangz = "Амиго";
					case 3: rangz = "Эстимадо";
					case 2: rangz = "Сольвадо";
					case 1: rangz = "Новато";
				}
	    }
	    case 14:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Авторитет";
					case 9: rangz = "Вор в законе";
					case 8: rangz = "Вор";
					case 7: rangz = "Браток";
					case 6: rangz = "Свояк";
					case 5: rangz = "Блатной";
					case 4: rangz = "Барыга";
					case 3: rangz = "Бык";
					case 2: rangz = "Фраер";
					case 1: rangz = "Шнырь";
				}
	    }
	   	case 15:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Мэд Дог";
					case 9: rangz = "Легенда";
					case 8: rangz = "Де Кинг";
					case 7: rangz = "Мобста";
					case 6: rangz = "О.Г.";
					case 5: rangz = "Гангста";
					case 4: rangz = "Юонг";
					case 3: rangz = "Килла";
					case 2: rangz = "Хастла";
					case 1: rangz = "плэйя";
				}
	    }
	    case 17:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Падре";
					case 9: rangz = "Нестро";
					case 8: rangz = "Тесосеро";
					case 7: rangz = "Инвасор";
					case 6: rangz = "Сабио";
					case 5: rangz = "Мирандо";
					case 4: rangz = "Лас Геррас";
					case 3: rangz = "Геттор";
					case 2: rangz = "Тирадор";
					case 1: rangz = "Перро";
				}
	    }
	    case 18:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Падре";
					case 9: rangz = "Аджунто";
					case 8: rangz = "Ауториадад";
					case 7: rangz = "Бандидо";
					case 6: rangz = "Эрмано";
					case 5: rangz = "Джуниор";
					case 4: rangz = "Мачо";
					case 3: rangz = "Амиго";
					case 2: rangz = "Ладрон";
					case 1: rangz = "Новато";
				}
	    }
	    case 23:
	    {
			switch(PlayerInfo[playerid][pRank])
				{
					case 10: rangz = "Президент";
					case 9: rangz = "Вице-Президент";
					case 8: rangz = "Treasurer";
					case 7: rangz = "Sergeant-at-arms";
					case 6: rangz = "Road Captain";
					case 5: rangz = "Angel";
					case 4: rangz = "Member";
					case 3: rangz = "Prospect";
					case 2: rangz = "Hang Around";
					case 1: rangz = "Support";
				}
	    }
	}
	SetPVarString(playerid,"RangName",rangz);
	return true;
}
Можно еще сделать проверку на фракцию не через "if", а при помощи оператора множественного выбора switch.
[HR][/HR]
Может кому-то нужен сток SendRadioMessage, вот он:
PHP:
stock SendRadioMessage(member, color, string[])
{
	foreach(new i : Player)
	{
		if(IsPlayerConnected(i))
		{
		    if(PlayerInfo[i][pMember] == member)
		    {
				SCM(i, color, string);
			}
		}
	}
}
Вот сток SendFamilyMessage:
PHP:
stock SendFamilyMessage(family, color, string[])
{
	foreach(new i : Player)
	{
		if(IsPlayerConnected(i))
		{
		    if(PlayerInfo[i][pMember] == family)
		    {
				SCM(i, color, string);
			}
		}
	}
}
[HR][/HR]
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу