[TUT] - Usando SSCANF em ZCMD


¤Usando sscanf em zcmd¤


  ZCMD é muito diferente de STRCMP, além de tudo é mais fácil de se aprender.

  Neste tutorial vamos ensinar como usar sscanf em zcmd.

  Para usar sscanf em zcmd terá que criar o comando zcmd logico, então vamos lá.

No topo do GM/Fs adicione

#include zcmd #include sscanf2

Então agora vamos criar um comando de mp

Não se esqueça de adicionar as arrays como logico, claro que pode mudar o nome, não é preciso chamar-se new Texto, pode ser new frase, o que quiser, só tem que saber colocar...

//=====[ARRAYS]====== new texto; new nome[MAX_PLAYER_NAME]; new Str[128]; new id;

CMD:mp(playerid, params[]) {     if(sscanf(params, "us",id,texto))     {         SendClientMessage(playerid,-1,"Use: /mp [id] [texto]");     }     else     {         if(IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Este jogador não está conectado");         GetPlayerName(playerid,nome,sizeof(nome));         format(Str, sizeof(Str), "Mesangem Privada de %s: %s",nome,texto);         SendClientMessage(id,-1,Str);     }     return true; }

Bem vamos falar agora um pouco sobre o comando
if(sscanf(params, "us",id,texto))

if - Primeiramente. Para quê if? Simples. sscanf, quando consegue cumprir sua função, retorna 0 (O que é um costume desconhecido em pawn). Ou seja, quando ele separa a string corretamente e todas as variávels são preenchidas, retorna 0, caso contrário 1, o que mostraria a ajuda do comando. (Créditos Luís Miki)


params - Como você já sabe, no zcmd, params é o que vem depois do /comando. Ou seja, seu objetivo é quebrar a string 'params' para poder pegar a hora para setar o servidor. (Créditos Luís Miki)

us - Bem essa parte é o que torna sscanf facil de usar em zcmd, vc sabe quando usa mensagem que tenha que pegar o nome do player? ou o id, que usa %s, %d aqui é mesma coisa só que sem %, então vamos ver alguns dos que eu sei..
d ou i - usado quando você usa números, exemplo numero do seu celular...
s - é o string usado quando você usa letras, exemplo "Meu nome é BlueX"
u - usado para aquele famoso [Id do Player]...
f - usado para coordenadas...
Existem mais, mas nós ainda não estamos usando-os....
depois para acabar basta adicionar as arrays, você pode criar uma array chamada id, para o s você pode criar uma chamada Texto, por ai a diante...

SendClientMessage(playerid,-1,"Use: /mp [id] [texto]");
~> isso é aquela mensagem quando você só digita o comando, /mp dai aparece essa mensagem..
else
↓sscanf 2.0 - Clique Aqui
~> irá retornar caso você adicione o id e o texto exemplo ( /mp 1 eae. )




Por fim usamos:

format(Str, sizeof(Str), "Mesangem Privada de%s: %s",nome,texto);
Perguntas frequentes:
~> Não precisa adicionar o ID?
R= Não pois você irá mandar para o player não será necessário, mas caso você queira que mostre o id basta colocar assim:

format(Str, sizeof(Str), "Mesangem Privada de %s [ID%d]: %s",nome,playerid,texto);

Explicamos este comando todo, acho que agora aprenderam, então, vou exemplificar mais outros comandos

/av para admin:

CMD:av(playerid, params[]) {     if(IsPlayerAdmin(playerid))     {         if(sscanf(params, "s",texto))         {             SendClientMessage(playerid,-1,"Use: /av [texto]");         }         else         {             GetPlayerName(playerid,nome,sizeof(nome));             format(Str, sizeof(Str),"Admin %s [ID:%d]: %s",nome,playerid,texto);             SendClientMessageToAll(-1,Str);         }     }     else SendClientMessage(playerid,-1,"Você não esta logado na rcon");     return true; }

/a (chat de admins)
CMD:a(playerid, params[]) {     for( new i; i < MAX_PLAYERS; i++ )     {         if(IsPlayerAdmin(playerid))         {             if(sscanf(params, "s",texto))             {                 SendClientMessage(playerid,-1,"Use: /a [texto]");             }             else             {                 GetPlayerName(playerid,nome,sizeof(nome));                 format(Str, sizeof(Str),"%s: %s",nome,texto);                 SendClientMessage(i,-1,Str);             }         }         else SendClientMessage(playerid,-1,"Você não é adminRcon");     }     return true; }

Bem agora basta usar imaginação, você consegue fazer coisas mais rapidas com zcmd e sscanf.
Usando imaginação você chega lá. Espero que goste.


®Creditos®
®BlueX - Por criação do Tutorial
®Luis Miki - Por explicação de duas coisas que eu não sabia
®Y_Less - Pela criação do sscanf
®Zeex - Pela criação do zcmd

↓Download↓


[INC]zcmd .:> Clique aqui

[INC]sscanf2.0  .:> Clique aqui


COMPARTILHE

VEJA TAMBÉM

Próxima
« Anterior
Anterior
Próximo »