Folsky
Умник
Доброго времени суток, уважаемые пользователи.
Недавно задавал вопрос с командой, в итоге никто не помог и дошло до того, что я справился сам.
Вообщем до меня дошел принцип работы команды, т.е. присваиваем значение, потом пишем в базу. Постараюсь все разъяснить.
И так, способ #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(); )
Ну и для начала нужно ее создать.
И в команде, вместо записи в базу, просто пишем нашу функцию.
Ну вот и все. Спасибо за просмотр данной темы. Жду комментариев.
P.S. убедительная просьба не писать: "ОООО мануал говно, новички не поймут, что нужно менять переменные и т.д.", я думаю вряд ли новички будут связываться с MySQL.
Недавно задавал вопрос с командой, в итоге никто не помог и дошло до того, что я справился сам.
Вообщем до меня дошел принцип работы команды, т.е. присваиваем значение, потом пишем в базу. Постараюсь все разъяснить.
И так, способ #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.
Последнее редактирование:
