10/10/2024 19:39
(Esta mensagem foi modificada pela última vez a: 13/10/2024 00:01 por Carlos Victor.)
Acredito que o problema esteja na coluna Nome que você tenta acessar em OnPlayerLoginInfo sem antes ter selecionado ela na consulta. Eu alterei um pouco o comando, dá uma olhada e qualquer deixa do seu jeito, mas eu tenho algumas dicas e alterações que eu com certeza faria:
1. Utilizar o ; no final de toda query, para dizer ao MySQL que a consulta termina ali.
2. Ao invés de criar 6 colunas para armazenar o último login, você pode só criar uma coluna com o o tipo DATETIME e depois manipular como quer mostrar. O tipo DATETIME salva o tempo da forma 00/00/0000 00:00:00 e você pode manipular ele como timestamp, ou então formatar da forma que quiser.
3. Procurar sempre otimizar o código, evitar ficar criando variáveis de forma excessiva e reutilizar variáveis grandes, apenas limpando e inserindo informações nela.
1. Utilizar o ; no final de toda query, para dizer ao MySQL que a consulta termina ali.
2. Ao invés de criar 6 colunas para armazenar o último login, você pode só criar uma coluna com o o tipo DATETIME e depois manipular como quer mostrar. O tipo DATETIME salva o tempo da forma 00/00/0000 00:00:00 e você pode manipular ele como timestamp, ou então formatar da forma que quiser.
3. Procurar sempre otimizar o código, evitar ficar criando variáveis de forma excessiva e reutilizar variáveis grandes, apenas limpando e inserindo informações nela.
Código PHP:
CMD:login(playerid, params[])
{
if (IsPlayerAdmin(playerid))
return SendClientMessage(playerid, Vermelho, "| ERRO | Você não tem permissão!");
if ((strlen(params) < 3 || strlen(params) > 24) || isnull(params))
return SendClientMessage(playerid, Vermelho, "| ERRO | Digite: /login [Nick]");
new
query[78]
;
format(query, sizeof query, "SELECT * FROM `jogador` WHERE `Nome`='%s' LIMIT 1;", params);
mysql_tquery(Conexao, query, "OnPlayerLoginInfo", "i", playerid);
return 1;
}
forward OnPlayerLoginInfo(playerid);
public OnPlayerLoginInfo(playerid)
{
if(!cache_num_rows())
return SendClientMessage(playerid, Vermelho, "| ERRO | Jogador não encontrado!");
new conta_id;
new email[64];
new login_dia, login_mes, login_ano;
new login_hora, login_minutos, login_segundos;
new nome[24];
cache_get_value_name_int(0, "ContaID", conta_id);
cache_get_value_name_int(0, "Ultimo_Login_Dia", login_dia);
cache_get_value_name_int(0, "Ultimo_Login_Mes", login_mes);
cache_get_value_name_int(0, "Ultimo_Login_Ano", login_ano);
cache_get_value_name_int(0, "Ultimo_Login_Hora", login_hora);
cache_get_value_name_int(0, "Ultimo_Login_Minutos", login_minutos);
cache_get_value_name_int(0, "Ultimo_Login_Segundos", login_segundos);
cache_get_value_name(0, "Email", email);
cache_get_value_name(0, "Nome", nome);
// Formata a data e hora de login
new login_data[21 + 1];
format(login_data, sizeof(login_data), "%02d/%02d/%04d - %02d:%02d:%02d",
login_dia, login_mes, login_ano, login_hora, login_minutos, login_segundos);
// Exibe as informações no diálogo
new str[512];
format(str, sizeof(str), "{FFFFFF}Nome: {FFFF00}%s\n{FFFFFF}Conta ID: {FFFF00}%d\n{FFFFFF}Email: {FFFF00}%s\n{FFFFFF}Último Login: {FFFF00}%s\n", nome, conta_id, email, login_data);
ShowPlayerDialog(playerid, D_PUXAR_LOGIN, DIALOG_STYLE_MSGBOX, "{FFFF00}Informações da Conta", str, "OK", "");
return 1;
}