KlasterK

Установка пароля на сервер [dc_cmd + sscanf2]

1 post in this topic

Вы можете поставить пароль на ваш сервер, не входя в 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);
        }
    }
}

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • ismailov
      By ismailov
      Привет! Что делать, если игрока выкинули из машины? как сделать так, чтобы не выкидывало из машины? из-за NOP выкидывает человека из машины. Если заменить на PutPlayerInVehicle, такая тема все равно будет.


    • YoungKaiser
      By YoungKaiser
      При заходе на сервер, не доходя до авторизации крашит

      Логи: 
      [21:02:24] Number of vehicle models: 0 [21:03:29] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:30] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:30] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:32] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:32] [connection] 188.233.12.12:47928 requests connection cookie. [21:03:32] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:32] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:33] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:33] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:33] [connection] incoming connection: 188.233.12.12:47928 id: 0 [21:03:33] [sv:dbg:network:connect] : connecting player (0) with address (188.233.12.12) ... [21:03:33] [sv:dbg:network:connect] : player (0) assigned key (c0ce9bc6330e042) [21:03:33] [join] Young_Kaiser has joined the server (0:188.233.12.12) [21:03:33] LoadMapping загрузился за 5 ms [21:03:33] CreateObject всего: 65535 [21:03:33] [sv:dbg:network:receive] : player (0) identified (port:48086) [21:03:34] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:35] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:35] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:35] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:35] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:36] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:36] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:37] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:37] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:37] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:38] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:38] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:41] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:41] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:41] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:41] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:41] Error occured processing incomming packet: DecodingError(OrderingGuarantee) [21:03:51] [sv:dbg:network:connect] : disconnecting player (0) ... [21:03:51] [part] Young_Kaiser has left the server (0:0)