[Include] Sistema de proibiзгo de Nick/Parte de Nick/TAG/Caractere/Palavra [SQLite]
#1

Esta include facilita proibiзгo de nomes, partes de nomes, tags, palavras e atй caracteres...

*Nenhuma funзгo necessita do ID do jogador, apenas uma string/caractere.

*A maioria das funзхes nгo fazem consulta no banco de dados, pois as mesmas getam os valores das variбveis.

*Algumas funзхes possuem mesmo cуdigo, porйm nomenclaturas diferentes para facilitar as verificaзхes.


ATUALIZADO
*Toda a estrutura de inclusгo e exclusгo de item foi modificada;
*Todas as variбveis passaram a ser estбticas.
*Funзхes de remoзгo das proibiзхes adicionado;
*Bug de verificaзгo de algumas funзхes corrigido.



Definindo o mбximo de itens por tabela:
Code:
#define MAX_ITENS 			100
Definindo o nome do banco de dados:
Code:
#define DATABASE 			"Block.db"

*Anti Nick:
Verificando se o nick й proibido
stock bool:IsForbiddenNick(const Nick[]);

Verificando se o nick existe no BD
stock ForbiddenNickExists(const Nick[])

Adicionando um novo nick proibido no BD
stock AddForbiddenNick(const Nick[])

Removendo um nick proibido do BD
stock RemoveForbiddenNick(const Nick[])



*Anti TAG:
Verificando se a TAG й proibida
stock bool:IsForbiddenTag(const Tag[]);

Verificando se a TAG existe no BD
stock ForbiddenTagExists(const Tag[])

Adicionando uma nova TAG proibida no BD
stock AddForbiddenTag(const Tag[])

Removendo uma TAG proibida do BD
stock RemoveForbiddenTag(const Tag[])



*Anti Parte Nick:
Verificando se a parte do nick й proibida
stock bool:IsForbiddenPartNick(const PartNick[]);

Verificando se a parte do nick existe no BD
stock ForbiddenPartNickExists(const PartNick[])

Adicionando uma nova parte de nick proibida no BD
stock AddForbiddenPartNick(const PartNick[])

Removendo uma parte do nick proibida do BD
stock RemoveForbiddenPartNick(const PartNick[])



*Anti Palavra:
Verificando se a palavra digitada й proibida
stock bool:IsForbiddenWord(const Word[]);

Verificando se a palavra digitada existe no BD
stock ForbiddenWordExists(const Word[])

Adicionando uma nova palavra proibida no BD
stock AddForbiddenWord(const Word[])

Removendo uma palavra proibida do BD
stock RemoveForbiddenWord(const Word[])



*Anti Caractere:
Verificando se o caractere й proibido
stock bool:IsForbiddenChar(const Char[]);

Verificando se o caractere existe no BD
stock ForbiddenCharExists(const Char[])

Adicionando um novo caractere proibida no BD
stock AddForbiddenChar(const Char[])

Removendo um caractere proibido do BD
stock RemoveForbiddenChar(const Char[])



Download
http://pastebin.com/UHMGuyqa

Crйditos
a_samp by SA:MP Team
Script by F1N4L
Reply
#2

Um pouco simples mas estб bom pra um novato .

static global?
Reply
#3

Essas static e pra ser resetada toda vez que for usada?

Code:
static
    bool:CaseSensitive  =   true;
 
static
    DB:Database,
    DBResult:Resultado;
 
new
    AntiTAG[MAX_ITENS][10],
    AntiNick[MAX_ITENS][MAX_PLAYER_NAME],
    AntiParteNick[MAX_ITENS][MAX_PLAYER_NAME],
    AntiPalavra[MAX_ITENS][20],
    AntiChar[MAX_ITENS][2];
 
static
    RowsAntiTAG,
    RowsAntiParteNick,
    RowsAntiNick,
    RowsAntiPalavra,
    RowsAntiChar;
 
static
    String[128];
Reply
#4

Quote:
Originally Posted by RedMF
View Post
Essas static e pra ser resetada toda vez que for usada?

Code:
static
    bool:CaseSensitive  =   true;
 
static
    DB:Database,
    DBResult:Resultado;
 
new
    AntiTAG[MAX_ITENS][10],
    AntiNick[MAX_ITENS][MAX_PLAYER_NAME],
    AntiParteNick[MAX_ITENS][MAX_PLAYER_NAME],
    AntiPalavra[MAX_ITENS][20],
    AntiChar[MAX_ITENS][2];
 
static
    RowsAntiTAG,
    RowsAntiParteNick,
    RowsAntiNick,
    RowsAntiPalavra,
    RowsAntiChar;
 
static
    String[128];
https://sampwiki.blast.hk/wiki/Scriptin...#global_static
PHP Code:
global static
Global static 
variables are like normal globals but can only be used in the file in which they are declared:
File1:
static
    
gsMyVar 4;
 
MyFunc()
{
    
printf("%d"gsMyVar);
}
 
#include "File2"
File2:
MyFunc2()
{
    
// This is wrong as gsMyVar doesn't exist here
    
printf("%d"gsMyVar);

em programaзгo modular static nгo funcionaria.

Boa include,
Reply
#5

Quote:
Originally Posted by RiqueP
View Post
Um pouco simples mas estб bom pra um novato .

static global?
Estou comeзando a usб-las e sim, static global й a mesma coisa que new. Vou fazer mais um update juntamente com outras funзхes.

Quote:
Originally Posted by RedMF
View Post
Essas static e pra ser resetada toda vez que for usada?

Code:
static
    bool:CaseSensitive  =   true;
 
static
    DB:Database,
    DBResult:Resultado;
 
new
    AntiTAG[MAX_ITENS][10],
    AntiNick[MAX_ITENS][MAX_PLAYER_NAME],
    AntiParteNick[MAX_ITENS][MAX_PLAYER_NAME],
    AntiPalavra[MAX_ITENS][20],
    AntiChar[MAX_ITENS][2];
 
static
    RowsAntiTAG,
    RowsAntiParteNick,
    RowsAntiNick,
    RowsAntiPalavra,
    RowsAntiChar;
 
static
    String[128];
static й uma variбvel acumulativa. Quando criada localmente, ela nгo й destruнda contendo seu ultimo valor armazenado, diferente de new.

Quote:
Originally Posted by Whoo
View Post
Thx!
Reply
#6

Bacana, bem ъtil.

Recomendaria declarar todos tuas variбveis da inc como static, vai evitar que sejam acessadas no arquivo que carregar a include, tb evitarб warns caso alguma outra var seja declarada com a mesma nomenclatura no arquivo que esteve a carregar a inc.
Reply
#7

Hm, pra mim isto nгo proнbe nada uma vez que apenas salva/carrega do DB, se fosse realmente de proibiзгo o include mesmo checaria se no nick tem partes proibidas etc..

Fora isto aconselharia novas funзхes com intuito de remover.
Reply
#8

Quote:
Originally Posted by F1N4L
View Post
Estou comeзando a usб-las e sim, static global й a mesma coisa que new. Vou fazer mais um update juntamente com outras funзхes.
To ligado, й que uma static й mais aproveitada de forma local. Mas claro que nгo deixa de estar certo.
Reply
#9

Quote:
Originally Posted by Bruno13
View Post
Bacana, bem ъtil.

Recomendaria declarar todos tuas variбveis da inc como static, vai evitar que sejam acessadas no arquivo que carregar a include, tb evitarб warns caso alguma outra var seja declarada com a mesma nomenclatura no arquivo que esteve a carregar a inc.
Obrigado. Nгo sabia dessa sobre static, obrigado novamente!

Quote:
Originally Posted by Day_
View Post
Hm, pra mim isto nгo proнbe nada uma vez que apenas salva/carrega do DB, se fosse realmente de proibiзгo o include mesmo checaria se no nick tem partes proibidas etc..

Fora isto aconselharia novas funзхes com intuito de remover.
Vocк estб certo, realmente nгo hб proibiзгo alguma!!!
Jб hб filterscripts com essas proibiзхes e meu intuito й deixar o usuбrio personalizar a puniзгo. Por exemplo, toda vez que um jogador conectar, OnPlayerConnect й chamado e nesta callback pode ser posto as funзхes de verificaзгo de Nick/Part Nick e Tag.

Code:
static Nome[24];
GetPlayerName(playerid, Nome, 24);
if(IsForbiddenNick(Nome))
{
    Kick(playerid);
}
Й claro que a maioria vai realizar um kick no jogador ao invйs de punir de outra maneira, mas ainda hб pessoas criativas que podem realizar outros tipos de puniзхes que nгo o kick.

Vou sim fazer as funзхes de remoзгo das proibiзхes, estou trabalhando nisso.

Quote:
Originally Posted by RiqueP
View Post
To ligado, й que uma static й mais aproveitada de forma local. Mas claro que nгo deixa de estar certo.
Pois й, eu estou comeзando usa-las agora, como comentei.
A cada comentбrio (como o seu) se referindo a ela comeзo a compreende-la melhor!
Thx!
Reply
#10

Ficou bom bom F1N4L, Parabйns.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)