25.04.2012, 23:47
(
Последний раз редактировалось ViniBorn; 26.04.2012 в 02:22.
)
Protegendo seu GameMode (.amx)
__________________
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.
Mйtodo onde damos ao GameMode prazo de vбlidade. Depois desse prazo, ele nгo serб inicializado.
Mйtodo onde verificamos se a porta do servidor й a mesma da porta permitida no GameMode.
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 :
Nesse caso, o servidor sу poderб ser caseiro. Troque pelo IP do seu host.
Mйtodo onde verificamos se a rcon do servidor й a mesma da permitida no GameMode.
Tambйm й bom utilizar o famoso AntiDeAMX, que evita que o seu GM seja 'descompilado'
__________________
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 Код:
//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 Код:
//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.
pawn Код:
bind 127.0.0.1
pawn Код:
//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 Код:
//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;
}
pawn Код:
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.
Outros mйtodos. Por : [Full]Garfield[XDB]