sub.
Ученик
Требования:
-Инклуд mxINI05 или mxINI
-Админ система pBanned
-Прямые руки
В
Добавляем:
Теперь сделаем сохранение, переменной:
В
Вставляем там, где уже идёт функция записи данных:
В
(лично у меня это такой паблик, у кого-то может быть и OnPlayerUpdate)
Вставляем там, где уже идёт функция записи данных:
Теперь сделаем загрузку, переменной из файла:
В
Вставляем там, где уже идёт функция чтения данных:
После чтения данных, или в конец
вставляем:
Теперь сама команда:
В
Вот в принципе и всё.
Ах, да разбан можно производить вручную или командой:
Автор sub. & Vova_Cor
-Инклуд mxINI05 или mxINI
-Админ система pBanned
-Прямые руки
В
PHP:
enum pInfo
PHP:
pBanned,
В
PHP:
OnPlayerRegister
PHP:
iniSetInt(File,"Banned",PlayerInfo[playerid][pBanned]);
PHP:
OnPlayerUpdate_GF
Вставляем там, где уже идёт функция записи данных:
PHP:
iniSetInt(File,"Banned",PlayerInfo[playerid][pBanned]);
Теперь сделаем загрузку, переменной из файла:
В
PHP:
OnPlayerLogin
PHP:
iniGetInt(File,"Banned",PlayerInfo[playerid][pBanned]);
PHP:
OnPlayerLogin
PHP:
if(PlayerInfo[playerid][pBanned] == 1) //autoban
{
ShowPlayerDialog(playerid,82411,DIALOG_STYLE_MSGBOX,"Бан!","Ваш аккаунт заблокирован.\nПодайте заявку на сайте сервера для снятия блокировки.\nПропишите в чате /q для выхода из игры","Oê","");
SendClientMessage(playerid, COLOR_WHITE,"Pazitronick Life:Ваш аккаунт заблокирован!");
Kick(playerid);
}
Теперь сама команда:
В
PHP:
OnPlayerCommandText
PHP:
if(strcmp(cmd, "/ban", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Сервер: /ban [playerid/PartOfName] [reason]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "Сервер: /ban [playerid/PartOfName] [reason]");
return 1;
}
format(string, sizeof(string), "Сервер: %s был забанен администратором %s, причина: %s", giveplayer, sendername, (result));
SendClientMessageToAll(COLOR_LIGHTRED, string);
PlayerInfo[giveplayerid][pBanned] = 1;
Kick(giveplayerid);
return 1;
}
}//not connected
}
else
{
format(string, sizeof(string), "Сервер: Игрока под идом %d не существует", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}
Ах, да разбан можно производить вручную или командой:
PHP:
if(strcmp(cmd, "/unban", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] < 4)
{
SendClientMessage(playerid,COLOR_RED,"Сервер: Вы не уполномочены использовать эту команду!");
return 1;
}
new akk[32],ssss[64];
akk = strtok(cmdtext, idx);
if(!strlen(akk))
{
SendClientMessage(playerid,COLOR_GREY,"Сервер: /unban [name_akkaunt]");
return 1;
}
format(string,sizeof(string),"accounts/%s.ini",akk);//если у вас другая папка хранения акков замените accounts на свою
if(!fexist(string))
{
SendClientMessage(playerid,COLOR_RED,"Сервер: Аккаует не найден!");
return 1;
}
else
{
new File = iniOpen(string);
iniSetInt(File,"Banned",0);
iniClose(File);
format(ssss,sizeof(ssss),"Сервер: Игрок %s был успешно разбанен",akk);
SendClientMessage(playerid,COLOR_LIGHTBLUE,ssss);
}
return 1;
}
Последнее редактирование:
