#include a_samp
#include a_mysql
#define host "localhost"
#define user "root"
#define pass ""
#define base "samp"
#define REGISTRO 100
#define LOGIN 200
main(){}
enum PlayerInfo
{
Nome[21],
Senha[20],
Dinheiro
}
new pInfo[MAX_PLAYERS][PlayerInfo];
new MySQL:Conexao;
public OnGameModeInit()
{
Conexao = mysql_connect(host, user, pass, base);
if(mysql_errno(Conexao) !=0) return print("Nгo foi possнvel conectar a base de dados.");
else print("Conexгo com a base de dados efetuada com sucesso.");
mysql_query(Conexao, "CREATE TABLE IF NOT EXISTS `Contas`(`Nome` VARCHAR(21) NOT NULL, `Senha` VARCHAR(20) NOT NULL, `Dinheiro` INT NOT NULL)");
return 1;
}
public OnPlayerConnect(playerid)
{
ResetarVariaveis(playerid); // Resetar Variбveis
new Query[200];
GetPlayerName(playerid, pInfo[playerid][Nome], 21);
format(Query, 200, "SELECT `Senha` FROM `Contas` WHERE `Nome`='%s'", pInfo[playerid][Nome]);
mysql_query(Conexao, Query);
cache_get_value(0, "Senha", pInfo[playerid][Senha], 20);
if(cache_num_rows() > 0)
{
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Logar", "Digite sua senha para Logar", "Logar", "Sair");
}
else
{
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", "Digite sua senha para Registrar", "Registrar", "Sair");
}
return 1;
}
public OnPlayerDisconnect(playerid)
{
SalvarConta(playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
GetPlayerName(playerid, pInfo[playerid][Nome], 21);
if(dialogid == LOGIN)
{
if(!strcmp(pInfo[playerid][Senha], inputtext, true, 20))
{
new Query[200];
format(Query, 200, "SELECT * FROM `Contas` WHERE `Nome`='%s'", pInfo[playerid][Nome]);
mysql_query(Conexao, Query);
cache_get_value_name_int(0, "Dinheiro", pInfo[playerid][Dinheiro]);
GivePlayerMoney(playerid, pInfo[playerid][Dinheiro]);
SpawnPlayer(playerid);
SendClientMessage(playerid, -1, "| INFO | Logado com sucesso.");
}
else
{
SendClientMessage(playerid, -1, "| ERRO | Senha incorreta. Digite ela correta!");
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Logar", "Digite sua senha para Logar", "Logar", "Sair");
}
}
if(dialogid == REGISTRO)
{
if(strlen(inputtext) < 6 || strlen(inputtext) > 20)
{
SendClientMessage(playerid, -1, "| ERRO | Digite senha de 6 a 20 caractйres!");
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", "Digite sua senha para Registrar", "Registrar", "Sair");
}
else
{
new Query[200];
format(Query, 200, "INSERT INTO `Contas` (`Nome`, `Senha`, `Dinheiro`) VALUES ('%s', '%s', '%d')", pInfo[playerid][Nome], inputtext, pInfo[playerid][Dinheiro] = 500);
mysql_query(Conexao, Query);
GivePlayerMoney(playerid, pInfo[playerid][Dinheiro]);
}
}
return 0;
}
static SalvarConta(playerid)
{
new Query[200];
GetPlayerName(playerid, pInfo[playerid][Nome], 21);
format(Query, sizeof(Query), "UPDATE `Contas` SET `Nome`='%s', `Senha`='%s', `Dinheiro`='%d' WHERE `Nome`='%s'",
pInfo[playerid][Nome],
pInfo[playerid][Senha],
pInfo[playerid][Dinheiro] = GetPlayerMoney(playerid),
pInfo[playerid][Nome]);
mysql_query(Conexao, Query);
ResetarVariaveis(playerid);
}
static ResetarVariaveis(playerid)
{
pInfo[playerid][Nome] = 0;
pInfo[playerid][Senha] = 0;
pInfo[playerid][Dinheiro] = 0;
return 1;
}
format(Query, sizeof(Query), "UPDATE `Contas` SET `Nome`='%s', `Senha`='%s', `Dinheiro`='%d'",
pInfo[playerid][Nome],
pInfo[playerid][Senha],
pInfo[playerid][Dinheiro] = GetPlayerMoney(playerid));
mysql_query(Conexao, Query);
Aconselho fortemente adicionar a coluna ID a tabela e atribuir esta coluna como auto_increment assim podendo usar nas querys de UPDATE e SELECT
@TOPIC Cleyson VLW <3
@MBJ Obrigado pelo conselho.
#Marlun Valeu Tbm <3
PHP код:
|