Advertisement
Guest User

Sistema Bancário: sys

a guest
Jan 14th, 2018
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 10.76 KB | None | 0 0
  1. //Config
  2. #define BANCO_NOME "Banco do Brasil"
  3.  
  4. //Colors
  5. #define YELLOW 0xF7CA18FF
  6.  
  7. //Dialogs
  8. #define DIALOG_BANCO_POS_NOVASENHA 11
  9. #define DIALOG_BANCO_NOVASENHA 10
  10. #define DIALOG_BANCO_POS_DEPOSITO 9
  11. #define DIALOG_BANCO_DEPOSITO 8
  12. #define DIALOG_BANCO_POS_SAQUE 7
  13. #define DIALOG_BANCO_SAQUE 6
  14. #define DIALOG_BANCO_CONTA 5
  15. #define DIALOG_BANCO_MESSAGEM 4
  16. #define DIALOG_BANCO_CADASTRO 3
  17. #define DIALOG_BANCO_AUTENTICACAO 2
  18. #define DIALOG_BANCO 1
  19.  
  20. new DB:db;
  21. new int:balance, int:saque, int:deposit;
  22.  
  23. stock initBanco() {
  24.     db = db_open("server.db");
  25.     if((db = db_open("server.db")) == DB: 0) {
  26.         print("[SQLite] Não foi possível conectar ao \"server.db\"");
  27.     } else {
  28.         print("[SQLite] Conectado ao \"server.db\" com sucesso");
  29.         db_query(db, "PRAGMA synchronous = OFF");
  30.         db_query(db,"CREATE TABLE IF NOT EXISTS banco (id INTEGER PRIMARY KEY AUTOINCREMENT, nick VARCHAR(24), password VARCHAR(129), balance INTEGER DEFAULT 0 NOT NULL)");
  31.     }
  32.     return 1;
  33. }
  34.  
  35. stock getPlayerName(playerid)
  36. {
  37.       new name[MAX_PLAYER_NAME];
  38.       GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  39.       return name;
  40. }
  41.  
  42. stock acessBank(playerid) {
  43.     static query[98],DBResult:result, string[218];
  44.     format(query, sizeof(query), "SELECT password FROM `banco` WHERE `nick`='%q'", getPlayerName(playerid));
  45.     result = db_query(db,query);
  46.    
  47.     if(db_num_rows(result) == 0) {
  48.         format(string, sizeof(string), "{F7CA18}%s\n\n{BDC3C7}Boas vindas ao {F7CA18}%s\n\n{BDC3C7}Não encontramos nenhum cadastro com seu nome\nDigite uma senha abaixo e você terá sua conta criada em nosso banco.", BANCO_NOME, BANCO_NOME);
  49.         ShowPlayerDialog(playerid, DIALOG_BANCO_CADASTRO, DIALOG_STYLE_PASSWORD, "{BDC3C7}Abrindo uma conta",string, "Abrir conta", "Fechar");
  50.     } else {
  51.         format(string, sizeof(string), "{F7CA18}%s\n\n{BDC3C7}Boas vindas ao {F7CA18}%s\n\n{BDC3C7}Para acessar o Painel Bancário digite sua senha:",BANCO_NOME, BANCO_NOME);
  52.         ShowPlayerDialog(playerid, DIALOG_BANCO_AUTENTICACAO, DIALOG_STYLE_PASSWORD, "{BDC3C7}Autenticação",string, "Acessar", "Fechar");
  53.     }
  54.     db_free_result(result);
  55.     return 1;
  56. }
  57.  
  58.  
  59. stock Banco_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  60.     if(dialogid == DIALOG_BANCO_POS_SAQUE) {
  61.         if(response) {
  62.             ShowPlayerDialog(playerid, DIALOG_BANCO, DIALOG_STYLE_LIST, "Painel Bancário", "Conta\nSacar\nDepositar\nMudar Senha", "Acessar", "Sair");
  63.         }
  64.         return 1;
  65.     }
  66.    
  67.     if(dialogid == DIALOG_BANCO_POS_DEPOSITO) {
  68.         if(response) {
  69.             ShowPlayerDialog(playerid, DIALOG_BANCO, DIALOG_STYLE_LIST, "Painel Bancário", "Conta\nSacar\nDepositar\nMudar Senha", "Acessar", "Sair");
  70.         }
  71.         return 1;
  72.     }
  73.    
  74.     if(dialogid == DIALOG_BANCO_CONTA) {
  75.         if(response) {
  76.             ShowPlayerDialog(playerid, DIALOG_BANCO, DIALOG_STYLE_LIST, "Painel Bancário", "Conta\nSacar\nDepositar\nMudar Senha", "Acessar", "Sair");
  77.         }
  78.         return 1;
  79.     }
  80.    
  81.     if(dialogid == DIALOG_BANCO_NOVASENHA) {
  82.         if(response) {
  83.             new query[128], string[128];
  84.             format(query, sizeof query, "UPDATE `banco` SET `password`='%s' WHERE `nick`='%q'", inputtext, getPlayerName(playerid));
  85.             db_query(db, query);
  86.  
  87.             format(string, sizeof(string), "{F7CA18}%s\n{663399}Senha alterada com sucesso!\n\n{BDC3C7}Sua nova senha é {F7CA18}%s\n\n{BDC3C7}Grave bem sua senha.", BANCO_NOME, inputtext);
  88.             ShowPlayerDialog(playerid, DIALOG_BANCO_POS_NOVASENHA, DIALOG_STYLE_MSGBOX, "{BDC3C7}Senha alterada",string,"Ok","");
  89.         } else {
  90.             ShowPlayerDialog(playerid, DIALOG_BANCO, DIALOG_STYLE_LIST, "Painel Bancário", "Conta\nSacar\nDepositar\nMudar Senha", "Acessar", "Sair");
  91.         }
  92.         return 1;
  93.     }
  94.  
  95.     if(dialogid == DIALOG_BANCO_SAQUE) {
  96.         if(response) {
  97.             new string[218], query[98], value[10], DBResult:result;
  98.             format(query, sizeof(query), "SELECT balance FROM `banco` WHERE `nick` = '%q'",getPlayerName(playerid));
  99.             result = db_query(db,query);
  100.             db_get_field_assoc(result, "balance", value, 10);
  101.  
  102.             balance = strval(value);
  103.             saque   = strval(inputtext);
  104.  
  105.             if(balance < saque) {
  106.                 format(string, sizeof(string), "{F7CA18}%s\n{BDC3C7}Operação: {663399}Saque\n\n{BDC3C7}Impossível realizar o saque, dinheiro inexistente.\nDigite valores adequados á serem sacados.", BANCO_NOME);
  107.                 ShowPlayerDialog(playerid, DIALOG_BANCO_SAQUE, DIALOG_STYLE_INPUT, "{BDC3C7}Conta Bancária",string,"Sacar","Fechar");
  108.             } else {
  109.                 new new__balance = balance - saque;
  110.                 format(query, sizeof query, "UPDATE `banco` SET `balance`='%d' WHERE `nick`='%q'", new__balance, getPlayerName(playerid));
  111.                 db_query(db, query);
  112.  
  113.                 format(string, sizeof(string), "{F7CA18}%s\n{663399}Saque realizado com sucesso!\n\n{BDC3C7}Saldo Atual: {87D37C}R$%d\n{BDC3C7}Valor Sacado: {87D37C}R$%d", BANCO_NOME, new__balance, saque);
  114.                 ShowPlayerDialog(playerid, DIALOG_BANCO_POS_SAQUE, DIALOG_STYLE_MSGBOX, "{BDC3C7}Pós Saque",string,"Ok","");
  115.                 GivePlayerMoney(playerid, saque);
  116.             }
  117.         } else {
  118.             ShowPlayerDialog(playerid, DIALOG_BANCO, DIALOG_STYLE_LIST, "Painel Bancário", "Conta\nSacar\nDepositar\nMudar Senha", "Acessar", "Sair");
  119.         }
  120.         return 1;
  121.     }
  122.    
  123.     if(dialogid == DIALOG_BANCO_DEPOSITO) {
  124.         if(response) {
  125.             new string[328], query[98], value[10], DBResult:result;
  126.             format(query, sizeof(query), "SELECT balance FROM `banco` WHERE `nick` = '%q'",getPlayerName(playerid));
  127.             result = db_query(db,query);
  128.             db_get_field_assoc(result, "balance", value, 10);
  129.  
  130.             balance = strval(value);
  131.             deposit = strval(inputtext);
  132.  
  133.             if(GetPlayerMoney(playerid) < deposit) {
  134.                 format(string, sizeof(string), "{F7CA18}%s\n{BDC3C7}Operação: {663399}Depositar\n\n{BDC3C7}Impossível realizar o deposito, dinheiro inexistente.\nDigite valores adequados á serem sacados.", BANCO_NOME);
  135.                 ShowPlayerDialog(playerid, DIALOG_BANCO_DEPOSITO, DIALOG_STYLE_INPUT, "{BDC3C7}Conta Bancária",string,"Depositar","Fechar");
  136.             } else {
  137.                 new new__balance = balance + deposit;
  138.                 format(query, sizeof query, "UPDATE `banco` SET `balance`='%d' WHERE `nick`='%q'", new__balance, getPlayerName(playerid));
  139.                 db_query(db, query);
  140.  
  141.                 format(string, sizeof(string), "{F7CA18}%s\n{663399}Deposito realizado com sucesso!\n\n{BDC3C7}Saldo Atual: {87D37C}R$%d\n{BDC3C7}Valor Depositado: {87D37C}R$%d", BANCO_NOME, new__balance, deposit);
  142.                 ShowPlayerDialog(playerid, DIALOG_BANCO_POS_DEPOSITO, DIALOG_STYLE_MSGBOX, "{BDC3C7}Pós Deposito",string,"Ok","");
  143.                 GivePlayerMoney(playerid, -deposit);
  144.             }
  145.         } else {
  146.             ShowPlayerDialog(playerid, DIALOG_BANCO, DIALOG_STYLE_LIST, "Painel Bancário", "Conta\nSacar\nDepositar\nMudar Senha", "Acessar", "Sair");
  147.         }
  148.         return 1;
  149.     }
  150.  
  151.     if(dialogid == DIALOG_BANCO_AUTENTICACAO) {
  152.         if(response) {
  153.             new query[98], DBResult:result;
  154.             format(query, sizeof(query), "SELECT balance FROM `banco` WHERE `nick` = '%q' AND `password` = '%q'", getPlayerName(playerid), inputtext);
  155.             result = db_query(db, query);
  156.             if(db_num_rows(result) == 0) {
  157.                 new string[218];
  158.                 format(string, sizeof(string), "{F7CA18}%s\n\n{BDC3C7}Boas vindas ao {F7CA18}%s\n\n{BDC3C7}Para acessar o Painel Bancário digite sua senha\n\n{F03434}SENHA INVÁLIDA, TENTE NOVAMENTE", BANCO_NOME, BANCO_NOME);
  159.                 ShowPlayerDialog(playerid, DIALOG_BANCO_AUTENTICACAO, DIALOG_STYLE_PASSWORD,"{BDC3C7}Autenticação", string, "Acessar", "Fechar");
  160.             } else {
  161.                 ShowPlayerDialog(playerid, DIALOG_BANCO, DIALOG_STYLE_LIST, "Painel Bancário", "Conta\nSacar\nDepositar\nMudar Senha", "Acessar", "Sair");
  162.             }
  163.         } else {
  164.             new string[80];
  165.             format(string, sizeof(string), "%s agradece sua presença, tenha um bom dia.", BANCO_NOME);
  166.             SendClientMessage(playerid, YELLOW, string);
  167.         }
  168.         return 1;
  169.     }
  170.  
  171.     if(dialogid == DIALOG_BANCO_CADASTRO) {
  172.         if(response) {
  173.             new query[98], string[128];
  174.             format(query, sizeof query, "INSERT INTO `banco` (`nick`,`password`) VALUES ('%s','%s')", getPlayerName(playerid), inputtext);
  175.             db_free_result(db_query(db, query));
  176.             format(string, sizeof(string), "{F7CA18}%s\n\n{BDC3C7}Boas vindas ao {F7CA18}%s\n\n{BDC3C7}Sua conta foi criada com sucesso", BANCO_NOME, BANCO_NOME);
  177.             ShowPlayerDialog(playerid, DIALOG_BANCO_MESSAGEM, DIALOG_STYLE_MSGBOX, "{BDC3C7}Mensagem",string, "Fechar", "");
  178.         } else {
  179.             new string[80];
  180.             format(string, sizeof(string), "%s agradece sua presença, tenha um bom dia.", BANCO_NOME);
  181.             SendClientMessage(playerid, YELLOW, string);
  182.         }
  183.         return 1;
  184.     }
  185.    
  186.     if(dialogid == DIALOG_BANCO) {
  187.         if(response) {
  188.             switch(listitem) {
  189.                 case 0: {//Conta
  190.                     new string[128], query[98], value[10], DBResult:result;
  191.                     format(query, sizeof(query), "SELECT balance FROM `banco` WHERE `nick` = '%q'",getPlayerName(playerid));
  192.                     result = db_query(db,query);
  193.                     db_get_field_assoc(result, "balance", value, 10);
  194.                     balance = strval(value);
  195.                     format(string, sizeof(string), "{F7CA18}%s\n\n\t{BDC3C7}Extrato da conta corrente\n\nSaldo: {87D37C}R$%d", BANCO_NOME, balance);
  196.                     ShowPlayerDialog(playerid, DIALOG_BANCO_CONTA, DIALOG_STYLE_MSGBOX, "{BDC3C7}Conta Bancária",string,"Fechar","");
  197.                 }
  198.                 case 1: {//Sacar
  199.                     new string[128], query[98], value[10], DBResult:result;
  200.                     format(query, sizeof(query), "SELECT balance FROM `banco` WHERE `nick` = '%q'",getPlayerName(playerid));
  201.                     result = db_query(db,query);
  202.                     db_get_field_assoc(result, "balance", value, 10);
  203.                     balance = strval(value);
  204.                    
  205.                     format(string, sizeof(string), "{F7CA18}%s\n{BDC3C7}Operação: {663399}Saque", BANCO_NOME);
  206.                     ShowPlayerDialog(playerid, DIALOG_BANCO_SAQUE, DIALOG_STYLE_INPUT, "{BDC3C7}Conta Bancária",string,"Sacar","Fechar");
  207.                 }
  208.                 case 2: {//Depositar
  209.                     new string[148];
  210.                     format(string, sizeof(string), "{F7CA18}%s\n{BDC3C7}Operação: {663399}Depositar", BANCO_NOME);
  211.                     ShowPlayerDialog(playerid, DIALOG_BANCO_DEPOSITO, DIALOG_STYLE_INPUT, "{BDC3C7}Conta Bancária",string,"Depositar","Fechar");
  212.                 }
  213.                 case 3:{//Mudar Senha
  214.                     new string[248];
  215.                     format(string, sizeof(string), "{F7CA18}%s\n{663399}Atenção ao mudar sua senha bancária!\n\n{1BA39C}Anote-a em um lugar seguro.\nColoque uma senha que ninguém conhece.\nNunca mostre á ninguém.\n\n{BDC3C7}Digite sua nova senha abaixo:", BANCO_NOME);
  216.                     ShowPlayerDialog(playerid, DIALOG_BANCO_NOVASENHA, DIALOG_STYLE_PASSWORD, "{BDC3C7}Mudar Senha",string,"Mudar","Fechar");
  217.                 }
  218.             }
  219.         } else {
  220.             new string[80];
  221.             format(string, sizeof(string), "%s agradece sua presença, tenha um bom dia.", BANCO_NOME);
  222.             SendClientMessage(playerid, YELLOW, string);
  223.         }
  224.         return 1;
  225.     }
  226.     return 0;
  227. }
  228.  
  229. COMMAND:banco(playerid){
  230.     acessBank(playerid);
  231.     return 1;
  232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement