04.06.2012, 02:52
Introduзгo:
Bem, neste meu primeiro dia de fуrum sa-mp, venho postar meu segundo release, novamente em MySQL, um sistema de registro, bem simples por sinal, salvando nome, senha, skin, dinheiro e score, espero que possa servir para alguйm.
Source:
Download: http://pastebin.com/LbEuDVz3
Espero que gostem, atй a prуxima.
Bem, neste meu primeiro dia de fуrum sa-mp, venho postar meu segundo release, novamente em MySQL, um sistema de registro, bem simples por sinal, salvando nome, senha, skin, dinheiro e score, espero que possa servir para alguйm.
Source:
pawn Code:
#include <a_samp>
#include <a_mysql>
enum {
DIALOG_REGISTER,
DIALOG_LOGIN
}
forward jig_OnPlayerConnect(playerid);
forward jig_OnPlayerLogin(playerid);
new
jDB,
jString[256],
jName[MAX_PLAYERS][24],
bool:jLogged[MAX_PLAYERS],
jTries[MAX_PLAYERS]
;
public OnFilterScriptInit() {
jDB = mysql_connect("localhost", "root", "jigRegister", "");
if(mysql_ping(jDB) < 1)
return SendRconCommand("unloadfs jigRegister");
print("Connected!");
mysql_function_query(jDB, "CREATE TABLE IF NOT EXISTS `jUsers` (`Name` VARCHAR(24) NOT NULL,`Password` VARCHAR(32) NOT NULL, `Skin` INT(11) NOT NULL DEFAULT '299',`Money` INT(11) NOT NULL DEFAULT '5000',`Score` INT(11) NOT NULL DEFAULT '0')", false, "", "");
print("----------------------------------");
print(" jRegister");
print(" Register/Login System");
print(" Copyright © 2012 Jigsaw`");
print("----------------------------------");
return 1;
}
public OnFilterScriptExit() {
mysql_close(jDB);
return 1;
}
public OnPlayerConnect(playerid) {
jTries[playerid] = 0;
GetPlayerName(playerid, jName[playerid], 24);
mysql_format(jDB, jString, "SELECT * FROM `jUsers` WHERE `Name` = '%s'", jName[playerid]);
mysql_function_query(jDB, jString, true, "jig_OnPlayerConnect", "i", playerid);
return 1;
}
public jig_OnPlayerConnect(playerid) {
new
jRows,
jFields
;
cache_get_data(jRows, jFields, jDB);
if(!jRows) {
format(jString, sizeof(jString), "{FFFFFF}Olб {1E90FF}%s{FFFFFF}\nVocк ainda nгo й registrado no servidor.\nDigite uma senha para se registrar.", jName[playerid]);
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{FFFFFF}Registro", jString, "Registrar", "Cancelar");
return 1;
}
format(jString, sizeof(jString), "{FFFFFF}Olб denovo {1E90FF}%s{FFFFFF}\nDigite sua senha para fazer login no servidor.", jName[playerid]);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", jString, "Login", "Cancelar");
return 1;
}
public OnPlayerDisconnect(playerid, reason) {
#pragma unused reason
if(jLogged[playerid]) {
mysql_format(jDB, jString,
"UPDATE `jUsers` SET `Skin` = %d, `Money` = %d, Score = %d WHERE `Name` = '%s'",
GetPlayerSkin(playerid),
GetPlayerMoney(playerid),
GetPlayerScore(playerid),
jName[playerid]
);
mysql_function_query(jDB, jString, false, "", "");
jLogged[playerid] = false;
}
return 1;
}
public OnPlayerSpawn(playerid)
{
return (jLogged[playerid]) ? (1) : (Kick(playerid));
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
switch(dialogid) {
case DIALOG_REGISTER: {
if(!response)
Kick(playerid);
else {
if(1 < strlen(inputtext) > 32) {
format(jString, sizeof(jString), "{FFFFFF}Olб {1E90FF}%s{FFFFFF}\nVocк ainda nгo й registrado no servidor.\nDigite uma senha para se registrar.\n\n{E31919}Erro: Sua senha deve conter entre 1 e 32 caracteres.", jName[playerid]);
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{FFFFFF}Registro", jString, "Registrar", "Cancelar");
} else {
mysql_format(jDB, jString, "INSERT INTO `jUsers` (`Name`,`Password`) VALUES ('%s','%s')", jName[playerid], inputtext);
mysql_function_query(jDB, jString, false, "", "");
format(jString, sizeof(jString), "{FFFFFF}Muito bem {1E90FF}%s{FFFFFF}\nConta registrada com sucesso.\nDigite sua senha para fazer login.", jName[playerid]);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", jString, "Login", "Cancelar");
}
}
}
case DIALOG_LOGIN: {
if(!response)
Kick(playerid);
else {
mysql_format(jDB, jString, "SELECT * FROM `jUsers` WHERE `Name` = '%s' AND `Password` = '%s'", jName[playerid], inputtext);
mysql_function_query(jDB, jString, true, "jig_OnPlayerLogin", "i", playerid);
}
}
}
return 1;
}
public jig_OnPlayerLogin(playerid) {
new
jRows,
jFields
;
cache_get_data(jRows, jFields, jDB);
if(!jRows)
{
++ jTries[playerid];
if(jTries[playerid] == 5)
return BanEx(playerid, "5 erros de senha");
format(jString, sizeof(jString), "{FFFFFF}Senha incorreta {1E90FF}%s{FFFFFF}\nDigite sua verdadeira senha.\nChances: {E31919}%d", jName[playerid], (5 - jTries[playerid]));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", jString, "Login", "Cancelar");
return 1;
}
jLogged[playerid] = true;
cache_get_field_content(0, "Money", jString, jDB);
ResetPlayerMoney(playerid); GivePlayerMoney(playerid, strval(jString));
cache_get_field_content(0, "Score", jString, jDB);
SetPlayerScore(playerid, strval(jString));
cache_get_field_content(0, "Skin", jString, jDB);
SetSpawnInfo(playerid, 0, strval(jString), 1568.2737, -1892.3541, 13.5595, 0.8003, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
return 1;
}
Espero que gostem, atй a prуxima.