Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*VISITE NOSSO SITE: http://www.sampknd.com/
- VISITE NOSSO FACEBOOK: http://www.facebook.com/SampKnd
- SAMP KND MELHOR BLOG DE SAMP DO BRASIL
- */
- #include <a_samp>
- #if defined MAX_PLAYERS
- #undef MAX_PLAYERS
- #endif
- #define MAX_PLAYERS (250) //altere para o número de slots do seu servidor
- #define DialogLogin (1)
- #define DialogRegistro (2)
- enum Dados{
- Admin,
- Cash,
- Matou,
- Morreu,
- bool:Logado
- }
- new PlayerDados[MAX_PLAYERS][Dados], DB:SQLiteBase, TentouLogar[MAX_PLAYERS];
- public OnFilterScriptInit()
- {
- SQLiteBase = db_open("Base.db");
- db_query(SQLiteBase,"CREATE TABLE IF NOT EXISTS `PLAYERS` (`Nick`,`Senha`,`Level`,`Grana`,`Admin`,`Cash`,`Matou`,`Morreu`)");
- return 1;
- }
- public OnFilterScriptExit()
- {
- db_close(SQLiteBase);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new DBResult: Resultado, Query[200];
- format(Query, sizeof(Query), "SELECT * FROM `PLAYERS` WHERE `Nick` = '%s'",DB_Escape(PlayerName(playerid)));
- Resultado = db_query(SQLiteBase, Query);
- if(db_num_rows(Resultado)){
- ShowPlayerDialog(playerid, DialogLogin,DIALOG_STYLE_PASSWORD,"Login","Olá, seja bem vindo novamente\nDigite sua senha no campo abaixo para logar-se","Logar","Sair");
- }
- else{
- ShowPlayerDialog(playerid, DialogRegistro,DIALOG_STYLE_INPUT,"Registro","Olá, seja bem vindo novato\nPor favor, digite uma senha no campo abaixo para se registrar no servidor","Registrar","Sair");
- }
- db_free_result(Resultado);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new Query[200];
- if(PlayerDados[playerid][Logado]){
- PlayerDados[playerid][Logado] = false;
- format(Query,sizeof Query,"UPDATE `PLAYERS` SET Level=%i,Admin=%i,Cash=%i,Matou=%i,Morreu=%i,Grana=%i",GetPlayerScore(playerid),PlayerDados[playerid][Admin],PlayerDados[playerid][Cash],PlayerDados[playerid][Matou],PlayerDados[playerid][Morreu],GetPlayerMoney(playerid));
- db_query(SQLiteBase, Query);
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(!PlayerDados[playerid][Logado]){
- SendClientMessage(playerid,-1,"| ERRO | Você precisa estar logado");
- Kick(playerid);
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new DBResult: Resultado, Query[270];
- if(dialogid == DialogLogin){
- if(!response) return Kick(playerid);
- format(Query,sizeof Query,"SELECT * FROM `PLAYERS` WHERE `Nick` = '%s' AND `Senha` = '%s'",DB_Escape(PlayerName(playerid)),DB_Escape(inputtext));
- Resultado = db_query(SQLiteBase,Query);
- if(db_num_rows(Resultado)){
- SendClientMessage(playerid,0x4682B4AA,"| INFO | Seus dados foram carregados com sucesso, tenha um bom jogo!");
- new Campo[50];
- db_get_field_assoc(Resultado,"Admin",Campo,50);
- PlayerDados[playerid][Admin] = strval(Campo);
- db_get_field_assoc(Resultado,"Matou",Campo,50);
- PlayerDados[playerid][Matou] = strval(Campo);
- db_get_field_assoc(Resultado,"Morreu",Campo,50);
- PlayerDados[playerid][Morreu] = strval(Campo);
- db_get_field_assoc(Resultado,"Level",Campo,50);
- SetPlayerScore(playerid, strval(Campo));
- db_get_field_assoc(Resultado,"Grana",Campo,50);
- GivePlayerMoney(playerid, strval(Campo));
- db_get_field_assoc(Resultado,"Cash",Campo,50);
- PlayerDados[playerid][Cash] = strval(Campo);
- PlayerDados[playerid][Logado] = true;
- }
- else{
- ++TentouLogar[playerid];
- format(Query, sizeof Query,"| SENHA | Isso é meio constrangedor, mas se o senhor(a) errar a senha mais %i vezes será kickado.",5-TentouLogar[playerid]);
- SendClientMessage(playerid,0xB22222AA,Query);
- ShowPlayerDialog(playerid, DialogLogin,DIALOG_STYLE_PASSWORD,"Login","Olá, seja bem vindo novamente\nDigite sua senha no campo abaixo para logar-se","Logar","Sair");
- if(TentouLogar[playerid] == 5){
- SendClientMessage(playerid, 0xB22222AA,"| SENHA | O senhor(a) errou a senha 5 vezes e por medidas de segurança foi kickado.");
- TentouLogar[playerid] = 0;
- Kick(playerid);
- }
- db_free_result(Resultado);
- }
- }
- if(dialogid == DialogRegistro){
- if(!response) return Kick(playerid);
- if(strlen(inputtext) < 5 || strlen(inputtext) > 25){
- SendClientMessage(playerid,0xB22222AA,"| SENHA | Sua senha deve ser maior que 5 e menor que 25 caracteres");
- ShowPlayerDialog(playerid, DialogLogin,DIALOG_STYLE_PASSWORD,"Login","Olá, seja bem vindo novamente\nDigite sua senha no campo abaixo para logar-se","Logar","Sair");
- }else{
- format(Query,sizeof Query,"INSERT INTO `PLAYERS` (`Nick`,`Senha`,`Level`,`Grana`,`Admin`,`Cash`,`Matou`,`Morreu`) VALUES('%s','%s','0','2000','0','0','0','0')",DB_Escape(PlayerName(playerid)),DB_Escape(inputtext));
- db_query(SQLiteBase, Query);
- SendClientMessage(playerid,0x4682B4AA,"| INFO | Sua conta foi criada com sucesso em nossa database, tenha um bom jogo!");
- GivePlayerMoney(playerid, 2000);
- PlayerDados[playerid][Logado] = true;
- }
- }
- return 1;
- }
- stock PlayerName(playerid){
- new Nome[25]; GetPlayerName(playerid,Nome,25);
- return Nome;
- }
- stock DB_Escape(text[])
- {
- new
- ret[80 * 2],
- ch,
- i,
- j;
- while ((ch = text[i++]) && j < sizeof (ret))
- {
- if (ch == '\'')
- {
- if (j < sizeof (ret) - 2)
- {
- ret[j++] = '\'';
- ret[j++] = '\'';
- }
- }
- else if (j < sizeof (ret))
- {
- ret[j++] = ch;
- }
- else
- {
- j++;
- }
- }
- ret[sizeof (ret) - 1] = '\0';
- return ret;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement