[FilterScript] Anti-ESC
#1

ANTI-ESC

Desenvolvido por Shadoww5
Descriзгo:

Notei que aqui no sub-forum Portugues nгo hб topicos bem feitos com um sistema anti-esc. Alem disso, os que encontrei eram em outra lingua e com dcmd.

Entгo resolvi criar um FILTERSCRIPT para quem quiser implantar o comando "/esc" no se GAMEMODE.

Este й o meu primeiro filterscript, caso tenha algo errado peзo que me mostrem como e o que consertar.

Quando vocк fizer o download (ou pegar do pastebin), peзo que leia o arquivo "LEIA-ME.txt" que estб na pasta principal. Lб estб tudo bem explicado.

Qualquer duvida, estou а disposiзгo.

Screenshot:

http://imageshack.us/photo/my-images...713274969.jpg/

Download: Cуdigo:

PHP код:
/*                  NГO RETIRE OS CREDITOS !!
                NГO RETIRE OS CREDITOS !!
                        SISTEMA ANTI-ESC
    CREDITOS:
 | Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5  |
 | hadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 S |
 | adoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Sh |
 | doww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Sha |
 | oww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shad |
 | ww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shado |
 | w5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadow |
 | 5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww |
 |  Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 Shadoww5 |
                    http://forum.sa-mp.com/member.php?u=123990                        */
#define FILTERSCRIPT
#include <a_samp>
forward AntiEsc(pIDFloat:XFloat:YFloat:Z);
public 
OnFilterScriptInit()
{
    print(
"--------------------------------------");
    print(
"     ANTI-ESC CARREGADO COM SUCESSO");
    print(
"           Criado por Shadoww5");
    print(
"--------------------------------------\n");
    return 
1;
}
public 
OnFilterScriptExit()
{
    print(
"--------------------------------------");
    print(
"         ANTI-ESC DESCARREGADO");
    print(
"          Criado por Shadoww5");
    print(
"--------------------------------------\n");
    return 
1;
}
public 
OnPlayerConnect(playerid) return SendClientMessage(playerid,0xFFFF00FF," Este servidor usa o Sistema ANTI-ESC - Desenvolvido por Shadoww5");
public 
OnPlayerCommandText(playeridcmdtext[])
{
    new 
cmd[256], idx;
    
cmd strtok(cmdtextidx);
    if(
strcmp(cmd"/esc"true) == 0)
    {
        new 
id[256], acusadoFloat:Pos[3];
        if(
GetTickCount() - GetPVarInt(playerid"Tick") < 120000) return SendClientMessage(playerid0xFFFFFFAA" Aguarde 2 minutos para acusar outra pessoa novamente !");
        
id strtok(cmdtext,idx);
        if(!
strlen(id)) return SendClientMessage(playerid0xFFFFFFFF"USO: /esc [playerid/Parte-do-Nick]");
        
acusado strval(id);
        if(!
IsPlayerConnected(acusado)) return SendClientMessage(playerid0xFFFFFFAA" O jogador estб OFFLINE.");
        
GetPlayerPos(acusadoPos[0], Pos[1], Pos[2]);
        if(!
IsPlayerInRangeOfPoint(playerid5.0Pos[0], Pos[1], Pos[2])) return SendClientMessage(playerid0xFFFFFFAA" Vocк estб longe do acusado !");
        
SendClientMessage(playerid0xAFAFAFAA" Vocк acusou alguem de estar de ESC");
        
SendClientMessage(acusado0xFFFF00FF" Vocк foi acusado de estar de ESC. Mova-se ou serб kickado !");
        
SetPVarInt(playerid"Tick"GetTickCount());
        
SetTimerEx("AntiEsc"5000false"dfff"acusadoPos[0], Pos[1], Pos[2]);
        return 
1;
    }
    return 
0;
}
public 
AntiEsc(pIDFloat:XFloat:YFloat:Z)
{
    new 
Float:Pos[3], nome[MAX_PLAYER_NAME];
    
GetPlayerPos(pIDPos[0], Pos[1], Pos[2]);
    
GetPlayerName(pID,nome,sizeof(nome));
    if(
Pos[0] == && Pos[1] == && Pos[2] == Z)
    {
        new 
string[75];
        
SendClientMessage(pID,0xFF0000FF" Vocк foi kickado por estar de ESC !");
        
Kick(pID);
        
format(string,sizeof(string)," %s foi kickado por ESC/RT !"nome);
        
SendClientMessageToAll(0x04D62EFFstring);
    }
    else { 
SendClientMessage(pID,0xFFFF00FF" Vocк se moveu e por isso nгo serб kickado."); }
    return 
1;
}
strtok(const string[], &index)
{
    new 
length strlen(string);
    while ((
index length) && (string[index] <= ' '))
    {
        
index++;
    }
    new 
offset index;
    new 
result[20];
    while ((
index length) && (string[index] > ' ') && ((index offset) < (sizeof(result) - 1)))
    {
        
result[index offset] = string[index];
        
index++;
    }
    
result[index offset] = EOS;
    return 
result;

OBS: Os codigos e links foram atualizados no dia 25/06/2011.
Reply
#2

bom, podias usar boorleanas para nom disperdiзar variбveis(variaзхes da variбvel que ficam variando xD)

gostei
Reply
#3

Ok, mas de que forma eu usaria a bool ? Em qual funзгo ? (Sei fazer mas nгo pensei nisto).
Reply
#4

Vocк nгo precisa usar um timer para fazer o "antiflood". E cara por favor nй, isso й sу um comando nгo precisava de uma filterscript podia ser um cуdigo ъtil.
Reply
#5

1 - Nem todo mundo sabe implantar codigos no script ou vocк que todos jб nasceram sabendo mexer com PAWNO ?

2 - Coloquei um SetTimer, porque o jogador acusado deve ter um tempo para se mover.
Reply
#6

essa nгo й a questгo e sim que uma filterscript deveria ser usado para casos realmente necessбrios exemplo um admin system e nгo somente um comando, e tambйm cara o limite de filterscripts й 16 ou seja й muito limitado e como falei nгo existe necessidade de usar o timer para verificar o tempo que ele usou o comando, eu estou falando do timer de verificar os dois minutos para usar o comando meu amigo e nгo o do jogador, existe outras maneiras de verificar com tempos e tambйm como vocк estб verificando o tempo nгo precisaria nem de vбriaveis, estude aprenda e faзa da forma certa, afinal timers lagam o servidor.

edit: vocк poderia ter feito destб forma.

pawn Код:
static IsFlooding[MAX_PLAYERS];
CMD:esc(playerid,params[])
{
    if (sscanf(params,"u",params[0])) {
        return SendClientMessage(playerid,0xFFFFFFFF,"-ServerError- /esc <playerid> exemplo, /esc 20");
    }
    else if(GetTickCount() - IsFlooding[playerid] < 120000) {
        return SendClientMessage(playerid,0xFFFFFFFF,"Vocк precisa aguardar dois minutos para usar este comando novamente.");
    }
    else if (!IsPlayerConnected(params[0])) {
        return SendClientMessage(playerid,0xFFFFFFFF,"-ServerError- jogador nгo conectбdo.");
    }
    else {
        static Float:Float[3];
        GetPlayerPos(params[0],Float[0],Float[1],Float[2]);
        SetTimerEx("CheckEsc",5000,false,"dfff",params[0],Float[0],Float[1],Float[2]);
        IsFlooding[playerid] = GetTickCount();
    }
    return true;
}


forward CheckEsc(playerid,Float:Cordx,Float:Cordy,Float:Cordz);
public CheckEsc(playerid,Float:Cordx,Float:Cordy,Float:Cordz)
{
    static Float:Coords[3];
    GetPlayerPos(playerid,Coords[0],Coords[1],Coords[2]);
    if(Coords[0] == Cordx && Coords[1] == Cordy && Coords[2] == Cordz) {
        SendClientMessage(playerid,0xFFFFFFFF,"Vocк foi kickado por nгo se mover.");
        Kick(playerid);
    }
    else {
        SendClientMessage(playerid,0xFFFFFFFF,"Vocк se moveu e o processo foi cancelado.");
    }
    return true;
}
intendeu agora o que eu estou falando? Intendeu o tanto de vбriaveis que eu economizei? bom pense nisso cara.
Reply
#7

Estб correto o filterscript, caso alguem tenha 15 filterscripts й problema dele, й ele quem tem que aprender, agora, caso vocк nгo saiba ou nгo tenha prestado atenзгo, estou tentando aprender e compartilhar isto com os outros.

Odeio que nгo ajuda e sу faz reclamar ... Deu alguma soluзгo ? Nгo ! Entгo fica quieto mano ! Й sу isso que eu te peзo: Clica no logout.
Reply
#8

Vocк querendo ou nгo isso nunca vai ser uma filterscript meu amigo, isso й mais um cуdigo que deveria ser ъtil mas no final й totalmente inъtil e vocк nгo tem a mнnima noзгo do que estб fazendo й sу um editor de GF atoa, sу de passagem achei mais de trкs erros no cуdigo inteiro e nem estou falando da forma que vocк mata o seu gm e sim dos erros mesmo.
Reply
#9

Hm .. que bom ... Leu a minha ultima frase no meu ultimo post ? Nгo ? Leia entгo ...

@EDIT

Neste seu ultimo post vocк sу fez copiar e modificar algumas coisas de um outro ANTI-ESC. Eu ja vi ele .. Por isto criei este filterscript.
Reply
#10

Nгo preciso editar ou copiar cуdigos, uso os meus prуprios e nгo preciso editar godfathers e retirar os crйditos dos outros meu amigo estб й a forma certa e otimizada e isso й um cуdigo ъtil diferente do seu.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)