Перейти к содержанию
Авторизация  
SCRIPTMAN

Создание системы администрации.

Рекомендуемые сообщения

SCRIPTMAN

Привет друзья!

 

Хорошо писать уроки я не умею, так что, придётся вам понимать мои непонятные слова  :D83DDE0A:

 

 

Давайте же начнём!

 

1. Создание основных функций

 

а) Для начала в "enum pInfo" создадим массив pAdmin.

 

Пример:

enum pInfo
{
    Ваш массив пример pSave,
    pName,
    pLeader,
    pAdmin
}

P.S Всё что у меня вы видите выше, добавлять не нужно, кроме "pAdmin"

б) Создадим остальные функции, что касается сохранения.

 

Там, где у вас регистрация аккаунта нужно добавить:

ini_setInteger(File, "Admin", Player[playerid][pAdmin]);

Там, где у вас авторизация нужно добавить:

iniGetInt(File, "Admin", Player[playerid][pAdmin]);

Там, где у вас начисляются все скажем так данные, ну вы поняли :D83DDE07: , нужно вставить:


Player[playerid][pAdmin] = 0;

Это там, где у вас к примеру: Player[playerid][pLevel] = 1;

Ну или какой у вас там выдаётся уровень после регистрации. Туда нужно вставить как раз-то это:

Player[playerid][pAdmin] = 0;

Там, где у вас происходит сохранение аккаунта, у меня это stock SavePlayer(playerid), туда нужно добавить вот это:

ini_setInteger(File, "Admin", Player[playerid][pAdmin]);

Ну в принципе всё, ах да, ещё. Если кто-то хочет, чтобы указывался пароль из имя.cfg, ну вы поняли. Нужно добавить. 

 

2. Создание ввода админ пароля для каждого игрока отдельно, ну вы поняли :D83DDE03: 

 

а) Создадим в "enum pInfo" массив pAkey

 

б) Остальные функции, что касается сохранения. :D83DDE0A: 

 

Там, где у вас регистрация аккаунта, добавьте туда:

ini_setInteger(File, "Admin Pass", Player[playerid][pAkey]);

Там, где у вас происходит регистрация аккаунта, добавьте:

iniGetInt(File, "Admin Pass", Player[playerid][pAkey]);

Там, где у вас сохранение данных аккаунта игрока, добавьте:

ini_setInteger(File, "Admin Pass", Player[playerid][pAkey]);

У меня это stock SavePlayer(playerid) :D83DDE03: 

 Ну вот и всё.

 

Вот вам в помощь диалог проверки админ пароля:

 

3. Диалог для админ пароля:

case 17:
        {
            if(response)
            {
                if(!strlen(inputtext)) return SPD(playerid, 17, DSI, "{DFB3CA}Админ авторизация", "{FFFFFF}Для админ авторизации, пожалуйста введите админ-пароль:", "Далее", "Выход");
                for(new i = strlen(inputtext); i != 0; --i)
                switch(inputtext[i])
                {
                    case 'А'..'Я', 'а'..'я': return SPD(playerid, 17, DSI, "{DFB3CA}Ошибка!", "{BEBEBE}Админ-пароль не должен состоять из русских символов\nПожалуйста, смените расскладку клавиатуры и введите админ-пароль повторно:", "Далее", "Выход");
                }
                if(strlen(inputtext) < 6 || strlen(inputtext) > 20) return SPD(playerid, 17, DSI, "{DFB3CA}Ошибка!", "{BEBEBE}Длина админ-пароля должна быть от {FFFF00}6-ти {BEBEBE}до {FFFF00}20-ти {BEBEBE}символов\nВведите свой админ-пароль повторно:", "Далее", "Выход");
                if(strval(inputtext) == Player[playerid][pAkey])
                {
                    Dostup[playerid] = true;
                    SCM(playerid, COLOR_GREEN, "Вы успешно авторизовались!");
                }
                else
                {
                    SCM(playerid, COLOR_RED, "Пароль введён не верно!");
                    SPD(playerid, 17, DSI, "{DFB3CA}Админ авторизация", "{FFFFFF}Для админ авторизации, пожалуйста введите админ-пароль:", "Далее", "Выход");
                }
            }
        }

Но, чтобы было без ошибок. Добавьте:

new bool: Dostup[MAX_PLAYERS];

Ещё, я создавал такой сток. "stock Clear(playerid)", создайте и вы. и добавьте туда:

Dostup[playerid] = false;

Теперь, в OnPlayerConnect, добавьте:

Clear(playerid);

Я повторюсь, что 3 пункт это диалог с админ авторизацией, вы конечно же можете написать свой, я просто предложил.

Ах, да, ещё добавьте:

Но!

Если у вас 17 диалог занят, замените :D83DDE03: 

#define adm if(Player[playerid][pAdmin] > 0 && Dostup[playerid] == false) return SPD(playerid, 17, DSI, "{A600FF}Админ авторизация", "{FFFFFF}Для админ авторизации, пожалуйста введите админ-пароль:", "Далее", "Выход");

Я видел, писали, что есть такой урок на форуме, но хоть убейте, искал, нету его там и поиском пользовался и смотрел.

Если у вас будут какие-то исправления/дополнения пишите, не стесняйтесь.

 

Всем спасибо, кто прочитал, а может и взял эту систему.

 

Буду рад любой критике, ведь критика делает нас лучше :-) 

 

Автор: LADA(То есть я)

Изменено пользователем LADA
  • Like 1

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


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

нормальный урок.

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


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

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

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

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.