Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Система администрации для new.pwn (MySQL R7)

Статус
В этой теме нельзя размещать новые ответы.

Fernando_Capraso

Умник
Здарова всем!
Мануал по теме Создание системы администрации для мода с 0.На mySQL R7.

P.S.Небудет работать без базы данных.

И так приступим...

в enum pInfo добавляем

PHP:
pAdmin,
Там где у вас запись аккаунта в таблицу тоесть (INSERT INTO) добавляем:

PHP:
`Admin`
Должно выглядить вот так:

PHP:
"INSERT INTO `accounts` (`Nickname`, `Password`,`Admin`) VALUE ('%s', '%s','0')", sqlname, sqlpassword, pAdmin);
Поскольку это моя запись,Nickname password и так дальше..для реги ... Обратите внимание суто на `Admin`.

Ну и значение конечно.

PHP:
pAdmin
Дальше только команда..В любое место мода вставляем:

PHP:
CMD:makeadmin(playerid, params[])
{
new PlayerName[MAX_PLAYER_NAME],adminlvl,pleer,adminname[128],string[128],string2[128];
GetPlayerName(pleer,PlayerName,sizeof(PlayerName));
GetPlayerName(playerid,adminname,sizeof(adminname));
if(sscanf(params,"ud",pleer,adminlvl)) return SendClientMessage(playerid,COLOR_GRAD2,"**Используйте: /makeadmin [id] [уровень] **");
new redname[MAX_PLAYER_NAME];
GetPlayerName(playerid, redname, sizeof(redname));
if(!strcmp(redname, "ВАШ НИК",true) // в случии когда прописать админку не удалось в базе данных.
{
if(adminlvl == 0)
{
new query[186];
PlayerInfo[playerid][pAdmin] = adminlvl;
format(string,sizeof(string),"Администратор %s снял с вас должность администратора",adminname);
format(string2,sizeof(string2),"Вы сняли с %s должность администратора",PlayerName);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string2);
format(query,sizeof(query),"UPDATE `accounts` SET `Admin` = '0'",pAdmin); // при вводе лвл на 0.В таблицу заносится админ лвл 0
mysql_query(query);
}
if(adminlvl >= 1  && adminlvl <= 10)
{
new query[7];
format(string,sizeof(string),"Администратор %s назначил Вас администртором %d уровня",adminname,adminlvl);
format(string2,sizeof(string2),"Вы назначили %s администратором %d уровня",PlayerName,adminlvl);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string2);
format(query,sizeof(query),"UPDATE `accounts` SET `Admin` = '%d'",adminlvl); // обновления столбца АДМИН,ставится лвл!
mysql_query(query);
}
if(adminlvl >10)
{
SendClientMessage(playerid,COLOR_GRAD2,"Максимальный уровень админки 10!"); // Можно и удалить,неважно.
}
}
return 1;
}
Ну вот и всё!!))

Система простая,если небудет работать пишите в КОМЕНТЫ я буду работать\дорабатывать полностью на mySQL.
P.S Мы используем для команды плагин и инклюд dc_cmd.
Если у вас записывается команда стандартно,тогда в public OnPlayerCommandText. Кидаем эту команду,и заменяем CMD:makeadmin на

if(strcmp(cmd, "/makeadmin",true))

что-то типо этого,незнаю,работаю давно с dc_cmd
В случии не активности системы,пишите в коменты.
Ну вот и всё.
Пользуйтесь ребята.
Автор: Fernando_Capraso*.

Удачи!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу