[FilterScript] Sistema de admin(invoзгo interna)
#1

Como muitos perceberam, foram lanзados variados tipos de includes que atuariam
no processo de manipulaзгo de dados, processamento de comandos, hooks de callbacks,
juntando tudo isto eu decidi fazer um sistema de administraзгo simples
demonstrando como ficaria se o mesmo fizesse uso de todos esses benefнcios disponibilizados.

Source code:

pawn Код:
#include <a_samp>
#include <icmd>
#include <ibits>
#include <iloops>

register <public>OnPlayerConnect(playerid)
{
    SendClientMessage(playerid, -1, "Conectado !");
    return 1;
}
register <public>OnPlayerDisconnect(playerid, reason)
{
    SendClientMessage(playerid, -1, "Desconectado !");
    return 1;
}

new bit1:level<MAX_PLAYERS>;

public OnPlayerEnterVehicle(playerid, vehicleid)
{
    if (!getBit1(level, playerid))
    {
        SendClientMessage(playerid, -1, "Vocк nгo й um admin...");
        return 0;
    }
    return 1;
}

public OnPlayerCommandText(playerid, commandid, params[])
{
    switch(commandid)
    {
        case iscmd("r,e,s,p,a,w,n"):
        {
            if (getBit1(level, playerid))
            {
                for (new i = 0; i < getMaxVehicles(); ++i)
                {
                    SetVehicleToRespawn(i);
                }
                SendClientMessageToAll(-1, "Veнculos respawnados.");
            }
            return 1;
        }
        case iscmd("g,m,x"):
        {
            if (getBit1(level, playerid))
            {
                SendClientMessageToAll(-1, "GMX, aguardem !");

                SendRconCommand("gmx");
            }
            return 1;
        }
        case iscmd("t,a,p,a"), iscmd("h,i,t"):
        {
            if (getBit1(level, playerid))
            {
                if (!params[0]) SendClientMessage(playerid, -1, "Syntax /tapa [id]");

                new Float:x, Float:y, Float:z;
                GetPlayerPos(strval(params), x, y, z);
                SetPlayerPos(strval(params), x, y, z+15);
            }
            return 1;
        }
        case iscmd("b,a,n"), iscmd("b,a,n,i,r"):
        {
            if (getBit1(level, playerid))
            {
                if (!params[0]) SendClientMessage(playerid, -1, "Syntax /ban [id]");

                Ban(strval(params));
            }
            return 1;
        }
        case iscmd("k,i,c,k"), iscmd("c,h,u,t,a,r"):
        {
            if (getBit1(level, playerid))
            {
                if (!params[0]) SendClientMessage(playerid, -1, "Syntax /kick [id]");

                Kick(strval(params));
            }
            return 1;
        }
        case iscmd("c,c"), iscmd("c,a,r"):
        {
            if (getBit1(level, playerid))
            {
                if (!params[0]) SendClientMessage(playerid, -1, "Syntax: /cc [id]");

                new Float:x, Float:y, Float:z, Float:a;

                GetPlayerPos(playerid, x, y, z);
                GetPlayerFacingAngle(playerid, a);
                CreateVehicle(strval(params), x, y, z, a, -1, -1, cellmax);
            }
            return 1;
        }
        case iscmd("l,o,g,a,r"):
        {
            setBit1(level, playerid, !getBit1(level, playerid));
            if (getBit1(level, playerid)) SendClientMessage(playerid, -1, "Vocк fez logon.");
            else SendClientMessage(playerid, -1, "Vocк fez logoff.");

            return 1;
        }
        case iscmd("o,n,l,i,n,e"):
        {
            new string[30] = "jogadores online.";
            format(string, sizeof(string), "%d %s", GetPlayersConnected(), string);
            SendClientMessage(playerid, -1, string);
            return 1;
        }
        case iscmd("c,a,r,r,o,s"):
        {
            new string[30] = "carros criados.";
            format(string, sizeof(string), "%d %s", GetNumberofCarsCreated(), string);
            SendClientMessage(playerid, -1, string);
            return 1;
        }
    }
    return 0;
}
Ela estб muito simples, porйm ele foi feito utilizando as novas includes lanзadas para melhoria e desempenho.

Ao terminar esse cуdigo eu fiz uma simples comparaзгo entre um cуdigo utilizando os mesmos comandos,
a mesma lуgica, sу que sem a ajuda do ibits, sem icmd, sem whooks.

Percebo que o peso do AMX ficou em um valor elevado ao normal, e isto й porque o cуdigo й pequeno...
Entгo vocкs podem tirar por ai, a diferenзa que faria em um cуdigo grande,
de dimensхes muito maiores.

Por tanto, para aqueles que ainda nгo testaram, recomendo o teste.
Dъvidas nгo sгo problemas, pois jб foram lanзados vбrios tуpicos para este tipo de ocasiгo.

Tуpicos relacionados:

@Atualizado. - 14/10/2013
- Implementaзгo das novas includes da IPSI, iLoops/iEach.

beta iBits
beta iCmd 7.0(rбpido)
beta iLoops
beta iEach

w!hooks
w!loops
Truques com icmd 7.0
Reply
#2

ae bom trabalho

e assim se pode usar as include's aqui da board e criar bons trabalhos

Good Job
Reply
#3

Otimo ! , Quanto ta seu amx em kbs ou bits ai ?
Reply
#4

Quote:
Originally Posted by shittt
Посмотреть сообщение
Otimo ! , Quanto ta seu amx em kbs ou bits ai ?
Ficou em uma diferenзa de 10kbs quase, somente com esse pequeno cуdigo, imagina se isto fosse gigante.

E eu fiz os testes com ZCMD e sscanf para aliviar a barra, ainda sim o meu ficou mais leve pela questгo do ibits.
Reply
#5

Muito bom Willian
Reply
#6

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
Ficou em uma diferenзa de 10kbs quase, somente com esse pequeno cуdigo, imagina se isto fosse gigante.

E eu fiz os testes com ZCMD e sscanf para aliviar a barra, ainda sim o meu ficou mais leve pela questгo do ibits.
um gm grande feito dessa forma ficaria com um processamento rapido, leve e super otimizado
estou errado?

e um grande trabalho
Reply
#7

Bom trabalho!
Reply
#8

Quote:
Originally Posted by PT
Посмотреть сообщение
um gm grande feito dessa forma ficaria com um processamento rapido, leve e super otimizado
estou errado?
Estб certo... :3 Essa й a ideia, afinal
Reply
#9

Й sempre bom trazer algo novo.. Parabйns.
Reply
#10

Atй que demorou mas apareceu, novas formas e muito boas elas.
Bom trabalho mano,gostei do exemplo
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)