SA-MP Forums Archive
[Include] fCommand - (Multiparвmetros e Rбpido) [2.0] - 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: [Include] fCommand - (Multiparвmetros e Rбpido) [2.0] (/showthread.php?tid=213323)



fCommand - (Multiparвmetros e Rбpido) [2.0] - ipsBruno - 18.01.2011

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


Re: fCmd (Suporta Multiparвmetros) - [FeK]Knife - 18.01.2011

Boa Include !
Parabйns !
Vou parar de usar zcmd pra usar fcmd



Re: fCommand (Suporta Multiparвmetros) - PsyShotter - 18.01.2011

Wow...
Jб estб em minha gamemode '-'

Dragгozinho sempre ajudando o povo do fуrum


Respuesta: fCommand (Suporta Multiparвmetros) - ipsBruno - 18.01.2011

PsyShotter
O povo e a pova
Companheiros e Companheiras.

Knife
Valeu Knife,aguardo Tutorial,tem gente que nгo vai entender,apesar de ser o sistema mais prбtico

Ah,se dar Unknow Command me avisem (to sem GTA nгo posso testar..)


Resposta. - ベータ版 マスター - 19.01.2011

Legal.


Re: fCommand (Suporta Multiparвmetros) - [NWD]Jim._.Carrey - 19.01.2011

Mell Deosss arregaзo agora cat 100/100 alucinou euri.

parabйns.


Respuesta: fCommand (Suporta Multiparвmetros) - ipsBruno - 19.01.2011

Obrigado ベータ版 マスター pela Mirror em Inc


Re: fCommand (Suporta Multiparвmetros) - SlashPT - 19.01.2011

EXCELENTE trabalho vou para de usar ZCMD... pois OnPlayerRcon e tudo й anulado... e este e mt facil de utilizar nunca tinha pensado numa coisa assim!!

so uma coisa podes fazer testes de velocidade?

pk se nao ouver mt diferenзa irei usar de certeza!

mais uma vez excelente trabalho e obrigado por partilhares!


Respuesta: fCommand (Suporta Multiparвmetros) - ipsBruno - 19.01.2011

ZCMD Atй ontem era o mais rбpido sistema de comandos Kyle,rs.


Re: fCommand (Suporta Multiparвmetros) - SlashPT - 19.01.2011

sim eu e tu ja falamos sobre isso...