Protegendo seu GameMode (.amx) [TUT/COD] - Total Samp™ ..::Tudo Para Seu Servidor SA-MP::..
Receba Nosso Feed

Receba Todas as Nossas Atualizações em Seu E-mail:

468x60

Divulgue Aqui

Divulgue Seu Servidor Aqui

Divulgue Na TS Divulgue Na TS

Brasil Strain Hard

Editamos RG IP:199.119.226.172:7786

Strain Hard [PT/BR]Brasil Strain Hard[0.3e]

Titulo da Imagem

Host de Qualidade

Maia Br Maia Br

Titulo da Imagem

Host de Qualidade

Maia Br Maia Br

Brasil Live Experience

Sua Vida Real. de um Geito Virtual

Brasil Live Experience Titulo da Imagem

Curta Nossa Pagina

Protegendo seu GameMode (.amx) [TUT/COD]


Protegendo seu GameMode (.amx)
__________________
BY:Vini_Born

Um dos grandes medos de um programador, é ver seus trabalhos nas mãos de outras pessoas sem seu consentimento.
O arquivo .pwn é o tesouro de qualquer programador pawn, e concerteza o mais protegido.
Porém, muitas vezes deixa-se de lado a proteção do .amx, o que não deveria ocorrer.

Não sei vocês, mas eu não gostaria de ver um servidor usando meu GameMode sem a minha devida permissão.
Muitos deixam 'comando secretos' em seus GM's para recuperar a rcon, porém isso não é um método tão eficaz quanto o que eu trago hoje, porque ele depende diretamente da paciência de procurar todos os servidores que usam o GM roubado, e depois entrar em cada um deles para usar o tal comando secreto.

Separei 4 métodos de proteção. São eles :

* Por Data
* Por Porta
* Por IP
* Por Senha

Antes de começar, uma explicação breve sobre duas funções que iremos utilizar :

GetServerVarAsString - Obtém um parâmetro (string) do server.cfg.
GetServerVarAsInt - Obtém um parâmetro (inteiro) do server.cfg.

Proteção por data


Método onde damos ao GameMode prazo de válidade. Depois desse prazo, ele não será inicializado.
pawn Code:
//Topo //Com isso o GM funcionará até abril. A partir de maio ele não abre mais. #define MES_LIMITE 4 public OnGameModeInit() {     new Data[3];     getdate(Data[0], Data[1], Data[2]); // Ano, mes, dia     if(Data[1] > MES_LIMITE) // Se o mês atual é maior que o permitido, o servidor fechará.     {         printf("Proteção por Data ativada.");         printf("Você não tem permissão para usar este GameMode.");         SendRconCommand("exit");         return true;     }     //     return true; }


Proteção por porta


Método onde verificamos se a porta do servidor é a mesma da porta permitida no GameMode.
pawn Code:
//Topo #define PORTA_PERMITIDA 7777 public OnGameModeInit() {     new SERVER_PORT = GetServerVarAsInt("port"); //Obtém do server.cfg a porta em que o servidor será aberto.     if(SERVER_PORT != PORTA_PERMITIDA) // Se a porta obtida for diferente da permitida no GameMode, o servidor fechará.     {         printf("Proteção por Porta ativada.");         printf("Você não tem permissão para usar este GameMode.");         SendRconCommand("exit");         return true;     }     //     return true; }

Proteção por IP


Método onde verificamos se o IP do servidor é o mesmo do permitido no GameMode.

É necessário que se acrescente isso no seu server.cfg :
pawn Code:
bind 127.0.0.1
Nesse caso, o servidor só poderá ser caseiro. Troque pelo IP do seu host.

pawn Code:
//Topo #define IP_PERMITIDO "127.0.0.1" public OnGameModeInit() {     new SERVER_IP[16];     GetServerVarAsString("bind", SERVER_IP, sizeof SERVER_IP); // Armazena o conteúdo de 'bind' em SERVER_IP     if(strcmp(SERVER_IP,IP_PERMITIDO) || !strlen(SERVER_IP)) // Verifica se o IP contido em 'bind' é o mesmo que o permitido no GameMode e também se 'bind' existe no server.cfg     {         printf("Proteção por IP ativada.");         printf("Você não tem permissão para usar este GameMode.");         SendRconCommand("exit");         return true;     }     //     return true; }

Proteção por Rcon


Método onde verificamos se a rcon do servidor é a mesma da permitida no GameMode.

pawn Code:
//Topo #define RCON_PERMITIDA "ViniBorn" public OnGameModeInit() {     GetServerVarAsString("rcon_password", SERVER_RCON, sizeof SERVER_RCON); // Armazena a rcon obtida do server.cfg em SERVER_RCON     if(strcmp(SERVER_RCON,RCON_PERMITIDA)) // Verifica se a Rcon contido no server.cfg é a mesma que a permitida no GameMode     {         printf("Proteção por Rcon ativada.");         printf("Você não tem permissão para usar este GameMode.");         SendRconCommand("exit");         return true;     }     //     return true; }

Também é bom utilizar o famoso AntiDeAMX, que evita que o seu GM seja 'descompilado'
pawn Code:
AntiDeAMX() {     new a[][] = { "Unarmed (Fist)", "Brass K" };     #pragma unused a } //OnGameModeInit AntiDeAMX();


Estas informações são muito úteis a todos, e principalmente para aqueles que não confiam muito no host onde irão hospedar seus servidores.

Não sou muito bom com tutoriais, mas espero que tenham entendido.
Qualquer dúvida é só perguntar.

0 comentários:

Postar um comentário