Pawno-SAMP
Главная
Вход
Регистрация
Среда, 16.07.2025, 09:15Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[Мануал] Создание /invite с приглашением
UlkiorraJeezyДата: Суббота, 14.07.2012, 08:13 | Сообщение # 1
Лейтенант
Группа: Администраторы
Сообщений: 71
Репутация: 0
Статус: Offline
Суть в том,что когда вас приглашают /invite (ваш ид) у вас появляется диалоговое окно с выбором, принять приглашение или нет.
Начнем.

1. Ко всем new добавим:
Code
new pInvite[MAX_PLAYERS];  

2. В public OnPlayerConnect(playerid) добавим:
Code
pInvite[playerid] = 999;  

3. Заменяем свою команду /invite на эту:
Code
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;
     }  

4. в команду /accept добавить
Code
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;
                 }
             }  

5. в команду /cancel добавить:
Code
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);
             }


Вопросы в тему.
 
  • Страница 1 из 1
  • 1
Поиск:


Пожертвования на развитие сайта. Yandex: 410011459268530 © 2025
Создать бесплатный сайт с uCoz