Advertisement
Guest User

Lucas Emmanuel - Bank Sistem

a guest
Aug 18th, 2014
1,644
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 11.40 KB | None | 0 0
  1. /*
  2.     Sistema simples de Banco
  3.     @author Lucas Emmanuel
  4.    
  5.     18/07/14
  6.  
  7.     Começo: 02:10
  8.     Término 05:00
  9.  
  10.     * - Nescessário criar pasta Contas na scriptfiles
  11.     * - Feito 100% por Lucas Emmanuel
  12.    
  13.     https://www.facebook.com/Opaleiro.BA
  14.  
  15. */
  16.  
  17. #include < a_samp >
  18. #include <  dof2  >
  19.  
  20. // --------------------------------- Defines
  21.  
  22. #define Dialog_Banco        90
  23. #define Dialog_Logar        80
  24. #define Dialog_Registro     95
  25. #define Dialog_Sacar        98
  26. #define Dialog_Transferir   75
  27. #define Dialog_Depositar    96
  28. #define Dialog_Final        99
  29.  
  30. #define Verde               0x88AA62FF
  31. #define Azul                0xA9C4E4FF
  32. #define Cinza               0xB9C9BFFF
  33. #define Rosa                0xFF8282FF
  34.  
  35. // ------------------------------------------
  36.  
  37. #if defined FILTERSCRIPT
  38.  
  39. // --------------------------------- Variáveis
  40.  
  41. enum BancoInfo
  42. {
  43.     bool:Cadastrado,
  44.     Senha,
  45.     Dinheiro,
  46.     Saldo
  47. }
  48.  
  49. new
  50.     Float:Entradas[3][3] =
  51. {
  52.     {1113.6282,-1836.1163,16.6000}, // 1
  53.     {1219.1395,-1812.2916,16.5938}, // 2
  54.     {1211.2548,-1749.8055,13.5941}  // 3
  55. };
  56.  
  57. new
  58.     Float:Saidas[3][3] =
  59. {
  60.     {2304.9446,-16.0870,26.7422}, // 1
  61.     {2315.5481,-0.1971,26.7422},  // 2
  62.     {2315.5481,-0.1971,26.7422}   // 2
  63. };
  64.  
  65. new Float:xBurguer[][] =
  66. {
  67.     {1109.6255,-1836.1428,16.6030}, // Saída random
  68.     {1219.3903,-1814.8457,16.5938}, // Saída random
  69.     {1209.1418,-1748.3969,13.5935}  // Saída random
  70. };
  71.  
  72. new bInfo[MAX_PLAYERS][BancoInfo];
  73. new pEntradas [6];
  74.  
  75. // ------------------------------------------
  76.  
  77. public OnGameModeInit()
  78. {
  79.     pEntradas[0] = AddStaticPickup(1274, 1, 1113.6282,-1836.1163,16.6000, 0); // Entrada 1
  80.     pEntradas[1] = AddStaticPickup(1274, 1, 1219.1395,-1812.2916,16.5938, 0); // Entrada 2
  81.     pEntradas[2] = AddStaticPickup(1274, 1, 1211.2548,-1749.8055,13.5941, 0); // Entrada 3
  82.     pEntradas[4] = AddStaticPickup(1318, 1, 2304.9446,-16.0870,26.7422, 0);   // Saída 1
  83.     pEntradas[4] = AddStaticPickup(1318, 1, 2315.5481,-0.1971,26.7422, 0);    // Saída 2
  84.    
  85.     AddStaticPickup(1239, 1, 2308.8508,-11.0123,26.7422, 0); // Acesso
  86.    
  87.     for(new i; i != 3; ++i)
  88.     {
  89.         SetPlayerMapIcon(i, 52, 1180.1130,-1793.8143,33.6363, 52, 0, MAPICON_LOCAL );
  90.         Create3DTextLabel("Banco Los Santos\n{FFFFFF}Aperte F para entrar", Azul, Entradas[i][0], Entradas[i][1], Entradas[i][2], 40.0, 0, 0);
  91.     }
  92.    
  93.     Create3DTextLabel("Banco Los Santos\n{FFFFFF}Aperte F para acessar", Verde, 2308.8508,-11.0123,26.7422, 40.0, 0, 0);
  94.     return 1;
  95. }
  96.  
  97. public OnGameModeExit()
  98. {
  99.     DOF2_Exit();
  100.     return 1;
  101. }
  102.  
  103. public OnPlayerConnect(playerid)
  104. {
  105.     Load(playerid);
  106.     return 1;
  107. }
  108.  
  109. public OnPlayerDisconnect(playerid, reason)
  110. {
  111.     Salvar(playerid);
  112.     return 1;
  113. }
  114.  
  115. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  116. {
  117.     if((newkeys == KEY_SECONDARY_ATTACK)) // Key ( F / Enter )
  118.     {
  119.         for(new i; i != 3; ++i)
  120.         {
  121.             if(IsPlayerInRangeOfPoint(playerid, 2, Entradas[i][0], Entradas[i][1], Entradas[i][2])) // Coordenadas das entradas
  122.             {
  123.                 SetPlayerInterior(playerid, 0);
  124.                 SetPlayerPos(playerid, 2308.0154,-15.1207,26.7496);
  125.             }
  126.         }
  127.  
  128.         for(new i; i != 3; ++i)
  129.         {
  130.             if(IsPlayerInRangeOfPoint(playerid, 2, Saidas[i][0], Saidas[i][1], Saidas[i][2])) // Coordenadas das entradas
  131.             {
  132.                 new Random = random(sizeof(xBurguer));
  133.                 SetPlayerPos(playerid, xBurguer[Random][0], xBurguer[Random][1], xBurguer[Random][2]);
  134.             }
  135.         }
  136.  
  137.         if(IsPlayerInRangeOfPoint(playerid, 1.5, 2308.8508,-11.0123,26.7422 )) // Coordenadas do acesso
  138.         {
  139.             if(bInfo[playerid][Cadastrado] != true)
  140.             {
  141.                 new string[120], nome[25];
  142.                 GetPlayerName(playerid, nome, 25);
  143.                 format(string, sizeof(string),"Bem vindo sr %s.\nPor medida de segurança escolha uma senha\npara poder registrar sua conta no banco.", nome, 25);
  144.                 ShowPlayerDialog(playerid, Dialog_Registro , DIALOG_STYLE_PASSWORD, "Banco Los Santos", string, "Escolher", "Cancelar");
  145.             }
  146.            
  147.             if(bInfo[playerid][Cadastrado] != false)
  148.             {
  149.                 ShowPlayerDialog(playerid, Dialog_Logar, DIALOG_STYLE_PASSWORD, "Banco Los Santos", "Digite a senha de sua conta para\npoder acessá-la", "Confirmar", "Cancelar");
  150.             }
  151.         }
  152.     }
  153.     return 1;
  154. }
  155.  
  156. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  157. {
  158.     if(dialogid == Dialog_Registro)
  159.     {
  160.         if(!strval(inputtext)) return SendClientMessage(playerid, Rosa, #Senha inválida! Escolha apenas números);
  161.         if(!response) return SendClientMessage(playerid, Cinza, #Você cancelou a criação de sua conta em nosso banco);
  162.         else
  163.         {
  164.             SendClientMessage(playerid, Verde, #Ok você se cadastrou. Agora faça o login com a conta registrada);
  165.             bInfo[playerid][Senha] = strval(inputtext);
  166.             bInfo[playerid][Cadastrado] = true;
  167.             Salvar(playerid);
  168.         }
  169.     }
  170.    
  171.     if(dialogid == Dialog_Logar)
  172.     {
  173.         if(!strval(inputtext)) return SendClientMessage(playerid, Rosa, #Senha inválida! Escolha apenas números);
  174.         if(!response) return SendClientMessage(playerid, Cinza, #Você cancelou o login na sua conta em nosso banco);
  175.        
  176.         else
  177.         {
  178.             bInfo[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
  179.             if(strval(inputtext) == bInfo[playerid][Senha])
  180.             {
  181.                 SendClientMessage(playerid, Azul, #Senha aceita! Você entrou na sua conta);
  182.                 ShowPlayerDialog(playerid, Dialog_Banco, DIALOG_STYLE_LIST, "Banco Los Santos", "Sacar\nDepositar\nTransferir\nVer Saldo", "Escolher", "Cancelar");
  183.             }
  184.             else
  185.             {
  186.                 SendClientMessage(playerid, Rosa, #Senha inválida! Escolha apenas números);
  187.             }
  188.         }
  189.     }
  190.  
  191.     if(dialogid == Dialog_Banco)
  192.     {
  193.         if(!response) return SendClientMessage(playerid, Cinza, #Ok você cancelou sua movimentação bancária);
  194.  
  195.         if(listitem == 0)       // Opção Sacar
  196.         {
  197.             new string[120];
  198.             format(string, sizeof(string), "Escolha o valor da quantia para sacar.\nSeu saldo é R$: %d", bInfo[playerid][Saldo]);
  199.             ShowPlayerDialog(playerid, Dialog_Sacar, DIALOG_STYLE_INPUT, "Banco Los Santos", string, "Confirmar", "Cancelar");
  200.         }
  201.        
  202.         else if(listitem == 1)  //Opção Depositar
  203.         {
  204.             new string[120];
  205.             format(string, sizeof(string), "Escolha o valor da quantia a ser depositada.\nSeu saldo é R$: %d", bInfo[playerid][Saldo]);
  206.             ShowPlayerDialog(playerid, Dialog_Depositar, DIALOG_STYLE_INPUT, "Banco Los Santos", string, "Confirmar", "Cancelar");
  207.         }
  208.         else if(listitem == 2)  //Opção Transferir
  209.         {
  210.             new string[120];
  211.             format(string, sizeof(string), "Escolha o valor da quantia a ser transferida.\nSeu saldo é R$: %d", bInfo[playerid][Saldo]);
  212.             ShowPlayerDialog(playerid, Dialog_Transferir, DIALOG_STYLE_INPUT, "Banco Los Santos", string, "Confirmar", "Cancelar");
  213.         }
  214.         else if(listitem == 3)  //Opção Ver saldo
  215.         {
  216.             new string[120];
  217.             format(string, sizeof(string), "Seu saldo é R$: %d", bInfo[playerid][Saldo]);
  218.             SendClientMessage(playerid, -1, string);
  219.         }
  220.     }
  221.    
  222.     if(dialogid == Dialog_Sacar)
  223.     {
  224.         if(!strval(inputtext)) return SendClientMessage(playerid, Rosa, #Operação inválida! Escolha apenas números);
  225.         if(!response) return SendClientMessage(playerid, Cinza, #Você cancelou o saque);
  226.         else
  227.         {
  228.             if(strval(inputtext) >= bInfo[playerid][Saldo]) return SendClientMessage(playerid, Rosa, #Você não tem esse dinheiro todo no banco);
  229.             {
  230.                 GivePlayerMoney(playerid, strval(inputtext));
  231.                 bInfo[playerid][Saldo] =- strval(inputtext);
  232.                
  233.                 new string[120];
  234.                 format(string, sizeof(string), "Você sacou: R$: %d. Agora seu saldo é R$: %d",strval(inputtext), bInfo[playerid][Saldo]);
  235.                 SendClientMessage(playerid, Azul, string);
  236.             }
  237.         }
  238.     }
  239.    
  240.     if(dialogid == Dialog_Depositar)
  241.     {
  242.         if(!strval(inputtext)) return SendClientMessage(playerid, Rosa, #Operação inválida! Escolha apenas números);
  243.         if(!response) return SendClientMessage(playerid, Cinza, #Você cancelou o depósito);
  244.         else
  245.         {
  246.             if(bInfo[playerid][Dinheiro] >= strval(inputtext)) return SendClientMessage(playerid, Rosa, #Você não tem esse dinheiro todo em mãos);
  247.             {
  248.                 bInfo[playerid][Saldo] += strval(inputtext);
  249.                 GivePlayerMoney(playerid, - strval(inputtext));
  250.                
  251.                 new string[120];
  252.                 format(string, sizeof(string), "Você depositou: R$: %d. Agora seu saldo é R$: %d",strval(inputtext), bInfo[playerid][Saldo]);
  253.                 SendClientMessage(playerid, Azul, string);
  254.             }
  255.         }
  256.     }
  257.    
  258.     new Value_Transfer[MAX_PLAYERS];
  259.    
  260.     if(dialogid == Dialog_Transferir)
  261.     {
  262.         if(!strval(inputtext)) return SendClientMessage(playerid, Rosa, #Operação inválida! Escolha a quantia a ser transferida - Somente números);
  263.         if(!response) return SendClientMessage(playerid, Cinza, #Você cancelou a transferência);
  264.         else
  265.         {
  266.             if(strval(inputtext) >= bInfo[playerid][Saldo]) return SendClientMessage(playerid, Rosa, #Você não tem esse dinheiro todo no banco);
  267.             {
  268.                 Value_Transfer[playerid] = strval(inputtext);
  269.                 ShowPlayerDialog(playerid, Dialog_Final, DIALOG_STYLE_INPUT, "Banco Los Santos", "Digite o ID do player\nDigite apenas números", "Confirmar", "Cancelar");
  270.             }
  271.         }
  272.     }
  273.    
  274.     if(dialogid == Dialog_Final)
  275.     {
  276.         if(!strval(inputtext)) return SendClientMessage(playerid, Rosa, #Operação inválida! Escolha o ID do player - Somente Números);
  277.         if(!response) return SendClientMessage(playerid, Cinza, #Você cancelou a transferência);
  278.         else
  279.         {
  280.             if(IsPlayerConnected(strval(inputtext))) return SendClientMessage(playerid, Verde, #Este jogador não está conectado);
  281.             {
  282.                 bInfo[playerid][Saldo] =- Value_Transfer[playerid];
  283.                 bInfo[strval(inputtext)][Saldo] - Value_Transfer[playerid];
  284.            
  285.                 new
  286.                     string[120],
  287.                     nome[25]
  288.                 ;
  289.                 GetPlayerName(strval(inputtext), nome, 25);
  290.                 format(string, sizeof(string), "Você transferiu: R$: %d. Para %s. Agora seu saldo é R$: %d",Value_Transfer[playerid], nome, bInfo[playerid][Saldo]);
  291.                 SendClientMessage(playerid, Verde, string);
  292.                 PlayerPlaySound(playerid, 1130, 0.0, 0.0, 10.0);
  293.             }
  294.         }
  295.     }
  296.     return 1;
  297. }
  298.  
  299. public OnPlayerCommandText(playerid, cmdtext[])
  300. {
  301.     if (strcmp("/fsdebug", cmdtext, true, 10) == 0)
  302.     {
  303.         SetPlayerPos(playerid, 1113.6282,-1836.1163,16.6000);
  304.         printf("Senha do banco: %d. Dinheiro da mao: %d Saldo bancario: %d", bInfo[playerid][Senha], bInfo[playerid][Dinheiro], bInfo[playerid][Saldo]);
  305.         return 1;
  306.     }
  307.     return 0;
  308. }
  309.  
  310. stock Salvar(playerid)
  311. {
  312.     if(!DOF2_FileExists(Contas(playerid)))
  313.     {
  314.         DOF2_CreateFile(Contas(playerid));
  315.         Salvar(playerid);
  316.         return 1;
  317.     }
  318.  
  319.     DOF2_SetInt(Contas(playerid),"Senha",       bInfo[playerid][Senha] );
  320.     DOF2_SetInt(Contas(playerid),"Saldo",       bInfo[playerid][Saldo] );
  321.     DOF2_SetBool(Contas(playerid),"Cadastrado", bInfo[playerid][Cadastrado]);
  322.     DOF2_SetInt(Contas(playerid),"Dinheiro",    bInfo[playerid][Dinheiro]);
  323.  
  324.     DOF2_SaveFile();
  325.     return 1;
  326. }
  327.  
  328. stock Load(playerid)
  329. {
  330.     bInfo[playerid][Senha]      =   DOF2_GetInt(Contas(playerid), "Senha");
  331.     bInfo[playerid][Saldo]      =   DOF2_GetInt(Contas(playerid), "Saldo");
  332.     bInfo[playerid][Dinheiro]   =   DOF2_GetInt(Contas(playerid), "Dinheiro");
  333.     bInfo[playerid][Cadastrado] =   DOF2_GetBool(Contas(playerid), "Cadastrado");
  334.     return 1;
  335. }
  336.  
  337. stock Contas(playerid)
  338. {
  339.     new ArQ[50];
  340.     format(ArQ, 50, "Contas/%s.ini", pNome(playerid));
  341.     return ArQ;
  342. }
  343.  
  344. stock pNome(playerid)
  345. {
  346.     new name[MAX_PLAYER_NAME];
  347.     GetPlayerName(playerid, name, sizeof(name));
  348.     return name;
  349. }
  350.  
  351. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement