[FilterScript] Proteзхes Bбsicas - 0.3x
#1

Olб, venho hoje mostrando um FS bбsico, nгo tinha nada melhor pra fazer, entгo decidi criar um aqui bбsico com uns cуdigos que eu desenvolvi com o tempo (nгo foram todos, hб os crйditos de quem criou algo no FS), pois fazem sempre uns atacks б meu servidor, e vejo como e onde melhorar.

Proteзхes no FS:
Anti-Bot;
Anti-Fake Kill;
Anti-Car Spam;
Anti-Crash OnFoot;
Anti-Crash em Veнculos;
Anti-Flooder de pintura de veнculos;
Anti-Floder de Spawn's;
Anti-Armas (Opcional);
Anti-Teleport por Click no Mapa;
Anti-Nicks bugaveis (Caso use Host Windows)


Em cada parte, terб uma pequena explicaзгo por que foi feito o tal cуdigo, caso algum novato queira estudar os cуdigo.

Pequena parte.
Anti-BOT
pawn Код:
new Nomes[][] = {"con", "aux"}; //Vocк pode inserir novos nomes indevнduos aqui
public OnPlayerConnect(playerid) {
    if(IsPlayerNPC(playerid)) return 1;
    new SAMP[50], Nome[24];
    GetPlayerVersion(playerid, SAMP, sizeof(SAMP));
    GetPlayerName(playerid, Nome, sizeof(Nome));
    for(new i; i < sizeof(Nomes); i++) {
        if(!strcmp(Nome, Nomes[i], true))
            return BanEx(playerid, "Nick Indevнduo!");
    }
    if(!strcmp(SAMP, "unknown", false)) return BanEx(playerid, "BOT");
    return 1;
}
Anti-Car Spam
pawn Код:
public OnPlayerUpdate(playerid) {
    if(GetPlayerVehicleID(playerid) != 0) {
        if(GetPlayerVehicleID(playerid) != GetPVarInt(playerid, "Veiculo_Anterior")) {
            if(GetPVarInt(playerid, "Troca_Veiculo") > gettime()) return BanEx(playerid, "Car Spam");
            SetPVarInt(playerid, "Veiculo_Anterior", GetPlayerVehicleID(playerid));
            SetPVarInt(playerid, "Troca_Veiculo", gettime() + 2);
        }
    }
    return 1;
}
Anti-Fake Kill
pawn Код:
//Editado: 06/01/2014
public OnPlayerDeath(playerid, killerid, reason) {
    if(killerid == INVALID_PLAYER_ID) return 1;
    if(GetPVarInt(playerid, "Morte") > gettime()) return BanEx(playerid, "Fake Kill"); // Caso o valor armazenado seja ainda maior que o gettime() (Tempo Atual)
    if(playerid == killerid) return BanEx(playerid, "Fake Kill"); // Isso ocorre quando й usando o 'random' em alguns cheaters
    if(GetPlayerTeam(playerid) != NO_TEAM)  // Caso vocк use sistema de Equipes
        if(GetPlayerTeam(playerid) == GetPlayerTeam(killerid))
            return BanEx(playerid, "Fake Kill");
    SetPVarInt(playerid, "Morte", gettime() + 2);
    return 1;
}
Adicionado 08/11
Anti-Teleport por Click ao Mapa
pawn Код:
public OnPlayerUpdate(playerid) {
    if(GetPVarInt(playerid, "ClickMapa") > gettime())
        if(!IsPlayerInRangeOfPoint(playerid, 10.0, GetPVarFloat(playerid, "PX"), GetPVarFloat(playerid, "PY"), GetPVarFloat(playerid, "PZ"))) return BanEx(playerid, "Teleport");
    new Float:Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    SetPVarFloat(playerid, "PX", Pos[0]); SetPVarFloat(playerid, "PY", Pos[1]); SetPVarFloat(playerid, "PZ", Pos[2]);
    return 1;
}
public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
{
    SetPVarInt(playerid, "ClickMapa", gettime() + 15);
    return 1;
}
FS Completo: Вложение 6642
(Compilado com includes do SA-MP 0.3x) Вложение 6645

Change LOG:
Код:
07/11/2013
Lanзamento Inicial

08/11/2013
Adicionado Anti-Armas Opcional
Adicionado Anti-Teleport por click no Mapa.

16/11/2013
Adicionado Anti-Nicks bugaveis (Em Windows), Opcional o uso.

06/01/2014
Anti-Fake Kill Editado.
Caso encontre erros/bugs, por favor, comunique.

protecoes_basicas.pwn

protecoes_basicas.amx
Reply
#2

Parece estar bem otimizado, muito bom trabalho.
Reply
#3

Vou Baixar pra dar uma boa analisada !
Parabens!

static SAMP[50];
nгo й muito aconselhavel usar static para strings, na verdade nгo й muito bom usar static para muitos outros casos, pois aquilo ficarб FIXO, na memoria...

Sу nгo curti muito o AntFakeKill mais o resto vou usar
Reply
#4

Muito bom nick!
Reply
#5

Legal, gostei parece funcional.
+rep
Reply
#6

Bem Funcional Gostei Parabens
Reply
#7

Quote:
Originally Posted by BieeelEvolution
Посмотреть сообщение
Parece estar bem otimizado, muito bom trabalho.
Quote:
Originally Posted by Juniiro3
Посмотреть сообщение
Muito bom nick!
Quote:
Originally Posted by Schocc
Посмотреть сообщение
Legal, gostei parece funcional.
+rep
Quote:
Originally Posted by Smoking_Script
Посмотреть сообщение
Bem Funcional Gostei Parabens
Obrigado

Quote:
Originally Posted by DanDRT
Посмотреть сообщение
Vou Baixar pra dar uma boa analisada !
Parabens!

static SAMP[50];
nгo й muito aconselhavel usar static para strings, na verdade nгo й muito bom usar static para muitos outros casos, pois aquilo ficarб FIXO, na memoria...

Sу nгo curti muito o AntFakeKill mais o resto vou usar
Sobre o static, vocк pode alterar para new, funcionarб do mesmo jeito.
Coloquei static, pode ser um pouco mais rбpido. Mas, de qualquer jeito funciona.

O Anti-Fake Kill, Nгo puiz pra detectar em veнculos no reason, pois as vezes pode falhar por causa de alguns outros que tem armas.
Reply
#8

Dahуra
Reply
#9

muito bom
voce tem algum anti-armas proibidas??
Reply
#10

Quote:
Originally Posted by AndersonAq
Посмотреть сообщение
muito bom
voce tem algum anti-armas proibidas??
Isto й fбcil de se criar, quais armas que vocк queria que fossem bloqueadas? (Armas aqui)

Um bбsico, protegendo 3 armas fatais.
pawn Код:
public OnPlayerUpdate(playerid) {
    switch(GetPlayerWeapon(playerid)) {
        case 36, 35, 38: return Kick(playerid);
    }
    return 1;
}
#Edit, vou por no FS
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)