Простая админ.авторизация
player_info = Обычно используют PlayerInfo
player_admin = Обычно используют pAdmin
В начало мода:
PHP код:
new admin_password = 123456; // Админ.пароль, используйте свой.
new bool: admin_acces[MAX_PLAYERS] = false;
public OnPlayerDisconnect(playerid, reason) :
PHP код:
admin_acces[playerid] = false;
DC_CMD + case:
Открыть/закрыть
В начале мода:
PHP код:
#define dialog_alogin 4
Команды:
PHP код:
CMD:alogin(playerid,params[])
{
if(player_info[playerid][player_admin] < 1) return true;
if(admin_acces[playerid] == true) return SendClientMessage(playerid, 0xAFAFAFAA, "Вы уже авторизовались как администратор");
ShowPlayerDialog(playerid, dialog_alogin, DIALOG_STYLE_INPUT, "Авторизация", "{ffffff}Для получения всех административных\nпривилегий, введите код в строку ниже.\nПри неправильном вводе, Вы будите {FE2002}кикнуты.\n", "Вход", "Отмена");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) :
PHP код:
case dialog_alogin:
{
new string_alogin[36];
if(strval(inputtext) != admin_password || !response) return SendClientMessage(playerid, 0xFF5030AA,"Вы отказались от ввода защитного кода и были кикнуты !"), kick_server(playerid);
admin_acces[playerid] = true;
format(string_alogin, sizeof(string_alogin), "Вы вошли как администратор %d уровня", player_info[playerid][player_admin]);
SendClientMessage(playerid, 0xFFFF00AA, string_alogin);
return 1;
}
OnPlayerCommandText + dialogid
Открыть/закрыть
public OnPlayerCommandText(playerid, cmdtext[]) :
PHP код:
if(strcmp(cmd, "/alogin", true) == 0)
{
if(player_info[playerid][player_admin] < 1) return true;
if(admin_acces[playerid] == true) return SendClientMessage(playerid, 0xAFAFAFAA, "Вы уже авторизовались как администратор");
ShowPlayerDialog(playerid, 10, DIALOG_STYLE_INPUT, "Авторизация", "{ffffff}Для получения всех административных\nпривилегий, введите код в строку ниже.\nПри неправильном вводе, Вы будите {FE2002}кикнуты.\n", "Вход", "Отмена");
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) :
PHP код:
if(dialogid == 10)
{
new string_alogin[36];
if(strval(inputtext) != admin_password || !response) return SendClientMessage(playerid, 0xFF5030AA,"Вы отказались от ввода защитного кода и были кикнуты !"), kick_server(playerid);
admin_acces[playerid] = true;
format(string_alogin, sizeof(string_alogin), "Вы вошли как администратор %d уровня", player_info[playerid][player_admin]);
SendClientMessage(playerid, 0xFFFF00AA, string_alogin);
return 1;
}
Если хотите что бы команды можно было использовать после админ.авторизации, вставляйте в начало команды:
PHP код:
if(admin_acces[playerid] == false) return 1;
Пояснение: если Вы на авторизовались, то команда не будет работать.