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

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

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

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

Делаем /giverank | /invite | /uninvite ( Самп РП )

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

Gressie

Мастер
Здравствуйте форумчане pawno-info.ru я вижу новички хотят создать копию самп рп а именно такие как эти команды: /giverank | /invite | /uninvite
итак начнём.
Первое удалим старые команды и вставим эти:​
PHP:
if(strcmp(cmd, "/giverank", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "*Используйте: /giverank [id] [ранг]");
				return 1;
			}
			new para1;
			new level;
			para1 = ReturnUser(tmp);
			tmp = strtok(cmdtext, idx);
			level = strval(tmp);
			if(PlayerInfo[playerid][pLeader] <= 0 && PlayerInfo[playerid][pRank] <=  PlayerInfo[para1][pRank]) return SendClientMessage(playerid, COLOR_GREY, "Вы не можите давать ранг тому,кто старше вас по рангу");
			if(PlayerInfo[playerid][pMember] > 0 && playerid == para1) return SendClientMessage(playerid, COLOR_GREY, "Вы не можете дать ранг самому себе!");//ну и проверяем не себе ли он даёт!
			if(IsPlayerConnected(para1))
			{
				if(!IsValidRank(playerid,level)) return SendClientMessage(playerid,COLOR_GREY,"Неправильный номер ранга");
			    if(PlayerInfo[para1][pMember] == PlayerInfo[playerid][pLeader] || PlayerInfo[para1][pLeader] == PlayerInfo[playerid][pLeader])
			    {
				    if(CanGiverankPlayer(playerid,para1))
				    {
				        if(para1 != INVALID_PLAYER_ID)
				        {
							new mem = 0;
							if(PlayerInfo[playerid][pLeader] > 0) mem = PlayerInfo[playerid][pLeader];
							else if(PlayerInfo[playerid][pMember] > 0) mem = PlayerInfo[playerid][pMember];
				            if(PlayerInfo[para1][pMember] != mem) return SendClientMessage(playerid,COLOR_RED,"Этот игрок не в вашей фракции");
							if(PlayerInfo[playerid][pMember] > 0 && PlayerInfo[playerid][pRank] < level) return SendClientMessage(playerid,COLOR_GREY,"Вы не можете повысить ранг выше своего");
							GetPlayerName(para1, giveplayer, sizeof(giveplayer));
							GetPlayerName(playerid, sendername, sizeof(sendername));
							PlayerInfo[para1][pRank] = level;
							format(string, sizeof(string), "%s повысил/понизил вас до %d ранга", sendername,level);
							SendClientMessage(para1, 0x6495EDFF, string);
							format(string, sizeof(string), "Вы повысили/понизили %s до %d ранга", giveplayer,level);
							SendClientMessage(playerid, 0x6495EDFF, string);
						}
					}
					else
					{
						SendClientMessage(playerid, COLOR_GRAD1, "Нет прав на использование команды!");
					}
				}
				else
				{
				    SendClientMessage(playerid,COLOR_GRAD1,"Этот игрок не из вашей фракции");
				}
			}
		}
		return 1;
	}
PHP:
if(strcmp(cmd, "/invite", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_WHITE, "/invite [id]");
				return 1;
			}
			new para1;
			new ftext[50];
			para1 = ReturnUser(tmp);
			if(CanUninvitePlayer(playerid,para1))
			{
			    if(IsPlayerConnected(para1))
			    {
			        if(para1 != INVALID_PLAYER_ID)
			        {
					    if (PlayerInfo[para1][pMember] == 0 && PlayerInfo[para1][pLeader] == 0)
					    {
                            if(PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pRank] >= 14) {  ftext = "Армия: Авианосец"; InviteSkin[para1] = 287;  }
					        else if(PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pMember] == 4 && PlayerInfo[playerid][pRank] >= 7) { ftext = "МЧС"; InviteSkin[para1] = 70;  }
                            else if(PlayerInfo[playerid][pLeader] == 5 || PlayerInfo[playerid][pMember] == 5 && PlayerInfo[playerid][pRank] >= 9) { ftext = "ЛКН"; InviteSkin[para1] = 223; }
                         	else if(PlayerInfo[playerid][pLeader] == 6 || PlayerInfo[playerid][pMember] == 6 && PlayerInfo[playerid][pRank] >= 9) { ftext = "Якудза"; InviteSkin[para1] = 120;  }
							else if(PlayerInfo[playerid][pLeader] == 7 || PlayerInfo[playerid][pMember] == 7 && PlayerInfo[playerid][pRank] >= 5) {   ftext = "Мэрия"; InviteSkin[para1] = 57; }
							else if(PlayerInfo[playerid][pLeader] == 8 || PlayerInfo[playerid][pMember] == 8 && PlayerInfo[playerid][pRank] >= 4) { ftext = "Casino Rich"; InviteSkin[para1] = 171;  }
							else if(PlayerInfo[playerid][pLeader] == 9 || PlayerInfo[playerid][pMember] == 9 && PlayerInfo[playerid][pRank] >= 5) { ftext = "SF NEWS"; InviteSkin[para1] = 250; }
							else if(PlayerInfo[playerid][pLeader] == 11 || PlayerInfo[playerid][pMember] == 11 && PlayerInfo[playerid][pRank] >= 7) { ftext = "Инструкторы"; InviteSkin[para1] = 59;  }
							else if(PlayerInfo[playerid][pLeader] == 12 || PlayerInfo[playerid][pMember] == 12 && PlayerInfo[playerid][pRank] >= 9) {  ftext = "The Ballas Gang"; InviteSkin[para1] = 102;  }
							else if(PlayerInfo[playerid][pLeader] == 13 || PlayerInfo[playerid][pMember] == 13 && PlayerInfo[playerid][pRank] >= 10) {  ftext = "Los Santos Vagos"; InviteSkin[para1] = 108; }
							else if(PlayerInfo[playerid][pLeader] == 14 || PlayerInfo[playerid][pMember] == 14 && PlayerInfo[playerid][pRank] >= 9) {  ftext = "Russian Mafia"; InviteSkin[para1] = 111; }
							else if(PlayerInfo[playerid][pLeader] == 15 || PlayerInfo[playerid][pMember] == 15 && PlayerInfo[playerid][pRank] >= 9) {  ftext = "Grove Street Gang"; InviteSkin[para1] = 106;  }
							else if(PlayerInfo[playerid][pLeader] == 16 || PlayerInfo[playerid][pMember] == 16 && PlayerInfo[playerid][pRank] >= 5) { ftext = "LS NEWS"; InviteSkin[para1] = 261; }
							else if(PlayerInfo[playerid][pLeader] == 17 || PlayerInfo[playerid][pMember] == 17 && PlayerInfo[playerid][pRank] >= 9) {  ftext = "Varios Los Aztecas"; InviteSkin[para1] = 115; }
							else if(PlayerInfo[playerid][pLeader] == 18 || PlayerInfo[playerid][pMember] == 18 && PlayerInfo[playerid][pRank] >= 9) {  ftext = "The Rifa Gang";InviteSkin[para1] = 174; }
							else if(PlayerInfo[playerid][pLeader] == 19 || PlayerInfo[playerid][pMember] == 19 && PlayerInfo[playerid][pRank] >= 14) { ftext = "Зона 51"; InviteSkin[para1] = 287;  }
							else if(PlayerInfo[playerid][pLeader] == 20 || PlayerInfo[playerid][pMember] == 20 && PlayerInfo[playerid][pRank] >= 5) { ftext = "LV NEWS";InviteSkin[para1] = 261;}
							else if(PlayerInfo[playerid][pLeader] == 22 || PlayerInfo[playerid][pMember] == 22 && PlayerInfo[playerid][pRank] >= 7) { ftext = "4 Drakona"; InviteSkin[para1] = 29;  }
							else { return 1; }
							GetPlayerName(para1, giveplayer, sizeof(giveplayer));
							GetPlayerName(playerid, sendername, sizeof(sendername));
							PlayerInfo[para1][pMember] = PlayerInfo[playerid][pMember];
							PlayerInfo[para1][pRank] = 1;
							format(string, sizeof(string), "Вы приглашены в %s лидером %s", ftext, sendername);
							SendClientMessage(para1, 0x6495EDFF, string);
							format(string, sizeof(string), "Вы пригласили %s присоедениться к %s.", giveplayer,ftext);
							SendClientMessage(playerid, 0x6495EDFF, string);
						    SetPlayerInterior(para1,5);
							ShowMenuForPlayer(ChoseSkin,para1);
							new rand = random(sizeof(gInviteSpawns));
							SetPlayerPos(para1, gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]); // Warp the player
							SetPlayerFacingAngle(para1, gInviteSpawns[rand][3]);
							SetPlayerCameraPos(para1,gInviteSpawns[rand][0] + 3, gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
							SetPlayerCameraLookAt(para1,gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
							TogglePlayerControllable(para1, 0);
						    SelectChar[para1] = 255;
						    PlayerInfo[para1][pJob] = 0;
						    SelectCharID[para1] = PlayerInfo[para1][pMember];
						    SelectCharPlace[para1] = 1;
						    PlayerInfo[para1][pModel] = ChosenSkin[para1];
						   	SetPlayerVirtualWorld(para1,1);
						    OnPlayerUpdateRL(para1);
						}
						else
						{
						    SendClientMessage(playerid, COLOR_GREY, "Игрок уже состоит в организации");
						    return 1;
						}
					}
				}//not connected
			}
			else
			{
				SendClientMessage(playerid, COLOR_GRAD1, "Команда доступна только лидерам!");
			}
		}
		return 1;
	}
PHP:
if(strcmp(cmd, "/uninvite", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /uninvite [id]");
				return 1;
			}
			new para1;
			para1 = ReturnUser(tmp);
			if(para1 == playerid) return SendClientMessage(playerid,-1,"Себя невозможно уволить");
			if(PlayerInfo[para1][pMember] == PlayerInfo[playerid][pLeader] ||PlayerInfo[para1][pMember] == PlayerInfo[playerid][pMember])
			{
				if(IsPlayerConnected(para1))
				{
				    if(CanUninvitePlayer(playerid,para1))
				    {
				        if(para1 != INVALID_PLAYER_ID)
				        {
						    if(PlayerInfo[para1][pMember] > 0)
						    {
							    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
							    GetPlayerName(playerid, sendername, sizeof(sendername));
							    format(string, sizeof(string), "%s выгнал вас из организации", sendername);
							    SendClientMessage(para1, 0x6495EDFF, string);
                                                            format(string, sizeof(string), "Вы снова гражданский", sendername);
							    SendClientMessage(para1, 0x6495EDFF, string);
							    format(string, sizeof(string), "Вы выгнали %s из организации", giveplayer);
								SendClientMessage(playerid, 0x6495EDFF, string);
							    PlayerInfo[para1][pMember] = 0;
							    PlayerInfo[para1][pRank] = 0;
								PlayerInfo[para1][pLeader] = 0;
							    PlayerInfo[para1][pJob] = 0;
							    SetPlayerArmourAC(para1,0);
							    SpawnPlayer(para1);
							}
						}
					}
					else
					{
						SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать эту команду!");
					}
				}
			}
			else
			{
			    SendClientMessage(playerid,COLOR_GREY,"Этот игрок не в вашей фракции");
			}
		}
		return 1;
	}
и паблики:​
PHP:
//================================================================================================//
stock CanUninvitePlayer(playerid,playerid2)// ранги, которые могут увольнять из фракции/принимать во фракцию
{
	if(PlayerInfo[playerid][pLeader] >= 1) return 1;
	new rank = PlayerInfo[playerid][pRank];
	if(PlayerInfo[playerid][pMember] > 0 && PlayerInfo[playerid2][pMember] > 0 &&
	rank < PlayerInfo[playerid2][pRank]) return 0;
	switch(PlayerInfo[playerid][pMember])
	{
		case 1:
		{
			switch(rank)
			{
				case 14:return 1;
				case 13:return 1;
				case 12:return 1;
			}
		}
		case 2:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
			}
		}
		case 3:
		{
			switch(rank)
			{
				case 15:return 1;
				case 14:return 1;
				case 13:return 1;
			}
		}
		case 4:
		{
			switch(rank)
			{
				case 8:return 1;
				case 7:return 1;
				case 6:return 1;
			}
		}
		case 5:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
			}
		}
		case 6:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
			}
		}
		case 7:
		{
			switch(rank)
			{
				case 6:return 1;
				case 5:return 1;
				case 4:return 1;
			}
		}
		case 8:
		{
			switch(rank)
			{
				case 5:return 1;
				case 4:return 1;
				case 3:return 1;
			}
		}
		case 9:
		{
			switch(rank)
			{
				case 6:return 1;
				case 5:return 1;
				case 4:return 1;
			}
		}
		case 10:
		{
			switch(rank)
			{
				case 14:return 1;
				case 13:return 1;
				case 12:return 1;
			}
		}
		case 11:
		{
			switch(rank)
			{
				case 8:return 1;
				case 7:return 1;
				case 6:return 1;
			}
		}
		case 12:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
			}
		}
		case 13:
		{
			switch(rank)
			{
				case 11:return 1;
				case 10:return 1;
				case 9:return 1;
			}
		}
		case 14:
		{
			switch(rank)
			{
				case 7:return 1;
				case 6:return 1;
				case 8:return 1;
			}
		}
		case 15:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
			}
		}
		case 16:
		{
			switch(rank)
			{
				case 6:return 1;
				case 5:return 1;
				case 4:return 1;
			}
		}
		case 17:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
			}
		}
		case 18:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
			}
		}
		case 19:
		{
			switch(rank)
			{
				case 15:return 1;
				case 14:return 1;
				case 13:return 1;
			}
		}
		case 20:
		{
			switch(rank)
			{
				case 6:return 1;
				case 5:return 1;
				case 4:return 1;
			}
		}
		case 21:
		{
			switch(rank)
			{
				case 14:return 1;
				case 13:return 1;
				case 12:return 1;
			}
		}
		case 22:
		{
			switch(rank)
			{
				case 5:return 1;
				case 4:return 1;
			}
		}
	}
	return 0;
}

stock CanGiverankPlayer(playerid,playerid2)// ранги, которые могут давать ранг
{
	if(PlayerInfo[playerid][pLeader] >= 1) return 1;
	new rank = PlayerInfo[playerid][pRank];
	if(PlayerInfo[playerid][pMember] > 0 && PlayerInfo[playerid2][pMember] > 0 &&
	rank < PlayerInfo[playerid2][pRank]) return 0;
	switch(PlayerInfo[playerid][pMember])
	{
		case 1:
		{
			switch(rank)
			{
				case 14:return 1;
				case 13:return 1;
				case 12:return 1;
				case 11:return 1;
			}
		}
		case 2:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
				case 7:return 1;
			}
		}
		case 3:
		{
			switch(rank)
			{
				case 15:return 1;
				case 14:return 1;
				case 13:return 1;
				case 12:return 1;
			}
		}
		case 4:
		{
			switch(rank)
			{
				case 8:return 1;
				case 7:return 1;
				case 6:return 1;
				case 5:return 1;
			}
		}
		case 5:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
				case 7:return 1;
			}
		}
		case 6:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
				case 7:return 1;
			}
		}
		case 7:
		{
			switch(rank)
			{
				case 6:return 1;
				case 5:return 1;
				case 4:return 1;
			}
		}
		case 8:
		{
			switch(rank)
			{
				case 5:return 1;
				case 4:return 1;
				case 3:return 1;
			}
		}
		case 9:
		{
			switch(rank)
			{
				case 6:return 1;
				case 5:return 1;
				case 4:return 1;
				case 3:return 1;
			}
		}
		case 10:
		{
			switch(rank)
			{
				case 14:return 1;
				case 13:return 1;
				case 12:return 1;
				case 11:return 1;
			}
		}
		case 11:
		{
			switch(rank)
			{
				case 8:return 1;
				case 7:return 1;
				case 6:return 1;
				case 5:return 1;
			}
		}
		case 12:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
				case 7:return 1;
			}
		}
		case 13:
		{
			switch(rank)
			{
				case 11:return 1;
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
			}
		}
		case 14:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
				case 7:return 1;
			}
		}
		case 15:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
				case 7:return 1;
			}
		}
		case 16:
		{
			switch(rank)
			{
				case 6:return 1;
				case 5:return 1;
				case 4:return 1;
				case 3:return 1;
			}
		}
		case 17:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
				case 7:return 1;
			}
		}
		case 18:
		{
			switch(rank)
			{
				case 10:return 1;
				case 9:return 1;
				case 8:return 1;
				case 7:return 1;
			}
		}
		case 19:
		{
			switch(rank)
			{
				case 15:return 1;
				case 14:return 1;
				case 13:return 1;
				case 12:return 1;
			}
		}
		case 20:
		{
			switch(rank)
			{
				case 6:return 1;
				case 5:return 1;
				case 4:return 1;
				case 3:return 1;
			}
		}
		case 21:
		{
			switch(rank)
			{
				case 14:return 1;
				case 13:return 1;
				case 12:return 1;
				case 11:return 1;
			}
		}
		case 22:
		{
			switch(rank)
			{
				case 5:return 1;
				case 4:return 1;
			}
		}
	}
	return 0;
}

stock IsValidRank(playerid,rank)
{
	new mem = 0;
	if(PlayerInfo[playerid][pLeader] > 0) mem = PlayerInfo[playerid][pLeader];
	else if(PlayerInfo[playerid][pMember] > 0) mem = PlayerInfo[playerid][pMember];
	switch(mem)
	{
		case 1:
		{
			switch(rank)
			{
				case 1..13:return 1;
			}
		}
		case 2:
		{
			switch(rank)
			{
				case 1..9:return 1;
			}
		}
		case 3:
		{
			switch(rank)
			{
				case 1..14:return 1;
			}
		}
		case 4:
		{
			switch(rank)
			{
				case 1..7:return 1;
			}
		}
		case 5:
		{
			switch(rank)
			{
				case 1..9:return 1;
			}
		}
		case 6:
		{
			switch(rank)
			{
				case 1..9:return 1;
			}
		}
		case 7:
		{
			switch(rank)
			{
				case 1..5:return 1;
			}
		}
		case 8:
		{
			switch(rank)
			{
				case 1..5:return 1;
			}
		}
		case 9:
		{
			switch(rank)
			{
				case 1..5:return 1;
			}
		}
		case 10:
		{
			switch(rank)
			{
				case 1..13:return 1;
			}
		}
		case 11:
		{
			switch(rank)
			{
				case 1..7:return 1;
			}
		}
		case 12:
		{
			switch(rank)
			{
				case 1..9:return 1;
			}
		}
		case 13:
		{
			switch(rank)
			{
				case 1..10:return 1;
			}
		}
		case 14:
		{
			switch(rank)
			{
				case 1..9:return 1;
			}
		}
		case 15:
		{
			switch(rank)
			{
				case 1..9:return 1;
			}
		}
		case 16:
		{
			switch(rank)
			{
				case 1..5:return 1;
			}
		}
		case 17:
		{
			switch(rank)
			{
				case 1..9:return 1;
			}
		}
		case 18:
		{
			switch(rank)
			{
				case 1..9:return 1;
			}
		}
		case 19:
		{
			switch(rank)
			{
				case 1..14:return 1;
			}
		}
		case 20:
		{
			switch(rank)
			{
				case 1..5:return 1;
			}
		}
		case 21:
		{
			switch(rank)
			{
				case 1..13:return 1;
			}
		}
		case 22:
		{
			switch(rank)
			{
				case 1..4:return 1;
			}
		}
	}
	return 0;
}
Автор: Leaders
P.S Ранги и тд заменить на свои.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу