Zeka_Peka228
Умник
Столкнулся с такой проблемой - попросту не хочет отображать ник игрока через pName
Вот, например:
Пишет же только АДМ: авторизовался как Главный Администратор. То бишь вообще не хочет.
Также и с запросами. Например:
В запросе просто пусто(где должно быть имя).
Странно то, что при авторизации, с ником все ок.
Вот пример:
При регистрации тоже.
В чем проблема?
А то приходиться записывать вот так:
Вот, например:
PHP:
CMD:apass(playerid, params[])
{
new string[84],
admin = Player[playerid][pAdmin]-1;
if(!Logged{playerid}) return true;
if(Player[playerid][pAdmin] < 1 || ALogged{playerid}) return true;
if(sscanf(params, "s[12]", params[0])) return send(playerid, COLOR_GREY, "Используйте: /apass [Пароль]");
if(!strcmp(params[0], Player[playerid][pAKey], true))
{
format(string, sizeof(string), "АДМ: %s авторизовался как %s.", Player[playerid][pName], Admin_Name[admin]);
SendAdminMessage(COLOR_YELLOW, string, 1);
ALogged{playerid} = true;
}
else Kick(playerid);
return true;
}
Также и с запросами. Например:
PHP:
CMD:viplata(playerid, params[]) //qiwi
{
if(!Logged{playerid}) return true;
new query[193], string[56], disk[50];
if(sscanf(params, "s[50]", disk)) return SendClientMessage(playerid, -1, "Используйте: /viplata [описание]");
if(strlen(disk) < 1 || strlen(disk) > 50) return SendClientMessage(playerid, -1, "Описание имеет менее 1 или более 50 символов");
//if(strlen(link) < 1 || strlen(link) > 50) return SendClientMessage(playerid, -1, "Метод связи имеет менее 1 или более 50 символов");
format(query, sizeof(query), "INSERT INTO `qiwi` (`name`, `description`) VALUES ('%s', '%s')", Player[playerid][pName], disk);
mysql_function_query(connects, query, false, "", "");
format(string, sizeof(string), "Спасибо, %s, ваша заявка принята.", Player[playerid][pName]);
SendClientMessage(playerid, -1, string);
SendClientMessage(playerid, -1, "Администратор обязательно рассмотрит Вашу запись и выплатит деньги на указаный кошелек. (информация о выплатах: /viplatainfo)");
return 1;
}
Странно то, что при авторизации, с ником все ок.
Вот пример:
PHP:
case DIALOG_LOGIN:
{
if(!response)
{
ShowPlayerDialog(playerid, DIALOG_NULL, DIALOG_STYLE_MSGBOX, "Оповещение", "{FFFFFF}Вы были кикнуты с сервера.\n{FF0000}Причина: Отказ от авторизации.\n{FFFFFF}Для выхода с сервера введите \"/q\" в чат", "Выход", "");
return Kick(playerid);
}
if(!strlen(inputtext)) return Show_Login(playerid);
for(new i = strlen(inputtext)-1; i != -1; i--)
{
switch(inputtext[i])
{
case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue;
default: return Show_Login(playerid);
}
}
if(!strcmp(Player[playerid][pKey], inputtext))
{
static const loginplayer[] = "SELECT * FROM `accounts` WHERE `Name` = '%s'";
new string[sizeof(loginplayer)+(-2+24)];
format(string, sizeof(string), loginplayer, Player[playerid][pName]);
mysql_function_query(connects, string, true, "LoadAccount","i", playerid);
}
else
{
switch(GetPVarInt(playerid, "WrongPassword"))
{
case 0: { Show_Login(playerid); send(playerid, -1, "Вы ввели неверный пароль! Осталось 4 попытки."); }
case 1: { Show_Login(playerid); send(playerid, -1, "Вы ввели неверный пароль! Осталось 3 попытки."); }
case 2: { Show_Login(playerid); send(playerid, -1, "Вы ввели неверный пароль! Осталась 2 попытки."); }
case 3: { Show_Login(playerid); send(playerid, -1, "Вы ввели неверный пароль! Осталось 1 попытки."); }
default:
{
ShowPlayerDialog(playerid, DIALOG_NULL, DIALOG_STYLE_MSGBOX, "Оповещение", "{FFFFFF}Вы были кикнуты с сервера.\n{FF0000}Причина: Превышен лимит попыток на ввод пароля.\n{FFFFFF}Для выхода с сервера введите \"/q\" в чат", "Выход", "");
return Kick(playerid);
}
}
SetPVarInt(playerid, "WrongPassword", GetPVarInt(playerid, "WrongPassword")+1);
}
В чем проблема?
А то приходиться записывать вот так:
PHP:
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
И юзать потом name. Но у меня из-за этого баги потом происходят в системе смене пароля.
}
