Leonardo_Gun
Умник
Идем в паку scriptfiles и создаем там папку Admins
Ко всем командам то-есть в public OnPlayerCommandText(playerid, cmdtext[])
Если игрок не прописан в папке Admins то его сразу же при входе будет кикать.
Добавим Сток в конец мода
И в секундный таймер пихаем
Всё Анти-Взлом Админки будет Успешно работать.
Вопросы в тему!
---------- Post added at 18:40 ---------- Previous post was at 18:39 ----------
Все Акки в папке Admins должны содержать примеру!
Leonardo_Gun.cfg
СОЗДАНИЕ ЕЖЕСЕКУНДНОГО ТАЙМЕРА!
Ко всем forward:
Далее в конец мода:
И делаем ему обновление в GameModeInit
Вот и все. Ежесекундный таймер готов!
Ко всем командам то-есть в public OnPlayerCommandText(playerid, cmdtext[])
HTML:
if(strcmp(cmd, "/saveadmin", true) == 0)
{
new strings[MAX_STRING];
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] != 9)
{
SendClientMessage(playerid, COLOR_GREY, " Вы не уполномочены использовать эту команду!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAYWHITE, "USAGE: /saveadmins [PlayerName]");
return 1;
}
new playername[MAX_PLAYER_NAME+1];
format(playername, sizeof(playername), "Admins/%s.cfg", tmp);
if(!fexist(playername))
{
new File: hFile = fopen(playername, io_write);
if (hFile)
{
/*
Достаточно нам сделать только сохранение аккаунта, но для понтов
можете и сделать сохранение сюда других переменных для дополнительных
проверок, как мне кажеться это будет лишним. Достаточно нам знать имя.
format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
*/
fclose(hFile);
format(strings, sizeof(strings), "Аккаунт администратора %s успешно создан.", tmp);
SendClientMessage(playerid, COLOR_RED, strings);
}
}
else if(fexist(playername))
{
format(strings, sizeof(strings), "Администратор %s уже существует, выберите другое имя !", tmp);
SendClientMessage(playerid, COLOR_GRAYWHITE, strings);
return 1;
}
}
return 1;
}
if(strcmp(cmd, "/deleteadmin", true) == 0)
{
new playername[MAX_PLAYER_NAME+1];
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] != 9)
{
SendClientMessage(playerid, COLOR_GREY, " Вы не уполномочены использовать эту команду!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAYWHITE, "USAGE: /deleteadmin [PlayerName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
format(playername, sizeof(playername), "Admins/%s.cfg", tmp);
if(!fexist(playername))
{
SendClientMessage(playerid, COLOR_GREY, " Этого админ- аккаунта не существует !");
return 1;
}
else if(fexist(playername))
{
fremove(playername);
format(string, sizeof(string), "[Server]: %s was delleted by %s.", tmp, PlayerName(playerid));
new lH, lM, lS; gettime(lH,lM,lS);
format(string, sizeof(string), "[%d:%02d:%02d] %s", lH,lM,lS, string);
SendClientMessageToAll(COLOR_RED, string);
Kick(giveplayerid);
return 1;
}
}
return 1;
}
Добавим Сток в конец мода
HTML:
stock AdministratorSystem(playerid)
{
new playername[MAX_PLAYER_NAME+1];
format(playername, sizeof(playername), "Admins/%s.cfg", PlayerName(playerid));
if(!fexist(playername) && PlayerInfo[playerid][pAdmin] >= 1)
{
SendClientMessage(playerid, COLOR_RED, "[Server]: Вы не имеете право на Администратора!");
Kick(playerid);}
return 1;
}
HTML:
AdministratorSystem(i);
Вопросы в тему!
---------- Post added at 18:40 ---------- Previous post was at 18:39 ----------
Все Акки в папке Admins должны содержать примеру!
Leonardo_Gun.cfg
СОЗДАНИЕ ЕЖЕСЕКУНДНОГО ТАЙМЕРА!
Ко всем forward:
Код:
forward OnTimerSecounds(playerid);
Код:
public OnTimerSecounds(playerid);
{
return 1;
}
Код:
SetTimer("OnTimerSecounds", 60000, 1);
Последнее редактирование:
