Saudaзхes pessoas de outro planetas, estou precisando de ajuda na mysql! Deem uma olhada:
PHP код:
public OnPlayerConnect(playerid)
{
mysql_format(Conexao, cfile, sizeof(cfile), "SELECT `Senha`, `Id` FROM `Contas` WHERE `Nome`='%s'", Pname(playerid));
mysql_tquery(Conexao, cfile, "CheckCount", "i", playerid);
forward CheckCount(playerid);
public CheckCount(playerid)
{
new string[100];
if(cache_num_rows() > 0)
{
format(string, sizeof(string), "{1E90FF}Seja bem vindo novamente %s\nSeu Nick: %s\nSeu IP: %d!", Pname(playerid), Pname(playerid), PlayerIP(playerid));
ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_PASSWORD, "{FF0000}Login", string, "Confirmar", "Cancelar");
}
else
{
format(string, sizeof(string), "{1E90FF}Seja bem vindo novamente %s\nSeu Nick: %s\nSeu IP: %d!", Pname(playerid), Pname(playerid), PlayerIP(playerid));
ShowPlayerDialog(playerid, D_REGISTRO, DIALOG_STYLE_INPUT, "{FF0000}Registro", string, "Confirmar", "Cancelar");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new string[100];
switch(dialogid)
{
case D_REGISTRO:
{
new query[300];
if(!response) kick(playerid);
if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
{
format(string, sizeof(string), "{1E90FF}Seja bem vindo ao servidor %s!\n{FF0000}Conta: Nгo registrada!\nIp:{1E90FF}%d!", Pname(playerid), PlayerIP(playerid));
ShowPlayerDialog(playerid, D_REGISTRO, DIALOG_STYLE_INPUT, "{FF0000}Registro", string, "Confirmar", "Cancelar");
Tentativas[playerid]++;
SendClientMessage(playerid, 0xFF0000AA, "[ ERRO ]Senhas variam de 4 a 20 caracteres!");
return 1;
}
else
{
mysql_format(Conexao, query, sizeof(query), "INSERT INTO `Contas`(`Nome`, `Senha`) VALUES ('%s', '%s')", Pname(playerid), inputtext);
mysql_query(Conexao, query, false);
RegistrarDados(playerid);
}
}
case D_LOGIN:
{
new query[300];
if(!response) return kick(playerid);
if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
{
Tentativas[playerid]++;
SendClientMessage(playerid, 0xFF0000AA, "[ ERRO ]Senha de 4 a 20 caracteres!");
format(string, sizeof(string), "{1E90FF}Seja bem vindo novamente %s\nSeu Nick: %s\nSeu IP: %d!", Pname(playerid), Pname(playerid), PlayerIP(playerid));
ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_PASSWORD, "{FF0000}Login", string, "Confirmar", "Cancelar");
return true;
}
if(Tentativas[playerid] == 3) return Kick(playerid);
mysql_format(Conexao, query, sizeof(query), "SELECT `Senha` FROM `Contas` WHERE `Nome`='%s'", Pname(playerid));
mysql_query(Conexao, query, true);
cache_get_value(0, "Senha", pInfo[playerid][Senha], 20);
if(strcmp(inputtext, pInfo[playerid][Senha]) == 0)
{
mysql_format(Conexao, query, sizeof(query), "SELECT * FROM `Contas` WHERE `Nome`='%s'", Pname(playerid));
mysql_tquery(Conexao, query, "LogarConta", "i", playerid);
SendClientMessage(playerid, 0xFF0000AA, "[ PB ]A conta foi carregada com sucesso!");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "[ ERRO ]Sua senha esta errada!");
format(string, sizeof(string), "{1E90FF}Seja bem vindo novamente %s\nSeu Nick: %s\nSeu IP: %d!", Pname(playerid), Pname(playerid), PlayerIP(playerid));
ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_PASSWORD, "{FF0000}Login", "Digite uma senha pra se logar!", "Confirmar", "Cancelar");
return 1;
}
}
}
return 1;
}
forward LogarConta(playerid);
public LogarConta(playerid)
{
printf("A conta do player %d foi logada com sucesso!", playerid);
cache_get_value_int(0, "Skin", pInfo[playerid][Skin]);
cache_get_value_int(0, "Dinheiro", pInfo[playerid][Dinheiro]);
cache_get_value_int(0, "Level", pInfo[playerid][Level]);
cache_get_value_float(0, "Vida", pInfo[playerid][Vida]);
cache_get_value_float(0, "Colete", pInfo[playerid][Colete]);
cache_get_value_int(0, "Procurado", pInfo[playerid][Procurado]);
cache_get_value_int(0, "Administrador", pInfo[playerid][Administrador]);
cache_get_value_int(0, "Moderador", pInfo[playerid][Moderador]);
cache_get_value_int(0, "Comandante", pInfo[playerid][Comandante]);
cache_get_value_int(0, "Patente", pInfo[playerid][Patente]);
cache_get_value_int(0, "Ajudante", pInfo[playerid][Ajudante]);
cache_get_value_int(0, "TemJetpack", pInfo[playerid][TemJetpack]);
cache_get_value_int(0, "Profissao", pInfo[playerid][Profissao]);
SpawnPlayer(playerid);
return 1;
}
stock SalvarDados(playerid) {
new query[800], Float:Viida, Float:Culete;
GetPlayerHealth(playerid, Viida); GetPlayerArmour(playerid, Culete);
mysql_format(Conexao, query, sizeof(query), "UPDATE Contas SET Nome='%s', Senha='%s', Skin=%d, Dinheiro=%d, Level=%d, Vida=%f, Colete=%f, Procurado=%d, Administrador=%d, Moderador=%d, Corregedor=%d, Comandante=%d,Patente=%d, Ajudante=%d, TemJetpack=%d, Profissao=%d WHERE `Nome`='%s'",
Pname(playerid),
pInfo[playerid][Senha],
GetPlayerSkin(playerid),
GetPlayerMoney(playerid),
GetPlayerScore(playerid),
Viida,
Culete,
GetPlayerWantedLevel(playerid),
pInfo[playerid][Administrador],
pInfo[playerid][Moderador],
pInfo[playerid][Corregedor],
pInfo[playerid][Comandante],
pInfo[playerid][Patente],
pInfo[playerid][Ajudante],
pInfo[playerid][TemJetpack],
pInfo[playerid][Profissao],
Pname(playerid));
mysql_query(Conexao, query, false);
pInfo[playerid][Administrador] = 0;
pInfo[playerid][TemJetpack] = 0;
pInfo[playerid][Punicao] = 0;
pInfo[playerid][Profissao] = 0;
pInfo[playerid][Procurado] = 0;
pInfo[playerid][Banimentos] = 0;
pInfo[playerid][Moderador] = 0;
pInfo[playerid][Corregedor] = 0;
pInfo[playerid][Comandante] = 0;
pInfo[playerid][Patente] = 0;
pInfo[playerid][Ajudante] = 0;
pInfo[playerid][Aviso] = 0;
pInfo[playerid][Skin] = 0;
pInfo[playerid][Preso] = 0;
pInfo[playerid][Vida] = 0;
pInfo[playerid][Colete] = 0;
pInfo[playerid][Dinheiro] = 0;
pInfo[playerid][Level] = 0;
pInfo[playerid][Oculto] = false;
return 1;
}
Os problemas sгo que as vezes as skin nao setam e nao carregam, as vezes o persom morre igual trouxa!
As vezes ele carrega normalmente, mas de vez em quando nгo, e vc compreende que para abrir um servidor precisa ter 100% de certeza q pelo menos o sistema de login precisa estar correto!