[Include] fCommand - (Multiparвmetros e Rбpido) [2.0]
#1

Introduзгo:

Oi gente.
Hoje venho publicar meu sistema de comandos criado juntamente com Dark TeaM PT.
Este sistema de comandos tem suporte a MultiParametros assim nгo precisando de sscanf,strtok e similares.


Acessibilidade:

#Multi-Parametros:

Ele tem um avanзado sistema base explode e split.
ELe funciona com Multi-Parвmetros,assim sendo muito mais fбcil a quem usa.

@Exemplo:

#Comando:
/vida 0 100

Код:
/vida	= iParams[0]
0	= iParams[1]
100	= iParams[2]
Assim a partir do parametros '1' ele pegarб todos espaзos e farб as divisхes,tudo isto no prуprio sistema de comandos,ficando mais acessнvel.

#Acessibilidade de Comandos:
Assim como ZCMD ele й criado todos comandos fora que qualquer public,como se fosse uma Stock.

pawn Код:
fcmd(comando,playerid)
{
    return true;
}
Assim facilitando a todos que usam.

Velocidade:

#Modo:
fCommand ultiliza a mesma base do zcmd.
Sгo basicamente CallLocalFunctions que redirecionam para CallBack,assim sem necessitar strcmp para comparar
o comando,pois tudo й feito atravйs de chamadas nas mesmas,no caso de a callback nгo existir ele automбticamente
retorna false,assim sendo uma velocidade incomparбvel a outros sistemas de comandos

#Comparaзхes
Infelizmente nгo fiz comparaзхes com outros sistemas de comandos,apenas com o mais rбpido zcmd

Segundo DarK TeaM PT:

Код:
# ZCMD - 52
# FCMD - 25


Portanto nгo foi necessбrio outras verificaзхes.

Cуdigos:

#Codнgo

pawn Код:
#define fcmd(%1,%2) \
            forward fcmd_%1(%2);    \
                public fcmd_%1(%2)

#define MaxFrequence (025)
#define MaxParameter (064)
#define MaxFunctions (032)
#define MaxLenString (128)

new
    sIndex = 0,
    iLenPart = 0,
    iPosPart = 0,
    iStrMid = 0,
    iLenght = 0,
    cmds[ MaxFunctions ]
;

public OnFilterScriptInit()
{
    OnPlayerCommandText(0,"/me Hoje me sinto bem");
    return true;
}
public OnPlayerCommandText(playerid,cmdtext[])
{
    //Here you can write cmds witout params!
    return DelimiterCommand(playerid,cmdtext);
}
new iParams[ MaxFrequence ][ MaxParameter ],iTotalParams[MaxLenString];

stock
    DelimiterCommand(playerid,sStringSource[])
{
    iLenght = strlen(sStringSource);
    sIndex = 0;
    iLenPart = 0;
    iPosPart = 0;
    iStrMid = 0;
    for(new aIndex = 1; aIndex < MaxFrequence; ++aIndex) iParams[aIndex][0] = '\0';
    iTotalParams[0] = '\0';
    while(sIndex <= iLenght)
    {

        if(sStringSource[sIndex] == ' ' && sStringSource[sIndex - 1] != ' ' || sIndex == iLenght)
        {
            iStrMid = strmid(iParams[iPosPart], sStringSource, iLenPart, sIndex, 128);
            iParams[iPosPart][iStrMid] = 0,iLenPart = (sIndex + 1), ++iPosPart;
            if(iPosPart == 1)
                format(iTotalParams,MaxLenString, "%s",sStringSource[sIndex]);
        }
        ++sIndex;
    }
    format(cmds, sizeof cmds,"fcmd_%s",iParams[0][1]);
    return CallLocalFunction(cmds,"i",playerid);
}


//iTotalParams = All Params in One String
//iParams[id] = Only one Parameter
ou Entгo Clique aqui para Download

Crйditos:
Sistema de Comandos FeK Squad Commands й criado por:


# [FeK]DraKiNs
# DarK TeaM PT

Em Agradecimento geral a Equipe [FeK]Squad and DracoBlue
Reply


Messages In This Thread
fCommand - (Multiparвmetros e Rбpido) [2.0] - by ipsBruno - 18.01.2011, 23:35
Re: fCmd (Suporta Multiparвmetros) - by [FeK]Knife - 18.01.2011, 23:40
Re: fCommand (Suporta Multiparвmetros) - by PsyShotter - 18.01.2011, 23:48
Respuesta: fCommand (Suporta Multiparвmetros) - by ipsBruno - 18.01.2011, 23:51
Resposta. - by ベータ版 マスター - 19.01.2011, 00:00
Re: fCommand (Suporta Multiparвmetros) - by [NWD]Jim._.Carrey - 19.01.2011, 00:04
Respuesta: fCommand (Suporta Multiparвmetros) - by ipsBruno - 19.01.2011, 01:08
Re: fCommand (Suporta Multiparвmetros) - by SlashPT - 19.01.2011, 10:29
Respuesta: fCommand (Suporta Multiparвmetros) - by ipsBruno - 19.01.2011, 13:35
Re: fCommand (Suporta Multiparвmetros) - by SlashPT - 19.01.2011, 13:43

Forum Jump:


Users browsing this thread: 1 Guest(s)