18.01.2012, 10:58
Vк se vai.
Dei uma pequena "arrumada"
Vocк tava usando 'user'
No correto seria, `user`
E cuidado com as querys grandes new query[700]; etc.
Nгo fica criando a database pelo script, faz uma logo no phpmyadmin.
Dei uma pequena "arrumada"
pawn Код:
#include <a_samp>
#include <a_mysql>
main(){}
public OnGameModeInit()
{
mysql_connect("localhost","root","Vortex RPG","");
mysql_query("CREATE TABLE IF NOT EXISTS pinfo (user VARCHAR(24), password VARCHAR(50), score INT(20), dinheiro INT(20) )");
return 1;
}
public OnPlayerConnect(playerid)
{
new escname[24], query[128];
mysql_real_escape_string(GetName(playerid),escname);
format(query,sizeof(query),"SELECT user FROM pinfo WHERE user = '%s'", escname); // Sу precisa usar as aspas simples quando for formatar o nome %s
mysql_query(query);
mysql_store_result();
if(mysql_num_rows()) {
ShowPlayerDialog(playerid,2,1,"Login","Login","Login","Sair");
}
else {
ShowPlayerDialog(playerid,1,1,"Registro","Registro","Registrar","Sair");
}
mysql_free_result();
return 1;
}
public OnPlayerDisconnect(playerid)
{
new query[200], escname[24];
mysql_real_escape_string(GetName(playerid),escname);
format(query,sizeof(query),"UPDATE pinfo SET score = '%d', dinheiro = '%d' WHERE user = '%s'",GetPlayerScore(playerid),GetPlayerMoney(playerid),escname);
mysql_query(query);
return 1;
}
public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
{
if(dialogid == 1)
{
if(!response)
return Kick(playerid);
if(response)
{
if(!strlen(inputtext[0]))
return Kick(playerid);
new escname[24];
new escpass[50];
new query[250];
mysql_real_escape_string(GetName(playerid),escname);
mysql_real_escape_string(inputtext,escpass);
format(query,sizeof(query),"INSERT INTO pinfo (user, password, score, dinheiro) VALUES('%s','%s',5,5000)", escname, escpass);
mysql_query(query);
return 1;
}
}
if(dialogid == 2)
{
if(!response)
return Kick(playerid);
if(response)
{
if(!strlen(inputtext[0]))
return Kick(playerid);
new escname[24];
new escpass[50];
mysql_real_escape_string(GetName(playerid),escname);
mysql_real_escape_string(inputtext,escpass);
new query[250];
format(query,sizeof(query),"SELECT * FROM pinfo WHERE user = '%s' AND password = '%s'",escname,escpass);
mysql_query(query); // Ele vai pesquinsar na database o usuario e a senha que o cara coloco, se nгo confirmar com o usuario e senha, vai dar num_rows 0
mysql_store_result();
if(mysql_num_rows())
{
format(query,sizeof(query),"SELECT * FROM pinfo WHERE user = '%s'",escname);
mysql_query(query);
mysql_store_result();
new string[128];
while(mysql_fetch_row_format(query,"|"))
{
mysql_fetch_field_row(string,"score");
SetPlayerScore(playerid,strval(string));
mysql_fetch_field_row(string,"dinheiro");
GivePlayerMoney(playerid,strval(string));
}
}
else
{
SendClientMessage(playerid, -1, "Senha e password nгo conferem!");
Kick(playerid);
}
mysql_free_result();
return 1;
}
}
return 1;
}
stock GetName(playerid)
{
new n[24];
GetPlayerName(playerid,n,sizeof(n));
return n;
}
/*stock GetName(playerid) // Vocк pode usar essa funзгo assim tambйm:
{
new n[24], escname[24];
GetPlayerName(playerid,n,sizeof(n));
mysql_real_escape_string(n, escname);
return escname;
}*/
No correto seria, `user`
E cuidado com as querys grandes new query[700]; etc.
Nгo fica criando a database pelo script, faz uma logo no phpmyadmin.