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

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

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

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

Права по категориям A, B, C

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

Vlad7060908

Умник
Итак, как же воплотить сие чудо? Я делаю просто: берем мод, например sensegame - там есть такая система и вырезаем оттуда.
Итак, что вырезать?
Для начала, команды:

Эту вставляем вместо вашей команды для выдачи прав админами:
PHP:
if(strcmp(cmd, "/agivelicense", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	        if(PlayerInfo[playerid][pAdmin] >= 1)
	        {
	            new x_nr[256];
				x_nr = strtok(cmdtext, idx);
				if(!strlen(x_nr)) {
				    SendClientMessage(playerid, COLOR_WHITE, "  Использование: /agivelicense [name] [playerid/PartOfName]");
				    SendClientMessage(playerid, COLOR_WHITE, "Лицензии: drivingA, drivingB, drivingC, flying, sailing, fishing, weapon.");
					return 1;
				}
			    if(strcmp(x_nr,"drivingA",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, "  Использование: /agivelicense drivingA [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), "* Вы выдали водительские права категории А %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), "* Админ %s выдал вам водительские права категории А.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pCarLicA] = 1;
					        return 1;
				        }
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, "   Этот игрок offline!");
					    return 1;
					}
				}
				if(strcmp(x_nr,"drivingB",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, "  Использование: /agivelicense drivingB [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), "* Вы выдали водительские права категории B %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), "* Админ %s выдал вам водительские права категории B.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pCarLicB] = 1;
					        return 1;
				        }
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, "   Этот игрок offline!");
					    return 1;
					}
				}
				if(strcmp(x_nr,"drivingC",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, "  Использование: /agivelicense drivingC [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), "* Вы выдали водительские права категории C %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), "* Админ %s выдал вам водительские права категории C.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pCarLicC] = 1;
					        return 1;
				        }
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, "   Этот игрок offline!");
					    return 1;
					}
				}
				else if(strcmp(x_nr,"flying",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, "  Использование: /agivelicense flying [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), "* Вы выдали лицензию на полёты %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), "* Админ %s выдал вам лицензию на полёты.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pFlyLic] = 1;
					        return 1;
						}
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, "   Этот игрок offline !");
					    return 1;
					}
				}
				else if(strcmp(x_nr,"sailing",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, "  Использование: /agivelicense sailing [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                            format(string, sizeof(string), "* Вы выдали лицензию на лодку %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), "* Админ %s выдал вам лицензию на лодку.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pBoatLic] = 1;
					        return 1;
						}
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, "   Этот игрок offline !");
					    return 1;
					}
				}
				else if(strcmp(x_nr,"fishing",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, "  Использование: /givelicense fishing [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), "* Вы выдали лицензию на рыбалку %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), "* Админ %s выдал вам лицензию на рыбалку.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pFishLic] = 1;
					        return 1;
						}
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, "   Этот игрок offline !");
					    return 1;
					}
				}
				else if(strcmp(x_nr,"weapon",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, "  Использование: /agivelicense weapon [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), "* Вы выдали лицензию на оружие %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), "* Админ %s выдал вам лицензию на оружие.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pGunLic] = 1;
					        return 1;
						}
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, "   Этот игрок offline !");
					    return 1;
					}
				}
	        }
	        else
	        {
	            SendClientMessage(playerid, COLOR_GREY, "   Вы не админ !");
	            return 1;
	        }
	    }
	    return 1;
	}
Эту вместо вашей команды для выдачи прав лицензерами:

PHP:
	if(strcmp(cmd, "/givelicense", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	        if(IsAnInstructor(playerid))
	        {
	            if(PlayerInfo[playerid][pRank] < 2)
	            {
	                SendClientMessage(playerid, COLOR_GREY, " * Команда доступна с 2 ранга!");
	                return 1;
	            }
	            new x_nr[256];
				x_nr = strtok(cmdtext, idx);
				if(!strlen(x_nr)) {
				    SendClientMessage(playerid, COLOR_WHITE, " * Использование: /givelicense [name] [playerid/PartOfName]");
				    SendClientMessage(playerid, COLOR_WHITE, " * Доступные названия:: DrivingA, DrivingB, DrivingC, Flying, Sailing, Fishing, Weapon.");
					return 1;
				}
			    if(strcmp(x_nr,"drivingA",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, " * Использование: /givelicense drivingA [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), " * Вы выдали водительские права категории А игроку %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), " * Инструктор %s выдал вам водительские права категории А.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pCarLicA] = 1;
					        return 1;
				        }
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, " * Такого игрока нет!");
					    return 1;
					}
				}
				if(strcmp(x_nr,"drivingB",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, " * Использование: /givelicense drivingB [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), " * Вы выдали водительские права категории B игроку %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), " * Инструктор %s выдал вам водительские права категории B.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pCarLicB] = 1;
					        return 1;
				        }
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, " * Такого игрока нет!");
					    return 1;
					}
				}
				if(strcmp(x_nr,"drivingC",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, " * Использование: /givelicense drivingC [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), " * Вы выдали водительские права категории C игроку %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), " * Инструктор %s выдал вам водительские права категории C.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pCarLicC] = 1;
					        return 1;
				        }
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, " * Такого игрока нет!");
					    return 1;
					}
				}
				else if(strcmp(x_nr,"flying",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, " * Использование: /givelicense flyinglicense [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), " * Вы выдали лицензию на полеты игроку %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), " * Инструктор %s выдал вам лицензию на полеты.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pFlyLic] = 1;
					        return 1;
						}
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, " * Такого игрока нет");
					    return 1;
					}
				}
				else if(strcmp(x_nr,"sailing",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, " * Использование: /givelicense sailinglicense [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), " * Вы выдали лицензию на лодку игроку %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), " * Инструктор %s выдал вам лицензию на лодку.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pBoatLic] = 1;
					        return 1;
						}
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, " * Такого игрока нет");
					    return 1;
					}
				}
				else if(strcmp(x_nr,"fishing",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, " * Использование: /givelicense fishinglicense [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), " * Вы выдали лицензию на рыбалку игроку %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), " * Инструктор %s выдал вам лицензию на рыбалку.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pFishLic] = 1;
					        return 1;
						}
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, " * Такого игрока нет!");
					    return 1;
					}
				}
				else if(strcmp(x_nr,"weapon",true) == 0)
				{
		            tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))
					{
					    SendClientMessage(playerid, COLOR_WHITE, " * Использование: /givelicense weaponlicense [playerid/PartOfName]");
					    return 1;
					}
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
					        GetPlayerName(playerid, sendername, sizeof(sendername));
					        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				            format(string, sizeof(string), " * Вы выдали разрешение на оружие игроку %s.",giveplayer);
					        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					        format(string, sizeof(string), " * Инструктор %s выдал вам разрешение на оружие.",sendername);
					        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
					        PlayerInfo[giveplayerid][pGunLic] = 1;
					        return 1;
						}
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, " * Такого игрока нет!");
					    return 1;
					}
				}
	        }
	        else
	        {
	            SendClientMessage(playerid, COLOR_GREY, " * Вы не инструктор");
	            return 1;
	        }
	    }
	    return 1;
	}
Теперь идем в

PHP:
enum pinfo
И в нем находим:

PHP:
pCarLic // примерно так
И удаляем, а вместо этого вставляем:

PHP:
pCarLicA,
pCarLicB,
pCarLicC.
Компилируем. У нас появляется много ошибок. Причина - нераспознанное pCarLic. Далее, везде, где используется pCarLic мы делаем
PHP:
pCarLicA
pCarLicB
pCarLicC
Если, есть вопросы или ошибки/варнинги - писать сюда. Всем отвечу, всем помогу. Также жду ваших плюсов и коментов.

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