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

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

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

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

нужные команды для серверов

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

Leaders

Изучающий
Пользователь
Регистрация
28 Июл 2011
Сообщения
895
Лучшие ответы
0
Репутация
243
Ув.Пользователи смотрим
Создатель I

прежде чем начать удалите старую команду
/invite - новечки для вас пишу
МОД RLS
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] == ID || PlayerInfo[playerid][pMember] == ID && PlayerInfo[playerid][pRank] >= RANK) {  ftext = "Своё названия"; InviteSkin[para1] = SKIN;  }
                            else if(PlayerInfo[playerid][pLeader] == ID || PlayerInfo[playerid][pMember] == ID && PlayerInfo[playerid][pRank] >= RANK) {  ftext = "Своё названия"; InviteSkin[para1] = SKIN;  }
                            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:
                            else if(PlayerInfo[playerid][pLeader] == ID || PlayerInfo[playerid][pMember] == ID && PlayerInfo[playerid][pRank] >= RANK) {  ftext = "Своё названия"; InviteSkin[para1] = SKIN;  }
SKIN - скин при приняти во фракцию
ID - ид фракции
RANK - Ранг какой может принимать



дальше делаем /uninvite
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;
    }
Теперь /giverank
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;
    }
теперь что бы могли замы делать это
ДОБОВЛЯЕМ в конец мода PUBLIC
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 РАНГ:return 1;
                case РАНГ:return 1;
                case РАНГ:return 1;
            }
        }
        case 2:
        {
            switch(rank)
            {
                case РАНГ:return 1;
                case РАНГ:return 1;
                case РАНГ: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 РАНГ!:return 1;
                case РАНГ!:return 1;
                case РАНГ!:return 1;
                case РАНГ!:return 1;
            }
        }
        case 2:
        {
            switch(rank)
            {
                case РАНГ!:return 1;
                case РАНГ!:return 1;
                case РАНГ!:return 1;
                case РАНГ!: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..Ранк:return 1;
            }
        }
        case 2:
        {
            switch(rank)
            {
                case 1..РАНК:return 1;
            }
        }
    }
    return 0;
}
объясняю подробно
РАНГ! - ранги которые могут довать ранги
РАНГ - ранги которые могут принимать и увольнять
РАНК - вставить до кокого можно повышать ранга на 1 ранг ниже лидера


а так же команда /demote
к форвордам
PHP:
forward IsAFbi(playerid);
в Onplayercommand
PHP:
        if(strcmp(cmd, "/demote", true) == 0)
        {
                if(IsPlayerConnected(playerid))
                {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
                        {
                            SendClientMessage(playerid, COLOR_GRAD2, " Помощь: /demote [id]");
                            return 1;
                        }
                        if(!IsAFbi(playerid) && PlayerInfo[playerid][pMember] <= 6)
                        {
                            SendClientMessage(playerid, COLOR_GRAD2, "Вы не можете использовать эту команду");
                                return 1;
                        }
                        new demotegiveplayer;
                        demotegiveplayer = ReturnUser(tmp);
                        if(IsPlayerConnected(demotegiveplayer))
                        {
                            if(demotegiveplayer != INVALID_PLAYER_ID)
                            {
                                new demotefrakid[MAX_PLAYERS];
                                        demotefrakid[demotegiveplayer] = PlayerInfo[demotegiveplayer][pMember];
                                        if(demotefrakid[demotegiveplayer] == 1 || demotefrakid[demotegiveplayer] == 8 || demotefrakid[demotegiveplayer] == 12 || demotefrakid[demotegiveplayer] == 3 || demotefrakid[demotegiveplayer] == 19) Тут можно вставить свои фракции иды фракций
                                        {
                                            new grini;
                                                PlayerInfo[demotegiveplayer][pRank] --;
                                                grini = PlayerInfo[demotegiveplayer][pRank];
                                                format(string,sizeof(string),"Вы понизил %s до %d ранга",demotegiveplayer,grini);
                                                SendClientMessage(playerid,COLOR_GRAD2,string);
                                                SendClientMessage(demotegiveplayer,COLOR_GRAD2,"Агент FBI понизил вас на 1 ранг");
                                                if(PlayerInfo[playerid][pMember] == 21 || PlayerInfo[demotegiveplayer][pMember] == 10 || PlayerInfo[demotegiveplayer][pMember] == 1 && PlayerInfo[demotegiveplayer][pRank] < 1)
                                                {
                                                PlayerInfo[demotegiveplayer][pMember] = 19;
                                                PlayerInfo[demotegiveplayer][pRank] = 4;
                                                PlayerInfo[demotegiveplayer][pChar] = 287;
                                                SetPlayerSkin(demotegiveplayer, 287);
                                                SpawnPlayer(demotegiveplayer);
                                                return 1;
                                                }
                                                else if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[demotegiveplayer][pMember] == 19 && PlayerInfo[demotegiveplayer][pRank] < 1)
                                               {
                                                PlayerInfo[demotegiveplayer][pMember] = 0;
                                                PlayerInfo[demotegiveplayer][pRank] = 0;
                                                SpawnPlayer(demotegiveplayer);
                                                return 1;
                                                }                                        

                                        }
                                        else { SendClientMessage(playerid, COLOR_GRAD2, "Этот человек не состоит в Армии/Полиции"); return 1; }
                                }
                        }
                        else { SendClientMessage(playerid, COLOR_GRAD2, " Человек не найден ");  return 1;}
                }
                return 1;
        }
в конец мода
PHP:
public IsAFbi(playerid)
{
        if(IsPlayerConnected(playerid))
        {
            new leader = PlayerInfo[playerid][pLeader];
            new member = PlayerInfo[playerid][pMember];
            if(member==2)
                {
                    return 1;
                }
                else if(leader==2)
                {
                    return 1;
                }
        }
        return 0;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу