Перейти к содержанию
Авторизация  
BlinkyLine

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

Рекомендуемые сообщения

BlinkyLine

Суть заключается в том что игроку присылается сообщение,вы приглашены во фракцию,и игрок может отказаться или принять приглашение

 

Ко всем new добавим:

new pInvite[MAX_PLAYERS];

в public OnPlayerConnect(playerid) добавим:

pInvite[playerid] = 999;

Заменяем свою команду /invite на эту: 

if(strcmp(cmd, "/invite", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "ИСПОЛЬЗОВАНИЕ: /invite [id_игрока/ЧастьИмени]");
new para1;
new ftext[20];
para1 = ReturnUser(tmp);
if (PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid, COLOR_GRAD1, "Вы не лидер !");
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
if (PlayerInfo[para1][pMember] != 0) return SendClientMessage(playerid, COLOR_GREY, "Этот игрок состоит во фракции!");
if(PlayerInfo[playerid][pLeader] == 1) { ftext = "Ваше название фракции"; }
else if(PlayerInfo[playerid][pLeader] == 2) { ftext = "Ваше название фракции и т.д."; }
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;
}
}
}
return 1;
}

Внимание если у вас не стандартная команда то добавьте pInvite[para1] = playerid;
Код который отправляет на респавн убрать а также убрать смену скина,если у вас больше фракций чем в стандартном ГФ(да полюбому больше) то добавляем в команду /invite так

else if(PlayerInfo[playerid][pLeader] == ID фраки) { ftext = "Название"; }

в команду /accept добавить

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); }
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 добавить:

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

 

  • Like 3

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


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

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

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

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

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

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

Войти

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

Войти
Авторизация  

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

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

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.