В теме 1 сообщение

KlasterK
Освоившийся

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

Если у вас возникли вопросы, пишите.

Спойлер

// В место глобальных переменных
new slock_password[32] = "";

// В ваш player enum
enum PlayerInfo
{
    ...
    pServerLockLogged = 0,
    ...
}

// В место с константами или в ваш dialog enum
#define DIALOG_SLOCK_INPUT Введите число
// ИЛИ
enum Dialogs
{
    ...
    DIALOG_SLOCK_INPUT,
    ...
}

// В место с командами
CMD:lockserver(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"Вы не RCon админ!"); // Замените на вашу проверку админа
    if(params[0] == '\0'return SendClientMessage(playerid, -1"Вы не указали пароль!")     // Замените цвет
    slock_password = params;
    for(new i = 0; i < MAX_PLAYERS; i++)
        if(IsPlayerConnected(playerid) && !IsPlayerAdmin(playerid)) // Замените IsPlayerAdmin на вашу проверку админа
            ShowPlayerDialog(playerid, DIALOG_SLOCK_INPUT, DIALOG_STYLE_INPUT, "Авторизация""Администратор установил пароль на сервер.\nВведите пароль чтобы продолжить играть.""Войти""Выйти");
}

public OnPlayerConnect(playerid)
{
    if(s_password[0] != '\0' && !PlayerInfo[playerid][pServerLockLogged]) // Если у вас enum(замените имя на своё)
    if(s_password[0] != '\0' && !GetPVarInt(playerid, "slock_logged")     // Если у вас PVar
        ShowPlayerDialog(playerid, DIALOG_SLOCK_INPUT, DIALOG_STYLE_INPUT, "Авторизация""Администратор установил пароль на сервер.\nВведите пароль чтобы продолжить авторизацию/регистрацию.""Войти""Выйти");
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    else if(dialogid == DIALOG_SLOCK_INPUT) // Если у вас if-elseif
    case DIALOG_SLOCK_INPUT:                // Если у вас switch
    {
        if(!response || inputtext[0] == '\0' || !strcmp(inputtext, slock_password)) // Если игрок нажал Esc, ничего не написал или неправильный пароль
            Kick(playerid); // Можно заменить, если у вас есть красивый кик на TextDraw или GameText
        else
        {
            SetPVarInt(playerid, "slock_logged"1);     // Если у вас PVar
            PlayerInfo[playerid][pServerLockLogged] = 1// Если у вас enum(замените имя на своё)
            if(!PlayerInfo[playerid][pLogged])           // Замените на свою проверку на авторизованность
                OnPlayerConnect(playerid);
        }
    }
}

 

 

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

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

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

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

    • tomi
      От tomi
      cтолкнулся с ошибкой при запуске сервера
      Если поможете буду благодарен
      [OnQueryError] SQL ERROR. QUERY:
      0) OnQueryError | error: Table 'conveniencerp.apanel_settings' doesn't exist
      1) OnQueryError | callback: apanel_settings_loading
      2) OnQueryError | query: SELECT * FROM `apanel_settings`
      3) OnQueryError | errorid: 1146
    • flixees
      От flixees
      Здраствуйте увидел в интернете как люди совместили один проект с другим и хочу также сделать как? взяли один мод RADMIR RP и совместили всеми известный KAIF RP  и у них получился шедевр у них мод радмира но сборка кайф рп скрины ниже дам хочу сделать также у них буквально анлок сброка и мод радмира