Раздел навигации

Временное вступление во фракцию (templeader)

Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Специалист
Активный
Регистрация
2 Авг 2022
Сообщения
18
Достаточно простая команда
Можно доработать на свое усмотрение или попросить в этой теме добавить что-либо


C++:
CMD:templeader(playerid,params[]){
        if(l[playerid][админка] < 1) return SendClientMessage(playerid, -1, "Маленький еще");;
        {
            if(sscanf(params, "d", params[0]))
                    return SendClientMessage(playerid, -1, "Используй /templeader [id организации]");
                    
            if(params[0] > 3 || params[0] < 0)
                    return SendClientMessage(playerid, -1, "Неверный id организации.");
                    
            if(l[playerid][Админка] >= 1)
            {

                if(params[0] == 0)
                {
                    l[playerid][pMember] = 0, l[playerid][pRang] = 0,  SetPlayerColor(playerid, цвет для вашей фракции);
                    SendClientMessage(playerid , 0x0BEBC5AA, "Временная лидерка снята, вы снова лох");
                }
                if(params[0] == 1)
                {
                    l[playerid][pMember] = 1, l[playerid][pRang] = 10, SetPlayerColor(playerid, Цвет для фракции);
                    SendClientMessage(playerid,-1,"{0BEB38}Вы назначили себя лидером крутой фракции");
                }
                if(params[0] == 2 || params[1] == 0)
                {
                    l[playerid][pMember] = 2, l[playerid][pRang] = 10, SetPlayerColor(playerid, Цвет для вашей фракции);
                    SendClientMessage(playerid,-1,"{0BEB38}Вы назначили себя лидером такой-то фракции");
                }
                if(params[0] == 3)
                {
                    l[playerid][pMember] = 3, l[playerid][pRang] = 10, SetPlayerColor(playerid, COLOR_WHITE);
                    SendClientMessage(playerid,-1,"{0BEB38}Вы назначили себя пидером такой-то фракции");
                }
            }
        }
        return true;
    }
 
Специалист
Активный
Регистрация
2 Авг 2022
Сообщения
18
Немного оптимизации
C++:
CMD:templeader(playerid,params[]){
        if(l[playerid][pAdmInfo] < 1) return SendClientMessage(playerid, -1, "Маленький еще");
        {
            if(sscanf(params, "d", params[0]))
                    return SendClientMessage(playerid, -1, "Используй /templeader [id организации]");

            if(params[0] > 3 || params[0] < 0)
                    return SendClientMessage(playerid, -1, "Неверный id организации.");

            switch(params[0]){

                    case 0:
                    {
                        l[playerid][pMember] = 0, l[playerid][pRang] = 0,  SetPlayerColor(playerid, 0xE92727FF);
                        SendClientMessage(playerid , 0x0BEBC5AA, "Временная лидерка снята, вы снова лох");
                    }
                    case 1:
                    {
                        l[playerid][pMember] = 1, l[playerid][pRang] = 10, SetPlayerColor(playerid, 0xE92727FF);
                        SendClientMessage(playerid,-1,"{0BEB38}Вы назначили себя лидером крутой фракции");
                    }
                    case 2:
                    {
                        l[playerid][pMember] = 2, l[playerid][pRang] = 10, SetPlayerColor(playerid, 0xE92727FF);
                        SendClientMessage(playerid,-1,"{0BEB38}Вы назначили себя лидером такой-то фракции");
                    }
                    case 3:
                    {
                        l[playerid][pMember] = 3, l[playerid][pRang] = 10, SetPlayerColor(playerid, COLOR_WHITE);
                        SendClientMessage(playerid,-1,"{0BEB38}Вы назначили себя лидером такой-то фракции");
                    }
                }
        }
        return true;
}
 
Активный
Пользователь
Регистрация
27 Июл 2022
Сообщения
13
Немного оптимизации
C++:
CMD:templeader(playerid,params[]){
        if(l[playerid][pAdmInfo] < 1) return SendClientMessage(playerid, -1, "Маленький еще");
        {
            if(sscanf(params, "d", params[0]))
                    return SendClientMessage(playerid, -1, "Используй /templeader [id организации]");

            if(params[0] > 3 || params[0] < 0)
                    return SendClientMessage(playerid, -1, "Неверный id организации.");

            switch(params[0]){

                    case 0:
                    {
                        l[playerid][pMember] = 0, l[playerid][pRang] = 0,  SetPlayerColor(playerid, 0xE92727FF);
                        SendClientMessage(playerid , 0x0BEBC5AA, "Временная лидерка снята, вы снова лох");
                    }
                    case 1:
                    {
                        l[playerid][pMember] = 1, l[playerid][pRang] = 10, SetPlayerColor(playerid, 0xE92727FF);
                        SendClientMessage(playerid,-1,"{0BEB38}Вы назначили себя лидером крутой фракции");
                    }
                    case 2:
                    {
                        l[playerid][pMember] = 2, l[playerid][pRang] = 10, SetPlayerColor(playerid, 0xE92727FF);
                        SendClientMessage(playerid,-1,"{0BEB38}Вы назначили себя лидером такой-то фракции");
                    }
                    case 3:
                    {
                        l[playerid][pMember] = 3, l[playerid][pRang] = 10, SetPlayerColor(playerid, COLOR_WHITE);
                        SendClientMessage(playerid,-1,"{0BEB38}Вы назначили себя лидером такой-то фракции");
                    }
                }
        }
        return true;
}
Думаю так будет лучше
Код:
CMD:templeader(playerid, params[]){
    if(PlayerInfo[playerid][pAdmin] < 8) return SendClientMessage(playerid, -1,"[Error]Не достаточно прав."); // уровень админки
    if(sscanf(params,"uii",params[0],params[1],params[2])) return SendClientMessage(playerid, -1,"[Example]/templeader [id] [team] [rank]");//params 0(giveplayerid) 1(frac) 2(rank)
    PlayerInfo[params[0]][pMember] = params[1];
    PlayerInfo[params[0]][pRank] = params[2];
    return true;
}
 
Последнее редактирование:
Создатель WayDev
Команда форума
Администратор
Регистрация
13 Мар 2022
Сообщения
606
@PawnPuls, для кого-то может быть не удобно выдавать временную лидерку подобным образом. Предложу свой вариант.

C++:
CMD:templeader(playerid,params[]){
    if(l[playerid][pAdmInfo] < 1)
        return SendClientMessage(playerid, -1, "Маленький еще"); //проверка на админ. права
    if(sscanf(params, "d", params[0]))
        return SendClientMessage(playerid, -1, "Используй /templeader [id организации]");
    if(params[0] > 3 || params[0] < 0)
        return SendClientMessage(playerid, -1, "Неверный id организации."); //проверка на валидность ID фракции
    
    if(!params[0]) {
        l[playerid][pMember] = 0, l[playerid][pRang] = 0, SetPlayerColor(playerid, 0xE92727FF);
        SendClientMessage(playerid , 0x0BEBC5AA, "Временная лидерка снята, вы снова лох");
    }
    else {
        l[playerid][pMember] = params[0], l[playerid][pRang] = 10, SetPlayerColor(playerid, 0xE92727FF);
        SendClientMessage(playerid,-1,"{0BEB38}Вы назначили себя лидером крутой фракции");
    }
    return true;
}
 
Специалист
Активный
Регистрация
2 Авг 2022
Сообщения
18
Может тоже тему создать?)
Думаю так будет лучше
Код:
CMD:templeader(playerid, params[]){
    if(PlayerInfo[playerid][pAdmin] < 8) return SendClientMessage(playerid, -1,"[Error]Не достаточно прав."); // уровень админки
    if(sscanf(params,"uii",params[0],params[1],params[2])) return SendClientMessage(playerid, -1,"[Example]/templeader [id] [team] [rank]");// 
    PlayerInfo[params[0]][pMember] = params[1];
    PlayerInfo[params[0]][pRank] = params[2];
    return true;
}
Зачем добавлять ид игрока, если команда предназначена для вступления администратора во фракцию? По факту совершенно другое назначение и отдельная команда. Если на то пошло то тогда сделаем так. Допустим у нас несколько фракций с разным количеством рангов, а так как название команды говорит само за себя( что должнa выдаваться лидерка)
C++:
CMD:templeaderplayer(playerid, params[]){

    if(l[playerid][pAdmInfo] < 1) return SendClientMessage(playerid, -1,"[Error]Не достаточно прав."); // уровень админки
    new LeaderRank;
    if(sscanf(params,"uii",params[0],params[1])) return SendClientMessage(playerid, -1,"[Example]/templeaderplayer [id] [team]");//params 0(giveplayerid) 1(frac) 2(rank)
    switch(params[1]){
        case 1: LeaderRank = 10;
        case 2: LeaderRank = 8;
        case 3: LeaderRank = 15;
        case 4: LeaderRank = 4;
        case 5..10: LeaderRank = 7;
    }
    l[params[0]][pMember] = params[1], l[params[0]][pRang] = LeaderRank;
    SendClientMessage(params[0],-1,"Вас назначили на пост временного лидера");
    return true;
}
 
Сверху