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

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

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

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

/invite с приглашением

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

PIRU

The world on the edge of reality
Administrator
Регистрация
10 Ноя 2010
Сообщения
11,641
Лучшие ответы
39
Репутация
6,756
Награды
1
Суть заключается в том что игроку присылается сообщение,вы приглашены во фракцию,и игрок может отказаться или принять приглашение


Ко всем new добавим:
PHP:
new pInvite[MAX_PLAYERS];
в public OnPlayerConnect(playerid) добавим:
PHP:
pInvite[playerid] = 999;
Заменяем свою команду /invite на эту:
PHP:
if(strcmp(cmd, "/invite", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "ИСПОЛЬЗОВАНИЕ: /invite [id_игрока/ЧастьИмени]");
				return 1;
			}
			new para1;
			new ftext[20];
			para1 = ReturnUser(tmp);
			if (PlayerInfo[playerid][pLeader] >= 1)
			{
			    if(IsPlayerConnected(para1))
			    {
			        if(para1 != INVALID_PLAYER_ID)
			        {
					    if (PlayerInfo[para1][pMember] == 0)
					    {
					        if(PlayerInfo[playerid][pLeader] == 1) { ftext = "Police Force"; }
					        else if(PlayerInfo[playerid][pLeader] == 2) { ftext = "FBI"; }
					        else if(PlayerInfo[playerid][pLeader] == 3) { ftext = "Armia"; }
					        else if(PlayerInfo[playerid][pLeader] == 4) { ftext = "Ambulance"; }
					        else if(PlayerInfo[playerid][pLeader] == 5) { ftext = "La Cosa Nostra"; }
					        else if(PlayerInfo[playerid][pLeader] == 6) { ftext = "Yakuza"; }
					        else if(PlayerInfo[playerid][pLeader] == 7) { ftext = "Meria"; }
					        else if(PlayerInfo[playerid][pLeader] == 8) { ftext = "Hitman Agency"; }
					        else if(PlayerInfo[playerid][pLeader] == 9) { ftext = "CNN Studio"; }
					        else if(PlayerInfo[playerid][pLeader] == 10) { ftext = "Taxi Cab Company"; }
					        else if(PlayerInfo[playerid][pLeader] == 11) { ftext = "School Instructors"; }
							GetPlayerName(para1, giveplayer, sizeof(giveplayer));
							GetPlayerName(playerid, sendername, sizeof(sendername));
							format(string, sizeof(string), "[Администрация]: Вы были приглашены в %s, Лидером %s", ftext, sendername);
							SendClientMessage(para1, COLOR_WHITE, string);
							SendClientMessage(para1, COLOR_WHITE, "[Администрация]: Введите /accept team чтобы принять приглашение");
							SendClientMessage(para1, COLOR_WHITE, "[Администрация]: Введите /cancel team чтобы отвергнуть приглашение");
							format(string, sizeof(string), "[Администрация]: Вы пригласили игрока %s в %s.", giveplayer,ftext);
							SendClientMessage(playerid, COLOR_WHITE, string);
							pInvite[para1] = playerid;
						}
						else
						{
						    SendClientMessage(playerid, COLOR_GREY, "Этот игрок состоит во фракции!");
						    return 1;
						}
					}
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_GRAD1, "   Вы не лидер !");
			}
		}
		return 1;
	}
Внимание если у вас не стандартная команда то добавьте pInvite[para1] = playerid;
Код который отправляет на респавн убрать а также убрать смену скина,если у вас больше фракций чем в стандартном ГФ(да полюбому больше) то добавляем в команду /invite так
PHP:
else if(PlayerInfo[playerid][pLeader] == ID фраки) { ftext = "Название"; }


в команду /accept добавить
PHP:
else if(strcmp(x_job,"team",true) == 0)
			{
			    if(pInvite[playerid] < 999)
			    {
			        if(IsPlayerConnected(pInvite[playerid]))
			        {
			            if (gTeam[playerid]==TEAM_GREEN && PlayerInfo[playerid][pMember] == 0 && PlayerInfo[playerid][pFMember] == 255)
			            {
			                if(PlayerInfo[pInvite[playerid]][pLeader] == 1) { PlayerInfo[playerid][pTeam] = 2; gTeam[playerid] = 2; ChosenSkin[playerid] = 280; SetPlayerSkin(playerid, 280); }
					        else if(PlayerInfo[pInvite[playerid]][pLeader] == 2) { PlayerInfo[playerid][pTeam] = 2; gTeam[playerid] = 2; ChosenSkin[playerid] = 286; SetPlayerSkin(playerid, 286); }
					        else if(PlayerInfo[pInvite[playerid]][pLeader] == 3) { PlayerInfo[playerid][pTeam] = 2; gTeam[playerid] = 2; ChosenSkin[playerid] = 287; SetPlayerSkin(playerid, 287); }
					        else if(PlayerInfo[pInvite[playerid]][pLeader] == 4) { PlayerInfo[playerid][pTeam] = 1; gTeam[playerid] = 1; ChosenSkin[playerid] = 70; SetPlayerSkin(playerid, 70); }
					        else if(PlayerInfo[pInvite[playerid]][pLeader] == 5) { PlayerInfo[playerid][pTeam] = 5; gTeam[playerid] = 5; ChosenSkin[playerid] = 98; SetPlayerSkin(playerid, 98); }
					        else if(PlayerInfo[pInvite[playerid]][pLeader] == 6) { PlayerInfo[playerid][pTeam] = 5; gTeam[playerid] = 5; ChosenSkin[playerid] = 120; SetPlayerSkin(playerid, 258); }
					        else if(PlayerInfo[pInvite[playerid]][pLeader] == 7) { PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; ChosenSkin[playerid] = 127; SetPlayerSkin(playerid, 127); }
					        else if(PlayerInfo[pInvite[playerid]][pLeader] == 8) { PlayerInfo[playerid][pTeam] = 10; gTeam[playerid] = 12; ChosenSkin[playerid] = 127; SetPlayerSkin(playerid, 127); }
					        else if(PlayerInfo[pInvite[playerid]][pLeader] == 9) { PlayerInfo[playerid][pTeam] = 12; gTeam[playerid] = 12; ChosenSkin[playerid] = 148; SetPlayerSkin(playerid, 148); }
					        else if(PlayerInfo[pInvite[playerid]][pLeader] == 10) { PlayerInfo[playerid][pTeam] = 12; gTeam[playerid] = 12; ChosenSkin[playerid] = 255; SetPlayerSkin(playerid, 255); }
					        else if(PlayerInfo[pInvite[playerid]][pLeader] == 11) { PlayerInfo[playerid][pTeam] = 12; gTeam[playerid] = 12; ChosenSkin[playerid] = 59; SetPlayerSkin(playerid, 59); }
							PlayerInfo[playerid][pMember] = PlayerInfo[pInvite[playerid]][pLeader];
							PlayerInfo[playerid][pRank] = 1;
							SetPlayerInterior(playerid,0);
							new rand = random(sizeof(gInviteSpawns));
							SetPlayerPos(playerid, gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]); // Warp the player
							SetPlayerFacingAngle(playerid, gInviteSpawns[rand][3]);
							SetPlayerCameraPos(playerid,gInviteSpawns[rand][0] + 3, gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
							SetPlayerCameraLookAt(playerid,gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
							TogglePlayerControllable(playerid, 0);
						    SelectChar[playerid] = 255;
						    SelectCharID[playerid] = PlayerInfo[playerid][pMember];
						    SelectCharPlace[playerid] = 1;
						    PlayerInfo[playerid][pModel] = ChosenSkin[playerid];
					    	PlayerInfo[playerid][pChar] = ChosenSkin[playerid];
					    	new str[64];
					    	GetPlayerName(pInvite[playerid], sendername, sizeof(sendername));
					    	format(str,sizeof(str),"[Администрация]: %s принял ваше приглашение!",sendername);
					    	SendClientMessage(pInvite[playerid], COLOR_WHITE, str);
						    SendClientMessage(playerid, COLOR_LIGHTRED, "* Используйте next для выбора скина.");
						    SendClientMessage(playerid, COLOR_LIGHTRED, "* Если вы нашли скин, который хотите использовать введите done.");
					        pInvite[playerid] = 999;
							return 1;
			            }
						else
						{
						    SendClientMessage(playerid, COLOR_GREY, "Вы состоите во фракции");
						    return 1;
						}
			        }
			        return 1;
			    }
				else
				{
				    SendClientMessage(playerid, COLOR_GREY, "Никто вам не приглашал вступить в Фракцию/Банду/Мафию");
				    return 1;
				}
			}
в команду /cancel добавить:
PHP:
else if(strcmp(x_job,"team",true) == 0)
			{
			    pInvite[playerid] = 999;
			    new str[64];
    	        GetPlayerName(pInvite[playerid], sendername, sizeof(sendername));
				format(str,sizeof(str),"[Администрация]: %s не принял ваше приглашение!",sendername);
    	        SendClientMessage(pInvite[playerid], COLOR_WHITE, str);
			}
Автор: Сергей68

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