SA-MP Forums Archive
[Tutorial] ZCMD+SSCANF e Foreach. - 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: [Tutorial] ZCMD+SSCANF e Foreach. (/showthread.php?tid=393369)



ZCMD+SSCANF e Foreach. - tonisantolia - 18.11.2012

Bom, fiz este breve tutorial para aprender como criar comandos zcmd+sscanf e usar o foreach.
pawn Код:
/*Este й um breve tutorial sobre SSCANF+ZCMD e FOREACH.*/
/*Primeiramente vamos aprender sobre FOREACH:*/
/*A Include 'Foreach' que й um pequena imitaзгo do foreach do PHP Serve para deixar os loops mais leves.*/
/*O Que sгo loops?*/
/*Loops sгo aquelas famosas linhas igual a do exemplo:*/
/*for(new i = 0; i < sizeof(MAX_PLAYERS); i++)*/
/*Mas claro que nгo sу existe este tipo de loop..*/
/*Para subistituir o loop acima por um em foreach ficaria assim:*/
/*foreach(new i : Player) - Simples! Tanta que nem preciso explicar muito..*/
/**/
/*SSCANF+ZCMD:*/
/*ZCMD - Um dos melhores processadores de comandos por que й rapido e facil para aprender.*/
/*SSCANF - Uma include que melhora o processamento do ZCMD.(Nгo sei a exata funзгo dela mas vou ensinar a usa-la em zcmd.*/
/*Modo de Uso:*/
/*Vou criar um comando /exemplo explicando linhar por linha:*/
CMD:exemplo(playerid,params[]) // Params = Parametros do Comando. Aqui ele cria o comando..
{ // Abre as chaves para por a funзгo do comando.
    new Text[128];   // Variavel que nуs usaremos para definir o texto que iremos digitar. (EX: /exemplo oi.)
    new String[128]; // Variavel String.
    new Snd[MAX_PLAYER_NAME]; // Variavel para pegar o nome do player.
    GetPlayerName(playerid,Snd,sizeof Snd); // Funзгo para pegar o nome do player.
    if(sscanf(params,"s",Text)) return SendClientMessage(playerid,-1,"Use: /exemplo [text]");
    //Caso vocк nгo digite o texto na frente do comando ele retorna a mensagem.
    //o "s" que definimos ali й o parametro para texto, mas existe varios por exemplo:
   
    //u - Player ID.
    //f - Float.
    //i - Numero.
    //s - Texto.
   
    //Existe varios outros sу que nгo lembro kk.
    //Acho que isso deu para entender como chamar o sscanf em um zcmd.
    format(String,sizeof String,"%s diz: %s",Snd,Text);
    //Snd e o primeiro %s - Foi para substituir o %s pelo nome do player.
    //Text e o segundo %s - O Texto que digitamos atraves do sscanf.
    SendClientMessageToAll(-1,String);
    //SendClientMessageToAll - Mensagem para todos os players do server.
    //-1 - Cor Branca.
    //String - Chama a format que criamos logo acima.
    return true; // Em ZCMD nunca pode ser false.
} // Fechando as chaves do cmd.
//Pronto! Vocк criou seu comando com ZCMD+SSCANF.
//PS: Nгo se esqueзa de chamar no topo do gamemode todas as includes que usamos.
Desculpa por ser muito pequeno, mas em breve irei atualizar o mesmo adicionando tutorial sobre sistema de login/registro e sistema de administraзгo.



Re: ZCMD+SSCANF e Foreach. - AmericanStyle'™ - 18.11.2012

Jб tem vбrios tutoriais iguais a esse. !
falto vocк ensinar como usar foreach =)
ta bem fraco o tutorial.
Abraзos !


Re: ZCMD+SSCANF e Foreach. - MonstrinhoVerde - 18.11.2012

Eu que nгo percebo nada de ZCMD passei a perceber mais um pouco, acho fraco nгo, 7/10, + Rep

@Edit

Dб um erro qualquer, por isso nгo posso dar, malz


Re: ZCMD+SSCANF e Foreach. - ViictorDaay- - 18.11.2012

Achei muito bagunзado/confuso.


Re: ZCMD+SSCANF e Foreach. - Q.I - 18.11.2012

isso й um tutorial ?

cada coisa viu.


Re: ZCMD+SSCANF e Foreach. - Sky™ - 18.11.2012

essas letrinhas verdes doe meus Olhos !

dava para melhorar mais eu que nem sabia desse foreach
vo da uma estudada!


Re: ZCMD+SSCANF e Foreach. - jpeg - 18.11.2012

ficou bom zin, o que vale й a intenзгo de ajudar. =P


Re: ZCMD+SSCANF e Foreach. - JapaN* - 18.11.2012

Quote:
Originally Posted by AmericanStyle'™
Посмотреть сообщение
Jб tem vбrios tutoriais iguais a esse. !
falto vocк ensinar como usar foreach =)
ta bem fraco o tutorial.
Abraзos !
Quote:
Originally Posted by ViictorDaay-
Посмотреть сообщение
Achei muito bagunзado/confuso.
Quote:
Originally Posted by Q.I
Посмотреть сообщение
isso й um tutorial ?

cada coisa viu.
Quote:
Originally Posted by Sky_.
Посмотреть сообщение
essas letrinhas verdes doe meus Olhos !
Tudo que ia falar acima -.-


Re: ZCMD+SSCANF e Foreach. - leonardo1434 - 18.11.2012

Definitivamente isto nгo й um tutorial.


Re: ZCMD+SSCANF e Foreach. - zSuYaNw - 18.11.2012

1:
Quote:
Originally Posted by leonardo1434
Посмотреть сообщение
Definitivamente isto nгo й um tutorial.
2:
Quote:

ZCMD foi criado hб 3 anos atrбs, por que vocкs insistem em usar isto ?

3:
Quote:

Pelo exemplo do sscanf tens que especificar o tamanho da string:
pawn Код:
if(sscanf(params, "s[128]", String))
Pois, caso ao contrбrio irб returnar erro.

Para quem estб tentando buscar otimizaзгo, faзa testes, nгo use sу porque
alguйm estб usando/indicando, se vocк pensasse um pouco o foreach poderia
ser um sistema bбsico como esse:

pawn Код:
#define Players::(%0)                                                                   for(new %0; %0 != gPlayersCounting; ++%0) if(IsPlayerConnected(%0))

new gPlayersCounting;


public OnPlayerConnect(playerid) return gPlayersCounting ++;
public OnPlayerDisconnect(playerid, reason) return gPlayersCounting --;
Isto й um sistema parecido com o for each, nгo sei te dizer sobre a velocidade, mais sem
dъvida ultrapassa dos loopings normais:
pawn Код:
for(new i; i != MAX_PLAYERS; ++i)
for(new i, e = GetMaxPlayers(); i != e; ++i)