SA-MP Forums Archive
[FilterScript] Bloqueador de Comandos em Tempo Real - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [FilterScript] Bloqueador de Comandos em Tempo Real (/showthread.php?tid=351774)



Bloqueador de Comandos em Tempo Real - ipsBruno - 17.06.2012

Seu gamemode novo foi colocado no servidor, quando derrepente lembra que esqueceu de tirar o comando de testes "/receber2milhoes" fazendo todos usuбrios ficarem ricos. Seu servidor estб lotado, vocк nгo quer perder os players. O que fazer? ...

Seus problemas acabaram! Acabo de criar um

Bloqueador de Comandos em Tempo Real


Nгo precisa explicar muito, basicamente vocк digita um comando para bloquear um comando
Exemplo:
/bloquearcmd /receber2milhoes

Enfim. Vai o cуdigo
Filterscript:
pawn Код:
#include a_samp
#include a_gvars // https://sampforum.blast.hk/showthread.php?tid=351350

public OnPlayerCommandText(playerid, cmdtext[]) {

    static
        intBuffer,
        strBuffer[128]
    ;

    if((intBuffer = strfind(cmdtext, " ", true)) != -1) {
        format(strBuffer, 128, cmdtext[intBuffer]);
        if(varGet(strBuffer) == 1) {
            return SendClientMessage(playerid, -1, "Um administrador bloqueou este comando!"), true;
        }
    }
    else {
        if(varGet(cmdtext) == 1) {
            return SendClientMessage(playerid, -1, "Um administrador bloqueou este comando!"), true;
        }
    }

    if(!strcmp(cmdtext, "/bloquearcmd ", false, 13) && IsPlayerAdmin(playerid)) {

        format(cmdtext, 128, cmdtext[13]);

        if(!strcmp(cmdtext, "/bloquearcmd", false, 12)) {
            return SendClientMessage(playerid, -1, "Vocк nгo pode bloquear este comando");
        }

        if(cmdtext[0] != '/' || !cmdtext[1]) {
            return SendClientMessage(playerid, -1, "Isto nгo й um comando");
        }

        printf("Comando %s bloqueado", cmdtext);

        SendClientMessage(playerid, -1, "Comando bloqueado");

        return varSet(cmdtext, 1), true;
    }
    return false;
}
Sгo 6 horas da manha. Testei em console e pareceu funcionar. Enfim, postei mais pra mostrar um bom e criativo exemplo de como usar aquela minha include.

** Precisa estar logado na RCON para bloquear comandos
** Nгo usei processador de comandos, usei um mйtodo bem simples e funcional, derrepente atй mais rбpido que usar processador de comandos

Boa sorte a todos

--

Criado por Bruno da Silva


Re: Bloqueador de Comandos em Tempo Real - StrondA_ - 17.06.2012

Muito ъtil, parabйns. vendo esse sistema tive algumas ideias para usar a include..

DraKiNs, sobre include Bini, irб surgir alguma atualizaзгo ?



Re: Bloqueador de Comandos em Tempo Real - zSuYaNw - 17.06.2012

Legal, bom modo de mostrar o uso se sua g_vars...
mais me responda uma duvida, ele sу bloqueia 1 comando ?
Sua lуgica com comandos com parвmetros й bem feita, gostei
irei atй utilizar!


Re: Bloqueador de Comandos em Tempo Real - ipsBruno - 17.06.2012

Quote:
Originally Posted by [Full]Garfield[XDB]
Посмотреть сообщение
Legal, bom modo de mostrar o uso se sua g_vars...
mais me responda uma duvida, ele sу bloqueia 1 comando ?
Sua lуgica com comandos com parвmetros й bem feita, gostei
irei atй utilizar!
Valeu, eu tambйm nunca tinha pensado naquilo. Sу falta agora criar um strcmp rбpido alternativo (strfind + strlen й bom).

Ele nгo bloqueia sу um comando nгo. Pelos meus cбlculos a gvars aceita aproximadamente 67 milhхes de valores na memуria. Isto й, em torno de 60 milhхes de comandos vocк consegue bloquear

Quote:

** Atualizado 16/06/2012 as 2:18 - Informaзгo importante.
Foi atualizado o nъmero mбximos de valores que podem ser salvos na memoria. Este nъmero equivale atualmente a 67.108.863 (67 milhхes) de valores salvos na memуria. Isto й, acima disto poderб ocorrer erros. Lembrando que quanto max_memory maior serб o espaзo na memуria ocupado, assim podendo colocar menos keys


Quote:
Originally Posted by StrondA_
Посмотреть сообщение
Muito ъtil, parabйns. vendo esse sistema tive algumas ideias para usar a include..

DraKiNs, sobre include Bini, irб surgir alguma atualizaзгo ?
Bem, pra sua felicidade a atualizaзгo de Bini jб estб sendo feita. Inclusive estou incluindo este sistema de gVars Obrigado *-*


Re: Bloqueador de Comandos em Tempo Real - DrTHE - 17.06.2012

legal, aguardando o bini *-*


Re: Bloqueador de Comandos em Tempo Real - ipsBruno - 17.06.2012

Alguйm aqui agora sacou bem a funзгo da include lб? Й um exemplo bem prбtico este acima. Jб pensou como teria que fazer se nгo existisse a include? Teria que criar uma array de string. E colocar os comandos bloqueados nela, assim quando o player digitar um comando, fazer um loop para checar se alguma string da array й igual a string cmdtext; lento nгo й?


Re: Bloqueador de Comandos em Tempo Real - DrTHE - 17.06.2012

lento e mais complexo


Re: Bloqueador de Comandos em Tempo Real - dPlaYer_ - 17.06.2012

Ъtil , parabens
Como sempre , seus projetos sгo fodas


Re: Bloqueador de Comandos em Tempo Real - Edu33 - 17.06.2012

Faзo das palavras do dPlayer as minhas, puts muito bom seus projetos


Re: Bloqueador de Comandos em Tempo Real - StrondA_ - 18.06.2012

Quote:
Originally Posted by [FeK]DraKiNs
Посмотреть сообщение
Valeu, eu tambйm nunca tinha pensado naquilo. Sу falta agora criar um strcmp rбpido alternativo (strfind + strlen й bom).

Ele nгo bloqueia sу um comando nгo. Pelos meus cбlculos a gvars aceita aproximadamente 67 milhхes de valores na memуria. Isto й, em torno de 60 milhхes de comandos vocк consegue bloquear







Bem, pra sua felicidade a atualizaзгo de Bini jб estб sendo feita. Inclusive estou incluindo este sistema de gVars Obrigado *-*
muito bom, estamos no aguardo da bini, pelo jeito que tais falando ela vai ficar bem fast..