Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Админ авторизация! - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ All ]
Админ авторизация! Делаем систему админ авторизации
Оценка: -----

#1
Пользователь офлайн   iNissan 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Система админ авторизации
Привет это система защиты админки на ваш сервер!
By iNissan


Start!

Ко всем дифайнам:
#define COLOR_YELLOW 0xFFFF00AA



ко всем new
new AdminLogin[MAX_PLAYERS];



enum pInfo
pAdminKey[256],



public OnPlayerRegister(playerid, password[])
strdel(PlayerInfo[playerid][pAdminKey], 0, 256);
format(var, 32, "AdminKey=%s\n",PlayerInfo[playerid][pAdminKey]);fwrite(hFile,
 var); 



public OnPlayerSaveA(playerid) (Используйте ваш паблик сохранения)
format(var, 32, "AdminKey=%s\n",PlayerInfo[playerid][pAdminKey]);fwrite(hFile,
 var);



public OnPlayerLogin(playerid,password[])
if( strcmp( key , "AdminKey" , true ) == 0 ) { PlayerInfo[playerid][pAdminKey] = ini_GetValue( Data ); }
strdel(PlayerInfo[playerid][pAdminKey], strlen(PlayerInfo[playerid][pAdminKey])-1, strlen(PlayerInfo[playerid][pAdminKey]));



public OnPlayerConnect(playerid)
AdminLogin[playerid] = 0;



public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
	if(dialogid == 16726)
	{
		if(response)
		{
		if(!strlen(inputtext) || !strlen(PlayerInfo[playerid][pAdminKey])) return 1;
	        if(strcmp(inputtext, PlayerInfo[playerid][pAdminKey], true)==0)
	        {
		        SendClientMessage(playerid,COLOR_YELLOW,"Вы успешно залогинились в системе. Удачного дня!");
                        format(string,sizeof(string),"%s Зашёл в адм-панель.",RealName[playerid]);
                        SendAdminMessage(0x10F441AA, string);
		        AdminLogin[playerid] = 1;
	        }
	       	else
	        {
		        SendClientMessage(playerid,COLOR_YELLOW ,"Вы ввели неверный пароль! Администрация оповещена.");
		        format(string,sizeof(string),"%s ввел неверный пароль при логиннинге в адм-панель.",RealName[playerid]);
		        SendAdminMessage(0x10F441AA, string);
	        }
			return 1;
        }
	}



В конец мода
stock GeneratePassword(size)//добавь всё
{
    new
        bigletters[26][] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"},
        smallletters[26][] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"},
        numbers[10][] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"},
        password[128];
    if(size > sizeof(password)) size = sizeof(password);
    for(new i = 0; i < size; i ++)
	{
        switch(random(3))
		{
            case 0: strcat(password, bigletters[random(sizeof(bigletters))]);
            case 1: strcat(password, smallletters[random(sizeof(smallletters))]);
            case 2: strcat(password, numbers[random(sizeof(numbers))]);
        }
    }
    return password;
}



На команду выдачи адм
new para1;
new AdminLogin[MAX_PLAYERS];
strdel(PlayerInfo[para1][pAdminKey], 0, 256);
strins(PlayerInfo[para1][pAdminKey], GeneratePassword(10), 0);
format(string, sizeof(string), "Ваш новый код для админ панели: %s", PlayerInfo[para1][pAdminKey]);
SendClientMessage(para1, COLOR_YELLOW, string);
SendClientMessage(para1, COLOR_YELLOW, "Не забывайте его! Скрин F8");



На команду снятия адм
strdel(PlayerInfo[para1][pAdminKey], 0, 256);



Сама команда
	if (strcmp(cmd, "/adm", true) == 0)
 	{
		if(PlayerInfo[playerid][pAdmin] > 0)
		{
		ShowPlayerDialog(playerid,16726,DIALOG_STYLE_INPUT,"Администраторская панель. Авторизация","Введите Ваш персональный администраторский пароль в окошко.","Принять","Отмена");
		}
        return 1;
	}



Для DC_CMD
	CMD:adm(playerid)
 	{
		if(PlayerInfo[playerid][pAdmin] > 0)
		{
		ShowPlayerDialog(playerid,16726,DIALOG_STYLE_INPUT,"Администраторская панель. Авторизация","Введите Ваш персональный администраторский пароль в окошко.","Принять","Отмена");
		}
        return 1;
	}



Проверка на команды
if(AdminLogin[playerid] != 1) return SendClientMessage(playerid, COLOR_YELLOW, "Введите пароль в панеле администратора (/adm)");

Пример:

	if(strcmp(cmd, "/vers", true) == 0)
	{
                if(AdminLogin[playerid] != 1) return SendClientMessage(playerid, COLOR_YELLOW, "Введите пароль в панеле администратора (/adm)");
		if (PlayerInfo[playerid][pAdmin] >= 1)
                {
		SendClientMessage(playerid,COLOR_GREEN,"Проверка");
		return 1;
                }
		else
		{
		SendClientMessage(playerid, COLOR_RED, "Нельзя ты не админ");
		}
	}


Сообщение отредактировал iNissan: 01 Июль 2019 - 14:55

1

#2
Пользователь офлайн   Vlad_Qwerty 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Ставлю +, помогло, спасибо
0

#3
Пользователь офлайн   iNissan 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияVlad_Qwerty (02 Июль 2019 - 22:31) писал:

Ставлю +, помогло, спасибо


Интересный тип сказал ставлю + а не поставил )
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика