Guest User

Sistema de Cartão de Crédito v0.2 By: ProKillerPa

a guest
Apr 3rd, 2015
1,212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 17.86 KB | None | 0 0
  1. /*
  2. Filterscript: Sistema de Cartão de Crédito v0.2;
  3. Versão: v0.2 + Updates
  4. Desenvolvedor: ProKillerPa
  5.  
  6. Cláusulas:
  7.  
  8. * É Proibido a postagem desse filterscript em outros sites/blogs/etc
  9. * É Proibido a retirada dos créditos do criador do filterscript
  10. * Os possantes desse filterscript tem o direito de:
  11.     - Modificar os códigos
  12.     - Alterar Mensangens e derivados
  13.     - Entre outros que não violem ás citadas no tópico principal
  14.  
  15. * Possantes que seguirem as regras tem o direito de receber suporte do criador.
  16.  
  17. --------------------
  18.  
  19. Mensagem do desenvolvedor: Façam um bom uso desse filterscript pois foi desenvolvido com o melhor que há atualmente
  20. */
  21.  
  22. #include <a_samp>
  23. #include <YSI\y_commands>
  24.  
  25. #define CREATE_VOID:%1[%2](%3) public %1(%3)
  26.  
  27. #define stock%1[%3] stock%1(%3)
  28.  
  29.  
  30. #define T_FATURA 10
  31.  
  32. new DB:newCard;
  33. new DB:BuyLogs;
  34.  
  35. new bool:LoginOK[MAX_PLAYERS],
  36.     FaturaVencida[MAX_PLAYERS],
  37.     TypeConsult[MAX_PLAYERS],
  38.     Luz[MAX_PLAYERS],
  39.     VencCard[MAX_PLAYERS]
  40. ;
  41.  
  42. forward LoadPlayerCard(playerid);
  43. forward Autentic(playerid, pass[]);
  44.  
  45. enum E_DATA{
  46.     Proprietario[24],
  47.     Cartao, // [ true = tem | false = nao tem ]
  48.     Devendo, // [ true = tem | false = nao tem ]
  49.     PagamentoOK,
  50.     Divida,
  51.  
  52.     CompraDia,
  53.     CompraMes,
  54.     CompraAno,
  55.  
  56.     NumberPass,
  57.     ClienteDesde,
  58.     CodPorterA,
  59.     CodPorterB,
  60.     Identificador,
  61.     Conta,
  62.     Type[20]
  63. }; new gPlayerData[MAX_PLAYERS][E_DATA];
  64.  
  65. enum E_LOGS{
  66.     Compra1[50],
  67.     Compra1Valor
  68. }; new E_BUY[MAX_PLAYERS][E_LOGS];
  69.  
  70.  
  71. enum {
  72.     DIALOG_TYPECARD,
  73.     CREATE_PASS,
  74.     DIALOG_MYCARD,
  75.     DIALOG_INFOCARD,
  76.     DIALOG_COMPRAR,
  77.     DIALOG_CONFIRM,
  78.     DIALOG_AUTENTIC,
  79.     DIALOG_CHANGEPASS,
  80.     DIALOG_LOGS
  81.    
  82. };
  83.  
  84. CREATE_VOID:OnFilterScriptInit["N"](){
  85.     newCard = db_open("Credit.db");
  86.     db_query(newCard,"CREATE TABLE IF NOT EXISTS `CARD_USERS` (`Proprietario`,`NumberPass`,`Type`,`Cod01`,`Cod02`,`Identificador`,`Conta`,`Cartao`, `Devendo`, `PagtoOK`, `CompraDia`, `CompraMes`, `CompraAno`)");
  87.  
  88.  
  89.     BuyLogs = db_open("logs.db");
  90.     db_query(BuyLogs,"CREATE TABLE IF NOT EXISTS `LOG_USERS` (`Dono`,`Compra1`,`Compra2`,`Compra3`,`Compra4`,`Compra5`,`Compra6`,`Compra1Data`,`Compra2Data`, `Compra3Data`, `Compra4Data`, `Compra5Data`, `Compra6Data`, `Compra1Valor`, `Compra2Valor`, `Compra3Valor`, `Compra4Valor`, `Compra5Valor`, `Compra6Valor`)");
  91.     return 1;
  92. }
  93.  
  94. CREATE_VOID:OnFilterScriptExit["N"](){
  95.     db_close(newCard);
  96.     return 1;
  97. }
  98.  
  99.  
  100. CREATE_VOID:OnDialogResponse["iiiis"](playerid, dialogid, response, listitem, inputtext[]){
  101.     switch(dialogid){
  102.         case DIALOG_AUTENTIC:{
  103.             if(!response) return 1;
  104.  
  105.             Autentic(playerid, inputtext);
  106.  
  107.             if(TypeConsult[playerid] == 1) LoadPlayerCard(playerid);
  108.             else if(TypeConsult[playerid] == 2) ShowPlayerDialog(playerid, DIALOG_COMPRAR, DIALOG_STYLE_LIST, "Comprar", "Produto 01\nProduto 02\nProduto 03\nProduto 04", "Continuar", "Fechar");
  109.  
  110.         }
  111.         case DIALOG_CHANGEPASS:{
  112.             if(!response) return 1;
  113.             new Query[270];
  114.  
  115.             format(Query ,sizeof(Query), "UPDATE `CARD_USERS` SET `NumberPass` = '%d' WHERE `Proprietario` = '%s'", strval(inputtext), DB_Escape(PlayerName(playerid)));
  116.             db_free_result(db_query(newCard, Query));
  117.        
  118.             SendClientMessage(playerid, -1, "|INFO| Senha do cartão alterada com sucesso!");
  119.         }
  120.         case DIALOG_COMPRAR:{
  121.             switch(listitem){
  122.                 case 0:{
  123.                     new _var[256];
  124.  
  125.                     format(_var, sizeof(_var), "Deseja comprar esse produto com seu cartão de crédito?\n\n Valor: 150,00\n\nClique em Confirmar para finalizar a compra!");
  126.                     ShowPlayerDialog(playerid, DIALOG_CONFIRM, DIALOG_STYLE_MSGBOX, "Finalizar Compra", _var, "Comprar", "Cancelar");
  127.                 }
  128.             }
  129.         }
  130.         case DIALOG_CONFIRM:{
  131.             if(!response)
  132.                 return 1;
  133.  
  134.             new dBuy, mBuy, aBuy;
  135.            
  136.             getdate(aBuy, mBuy, dBuy);
  137.  
  138.             FinalizarVenda(playerid, "Eletronicos", "Televisão", 10, 2500, dBuy, mBuy, aBuy);
  139.  
  140.         }
  141.         case DIALOG_MYCARD:{
  142.             switch(listitem){
  143.                 case 0: {
  144.                     // Mostrar TXD aqui
  145.                     SendClientMessage(playerid, -1, "Disponível somente na versão 2.1 desse filterscript!");
  146.                 }
  147.                 case 1:{
  148.                     new Var[2000], Var1[256], Var2[256], Var3[256], Dono[25], End[10], PagaOK[15];
  149.  
  150.                     GetPlayerName(playerid, Dono, 24);
  151.  
  152.                     if(gPlayerData[playerid][Devendo] == 1) End = "Sim"; else End = "Não";
  153.                     if(gPlayerData[playerid][PagamentoOK] == 1) PagaOK = "Em Dia"; else PagaOK = "Atrasado";
  154.  
  155.  
  156.  
  157.                     format(Var1, sizeof(Var1), "{BEBEBE}Veja Informações abaixo sobre seu cartão de crédito pessoal!\n\n{BEBEBE}Dono: {FA8072}%s\n{BEBEBE}Negativado: {FA8072}%s\n{BEBEBE}Pagamento: {FA8072}%s", gPlayerData[playerid][Proprietario], End, PagaOK);
  158.                     format(Var2, sizeof(Var2), "\n{BEBEBE}Ultima Compra: {FA8072}%d/%d/%d\n{BEBEBE}Limite: {32CD32}R$6000,00\n\n{DAA520}Informações Pessoais:", gPlayerData[playerid][CompraDia], gPlayerData[playerid][CompraMes], gPlayerData[playerid][CompraAno]);
  159.                     format(Var3, sizeof(Var3), "\n\n{BEBEBE}Conta: {FA8072}%d-%d\n{BEBEBE}N° Cartão: {FA8072}4251.1247.%d.%d\n{BEBEBE}Cartão: {FA8072}%s", gPlayerData[playerid][Conta], gPlayerData[playerid][Identificador], gPlayerData[playerid][CodPorterA], gPlayerData[playerid][CodPorterB], gPlayerData[playerid][Type]);
  160.  
  161.  
  162.                     strcat(Var, Var1);
  163.                     strcat(Var, Var2);
  164.                     strcat(Var, Var3);
  165.  
  166.                     ShowPlayerDialog(playerid, DIALOG_INFOCARD, DIALOG_STYLE_MSGBOX, "Informações!", Var, "Fechar", "");
  167.  
  168.                 }
  169.                 case 2:{
  170.                     if(!response) return 1;
  171.                     ShowPlayerDialog(playerid, DIALOG_CHANGEPASS, DIALOG_STYLE_PASSWORD, "Trocar Senha", "Digite uma senha abaixo para alterar a atual!", "Continuar", "Cancelar");
  172.                 }
  173.                 case 3:{
  174.                     new var[200];
  175.                    
  176.                     format(var, sizeof(var), "Produto Comprado: %s\nValor do Produto: R$%d,00\nData da Compra: Indisponível\n--------\n\nEm Breve poderá ser visto mais compras.", E_BUY[playerid][Compra1], E_BUY[playerid][Compra1Valor]);
  177.                     ShowPlayerDialog(playerid, DIALOG_LOGS, DIALOG_STYLE_MSGBOX, "Ultimas Compras", var, "Sair", "");
  178.  
  179.                 }
  180.                 case 4:{
  181.                     if(!FaturaVencida[playerid]) return SendClientMessage(playerid, -1, "| INFO | Você não possui contas debitadas no cartão!");
  182.                    
  183.                     new gMoney;
  184.                    
  185.                     gMoney = GetPlayerMoney(playerid);
  186.                    
  187.                     if(gMoney < gPlayerData[playerid][Divida]) return 1;
  188.                    
  189.                     GivePlayerMoney(playerid, gMoney - gPlayerData[playerid][Divida]);
  190.                    
  191.                     SendClientMessage(playerid, -1, "Uma parcela da compra paga com sucesso!");
  192.                 }
  193.             }
  194.         }
  195.         case CREATE_PASS:{
  196.             new Query[270];
  197.            
  198.             if(!response) {
  199.                 format(Query,sizeof Query,"INSERT INTO `CARD_USERS` (`Proprietario`, `Type`,`Cartao`) VALUES('%s', 'Nenhum', '0')", DB_Escape(PlayerName(playerid)));
  200.                 db_query(newCard, Query);
  201.  
  202.                 return 1;
  203.             }
  204.  
  205.             new CodPorter1, CodPorter2, Ident, ContaE;
  206.  
  207.             CodPorter1 = random(5000);
  208.             CodPorter2 = random(5000);
  209.             Ident = random(40);
  210.             ContaE = random(5000);
  211.            
  212.             if(CodPorter1 < 1000) CodPorter1 = random(5000);
  213.             if(CodPorter2 < 1000) CodPorter2 = random(5000);
  214.             if(Ident < 10) Ident = random(40);
  215.             if(ContaE < 1000) ContaE = random(5000);
  216.  
  217.             new TypeCard[15];
  218.            
  219.             switch(Luz[playerid]){
  220.                 case 1: TypeCard = "Master Card";
  221.                 case 2: TypeCard = "Visa";
  222.                 default: TypeCard = "Cielo";
  223.             }
  224.  
  225.             format(Query,sizeof Query,"INSERT INTO `CARD_USERS` (`Proprietario`,`NumberPass`,`Type`,`Cod01`,`Cod02`,`Identificador`,`Conta`,`Cartao`, `Devendo`, `PagtoOK`, `CompraDia`, `CompraMes`, `CompraAno`) VALUES('%s','%d','%s','%d','%d','%d',\
  226.             '%d','1', '0', '1', '00', '00', '00')",DB_Escape(PlayerName(playerid)),strval(inputtext), TypeCard,CodPorter1, CodPorter2, Ident, ContaE);
  227.             db_query(newCard, Query);
  228.  
  229.             new QueryX[110];
  230.  
  231.             format(QueryX, sizeof(QueryX), "INSERT INTO `LOG_USERS` (`Dono`, `Compra1`, `Compra1Valor`) VALUES('%s', '%s', '%d')", DB_Escape(PlayerName(playerid)), "Nada", 5000);
  232.             db_query(BuyLogs, QueryX);
  233.  
  234.             CodPorter1 = 0, CodPorter2 = 0, Ident = 0, ContaE = 0, Luz[playerid] = 0;
  235.  
  236.             SendClientMessage(playerid, -1, "Cartão obtido com sucesso! Digite /meucartao para mais informações sobre o cartão!");
  237.         }
  238.         case DIALOG_TYPECARD:{
  239.             if(!response) return 1;
  240.            
  241.             if(gPlayerData[playerid][Cartao] == 1)
  242.                 return SendClientMessage(playerid, -1, "Já tem cartão!");
  243.                
  244.             switch(listitem){
  245.                 case 0:{
  246.                     ShowPlayerDialog(playerid, CREATE_PASS, DIALOG_STYLE_PASSWORD, "Escolha uma Senha!", "Digite uma senha do seu cartão de crédito:", "Continuar", "Sair");
  247.  
  248.                     Luz[playerid] = 1;
  249.  
  250.                }
  251.                 case 1:{
  252.                     ShowPlayerDialog(playerid, CREATE_PASS, DIALOG_STYLE_PASSWORD, "Escolha uma Senha!", "SENHA:", "S", "");
  253.  
  254.                     Luz[playerid] = 2;
  255.                 }
  256.                 case 2:{
  257.                     ShowPlayerDialog(playerid, CREATE_PASS, DIALOG_STYLE_PASSWORD, "Escolha uma Senha!", "SENHA:", "S", "");
  258.                 }
  259.             }
  260.         }
  261.     }
  262.     return 1;
  263. }
  264.  
  265. YCMD:creditos(playerid, params[], help){
  266.     #pragma unused params, help
  267.    
  268.     SendClientMessage(playerid, -1, "Filterscript Cartão de Crédito desenvolvido por ProKillerPa!");
  269.     return 1;
  270. }
  271.  
  272. YCMD:comprar(playerid, params[], help){
  273.     #pragma unused params, help
  274.     TypeConsult[playerid] = 2;
  275.  
  276.     ShowPlayerDialog(playerid, DIALOG_AUTENTIC, DIALOG_STYLE_PASSWORD, "{BEBEBE}Autenticação!", "Digite senha abaixo:", "Continuar", "Fechar");
  277.     return 1;
  278. }
  279.  
  280. YCMD:meucartao(playerid, params[], help){
  281.     #pragma unused params, help
  282.    
  283.     TypeConsult[playerid] = 1;
  284.    
  285.     ShowPlayerDialog(playerid, DIALOG_AUTENTIC, DIALOG_STYLE_PASSWORD, "{BEBEBE}Autenticação!", "Digite senha abaixo:", "Continuar", "Fechar");
  286.  
  287.     return 1;
  288. }
  289.  
  290.  
  291. public Autentic(playerid, pass[]){
  292.     new Query[270], DBResult:Resultado;
  293.     format(Query,sizeof Query,"SELECT * FROM `CARD_USERS` WHERE `Proprietario` = '%s' AND `NumberPass` = '%d'", DB_Escape(PlayerName(playerid)), pass);
  294.     Resultado = db_query(newCard, Query);
  295.  
  296.     if(db_num_rows(Resultado)){
  297.         LoginOK[playerid] = true;
  298.     } else LoginOK[playerid] = false;
  299.  
  300.     return LoginOK[playerid];
  301. }
  302.  
  303. YCMD:adquirircartao(playerid, params[], help){
  304.     #pragma unused params, help
  305.  
  306.     new _var[256];
  307.  
  308.     strcat(_var, "{FA8072}Master Card{BEBEBE} - Juros Mensais: 6,6%");
  309.     strcat(_var, "\n{FA8072}Visa {BEBEBE}- Juros Mensais: 6,1%");
  310.     strcat(_var, "\n{FA8072}Cielo {BEBEBE}- Juros Mensais: 6,5%");
  311.     strcat(_var, "\n{FFD700}Está em duvida de qual escolher? Clique Aqui!");
  312.  
  313.     ShowPlayerDialog(playerid, DIALOG_TYPECARD, DIALOG_STYLE_LIST, "Cartões Disponíveis:", _var, "Continuar", "Cancelar");
  314.     return 1;
  315. }
  316.  
  317.  
  318. forward LoadPlayerLogs(playerid);
  319. public LoadPlayerLogs(playerid){
  320.     new DBResult: Resultado, Query[270];
  321.  
  322.     format(Query,sizeof Query,"SELECT * FROM `LOG_USERS` WHERE `Dono` = '%s'", PlayerName(playerid));
  323.     Resultado = db_query(BuyLogs, Query);
  324.  
  325.     if(db_num_rows(Resultado)){
  326.         new ColectA[100], ColectX[50];
  327.  
  328.         db_get_field_assoc(Resultado, "Compra1", ColectA, 100);
  329.         format(E_BUY[playerid][Compra1], 100, ColectA);
  330.  
  331.         db_get_field_assoc(Resultado, "Compra1Valor", ColectX, 50);
  332.         E_BUY[playerid][Compra1Valor] = strval(ColectX);
  333.        
  334.     } else printf("Debug: Houve um problema no carregamento de Logs de %s. Avise o responsável!", PlayerName(playerid));
  335.  
  336.     return 1;
  337. }
  338. public LoadPlayerCard(playerid){
  339.     new DBResult: Resultado, Query[270];
  340.    
  341.     format(Query,sizeof Query,"SELECT * FROM `CARD_USERS` WHERE `Proprietario` = '%s'",DB_Escape(PlayerName(playerid)));
  342.     Resultado = db_query(newCard, Query);
  343.  
  344.     if(db_num_rows(Resultado)){
  345.     new Colect[50], xColect[100];
  346.    
  347.     db_get_field_assoc(Resultado, "Proprietario", xColect, 100);
  348.     format(gPlayerData[playerid][Proprietario], 100, xColect);
  349.    
  350.     db_get_field_assoc(Resultado, "NumberPass", Colect, 50);
  351.     gPlayerData[playerid][NumberPass] = strval(Colect);
  352.    
  353.     db_get_field_assoc(Resultado, "Type", xColect, 100);
  354.     format(gPlayerData[playerid][Type], 100, xColect);
  355.    
  356.     db_get_field_assoc(Resultado, "Cod01", Colect, 50);
  357.     gPlayerData[playerid][CodPorterA] = strval(Colect);
  358.    
  359.     db_get_field_assoc(Resultado, "Cod02", Colect, 50);
  360.     gPlayerData[playerid][CodPorterB] = strval(Colect);
  361.  
  362.     db_get_field_assoc(Resultado, "Identificador", Colect, 50);
  363.     gPlayerData[playerid][Identificador] = strval(Colect);
  364.  
  365.     db_get_field_assoc(Resultado, "Conta", Colect, 50);
  366.     gPlayerData[playerid][Conta] = strval(Colect);
  367.  
  368.     db_get_field_assoc(Resultado, "Devendo", Colect, 50);
  369.     gPlayerData[playerid][Devendo] = strval(Colect);
  370.    
  371.     db_get_field_assoc(Resultado, "PagtoOK", Colect, 50);
  372.     gPlayerData[playerid][PagamentoOK] = strval(Colect);
  373.    
  374.     db_get_field_assoc(Resultado, "CompraDia", Colect, 50);
  375.     gPlayerData[playerid][CompraDia] = strval(Colect);
  376.  
  377.     db_get_field_assoc(Resultado, "CompraMes", Colect, 50);
  378.     gPlayerData[playerid][CompraMes] = strval(Colect);
  379.    
  380.     db_get_field_assoc(Resultado, "CompraAno", Colect, 50);
  381.     gPlayerData[playerid][CompraAno] = strval(Colect);
  382.    
  383.     db_get_field_assoc(Resultado, "Divida", Colect, 50);
  384.     gPlayerData[playerid][Divida] = strval(Colect);
  385.  
  386.     db_get_field_assoc(Resultado, "Cartao", Colect, 50);
  387.     gPlayerData[playerid][Cartao] = strval(Colect);
  388.  
  389.     ShowPlayerDialog(playerid, DIALOG_MYCARD, DIALOG_STYLE_LIST, "{BEBEBE}Menu do Cartão!", "{BEBEBE}Ver Cartão\n{BEBEBE}Ver Informações\n{BEBEBE}Trocar Senha\n{BEBEBE}Ultimas Movimentações\nPagar Fatura", "Continuar", "Fechar");
  390.  
  391.     }
  392.     return 1;
  393. }
  394.  
  395. forward FinalizarVenda(playerid, type[], product[], value, Pgto, dBuy, mBuy, aBuy);
  396. public FinalizarVenda(playerid, type[], product[], value, Pgto, dBuy, mBuy, aBuy){
  397.  
  398.     new Query[270];
  399.  
  400.     format(Query ,sizeof(Query), "UPDATE `CARD_USERS` SET `PagtoOK` = '0' WHERE `Proprietario` = '%s'", DB_Escape(PlayerName(playerid)));
  401.     db_free_result(db_query(newCard, Query));
  402.    
  403.     format(Query ,sizeof(Query), "UPDATE `CARD_USERS` SET `Devendo` = '1' WHERE `Proprietario` = '%s'", DB_Escape(PlayerName(playerid)));
  404.     db_free_result(db_query(newCard, Query));
  405.  
  406.     format(Query ,sizeof(Query), "UPDATE `CARD_USERS` SET `CompraDia` = '%d' WHERE `Proprietario` = '%s'", dBuy, DB_Escape(PlayerName(playerid)));
  407.     db_free_result(db_query(newCard, Query));
  408.  
  409.     format(Query ,sizeof(Query), "UPDATE `CARD_USERS` SET `CompraMes` = '%d' WHERE `Proprietario` = '%s'", mBuy, DB_Escape(PlayerName(playerid)));
  410.     db_free_result(db_query(newCard, Query));
  411.    
  412.     format(Query ,sizeof(Query), "UPDATE `CARD_USERS` SET `CompraAno` = '%d' WHERE `Proprietario` = '%s'", aBuy, DB_Escape(PlayerName(playerid)));
  413.     db_free_result(db_query(newCard, Query));
  414.  
  415.     new data[50];
  416.    
  417.     format(data, sizeof(data), "%d/%d/%d", dBuy, mBuy, aBuy);
  418.  
  419.     if(!strcmp("Nada", E_BUY[playerid][Compra1])){
  420.         new _Query[110];
  421.  
  422.         format(Query ,sizeof(Query), "UPDATE `LOG_USERS` SET `Compra1` = '%s' WHERE `Dono` = '%s'", product, DB_Escape(PlayerName(playerid)));
  423.         db_free_result(db_query(BuyLogs, _Query));
  424.  
  425.         format(Query ,sizeof(Query), "UPDATE `LOG_USERS` SET `Compra1Valor` = '%d' WHERE `Proprietario` = '%s'", value, DB_Escape(PlayerName(playerid)));
  426.         db_free_result(db_query(BuyLogs, _Query));
  427.  
  428.         format(Query ,sizeof(Query), "UPDATE `LOG_USERS` SET `Compra1Data` = '%s' WHERE `Proprietario` = '%s'", data, DB_Escape(PlayerName(playerid)));
  429.         db_free_result(db_query(BuyLogs, _Query));
  430.  
  431.         new _var[200];
  432.  
  433.         format(_var, sizeof(_var), "Compra realizada com sucesso, veja as informações abaixo:\n\nProduto: %s\nTipo: %s\nVezes Parcelado: %d\n");
  434.  
  435.         new Fatura;
  436.  
  437.         Fatura = T_FATURA;
  438.  
  439.         VencCard[playerid] = gettime() + (Fatura * 24 * 60 * 60);
  440.  
  441.     }
  442.  
  443.     return 1;
  444. }
  445.  
  446. stock PlayerName(playerid){
  447.     new Nome[25]; GetPlayerName(playerid,Nome,25);
  448.     return Nome;
  449. }
  450.  
  451. public OnPlayerConnect(playerid){
  452.     new DBResult: Resultado, Query[50], Colect[50];
  453.  
  454.     format(Query,sizeof Query,"SELECT * FROM `CARD_USERS` WHERE `Proprietario` = '%s'",DB_Escape(PlayerName(playerid)));
  455.     Resultado = db_query(newCard, Query);
  456.    
  457.     db_get_field_assoc(Resultado, "Devendo", Colect, 50);
  458.     gPlayerData[playerid][Devendo] = strval(Colect);
  459.  
  460.     if(gettime() >= VencCard[playerid] && gPlayerData[playerid][Devendo] == 1){
  461.         SendClientMessage(playerid, -1, "|AVISO| A Fatura do seu cartão chegou, pague-a antes de deslogar novamente para evitar multas!");
  462.         FaturaVencida[playerid] = 1;
  463.     }
  464.    
  465.     LoadPlayerLogs(playerid);
  466.     return 1;
  467. }
  468.  
  469. public OnPlayerDisconnect(playerid, reason){
  470.     if(FaturaVencida[playerid] == 1){
  471.         // Aplicar punição por vencimento, Ex: Juros
  472.     }
  473.     return 1;
  474. }
  475.  
  476. stock DB_Escape(text[])
  477. {
  478.     new
  479.     ret[80 * 2],
  480.     ch,
  481.     i,
  482.     j;
  483.     while ((ch = text[i++]) && j < sizeof (ret))
  484.     {
  485.  
  486.         if (ch == '\'')
  487.         {
  488.  
  489.             if (j < sizeof (ret) - 2)
  490.             {
  491.  
  492.                 ret[j++] = '\'';
  493.                 ret[j++] = '\'';
  494.             }
  495.         }
  496.         else if (j < sizeof (ret))
  497.         {
  498.  
  499.             ret[j++] = ch;
  500.         }
  501.         else
  502.         {
  503.  
  504.             j++;
  505.         }
  506.     }
  507.     ret[sizeof (ret) - 1] = '\0';
  508.     return ret;
  509. }
  510.  
  511. /*
  512. Filterscript: Sistema de Cartão de Crédito v0.2;
  513. Versão: v0.2 + Updates
  514. Desenvolvedor: ProKillerPa
  515.  
  516. Cláusulas:
  517.  
  518. * É Proibido a postagem desse filterscript em outros sites/blogs/etc
  519. * É Proibido a retirada dos créditos do criador do filterscript
  520. * Os possantes desse filterscript tem o direito de:
  521.     - Modificar os códigos
  522.     - Alterar Mensangens e derivados
  523.     - Entre outros que não violem ás citadas no tópico principal
  524.  
  525. * Possantes que seguirem as regras tem o direito de receber suporte do criador.
  526.  
  527. --------------------
  528.  
  529. Mensagem do desenvolvedor: Façam um bom uso desse filterscript pois foi desenvolvido com o melhor que há atualmente
  530. */
Advertisement
Add Comment
Please, Sign In to add comment