Система личного пин кода игрока

Активный
Статус
Сообщения
516
Лайки
32

8

месяц на сайте

Идея и назначение

Игрок задает четырехзначный пин код, который нужно вводить при входе.

Подходит для дополнительной защиты аккаунта.


Суть реализации

1. Храним строку пин кода для каждого игрока.

2. Команда /setpin устанавливает новый код.

3. Команда /checkpin проверяет введенный код и допускает к игре.


Реализация

Код:
new PlayerPin[MAX_PLAYERS][5];
new bool:PinChecked[MAX_PLAYERS];


CMD:setpin(playerid, params[])
{
    new code[5];

    if(sscanf(params, "s[5]", code))
        return SendClientMessage(playerid, -1, "Используй: /setpin [4 цифры].");

    if(strlen(code) != 4)
        return SendClientMessage(playerid, -1, "Пин код должен состоять из 4 символов.");

    format(PlayerPin[playerid], sizeof PlayerPin[], "%s", code);
    SendClientMessage(playerid, -1, "Пин код установлен.");

    return 1;
}


CMD:checkpin(playerid, params[])
{
    new code[5];

    if(sscanf(params, "s[5]", code))
        return SendClientMessage(playerid, -1, "Используй: /checkpin [код].");

    if(strcmp(PlayerPin[playerid], code, false) == 0)
    {
        PinChecked[playerid] = true;
        SendClientMessage(playerid, -1, "Пин код верный.");
    }
    else
    {
        SendClientMessage(playerid, -1, "Неверный пин код.");
    }

    return 1;
}


Дополнительные идеи

1. Блокировка при нескольких неверных попытках.

2. Логирование входов по пин коду.

3. Восстановление кода через администратора.
 

1 человек читают эту тему (Всего: 1, Пользователей: 0, Гостей: 1)

Сверху