PHP код:
stock Pin_Code(playerid)
{
if(!PlayerInfo[playerid][pAdmin] || A_Login[playerid]) return 1;
new text_string[2];
for(new index_1; index_1 < sizeof(textdraw_panel_button[]); index_1++)
{
textdraw_pass_panel_button_str[playerid][index_1] = random(10);
for(new index_2; index_2 < sizeof(textdraw_pass_panel_button_str[]); index_2++)
{
if(index_1 == 0) break;
if(index_2 == index_1) continue;
if(textdraw_pass_panel_button_str[playerid][index_1] == textdraw_pass_panel_button_str[playerid][index_2])
{
textdraw_pass_panel_button_str[playerid][index_1] = random(10);
index_2 = -1;
}
}
format(text_string,sizeof(text_string),"%d",textdraw_pass_panel_button_str[playerid][index_1]);
PlayerTextDrawSetString(playerid, textdraw_panel_button[playerid][index_1], text_string);
PlayerTextDrawShow(playerid, textdraw_panel_button[playerid][index_1]);
PlayerTextDrawSetSelectable(playerid, textdraw_panel_button[playerid][index_1], 1);
}
for(new i = 0; i < 10; i++) PlayerTextDrawShow(playerid, boxsing_pic_code_adm[playerid][i]);
SelectTextDraw(playerid, 0xFDFF40AA);
SetPVarInt(playerid, "Cancel_Select_Text_Draw", 1);
return 1;
}
PHP код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid == Text:INVALID_TEXT_DRAW && GetPVarInt(playerid, "Cancel_Select_Text_Draw") && !A_Login[playerid])
{
new string[95];
Login_Attempts[playerid] += 1;
SendClientMessage(playerid, 0xFF6600AA, "Вы нажали на ESC у Вас вычлась одна попытка на ввод случайного пароля!");
format(string,sizeof(string),"У Вас осталось %i попыток на ввод случайного пароля!",Login_Attempts[playerid]);
SendClientMessage(playerid,0xFF6600AA,string);
SelectTextDraw(playerid, 0xFDFF40AA);
if(Login_Attempts[playerid] == 3)
{
SendClientMessage(playerid,RIFA_COLOR,"Вы нажали 3 раза на кнопку \"ESC\" и были сняты с администрирования");
format(string, sizeof(string), "Администратор %s[%d] подозриваеться на взлом аккаунта (3 нажатия на кнопку \"ESC\")",PlayerInfo[playerid][pName],playerid);
SMA(5,COLOR_LIGHTRED, string);
PlayerInfo[playerid][pAdmin] = 0;
KickNew(playerid);
return true;
}
}
return 1;
}
PHP код:
for(new t; t < sizeof(textdraw_panel_button[]); t++)
{
if(playertextid == textdraw_panel_button[playerid][t])
{
valstr(number_buff,textdraw_pass_panel_button_str[playerid][t]);
strcat(adm_pass_pin_code[playerid], number_buff);
if(++number_of_clicks{playerid} >= 11)
{
if(strval(adm_pass_pin_code[playerid]) == admpass)
{
GetPlayerIp(playerid, string, 16);
format(string, sizeof(string), "Администратор %s[%d] прошел проверку на случайный пароль | Административный лвл: %i | IP: %s",PlayerInfo[playerid][pName],playerid, PlayerInfo[playerid][pAdmin], string);
SMA(5,0xFF6600AA, string);
A_Login[playerid] = 1;
SendClientMessage(playerid,RIFA_COLOR,"Вы прошли проверку на случайный пароль");
PlayerTextDrawHide(playerid, textdraw_panel_button[playerid][t]);
for(new i = 0; i < 10; i++)
{
PlayerTextDrawHide(playerid, boxsing_pic_code_adm[playerid][i]);
PlayerTextDrawHide(playerid, textdraw_panel_button[playerid][i]);
}
DeletePVar(playerid, "Cancel_Select_Text_Draw");
CancelSelectTextDraw(playerid);
TD_ESC_NO_OFFLINE_PIN_CODE[playerid] = 0;
}
else
{
new logtires = 2 - Login_Attempts[playerid];
Login_Attempts[playerid] += 1;
format(string,sizeof(string),"Вы ввели неверный пароль!\nУ вас осталось %d попытки",logtires);
SendClientMessage(playerid,RIFA_COLOR,string);
if(Login_Attempts[playerid] == 3)
{
SendClientMessage(playerid,RIFA_COLOR,"Вы ввели 3 раза не правильный пароль и были сняты с администрирования");
format(string, sizeof(string), "Администратор %s[%d] подозреваеться на взлом аккаунта (3 не правильных ввода случайного кода)",PlayerInfo[playerid][pName],playerid);
SMA(5,COLOR_LIGHTRED, string);
PlayerInfo[playerid][pAdmin] = 0;
KickNew(playerid);
}
}
number_of_clicks{playerid} = 0;
adm_pass_pin_code[playerid][0] = 0;
}
break;
}
}