[FilterScript] Bloqueador de Comandos em Tempo Real
#1

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
Reply
#2

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

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

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!
Reply
#4

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 *-*
Reply
#5

legal, aguardando o bini *-*
Reply
#6

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 й?
Reply
#7

lento e mais complexo
Reply
#8

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

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

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..
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)