Вопросы

MrGerst
Постоянный

У меня проблема! Я сделал систему админок но у меня проблема!

C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(60) : error 017: undefined symbol "Timers"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(94) : error 017: undefined symbol "SavePlayer"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(132) : error 017: undefined symbol "ProxDetector"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(143) : error 017: undefined symbol "strtok"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(143) : error 033array must be indexed (variable "cmd")
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(146) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(150) : error 017: undefined symbol "gString"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(150) : error 029: invalid expression, assumed zero
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(150) : warning 215: expression has no effect
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(158) : error 017: undefined symbol "PlayaName"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(159) : error 017: undefined symbol "gString"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(163) : error 017: undefined symbol "gString"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(163) : error 017: undefined symbol "gString"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(163) : error 029: invalid expression, assumed zero
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(163) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


13 Errors.

Код с 60 строчки по 163 строчку:

public OnGameModeInit()
{
    SetGameModeText("Russian");
    AddPlayerClass(46,-2471.8606,2839.0720,37.7199,90.77373850000000);
    Timers();
    DisableInteriorEnterExits();
    EnableStuntBonusForAll(0);
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    if(PlayerInfo[playerid][PAccount] == true){ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация","Здраствуйте,\nВы уже зарегестрированы на нашем сервере.\nВведите свой пароль:","Далее","");}
    else{ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Регистрация","Здраствуйте,\nВы еще не зарегестрированы на нашем сервере.\nЧтобы зарегестрироватся ввдеите свой новый пароль:","Далее","");}
    return 1;
}

public OnPlayerConnect(playerid)
{
    for(new pInfo:e; e < pInfo; ++e) PlayerInfo[playerid][e] 0;
    new string[MAX_PLAYER_NAME+14];
    GetPlayerName(playerid,PlayerInfo[playerid][pName],MAX_PLAYER_NAME);
    format(string,sizeof string,"Accounts/%s.ini", PlayerInfo[playerid][pName]);
    PlayerInfo[playerid][PAccount] = (fexist(string)) ? (true) : (false);
    Login[playerid] = false;
    
    pAdminDostup[playerid] = false// ????? ?? ????????? ? ????? ??????
    pAdminLevel[playerid] = 0// ????? ?? ?????
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    SavePlayer(playerid);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    new string[144];
    if(Login[playerid] == false)
    {
        SCM(playerid, COLOR_RED, "Вы не авторизованы!");
        return false;
    }
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
        ApplyAnimation(playerid, "PED""IDLE_chat"8.101111);
        SetTimerEx("Anim"1000*30"i", playerid);
    }
    format(string,sizeof(string),"%s[%d]: %s", GN(playerid),playerid,text);
    ProxDetector(20.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_GREY, COLOR_GREY);
    return 0;
}

public OnPlayerCommandText(playerid, cmdtext[])
{

    new cmd[256];
    new tmp[256];
    new idx;
    
    cmd=strtok(cmdtext,idx);

//_____________________ | ??????? ???????
        if(!strcmp("/adnins",cmd,true))
        {
                new kolvoadm,strvivod[512];

                (gString = "Администрация онлайн\n");

                for(new adminid; adminid < SERVER_SLOTS; adminid++)
                {
                        if(!IsPlayerConnected(adminid)) continue;
                        if(pAdminDostup[playerid] == falsecontinue;
                        (kolvoadm++);

                        format(strvivod,sizeof(strvivod),"Администратор %s[%d] | Уровень: %d | Ранг: %s\n",PlayaName(adminid), adminid, pAdminLevel[playerid], AdminRang(pAdminLevel[playerid]));
                        strcat(gString, strvivod);
                }
                if(kolvoadm == 0)
                {
                        format(gString, sizeof(gString),"Администраторов нет в сети!");
                }
                (kolvoadm = 0);
        ShowPlayerDialog(playerid, D_ADMINSONLINESCHECK, DIALOG_STYLE_MSGBOX,"Администрация", gString, "Понял""");
                return true;
        }

 

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


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

21 ответ на этот вопрос

  • 0
Anton_Urchenko
Освоившийся

undefines значит у тебя эти функции не определены в коде, а ты их используешь, либо у тебя не подключены библиотеки с этими функциями например #inculde <timers>(это пример просто я не знаю что такое timers())

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
MrGerst
Постоянный
C:\Users\Íàñòÿ\Desktop\Ìîé ìîä\gamemodes\stark.pwn(5) : fatal error 100: cannot read from file: "timers"

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

5 строка 

#include <timers>

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Anton_Urchenko
Освоившийся

проверь если у тебя файл timers.include в папке с иклудами

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


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

@Anton_UrchenkoСпасибо! Сейчас поставлю и проверю!

@Anton_Urchenko 

C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(64) : error 017: undefined symbol "Timers"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(98) : error 017: undefined symbol "SavePlayer"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(136) : error 017: undefined symbol "ProxDetector"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(147) : error 017: undefined symbol "strtok"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(147) : error 033array must be indexed (variable "cmd")
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(150) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(162) : error 017: undefined symbol "PlayaName"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(170) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(171) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(171) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(174) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(178) : error 027: invalid character constant
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(178) : error 027: invalid character constant
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(183) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(190) : error 027: invalid character constant
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(190) : error 027: invalid character constant
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(200) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(205) : error 017: undefined symbol "AdmAccess"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(205) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(209) : error 017: undefined symbol "strtok"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(209) : error 033array must be indexed (variable "tmp")
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(210) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(212) : error 017: undefined symbol "UserID"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(213) : error 017: undefined symbol "strtok"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(213) : error 033array must be indexed (variable "tmp")
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(214) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(220) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(224) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(232) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(233) : error 017: undefined symbol "NewAdminLevel"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(235) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(215) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(237) : error 079: inconsistent return types (array & non-array)

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


26 Errors.

 

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


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

Поднимаю тему.

научился избавляться от ошибок. 

Теперь их меньше.

C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(67) : error 012: invalid function call, not a valid address
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(67) : error 029: invalid expression, assumed zero
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(67) : warning 215: expression has no effect
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(101) : error 012: invalid function call, not a valid address
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(101) : warning 215: expression has no effect
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(101) : error 001: expected token: ";", but found ")"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(101) : error 029: invalid expression, assumed zero
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(101) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


6 Errors.

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Anton_Urchenko
Освоившийся

в 101 строчке нет точки с запятой в конце строки, а в 67 непонятно,  может функция Timers() требует аргументы какие-нибудь

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Anton_Urchenko
Освоившийся

new Timers и new SavePlayer это обьявление переменных,

а ты вызываешь Timers() как метод и SavePlayer(playerid) тоже , ты что-то перепутал походу

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


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

Удалил строчку Timers(); 

Ушло два ерора и один варн

C:\Users\Íàñòÿ\Desktop\Ìîé ìîä\gamemodes\stark.pwn(100) : error 012: invalid function call, not a valid address
C:\Users\Íàñòÿ\Desktop\Ìîé ìîä\gamemodes\stark.pwn(100) : warning 215: expression has no effect
C:\Users\Íàñòÿ\Desktop\Ìîé ìîä\gamemodes\stark.pwn(100) : error 001: expected token: ";", but found ")"
C:\Users\Íàñòÿ\Desktop\Ìîé ìîä\gamemodes\stark.pwn(100) : error 029: invalid expression, assumed zero
C:\Users\Íàñòÿ\Desktop\Ìîé ìîä\gamemodes\stark.pwn(100) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

Но теперь строчка 100 которая была 101. Она не хочет работать.

public OnPlayerDisconnect(playerid, reason)
{
    SavePlayer(playerid);
    return 1;
}

в new добавил но нифига. Что делать?

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


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

У вас в моде нет этих функций, естественно они работать не будут

Это тоже самое, если я просто возьму добавлю GiveAcs(playerid); в мод, а саму функцию писать не буду

 

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


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

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

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

  • Похожий контент

    • Senwik
      От Senwik
      Здравствуйте,где можно скачать КРМП 0.3.7 не бета тест?
    • breznov
      От breznov
      Доброго времени суток уважаемые форумчане !
      Хочу попросить помощь у вас, у меня проблемы с сохранением лидерки в базу данных, код:
       
      new FactionName[32] = "Скинхеды"; new Float:FactionHQX = 123.45, Float:FactionHQY = 678.90, Float:FactionHQZ = 10.11; new FactionMembers[MAX_PLAYERS]; new FactionRank[MAX_PLAYERS]; new FactionLeader = -1; // ID лидера (-1 означает, что лидера нет) new FactionDeputy = -1; // ID заместителя (-1 означает, что заместителя нет)

       
      #define FACTION_SKINHEDS 1 #define LEADER_INFO_DIALOG 1


       
      new const FactionRankNames[][] = {     "Новичок",     "Боец",     "Стрелок",     "Головорез",     "Бригадир",     "Доверенное лицо",     "Советник",     "Заместитель",     "Консильери",     "Дон" };  
      public OnGameModeInit():

       
      public OnGameModeInit() {     ConnectMySQL();     DisableInteriorEnterExits();     EnableStuntBonusForAll(0);     SetGameModeText("Armade RP v2.0");     SendRconCommand("hostname "SERVER_NAME" by Didenko");     LoadMapping();     Iter_Clear(Admins_ITER);     Iter_Clear(Question_ITER);     actor1 = CreateActor(159, 1800.0490, 2506.0791, 15.8725, 269.5358);     ApplyActorAnimation(actor1, "PED", "ROADROSS_FEMALE", 4.1, 1, 1, 1, 0, 0);     Create3DTextLabel("{FFFFFF}Нажмите {ffff00}L.ALT{FFFFFF} чтобы начать взаимодействие", COLOR_GREEN, 1800.0490, 2506.0791, 15.8725, 10.0, 0, 1);     //======================[ Пикапы ]==================================     magazvhod1 = CreatePickup(1318, 23, 2074.3257,1838.3256,12.5391, -1);     magazvihod1 = CreatePickup(1318, 23, -25.5779,-184.9357,1003.5469, -1);     SetTimer("SecondUpdate", 1000, true);     SetTimer("MinuteUpdate", 60000, true);     LoadFactionsData(); // Загружаем данные о фракциях и лидерах     return 1; }
       
      Стоки:

       
      stock LoadFactionsData() {     print("LoadFactionsData: Starting to load factions data...");     new query[64];     format(query, sizeof(query), "SELECT id, FactionLeader FROM factions");     mysql_tquery(dbHandle, query, "LoadFactionsData_Callback");     print("LoadFactionsData: Query sent.");     return 1; } forward LoadFactionsData_Callback(MySQL:handle, Cache:result); public LoadFactionsData_Callback(MySQL:handle, Cache:result) {     new rows = cache_num_rows();     printf("LoadFactionsData_Callback: Number of rows loaded: %d", rows);     if(rows > 0)     {         for(new i = 0; i < rows; i++)         {             cache_set_result(0);             new factionID, factionLeaderID;             if (!cache_get_value_name_int(i, "id", factionID)) {                 printf("[ERROR] LoadFactionsData_Callback: Failed to get 'id' for row %d", i);                 continue; // Переходим к следующей итерации, если не удалось получить ID             }             if (!cache_get_value_name_int(i, "FactionLeader", factionLeaderID)) {                 printf("[ERROR] LoadFactionsData_Callback: Failed to get 'FactionLeader' for row %d", i);                 continue; // Переходим к следующей итерации, если не удалось получить FactionLeader             }             printf("LoadFactionsData_Callback: Row %d: factionID = %d, factionLeaderID = %d", i, factionID, factionLeaderID);             if(factionLeaderID != 0)             {                 FactionLeader = factionLeaderID;                 FactionRank[factionLeaderID] = 10;                 printf("LoadFactionsData_Callback: Setting FactionLeader to %d and rank to 10.", factionLeaderID);                 // Не вызываем здесь SetPlayerSkin, пока не подключится игрок                 //if(IsPlayerConnected(factionLeaderID))                 //{                 //    SetPlayerSkin(factionLeaderID, 115);                 //    PlayerSkin[factionLeaderID] = 115;                 //}             }         }     }     else {         print("LoadFactionsData_Callback: No factions data found in the database.");     }     return 1; } stock SetFactionLeader(playerid, targetid) {     if(player_info[playerid][ADMIN] < 5)     {         SendClientMessage(playerid, CG, "Вы не являетесь администратором!");         return 1;     }     // Убираем старого лидера     if(FactionLeader != -1)     {         FactionRank[FactionLeader] = 1; // Понижаем ранг старого лидера     }     // Назначаем нового лидера     FactionLeader = targetid;     FactionRank[targetid] = 10;     // Сохраняем ID лидера в базу данных     new query[128];     format(query, sizeof(query), "UPDATE factions SET FactionLeader = '%d' WHERE id = '1'", targetid); // Замените '1' на ID вашей фракции, если у вас их несколько     mysql_tquery(dbHandle, query);     new szString[128];     format(szString, sizeof(szString), "Игрок %s назначен лидером фракции!", targetid);     SendClientMessage(playerid, 0x00FF00AA, szString);     SendClientMessage(targetid, 0x00FF00AA, "Вы назначены лидером фракции!");     // Выдаем скин 115     SetPlayerSkin(targetid, 115);     PlayerSkin[targetid] = 115; // Обновляем массив PlayerSkin     SPD(playerid, DLG_LEADERINFO1, DIALOG_STYLE_LIST, "Информация необходимая к прочтению", "{FF0000}!!!ПРОЧИТАТЬ!!!\n{0089ff}[1]{ffffff} Команды лидера", "Выбрать", "Закрыть");     return 1; } stock SetFactionDeputy(playerid, targetid) {     // Проверка на то, является ли игрок админом     if(player_info[playerid][ADMIN] > 5)     {         SendClientMessage(playerid, CG, "Вы не являетесь администратором!");         return 1;     }     // Убираем старого заместителя     if(FactionDeputy != -1) FactionRank[FactionDeputy] = 1; // Понижаем ранг старого заместителя     // Назначаем нового заместителя     FactionDeputy = targetid;     FactionRank[targetid] = 9; // Устанавливаем ранг 9 (Консильери)     new szString[128];     format(szString, sizeof(szString), "Игрок %d назначен заместителем фракции!", targetid);     SendClientMessage(playerid, 0x00FF00AA, szString);     SendClientMessage(targetid, 0x00FF00AA, "Вы назначены заместителем фракции!");     return 1; } // Функция проверки, является ли игрок лидером stock IsPlayerLeader(playerid) {     if(playerid == FactionLeader)     {         return 1;     }     return 0; } // Функция проверки, является ли игрок заместителем stock IsPlayerDeputy(playerid) {     if(playerid == FactionDeputy)     {         return 1;     }     return 0; } // Функция вступления во фракцию stock JoinFaction(playerid, inviterid) {     // Проверяем, состоит ли игрок уже в какой-либо фракции     for(new i = 0; i < MAX_PLAYERS; i++)     {         if(FactionMembers[playerid] != 0)         {             SendClientMessage(playerid, 0xFF0000AA, "Вы уже состоите в другой фракции!");             return 1;         }     }     // Добавляем игрока во фракцию     FactionMembers[playerid] = FACTION_SKINHEDS;     FactionRank[playerid] = 1; // Рядовой (Новичок) - Устанавливаем ранг     new szString[128];     format(szString, sizeof(szString), "Вы вступили в '%s' по приглашению игрока %d!", FactionName, inviterid);     SendClientMessage(playerid, 0x00FF00AA, szString);     format(szString, sizeof(szString), "Игрок %d вступил в '%s' по вашему приглашению!", playerid, FactionName);     SendClientMessage(inviterid, 0x00FF00AA, szString);     return 1; } stock LeaveFaction(playerid) {     if(!IsPlayerInFaction(playerid, FACTION_SKINHEDS))     {         SendClientMessage(playerid, 0xFF0000AA, "Вы не состоите в этой фракции!");         return 1;     }     FactionMembers[playerid] = 0; // Обнуляем ID фракции (0 - значит, не состоит)     FactionRank[playerid] = 0;     SendClientMessage(playerid, 0x00FF00AA, "Вы покинули Семью Рейес!");     return 1; } stock GetFactionRank(playerid) {     return FactionRank[playerid]; } stock SetFactionRank(playerid, targetid, rank) {     // Проверка на то, является ли игрок лидером или заместителем     if(!IsPlayerLeader(playerid) && !IsPlayerDeputy(playerid))     {         SendClientMessage(playerid, 0xFF0000AA, "Вы не имеете права устанавливать ранги!");         return 1;     }     // Проверка на то, чтобы ранг не был слишком высоким     if(rank > 10 || rank < 1)     {         SendClientMessage(playerid, 0xFF0000AA, "Неверный ранг!");         return 1;     }     FactionRank[targetid] = rank;     new szString[128];     format(szString, sizeof(szString), "Вы установили ранг '%s' для игрока %d", FactionRankNames[rank - 1], targetid); // Получаем название из массива     SendClientMessage(playerid, 0x00FF00AA, szString);     format(szString, sizeof(szString), "Вам установлен ранг '%s' игроком %d", FactionRankNames[rank - 1], playerid); // Получаем название из массива     SendClientMessage(targetid, 0x00FF00AA, szString);     return 1; } // Функция проверки, состоит ли игрок во фракции stock IsPlayerInFaction(playerid, factionid) {     if(FactionMembers[playerid] == factionid)     {         return 1;     }     return 0; }
      Ну и команды естественно:

       
      // Команда для установки ранга (пример, только для лидеров) CMD:setrank(playerid, cmdtext[]) {     new targetid, rank;     if(sscanf(cmdtext, "dd", targetid, rank))     {         SendClientMessage(playerid, 0xFF0000AA, "Используйте: /setrank [ID игрока] [Ранг]");         return 1;     }     SetFactionRank(playerid, targetid, rank);     return 1; } // Команда информации о фракции CMD:factioninfo(playerid, cmdtext[]) {     new szString[256];     format(szString, sizeof(szString), "Название: %s, Штаб-квартира: %.2f %.2f %.2f", FactionName, FactionHQX, FactionHQY, FactionHQZ);     SendClientMessage(playerid, 0x00FF00AA, szString);     return 1; } CMD:setleader(playerid, cmdtext[]) {     new targetid;     if(sscanf(cmdtext, "d", targetid))     {         SendClientMessage(playerid, 0xFF0000AA, "Используйте: /setleader [ID игрока]");         return 1;     }     SetFactionLeader(playerid, targetid);     return 1; } CMD:setdeputy(playerid, cmdtext[]) {     new targetid;     if(sscanf(cmdtext, "d", targetid))     {         SendClientMessage(playerid, 0xFF0000AA, "Используйте: /setdeputy [ID игрока]");         return 1;     }     SetFactionDeputy(playerid, targetid);     return 1; } // -------------------------------------------------------------------------- // Команда для приглашения игрока во фракцию (только для лидеров и заместителей) // -------------------------------------------------------------------------- CMD:invite(playerid, cmdtext[]) {     new targetid;     if(!IsPlayerLeader(playerid) && !IsPlayerDeputy(playerid))     {         SendClientMessage(playerid, 0xFF0000AA, "Вы не имеете права приглашать игроков!");         return 1;     }     if(sscanf(cmdtext, "d", targetid))     {         SendClientMessage(playerid, 0xFF0000AA, "Используйте: /invite [ID игрока]");         return 1;     }     // Добавим проверку на приглашение самого себя     if(playerid == targetid)     {         SendClientMessage(playerid, 0xFF0000AA, "Вы не можете пригласить самого себя!");         return 1;     }     JoinFaction(targetid, playerid);     return 1; } // -------------------------------------------------------------------------- // Команда для исключения игрока из фракции (только для лидеров и заместителей) // -------------------------------------------------------------------------- CMD:uninvite(playerid, cmdtext[]) {     new targetid;     if(!IsPlayerLeader(playerid) && !IsPlayerDeputy(playerid))     {         SendClientMessage(playerid, 0xFF0000AA, "Вы не имеете права исключать игроков!");         return 1;     }     if(sscanf(cmdtext, "d", targetid))     {         SendClientMessage(playerid, 0xFF0000AA, "Используйте: /uninvite [ID игрока]");         return 1;     }     // Добавим проверку на исключение самого себя     if(playerid == targetid)     {         SendClientMessage(playerid, 0xFF0000AA, "Вы не можете увольнять самого себя!");         return 1;     }     if(!IsPlayerInFaction(targetid, FACTION_SKINHEDS))     {         SendClientMessage(playerid, 0xFF0000AA, "Этот игрок не состоит в вашей фракции!");         return 1;     }     LeaveFaction(targetid);     return 1; }

      Ребят, не судите строго пожалуйста, делал с помощью ChatGPT, помогите пожалуйста сохранение лидерки и заместителя сделать