Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Filterscript: Sistema de Cartão de Crédito v0.2;
- Versão: v0.2 + Updates
- Desenvolvedor: ProKillerPa
- Cláusulas:
- * É Proibido a postagem desse filterscript em outros sites/blogs/etc
- * É Proibido a retirada dos créditos do criador do filterscript
- * Os possantes desse filterscript tem o direito de:
- - Modificar os códigos
- - Alterar Mensangens e derivados
- - Entre outros que não violem ás citadas no tópico principal
- * Possantes que seguirem as regras tem o direito de receber suporte do criador.
- --------------------
- Mensagem do desenvolvedor: Façam um bom uso desse filterscript pois foi desenvolvido com o melhor que há atualmente
- */
- #include <a_samp>
- #include <YSI\y_commands>
- #define CREATE_VOID:%1[%2](%3) public %1(%3)
- #define stock%1[%3] stock%1(%3)
- #define T_FATURA 10
- new DB:newCard;
- new DB:BuyLogs;
- new bool:LoginOK[MAX_PLAYERS],
- FaturaVencida[MAX_PLAYERS],
- TypeConsult[MAX_PLAYERS],
- Luz[MAX_PLAYERS],
- VencCard[MAX_PLAYERS]
- ;
- forward LoadPlayerCard(playerid);
- forward Autentic(playerid, pass[]);
- enum E_DATA{
- Proprietario[24],
- Cartao, // [ true = tem | false = nao tem ]
- Devendo, // [ true = tem | false = nao tem ]
- PagamentoOK,
- Divida,
- CompraDia,
- CompraMes,
- CompraAno,
- NumberPass,
- ClienteDesde,
- CodPorterA,
- CodPorterB,
- Identificador,
- Conta,
- Type[20]
- }; new gPlayerData[MAX_PLAYERS][E_DATA];
- enum E_LOGS{
- Compra1[50],
- Compra1Valor
- }; new E_BUY[MAX_PLAYERS][E_LOGS];
- enum {
- DIALOG_TYPECARD,
- CREATE_PASS,
- DIALOG_MYCARD,
- DIALOG_INFOCARD,
- DIALOG_COMPRAR,
- DIALOG_CONFIRM,
- DIALOG_AUTENTIC,
- DIALOG_CHANGEPASS,
- DIALOG_LOGS
- };
- CREATE_VOID:OnFilterScriptInit["N"](){
- newCard = db_open("Credit.db");
- db_query(newCard,"CREATE TABLE IF NOT EXISTS `CARD_USERS` (`Proprietario`,`NumberPass`,`Type`,`Cod01`,`Cod02`,`Identificador`,`Conta`,`Cartao`, `Devendo`, `PagtoOK`, `CompraDia`, `CompraMes`, `CompraAno`)");
- BuyLogs = db_open("logs.db");
- 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`)");
- return 1;
- }
- CREATE_VOID:OnFilterScriptExit["N"](){
- db_close(newCard);
- return 1;
- }
- CREATE_VOID:OnDialogResponse["iiiis"](playerid, dialogid, response, listitem, inputtext[]){
- switch(dialogid){
- case DIALOG_AUTENTIC:{
- if(!response) return 1;
- Autentic(playerid, inputtext);
- if(TypeConsult[playerid] == 1) LoadPlayerCard(playerid);
- else if(TypeConsult[playerid] == 2) ShowPlayerDialog(playerid, DIALOG_COMPRAR, DIALOG_STYLE_LIST, "Comprar", "Produto 01\nProduto 02\nProduto 03\nProduto 04", "Continuar", "Fechar");
- }
- case DIALOG_CHANGEPASS:{
- if(!response) return 1;
- new Query[270];
- format(Query ,sizeof(Query), "UPDATE `CARD_USERS` SET `NumberPass` = '%d' WHERE `Proprietario` = '%s'", strval(inputtext), DB_Escape(PlayerName(playerid)));
- db_free_result(db_query(newCard, Query));
- SendClientMessage(playerid, -1, "|INFO| Senha do cartão alterada com sucesso!");
- }
- case DIALOG_COMPRAR:{
- switch(listitem){
- case 0:{
- new _var[256];
- 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!");
- ShowPlayerDialog(playerid, DIALOG_CONFIRM, DIALOG_STYLE_MSGBOX, "Finalizar Compra", _var, "Comprar", "Cancelar");
- }
- }
- }
- case DIALOG_CONFIRM:{
- if(!response)
- return 1;
- new dBuy, mBuy, aBuy;
- getdate(aBuy, mBuy, dBuy);
- FinalizarVenda(playerid, "Eletronicos", "Televisão", 10, 2500, dBuy, mBuy, aBuy);
- }
- case DIALOG_MYCARD:{
- switch(listitem){
- case 0: {
- // Mostrar TXD aqui
- SendClientMessage(playerid, -1, "Disponível somente na versão 2.1 desse filterscript!");
- }
- case 1:{
- new Var[2000], Var1[256], Var2[256], Var3[256], Dono[25], End[10], PagaOK[15];
- GetPlayerName(playerid, Dono, 24);
- if(gPlayerData[playerid][Devendo] == 1) End = "Sim"; else End = "Não";
- if(gPlayerData[playerid][PagamentoOK] == 1) PagaOK = "Em Dia"; else PagaOK = "Atrasado";
- 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);
- 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]);
- 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]);
- strcat(Var, Var1);
- strcat(Var, Var2);
- strcat(Var, Var3);
- ShowPlayerDialog(playerid, DIALOG_INFOCARD, DIALOG_STYLE_MSGBOX, "Informações!", Var, "Fechar", "");
- }
- case 2:{
- if(!response) return 1;
- ShowPlayerDialog(playerid, DIALOG_CHANGEPASS, DIALOG_STYLE_PASSWORD, "Trocar Senha", "Digite uma senha abaixo para alterar a atual!", "Continuar", "Cancelar");
- }
- case 3:{
- new var[200];
- 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]);
- ShowPlayerDialog(playerid, DIALOG_LOGS, DIALOG_STYLE_MSGBOX, "Ultimas Compras", var, "Sair", "");
- }
- case 4:{
- if(!FaturaVencida[playerid]) return SendClientMessage(playerid, -1, "| INFO | Você não possui contas debitadas no cartão!");
- new gMoney;
- gMoney = GetPlayerMoney(playerid);
- if(gMoney < gPlayerData[playerid][Divida]) return 1;
- GivePlayerMoney(playerid, gMoney - gPlayerData[playerid][Divida]);
- SendClientMessage(playerid, -1, "Uma parcela da compra paga com sucesso!");
- }
- }
- }
- case CREATE_PASS:{
- new Query[270];
- if(!response) {
- format(Query,sizeof Query,"INSERT INTO `CARD_USERS` (`Proprietario`, `Type`,`Cartao`) VALUES('%s', 'Nenhum', '0')", DB_Escape(PlayerName(playerid)));
- db_query(newCard, Query);
- return 1;
- }
- new CodPorter1, CodPorter2, Ident, ContaE;
- CodPorter1 = random(5000);
- CodPorter2 = random(5000);
- Ident = random(40);
- ContaE = random(5000);
- if(CodPorter1 < 1000) CodPorter1 = random(5000);
- if(CodPorter2 < 1000) CodPorter2 = random(5000);
- if(Ident < 10) Ident = random(40);
- if(ContaE < 1000) ContaE = random(5000);
- new TypeCard[15];
- switch(Luz[playerid]){
- case 1: TypeCard = "Master Card";
- case 2: TypeCard = "Visa";
- default: TypeCard = "Cielo";
- }
- 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',\
- '%d','1', '0', '1', '00', '00', '00')",DB_Escape(PlayerName(playerid)),strval(inputtext), TypeCard,CodPorter1, CodPorter2, Ident, ContaE);
- db_query(newCard, Query);
- new QueryX[110];
- format(QueryX, sizeof(QueryX), "INSERT INTO `LOG_USERS` (`Dono`, `Compra1`, `Compra1Valor`) VALUES('%s', '%s', '%d')", DB_Escape(PlayerName(playerid)), "Nada", 5000);
- db_query(BuyLogs, QueryX);
- CodPorter1 = 0, CodPorter2 = 0, Ident = 0, ContaE = 0, Luz[playerid] = 0;
- SendClientMessage(playerid, -1, "Cartão obtido com sucesso! Digite /meucartao para mais informações sobre o cartão!");
- }
- case DIALOG_TYPECARD:{
- if(!response) return 1;
- if(gPlayerData[playerid][Cartao] == 1)
- return SendClientMessage(playerid, -1, "Já tem cartão!");
- switch(listitem){
- case 0:{
- ShowPlayerDialog(playerid, CREATE_PASS, DIALOG_STYLE_PASSWORD, "Escolha uma Senha!", "Digite uma senha do seu cartão de crédito:", "Continuar", "Sair");
- Luz[playerid] = 1;
- }
- case 1:{
- ShowPlayerDialog(playerid, CREATE_PASS, DIALOG_STYLE_PASSWORD, "Escolha uma Senha!", "SENHA:", "S", "");
- Luz[playerid] = 2;
- }
- case 2:{
- ShowPlayerDialog(playerid, CREATE_PASS, DIALOG_STYLE_PASSWORD, "Escolha uma Senha!", "SENHA:", "S", "");
- }
- }
- }
- }
- return 1;
- }
- YCMD:creditos(playerid, params[], help){
- #pragma unused params, help
- SendClientMessage(playerid, -1, "Filterscript Cartão de Crédito desenvolvido por ProKillerPa!");
- return 1;
- }
- YCMD:comprar(playerid, params[], help){
- #pragma unused params, help
- TypeConsult[playerid] = 2;
- ShowPlayerDialog(playerid, DIALOG_AUTENTIC, DIALOG_STYLE_PASSWORD, "{BEBEBE}Autenticação!", "Digite senha abaixo:", "Continuar", "Fechar");
- return 1;
- }
- YCMD:meucartao(playerid, params[], help){
- #pragma unused params, help
- TypeConsult[playerid] = 1;
- ShowPlayerDialog(playerid, DIALOG_AUTENTIC, DIALOG_STYLE_PASSWORD, "{BEBEBE}Autenticação!", "Digite senha abaixo:", "Continuar", "Fechar");
- return 1;
- }
- public Autentic(playerid, pass[]){
- new Query[270], DBResult:Resultado;
- format(Query,sizeof Query,"SELECT * FROM `CARD_USERS` WHERE `Proprietario` = '%s' AND `NumberPass` = '%d'", DB_Escape(PlayerName(playerid)), pass);
- Resultado = db_query(newCard, Query);
- if(db_num_rows(Resultado)){
- LoginOK[playerid] = true;
- } else LoginOK[playerid] = false;
- return LoginOK[playerid];
- }
- YCMD:adquirircartao(playerid, params[], help){
- #pragma unused params, help
- new _var[256];
- strcat(_var, "{FA8072}Master Card{BEBEBE} - Juros Mensais: 6,6%");
- strcat(_var, "\n{FA8072}Visa {BEBEBE}- Juros Mensais: 6,1%");
- strcat(_var, "\n{FA8072}Cielo {BEBEBE}- Juros Mensais: 6,5%");
- strcat(_var, "\n{FFD700}Está em duvida de qual escolher? Clique Aqui!");
- ShowPlayerDialog(playerid, DIALOG_TYPECARD, DIALOG_STYLE_LIST, "Cartões Disponíveis:", _var, "Continuar", "Cancelar");
- return 1;
- }
- forward LoadPlayerLogs(playerid);
- public LoadPlayerLogs(playerid){
- new DBResult: Resultado, Query[270];
- format(Query,sizeof Query,"SELECT * FROM `LOG_USERS` WHERE `Dono` = '%s'", PlayerName(playerid));
- Resultado = db_query(BuyLogs, Query);
- if(db_num_rows(Resultado)){
- new ColectA[100], ColectX[50];
- db_get_field_assoc(Resultado, "Compra1", ColectA, 100);
- format(E_BUY[playerid][Compra1], 100, ColectA);
- db_get_field_assoc(Resultado, "Compra1Valor", ColectX, 50);
- E_BUY[playerid][Compra1Valor] = strval(ColectX);
- } else printf("Debug: Houve um problema no carregamento de Logs de %s. Avise o responsável!", PlayerName(playerid));
- return 1;
- }
- public LoadPlayerCard(playerid){
- new DBResult: Resultado, Query[270];
- format(Query,sizeof Query,"SELECT * FROM `CARD_USERS` WHERE `Proprietario` = '%s'",DB_Escape(PlayerName(playerid)));
- Resultado = db_query(newCard, Query);
- if(db_num_rows(Resultado)){
- new Colect[50], xColect[100];
- db_get_field_assoc(Resultado, "Proprietario", xColect, 100);
- format(gPlayerData[playerid][Proprietario], 100, xColect);
- db_get_field_assoc(Resultado, "NumberPass", Colect, 50);
- gPlayerData[playerid][NumberPass] = strval(Colect);
- db_get_field_assoc(Resultado, "Type", xColect, 100);
- format(gPlayerData[playerid][Type], 100, xColect);
- db_get_field_assoc(Resultado, "Cod01", Colect, 50);
- gPlayerData[playerid][CodPorterA] = strval(Colect);
- db_get_field_assoc(Resultado, "Cod02", Colect, 50);
- gPlayerData[playerid][CodPorterB] = strval(Colect);
- db_get_field_assoc(Resultado, "Identificador", Colect, 50);
- gPlayerData[playerid][Identificador] = strval(Colect);
- db_get_field_assoc(Resultado, "Conta", Colect, 50);
- gPlayerData[playerid][Conta] = strval(Colect);
- db_get_field_assoc(Resultado, "Devendo", Colect, 50);
- gPlayerData[playerid][Devendo] = strval(Colect);
- db_get_field_assoc(Resultado, "PagtoOK", Colect, 50);
- gPlayerData[playerid][PagamentoOK] = strval(Colect);
- db_get_field_assoc(Resultado, "CompraDia", Colect, 50);
- gPlayerData[playerid][CompraDia] = strval(Colect);
- db_get_field_assoc(Resultado, "CompraMes", Colect, 50);
- gPlayerData[playerid][CompraMes] = strval(Colect);
- db_get_field_assoc(Resultado, "CompraAno", Colect, 50);
- gPlayerData[playerid][CompraAno] = strval(Colect);
- db_get_field_assoc(Resultado, "Divida", Colect, 50);
- gPlayerData[playerid][Divida] = strval(Colect);
- db_get_field_assoc(Resultado, "Cartao", Colect, 50);
- gPlayerData[playerid][Cartao] = strval(Colect);
- 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");
- }
- return 1;
- }
- forward FinalizarVenda(playerid, type[], product[], value, Pgto, dBuy, mBuy, aBuy);
- public FinalizarVenda(playerid, type[], product[], value, Pgto, dBuy, mBuy, aBuy){
- new Query[270];
- format(Query ,sizeof(Query), "UPDATE `CARD_USERS` SET `PagtoOK` = '0' WHERE `Proprietario` = '%s'", DB_Escape(PlayerName(playerid)));
- db_free_result(db_query(newCard, Query));
- format(Query ,sizeof(Query), "UPDATE `CARD_USERS` SET `Devendo` = '1' WHERE `Proprietario` = '%s'", DB_Escape(PlayerName(playerid)));
- db_free_result(db_query(newCard, Query));
- format(Query ,sizeof(Query), "UPDATE `CARD_USERS` SET `CompraDia` = '%d' WHERE `Proprietario` = '%s'", dBuy, DB_Escape(PlayerName(playerid)));
- db_free_result(db_query(newCard, Query));
- format(Query ,sizeof(Query), "UPDATE `CARD_USERS` SET `CompraMes` = '%d' WHERE `Proprietario` = '%s'", mBuy, DB_Escape(PlayerName(playerid)));
- db_free_result(db_query(newCard, Query));
- format(Query ,sizeof(Query), "UPDATE `CARD_USERS` SET `CompraAno` = '%d' WHERE `Proprietario` = '%s'", aBuy, DB_Escape(PlayerName(playerid)));
- db_free_result(db_query(newCard, Query));
- new data[50];
- format(data, sizeof(data), "%d/%d/%d", dBuy, mBuy, aBuy);
- if(!strcmp("Nada", E_BUY[playerid][Compra1])){
- new _Query[110];
- format(Query ,sizeof(Query), "UPDATE `LOG_USERS` SET `Compra1` = '%s' WHERE `Dono` = '%s'", product, DB_Escape(PlayerName(playerid)));
- db_free_result(db_query(BuyLogs, _Query));
- format(Query ,sizeof(Query), "UPDATE `LOG_USERS` SET `Compra1Valor` = '%d' WHERE `Proprietario` = '%s'", value, DB_Escape(PlayerName(playerid)));
- db_free_result(db_query(BuyLogs, _Query));
- format(Query ,sizeof(Query), "UPDATE `LOG_USERS` SET `Compra1Data` = '%s' WHERE `Proprietario` = '%s'", data, DB_Escape(PlayerName(playerid)));
- db_free_result(db_query(BuyLogs, _Query));
- new _var[200];
- format(_var, sizeof(_var), "Compra realizada com sucesso, veja as informações abaixo:\n\nProduto: %s\nTipo: %s\nVezes Parcelado: %d\n");
- new Fatura;
- Fatura = T_FATURA;
- VencCard[playerid] = gettime() + (Fatura * 24 * 60 * 60);
- }
- return 1;
- }
- stock PlayerName(playerid){
- new Nome[25]; GetPlayerName(playerid,Nome,25);
- return Nome;
- }
- public OnPlayerConnect(playerid){
- new DBResult: Resultado, Query[50], Colect[50];
- format(Query,sizeof Query,"SELECT * FROM `CARD_USERS` WHERE `Proprietario` = '%s'",DB_Escape(PlayerName(playerid)));
- Resultado = db_query(newCard, Query);
- db_get_field_assoc(Resultado, "Devendo", Colect, 50);
- gPlayerData[playerid][Devendo] = strval(Colect);
- if(gettime() >= VencCard[playerid] && gPlayerData[playerid][Devendo] == 1){
- SendClientMessage(playerid, -1, "|AVISO| A Fatura do seu cartão chegou, pague-a antes de deslogar novamente para evitar multas!");
- FaturaVencida[playerid] = 1;
- }
- LoadPlayerLogs(playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason){
- if(FaturaVencida[playerid] == 1){
- // Aplicar punição por vencimento, Ex: Juros
- }
- return 1;
- }
- 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;
- }
- /*
- Filterscript: Sistema de Cartão de Crédito v0.2;
- Versão: v0.2 + Updates
- Desenvolvedor: ProKillerPa
- Cláusulas:
- * É Proibido a postagem desse filterscript em outros sites/blogs/etc
- * É Proibido a retirada dos créditos do criador do filterscript
- * Os possantes desse filterscript tem o direito de:
- - Modificar os códigos
- - Alterar Mensangens e derivados
- - Entre outros que não violem ás citadas no tópico principal
- * Possantes que seguirem as regras tem o direito de receber suporte do criador.
- --------------------
- Mensagem do desenvolvedor: Façam um bom uso desse filterscript pois foi desenvolvido com o melhor que há atualmente
- */
Advertisement
Add Comment
Please, Sign In to add comment