Ну, для чего это нужно. К примеру, один игрок взломал аккаунт администратора сервера и хочет, например, перебанить всех игроков сервера. На команде бана стоит проверка на дежурство администратора, а выходить на дежурство необходимо по паролю. Соответственно, игрок, не знаю пароля, не сможет осуществить свою мечту. Итак, начнем:
Ко всем массивам:
new bool:aduty[MAX_PLAYERS];//Проверка, true-админ на дежурстве, false-нетВ public OnPlayerConnect
В public OnPlayerCommandText:
И напоследок, в OnDialogResponse
На этом все...
Теперь о том, что можно изменить:
1. Главное - пароль. Его можно изменить в строке:
new adminpass[64] = "1111";
Цифры "1111" меняем на свой пароль. (Буквы могут присутствовать!)2. Можете поменять выдачу оружия или вообще убрать ее. Строка:
GivePlayerWeapon(playerid, 30, 1000);//ak473. Проверка на администратора. В моем случае проверка на RCON администратора. Вы же изменяете под себя...
4. Можете изменить текст, цвета, можете поставить цветовые модификаторы
Чтобы проверить, на дежурстве ли администратор, достаточно приписать проверку:
На этом все...
Ко всем массивам:
new bool:aduty[MAX_PLAYERS];//Проверка, true-админ на дежурстве, false-нетВ public OnPlayerConnect
Код:
aduty[playerid] = false;
Код:
if (strcmp("/aduty", cmdtext, true) == 0)
{
if(aduty[playerid] == true)
{
aduty[playerid] = false;
SendClientMessage(playerid, 0xFFFF00AA, "Вы ушли с дежурства!");
SetPlayerColor(playerid, playercolor[playerid]);
}
else
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFF00AA, "Вы не администратор!");//Проверку ставить свою, тут проверка на RCON!!!
ShowPlayerDialog(playerid, 9988, DIALOG_STYLE_INPUT, "Введите пароль","Введите пароль для выхода на дежурство","ОК","Отмена");
}
return true;
}
Код:
if(dialogid == 9988)
{
if(response) //Если была нажата 1 кнопка
{
if(!strlen(inputtext)) //Если в поле не был введен текст при отправке
{
SendClientMessage(playerid,0xFFFF00AA,"Пароль не был написан!");
return 1;
}
else
{
new adminpass[64] = "1111";
if(strcmp(inputtext, adminpass, false) == 0) {
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
new message[55];
format(message, sizeof(message), "Администратор %s вышел на дежурство!", name);
SendClientMessageToAll(0xFF6347AA, message);
SetPlayerColor(playerid, 0xFF6347AA);
GivePlayerWeapon(playerid, 30, 1000);//ak47
aduty[playerid] = true;
}
else
{
SendClientMessage(playerid, 0xFFFF00AA, "Пароль не верный!");
Kick(playerid);
}
}
}
}
Теперь о том, что можно изменить:
1. Главное - пароль. Его можно изменить в строке:
new adminpass[64] = "1111";
Цифры "1111" меняем на свой пароль. (Буквы могут присутствовать!)2. Можете поменять выдачу оружия или вообще убрать ее. Строка:
GivePlayerWeapon(playerid, 30, 1000);//ak473. Проверка на администратора. В моем случае проверка на RCON администратора. Вы же изменяете под себя...
Код:
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFF00AA, "Вы не администратор!");//Проверку ставить свою, тут проверка на RCON!!!
Чтобы проверить, на дежурстве ли администратор, достаточно приписать проверку:
Код:
if(aduty[playerid] == false) return SendClientMessage(playerid, -1, "Вы не на дежурстве!");
Последнее редактирование модератором: