Как сделать проверку что у организации уже есть лидер

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

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

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

C++:
        case 136:
        {
            if(response)
            {
                new fraction_massive[16][3] = {
                    {10, 310, 76},
                    {10, 165, 141},
                    {10, 61, 191}, 
                    {10, 70, 219},
                    {10, 113, 214},
                    {10, 186, 169},
                    {10, 147, 150},
                    {10, 283, 76},
                    {10, 44, 131},
                    {10, 104, 195},
                    {10, 110, 190},
                    {10, 111, 216},
                    {10, 270, 56},
                    {10, 261, 148},
                    {10, 115, 41},
                    {10, 173, 226}
                };

                PlayerInfo[playerid][pRank] = fraction_massive[listitem][0];
                PlayerInfo[playerid][pModel] = (PlayerInfo[playerid][pSex] == 1) ? (fraction_massive[listitem][1]) : (fraction_massive[listitem][2]);
                ///
                new local_listitem = (listitem > 7) ? listitem + 2 : listitem;

                SendClientMessage(playerid, 0xFFDDEE, !"Вы были назначены лидером организации");

                SetPlayerArmour(playerid, 0);
                SetPlayerHealthAC(playerid, 100);

                PlayerInfo[playerid][pLeader] = local_listitem + 1;
                PlayerInfo[playerid][pMember] = local_listitem + 1;

                SetPlayerToTeamColor(playerid);
                return 1;
            }
        }
 
Пользователь
Регистрация
6 Авг 2023
Сообщения
99
@Sandello, чат гпт не знает языка, он знает лишь теорию, и действительно хороший совет врятли даст
проверку что у организации уже есть лидер
массив с фракциями, именем лидера, None если нету, загрузка при запуске мода и таблица в mySQL для сохранения, записываешь в табло при снятии/назначении
 
Активный
Пользователь
Регистрация
29 Июл 2024
Сообщения
277
@Sandello, чат гпт не знает языка, он знает лишь теорию, и действительно хороший совет врятли даст

массив с фракциями, именем лидера, None если нету, загрузка при запуске мода и таблица в mySQL для сохранения, записываешь в табло при снятии/назначении
Pawn:
case 136:
{
    if (response)
    {
        new fraction_massive[16][3] = {
            {10, 310, 76},
            {10, 165, 141},
            {10, 61, 191},
            {10, 70, 219},
            {10, 113, 214},
            {10, 186, 169},
            {10, 147, 150},
            {10, 283, 76},
            {10, 44, 131},
            {10, 104, 195},
            {10, 110, 190},
            {10, 111, 216},
            {10, 270, 56},
            {10, 261, 148},
            {10, 115, 41},
            {10, 173, 226}
        };

        // Проверка, есть ли уже лидер у фракции
        if (FractionLeaders[listitem] != 0)
        {
            SendClientMessage(playerid, 0xFF0000, "У этой фракции уже есть лидер!");
            return 1;
        }

        PlayerInfo[playerid][pRank] = fraction_massive[listitem][0];
        PlayerInfo[playerid][pModel] = (PlayerInfo[playerid][pSex] == 1) ? (fraction_massive[listitem][1]) : (fraction_massive[listitem][2]);

        new local_listitem = (listitem > 7) ? listitem + 2 : listitem;

        SendClientMessage(playerid, 0xFFDDEE, "Вы были назначены лидером организации");

        SetPlayerArmour(playerid, 0);
        SetPlayerHealthAC(playerid, 100);

        PlayerInfo[playerid][pLeader] = local_listitem + 1;
        PlayerInfo[playerid][pMember] = local_listitem + 1;

        SetPlayerToTeamColor(playerid);

        // Назначаем игрока лидером фракции
        FractionLeaders[listitem] = playerid;

        return 1;
    }
}

Ну пусть автор проверит, мне гпт помогал много раз.


CODE BY CHAT GPT!
 
Активный
Пользователь
Регистрация
29 Июл 2024
Сообщения
277
pawn love
Активный
Регистрация
26 Сен 2023
Сообщения
244
Сперва, форматируем запрос.
Pawn:
new query[256];
format(query, sizeof(query), "SELECT * FROM `leaders` WHERE `lName` = '%s' LIMIT 1", PI[params[0]][pName]);
mysql_tquery(dbHandle, query, "MakeLeader", "dd", playerid, params[0]);

Дальше, в паблике MakeLeader, проверяем, есть ли информация пользователя в таблице leaders.
Pawn:
forward MakeLeader(playerid, params[0]);
public MakeLeader(playerid, params[0])
{
    new rows;
    cache_get_row_count(rows);

    if(rows) return SendClientMessage(playerid, -1, "Игрок уже является лидером");
    else
    {
            // код назначения лидерки
    {
}
 
Последнее редактирование:
Активный
Пользователь
Регистрация
26 Апр 2022
Сообщения
174
Сверху