Доступ к архиву

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

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

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

/madmin

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

Folsky

Умник
Доброго времени суток, уважаемые пользователи.
Недавно задавал вопрос с командой, в итоге никто не помог и дошло до того, что я справился сам.
Вообщем до меня дошел принцип работы команды, т.е. присваиваем значение, потом пишем в базу. Постараюсь все разъяснить.

И так, способ #1.

PHP:
    CMD:madmin(playerid, params[])
	{
    new str[128];
    if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_LIGHTRED, "Вы не авторизовались.");
    if(pInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, COLOR_LIGHTRED, "Недостаточно прав.");
    if(sscanf(params,"di",params[0],params[1])) return SendClientMessage(playerid, COLOR_WHITE,"Введите /madmin [id] [уровень]");
    if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_LIGHTRED, "Игрок не в сети");
    if(params[1] < 0 || params[1] > 5) return SendClientMessage(playerid, COLOR_LIGHTRED, "Неизвестное значение");
    format(str,sizeof(str), "Администратор %s назначил вас администратором. Ваш уровень администрирования: %d",playername,params[1]);
    SendClientMessage(params[0],COLOR_LIGHTBLUE, str);
    pInfo[params[0]][pAdmin] = params[1];
    new aname[MAX_PLAYER_NAME];
    GetPlayerName(params[0], aname, sizeof(aname));
    format(str,sizeof(str),"UPDATE `players` SET pAdmin=%d WHERE `pName`='%s'",params[1],aname);
    mysql_query(str);
    format(str,sizeof(str), "Вы выдвинули игрока %s на %d уровень администрирования.",aname,params[1]);
    SendClientMessage(playerid,COLOR_LIGHTBLUE, str);
    return 1;
	}
Переходим к разбору функций.
На данный момент нас интересует этот кусок кода.

pInfo[params[0]][pAdmin] = params[1];
new aname[MAX_PLAYER_NAME];
GetPlayerName(params[0], aname, sizeof(aname));
format(str,sizeof(str),"UPDATE `players` SET pAdmin=%d WHERE `pName`='%s'",params[1],aname);
mysql_query(str);


params[0] - id игрока, которому даем админку
params[1] - уровень админки

pInfo[params[0]][pAdmin] = params[1]; - Это мы присвоили значение переменной pAdmin (меняйте на свое)

new aname[MAX_PLAYER_NAME];
GetPlayerName(params[0], aname, sizeof(aname))
; - Это мы создали переменную, в которую запишем имя игрока, которому даем админку.

format(str,sizeof(str),"UPDATE `players` SET pAdmin=%d WHERE `pName`='%s'",params[1],aname);
mysql_query(str);
- Обновляем таблицу "players", устанавливаем значение переменной pAdmin для ника, который мы узнали.

Способ #2 (С добавлением функции SavePlayer(); )
Ну и для начала нужно ее создать.

PHP:
SavePlayer(playerid)
{
	if(!IsPlayerConnected(playerid))
	{
	    new str[254 + 1];
	    format(str,sizeof(str),"UPDATE `players` SET pLevel=%d /* и т.д. */ WHERE `pName`='%s' LIMIT 1",
	    pInfo[playerid][pLevel],
	    /* тут ваши переменные аккаунта */);
	    mysql_query(str);
	}
}
И в команде, вместо записи в базу, просто пишем нашу функцию.

PHP:
    CMD:madmin(playerid, params[])
	{
    new str[128];
    if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_LIGHTRED, "Вы не авторизовались.");
    if(pInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, COLOR_LIGHTRED, "Недостаточно прав.");
    if(sscanf(params,"di",params[0],params[1])) return SendClientMessage(playerid, COLOR_WHITE,"Введите /madmin [id] [уровень]");
    if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_LIGHTRED, "Игрок не в сети");
    if(params[1] < 0 || params[1] > 5) return SendClientMessage(playerid, COLOR_LIGHTRED, "Неизвестное значение");
    format(str,sizeof(str), "Администратор %s назначил вас администратором. Ваш уровень администрирования: %d",playername,params[1]);
    SendClientMessage(params[0],COLOR_LIGHTBLUE, str);
    pInfo[params[0]][pAdmin] = params[1];
    SavePlayer(params[0]);
    format(str,sizeof(str), "Вы выдвинули игрока %s на %d уровень администрирования.",aname,params[1]);
    SendClientMessage(playerid,COLOR_LIGHTBLUE, str);
    return 1;
	}
Ну вот и все. Спасибо за просмотр данной темы. Жду комментариев.
P.S. убедительная просьба не писать: "ОООО мануал говно, новички не поймут, что нужно менять переменные и т.д.", я думаю вряд ли новички будут связываться с MySQL.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу