Advertisement
F1N4L_

Anti-Tag/Nick/Part Nick/Word/Char [ATUALIZADO]

Sep 29th, 2016
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 12.88 KB | None | 0 0
  1. #include a_samp
  2.  
  3. #define DATABASE            "Block.db"
  4.  
  5. #define MAX_ITENS           100
  6.  
  7. static
  8.     bool:CaseSensitive  =   true;
  9.  
  10. static
  11.     DB:Database,
  12.     DBResult:Resultado;
  13.  
  14. static
  15.     AntiTag[MAX_ITENS][10],
  16.     AntiNick[MAX_ITENS][MAX_PLAYER_NAME],
  17.     AntiParteNick[MAX_ITENS][MAX_PLAYER_NAME],
  18.     AntiPalavra[MAX_ITENS][20],
  19.     AntiChar[MAX_ITENS][2];
  20.  
  21. static
  22.     bool:AntiTagId[MAX_ITENS],
  23.     bool:AntiParteNickId[MAX_ITENS],
  24.     bool:AntiNickId[MAX_ITENS],
  25.     bool:AntiPalavraId[MAX_ITENS],
  26.     bool:AntiCharId[MAX_ITENS];
  27.  
  28. static
  29.     String[128];
  30.    
  31. public OnGameModeInit()
  32. {
  33.     Database = db_open(DATABASE);
  34.    
  35.     db_query(Database, "CREATE TABLE IF NOT EXISTS `Anti-TAG` (`ID` INTEGER PRIMARY KEY, `TAG` TEXT)");
  36.     db_query(Database, "CREATE TABLE IF NOT EXISTS `Anti-Nick` (`ID` INTEGER PRIMARY KEY, `NICK` TEXT)");
  37.     db_query(Database, "CREATE TABLE IF NOT EXISTS `Anti-ParteNick` (`ID` INTEGER PRIMARY KEY, `PARTE NICK` TEXT)");
  38.     db_query(Database, "CREATE TABLE IF NOT EXISTS `Anti-Palavra` (`ID` INTEGER PRIMARY KEY, `PALAVRA` TEXT)");
  39.     db_query(Database, "CREATE TABLE IF NOT EXISTS `Anti-Char` (`ID` INTEGER PRIMARY KEY, `CARACTERE` TEXT)");
  40.    
  41.     new
  42.         Rows,
  43.         GetData[10],
  44.         Id;
  45.  
  46.     Resultado = db_query(Database, "SELECT * FROM `Anti-TAG`");
  47.     Rows = db_num_rows(Resultado);
  48.     if(Rows)
  49.     {
  50.         print("\n\n-----------TAGs-Proibidas-----------");
  51.        
  52.         for(new x = 0; x < Rows; ++ x)
  53.         {
  54.             if(Rows > MAX_ITENS)
  55.             {
  56.                 printf("Não foi possível carregar todas as TAGs, pois o número de linhas foi excedido: %d/%d", Rows, MAX_ITENS);
  57.                 break;
  58.             }
  59.            
  60.             db_get_field_assoc(Resultado, "ID", GetData, sizeof GetData);
  61.             Id = strval(GetData);
  62.             AntiTagId[Id] = true;
  63.  
  64.             db_get_field_assoc(Resultado, "TAG", AntiTag[Id], sizeof AntiTag);
  65.            
  66.             printf("ID: %d | TAG: %s", Id, AntiTag[Id]);
  67.            
  68.             db_next_row(Resultado);
  69.         }
  70.        
  71.         printf("\n%d TAGs proibidas foram carregadas com sucesso\n", Rows);
  72.     }
  73.     db_free_result(Resultado);
  74.    
  75.     Resultado = db_query(Database, "SELECT * FROM `Anti-Nick`");
  76.     Rows = db_num_rows(Resultado);
  77.     if(Rows)
  78.     {
  79.         print("\n-----------Nicks-Proibidos-----------");
  80.        
  81.         for(new x = 0; x < Rows; ++ x)
  82.         {
  83.             if(Rows > MAX_ITENS)
  84.             {
  85.                 printf("Não foi possível carregar todas os Nicks, pois o número de linhas foi excedido: %d/%d", Rows, MAX_ITENS);
  86.                 break;
  87.             }
  88.            
  89.             db_get_field_assoc(Resultado, "ID", GetData, sizeof GetData);
  90.             Id = strval(GetData);
  91.             AntiNickId[Id] = true;
  92.  
  93.             db_get_field_assoc(Resultado, "NICK", AntiNick[Id], sizeof AntiNick);
  94.            
  95.             printf("ID: %d | Nick: %s", Id, AntiNick[Id]);
  96.            
  97.             db_next_row(Resultado);
  98.         }
  99.        
  100.         printf("\n%d Nicks proibidos foram carregados com sucesso\n", Rows);
  101.     }
  102.     db_free_result(Resultado);
  103.    
  104.     Resultado = db_query(Database, "SELECT * FROM `Anti-ParteNick`");
  105.     Rows = db_num_rows(Resultado);
  106.     if(Rows)
  107.     {
  108.         print("\n-----------Parte-Nick-Proibidos-----------");
  109.        
  110.         for(new x = 0; x < Rows; ++ x)
  111.         {
  112.             if(Rows > MAX_ITENS)
  113.             {
  114.                 printf("Não foi possível carregar todas as Partes de Nick, pois o número de linhas foi excedido: %d/%d", Rows, MAX_ITENS);
  115.                 break;
  116.             }
  117.            
  118.             db_get_field_assoc(Resultado, "ID", GetData, sizeof GetData);
  119.             Id = strval(GetData);
  120.             AntiParteNickId[Id] = true;
  121.  
  122.             db_get_field_assoc(Resultado, "PARTE NICK", AntiParteNick[Id], sizeof AntiParteNick);
  123.            
  124.             printf("ID: %d | Parte Nick: %s", Id, AntiParteNick[Id]);
  125.            
  126.             db_next_row(Resultado);
  127.         }
  128.        
  129.         printf("\n%d Partes de Nick proibidos foram carregados com sucesso\n", Rows);
  130.     }
  131.     db_free_result(Resultado);
  132.    
  133.     Resultado = db_query(Database, "SELECT * FROM `Anti-Palavra`");
  134.     Rows = db_num_rows(Resultado);
  135.     if(Rows)
  136.     {
  137.         print("\n-----------Palavras-Proibidas-----------");
  138.        
  139.         for(new x = 0; x < Rows; ++ x)
  140.         {
  141.             if(Rows > MAX_ITENS)
  142.             {
  143.                 printf("Não foi possível carregar todas as Palavras, pois o número de linhas foi excedido: %d/%d", Rows, MAX_ITENS);
  144.                 break;
  145.             }
  146.            
  147.             db_get_field_assoc(Resultado, "ID", GetData, sizeof GetData);
  148.             Id = strval(GetData);
  149.             AntiPalavraId[Id] = true;
  150.  
  151.             db_get_field_assoc(Resultado, "PALAVRA", AntiPalavra[Id], sizeof AntiPalavra);
  152.            
  153.             printf("ID: %d | Palavra: %s", Id, AntiPalavra[Id]);
  154.            
  155.             db_next_row(Resultado);
  156.         }
  157.        
  158.         printf("\n%d Palavras proibidas foram carregadas com sucesso\n", Rows);
  159.     }
  160.     db_free_result(Resultado);
  161.  
  162.     Resultado = db_query(Database, "SELECT * FROM `Anti-Char`");
  163.     Rows = db_num_rows(Resultado);
  164.     if(Rows)
  165.     {
  166.         print("\n-----------Caracteres-Proibidos-----------");
  167.        
  168.         for(new x = 0; x < Rows; ++ x)
  169.         {
  170.             if(Rows > MAX_ITENS)
  171.             {
  172.                 printf("Não foi possível carregar todos os Caracteres, pois o número de linhas foi excedido: %d/%d", Rows, MAX_ITENS);
  173.                 break;
  174.             }
  175.            
  176.             db_get_field_assoc(Resultado, "ID", GetData, sizeof GetData);
  177.             Id = strval(GetData);
  178.             AntiCharId[Id] = true;
  179.  
  180.             db_get_field_assoc(Resultado, "CARACTERE", AntiChar[Id], sizeof AntiChar);
  181.            
  182.             printf("ID: %d | Caractere: %c", Id, AntiChar[Id]);
  183.            
  184.             db_next_row(Resultado);
  185.         }
  186.        
  187.         printf("\n%d Caracteres proibidos foram carregados com sucesso\n", Rows);
  188.     }
  189.     db_free_result(Resultado);
  190.  
  191.     #if defined F_OnGameModeInit
  192.         return F_OnGameModeInit();
  193.     #else
  194.         return true;
  195.     #endif
  196. }
  197. #if defined _ALS_OnGameModeInit
  198.     #undef OnGameModeInit
  199. #else
  200.     #define _ALS_OnGameModeInit
  201. #endif
  202. #define OnGameModeInit F_OnGameModeInit
  203. #if defined F_OnGameModeInit
  204.     forward F_OnGameModeInit();
  205. #endif
  206. public OnGameModeExit()
  207. {
  208.     db_close(Database);
  209.     #if defined F_OnGameModeExit
  210.         return F_OnGameModeExit();
  211.     #else
  212.         return true;
  213.     #endif
  214. }
  215. #if defined _ALS_OnGameModeExit
  216.     #undef OnGameModeExit
  217. #else
  218.     #define _ALS_OnGameModeExit
  219. #endif
  220. #define OnGameModeExit F_OnGameModeExit
  221. #if defined F_OnGameModeExit
  222.     forward OnGameModeExit();
  223. #endif
  224. //------------------------------------------
  225. stock AddForbiddenTag(const Tag[])
  226. {
  227.     if(ForbiddenTagExists(Tag)) return false;
  228.  
  229.     for(new i = 0; i < MAX_ITENS; ++ i)
  230.     {
  231.         if(AntiTagId[i] == true) continue;
  232.  
  233.         AntiTagId[i] = true;
  234.  
  235.         format(String, sizeof String, "INSERT INTO `Anti-TAG` (`ID`, `TAG`) VALUES ('%d', '%s')", i, Tag);
  236.         db_query(Database, String);
  237.  
  238.         strcat((AntiTag[i][0] = '\0', AntiTag[i]), Tag);
  239.  
  240.         return true;
  241.     }
  242.     return false;
  243. }
  244. stock AddForbiddenNick(const Nick[])
  245. {
  246.     if(ForbiddenNickExists(Nick)) return false;
  247.  
  248.     for(new i = 0; i < MAX_ITENS; ++ i)
  249.     {
  250.         if(AntiNickId[i] == true) continue;
  251.  
  252.         AntiNickId[i] = true;
  253.  
  254.         format(String, sizeof String, "INSERT INTO `Anti-Nick` (`ID`, `NICK`) VALUES ('%d', '%s')", i, Nick);
  255.         db_query(Database, String);
  256.  
  257.         strcat((AntiNick[i][0] = '\0', AntiNick[i]), Nick);
  258.  
  259.         return true;
  260.     }
  261.     return false;
  262. }
  263. stock AddForbiddenPartNick(const PartNick[])
  264. {
  265.     if(ForbiddenPartNickExists(PartNick)) return false;
  266.  
  267.     for(new i = 0; i < MAX_ITENS; ++ i)
  268.     {
  269.         if(AntiParteNickId[i] == true) continue;
  270.  
  271.         AntiParteNickId[i] = true;
  272.  
  273.         format(String, sizeof String, "INSERT INTO `Anti-ParteNick` (`ID`, `PARTE NICK`) VALUES ('%d', '%s')", i, PartNick);
  274.         db_query(Database, String);
  275.  
  276.         strcat((AntiParteNick[i][0] = '\0', AntiParteNick[i]), PartNick);
  277.  
  278.         return true;
  279.     }
  280.     return false;
  281. }
  282. stock AddForbiddenWord(const Word[])
  283. {
  284.     if(ForbiddenWordExists(Word)) return false;
  285.    
  286.     for(new i = 0; i < MAX_ITENS; ++ i)
  287.     {
  288.         if(AntiPalavraId[i] == true) continue;
  289.  
  290.         AntiPalavraId[i] = true;
  291.  
  292.         format(String, sizeof String, "INSERT INTO `Anti-Palavra` (`ID`, `PALAVRA`) VALUES ('%d', '%s')", i, Word);
  293.         db_query(Database, String);
  294.  
  295.         strcat((AntiPalavra[i][0] = '\0', AntiPalavra[i]), Word);
  296.  
  297.         return true;
  298.     }
  299.     return false;
  300. }
  301. stock AddForbiddenChar(const Char[])
  302. {
  303.     if(ForbiddenCharExists(Char)) return false;
  304.     if(strlen(Char) > 1) return false;
  305.    
  306.     for(new i = 0; i < MAX_ITENS; ++ i)
  307.     {
  308.         if(AntiCharId[i] == true) continue;
  309.  
  310.         AntiCharId[i] = true;
  311.  
  312.         format(String, sizeof String, "INSERT INTO `Anti-Char` (`ID`, `CARACTERE`) VALUES ('%d', '%s')", i, Char);
  313.         db_query(Database, String);
  314.  
  315.         strcat((AntiChar[i][0] = '\0', AntiChar[i]), Char);
  316.  
  317.         return true;
  318.     }
  319.     return false;
  320. }
  321. //------------------------------------------
  322. stock RemoveForbiddenTag(const Tag[])
  323. {
  324.     if(!ForbiddenTagExists(Tag)) return false;
  325.  
  326.     for(new i = 0; i < MAX_ITENS; ++ i)
  327.     {
  328.         if(AntiTagId[i] == false) continue;
  329.  
  330.         if(strcmp(Tag, AntiTag[i], CaseSensitive) == 0)
  331.         {
  332.             format(String, sizeof String, "DELETE FROM `Anti-TAG` WHERE `TAG` = '%s'", Tag);
  333.             db_query(Database, String);
  334.  
  335.             AntiTagId[i] = false;
  336.             AntiTag[i][0] = '\0';
  337.  
  338.             return true;
  339.         }
  340.     }
  341.     return false;
  342. }
  343. stock RemoveForbiddenNick(const Nick[])
  344. {
  345.     if(!ForbiddenNickExists(Nick)) return false;
  346.    
  347.     for(new i = 0; i < MAX_ITENS; ++ i)
  348.     {
  349.         if(AntiNickId[i] == false) continue;
  350.  
  351.         if(strcmp(Nick, AntiNick[i], CaseSensitive) == 0)
  352.         {
  353.             format(String, sizeof String, "DELETE FROM `Anti-Nick` WHERE `NICK` = '%s'", Nick);
  354.             db_query(Database, String);
  355.  
  356.             AntiNickId[i] = false;
  357.             AntiNick[i][0] = '\0';
  358.  
  359.             return true;
  360.         }
  361.     }
  362.     return false;
  363. }
  364. stock RemoveForbiddenPartNick(const PartNick[])
  365. {
  366.     if(!ForbiddenPartNickExists(PartNick)) return false;
  367.    
  368.     for(new i = 0; i < MAX_ITENS; ++ i)
  369.     {
  370.         if(AntiParteNickId[i] == false) continue;
  371.  
  372.         if(strcmp(PartNick, AntiParteNick[i], CaseSensitive) == 0)
  373.         {
  374.             format(String, sizeof String, "DELETE FROM `Anti-ParteNick` WHERE `PARTE NICK` = '%s'", PartNick);
  375.             db_query(Database, String);
  376.  
  377.             AntiParteNickId[i] = false;
  378.             AntiParteNick[i][0] = '\0';
  379.  
  380.             return true;
  381.         }
  382.     }
  383.     return false;
  384. }
  385. stock RemoveForbiddenWord(const Word[])
  386. {
  387.     if(!ForbiddenWordExists(Word)) return false;
  388.    
  389.     for(new i = 0; i < MAX_ITENS; ++ i)
  390.     {
  391.         if(AntiPalavraId[i] == false) continue;
  392.  
  393.         if(strcmp(Word, AntiPalavra[i], CaseSensitive) == 0)
  394.         {
  395.             format(String, sizeof String, "DELETE FROM `Anti-Palavra` WHERE `PALAVRA` = '%s'", Word);
  396.             db_query(Database, String);
  397.  
  398.             AntiPalavraId[i] = false;
  399.             AntiPalavra[i][0] = '\0';
  400.  
  401.             return true;
  402.         }
  403.     }
  404.     return false;
  405. }
  406. stock RemoveForbiddenChar(const Char[])
  407. {
  408.     if(!ForbiddenCharExists(Char)) return false;
  409.  
  410.     for(new i = 0; i < MAX_ITENS; ++ i)
  411.     {
  412.         if(AntiCharId[i] == false) continue;
  413.  
  414.         if(strcmp(Char, AntiChar[i], CaseSensitive) == 0)
  415.         {
  416.             format(String, sizeof String, "DELETE FROM `Anti-Char` WHERE `CARACTERE` = '%c'", Char);
  417.             db_query(Database, String);
  418.  
  419.             AntiCharId[i] = false;
  420.             AntiChar[i][0] = '\0';
  421.  
  422.             return true;
  423.         }
  424.     }
  425.     return false;
  426. }
  427. //------------------------------------------
  428. stock ForbiddenTagExists(const Tag[])
  429. {
  430.     for(new i = 0; i < MAX_ITENS; ++ i)
  431.     {
  432.         if(AntiTagId[i] == false) continue;
  433.  
  434.         if(strcmp(Tag, AntiTag[i], CaseSensitive) == 0) return true;
  435.     }
  436.     return false;
  437. }
  438. stock ForbiddenNickExists(const Nick[])
  439. {
  440.     for(new i = 0; i < MAX_ITENS; ++ i)
  441.     {
  442.         if(AntiNickId[i] == false) continue;
  443.  
  444.         if(strcmp(Nick, AntiNick[i], CaseSensitive) == 0) return true;
  445.     }
  446.     return false;
  447. }
  448. stock ForbiddenPartNickExists(const PartNick[])
  449. {
  450.     for(new i = 0; i < MAX_ITENS; ++ i)
  451.     {
  452.         if(AntiParteNickId[i] == false) continue;
  453.  
  454.         if(strcmp(PartNick, AntiParteNick[i], CaseSensitive) == 0) return true;
  455.     }
  456.     return false;
  457. }
  458. stock ForbiddenWordExists(const Word[])
  459. {
  460.     for(new i = 0; i < MAX_ITENS; ++ i)
  461.     {
  462.         if(AntiPalavraId[i] == false) continue;
  463.  
  464.         if(strcmp(Word, AntiPalavra[i], CaseSensitive) == 0) return true;
  465.     }
  466.     return false;
  467. }
  468. stock ForbiddenCharExists(const Char[])
  469. {
  470.     for(new i = 0; i < MAX_ITENS; ++ i)
  471.     {
  472.         if(AntiCharId[i] == false) continue;
  473.  
  474.         if(strcmp(Char, AntiChar[i], CaseSensitive) == 0) return true;
  475.     }
  476.     return false;
  477. }
  478. //------------------------------------------
  479. forward bool:IsForbiddenTag(const Tag[]);
  480. stock bool:IsForbiddenTag(const Tag[])
  481. {
  482.     for(new i = 0; i < MAX_ITENS; ++ i)
  483.     {
  484.         if(AntiTagId[i] == false) continue;
  485.  
  486.         if(strfind(Tag, AntiTag[i], CaseSensitive) == 0) return true;
  487.     }
  488.     return false;
  489. }
  490. forward bool:IsForbiddenNick(const Nick[]);
  491. stock bool:IsForbiddenNick(const Nick[])
  492. {
  493.     for(new i = 0; i < MAX_ITENS; ++ i)
  494.     {
  495.         if(AntiNickId[i] == false) continue;
  496.  
  497.         if(strcmp(Nick, AntiNick[i], CaseSensitive) == 0) return true;
  498.     }
  499.     return false;
  500. }
  501. forward bool:IsForbiddenPartNick(const PartNick[]);
  502. stock bool:IsForbiddenPartNick(const PartNick[])
  503. {
  504.     for(new i = 0; i < MAX_ITENS; ++ i)
  505.     {
  506.         if(AntiParteNickId[i] == false) continue;
  507.  
  508.         if(strfind(PartNick, AntiParteNick[i], CaseSensitive) == 0) return true;
  509.     }
  510.     return false;
  511. }
  512. forward bool:IsForbiddenWord(const Word[]);
  513. stock bool:IsForbiddenWord(const Word[])
  514. {
  515.     for(new i = 0; i < MAX_ITENS; ++ i)
  516.     {
  517.         if(AntiPalavraId[i] == false) continue;
  518.  
  519.         if(strfind(Word, AntiPalavra[i], CaseSensitive) == 0) return true;
  520.     }
  521.     return false;
  522. }
  523. forward bool:IsForbiddenChar(const Str[]);
  524. stock bool:IsForbiddenChar(const Str[])
  525. {
  526.     for(new i = 0; i < MAX_ITENS; ++ i)
  527.     {
  528.         if(AntiCharId[i] == false) continue;
  529.  
  530.         if(strfind(Str, AntiChar[i], CaseSensitive) != -1) return true;
  531.     }
  532.     return false;
  533. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement