Usando sscanf em zcmd -
RebeloX - 19.08.2011
¤Usando sscanf em zcmd¤
Bem comecei a usar zcmd a pouco tempo, mas tenho visto que й muito diferente de strcmp, alem de tudo й mais fбcil de se aprender, neste tutorial vou ensinar como usar sscanf em zcmd, irei ensinar o que aprendi claro, nгo estarei dizendo coisas que nгo sei, por tanto vamos comeзar...
Bem para usar sscanf em zcmd terб que criar o comando zcmd logico, entгo vamos lб.
No topo do GM/Fs adicione
pawn Код:
#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...
pawn Код:
//=====[ARRAYS]======
new texto;
new nome[MAX_PLAYER_NAME];
new Str[128];
new id;
pawn Код:
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.
pawn Код:
if(sscanf(params, "us",id,texto))
if - Primeiramente. Pra 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 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 eu ainda nгo todos....
depois para acabar basta adicionar as arrays, tipo, para o u vocк pode criar uma array chamada id, para o s vocк pode criar uma chamada Texto, por ai a diante...
pawn Код:
SendClientMessage(playerid,-1,"Use: /mp [id] [texto]");
↑ isso й aquela mensagem quando vocк sу digita o comando, /mp dai aparece essa mensagem...
↑ irб retornar caso vocк adicione o id e o texto exemplo /mp 1 eae.
Por fim usamos ↓
pawn Код:
format(Str, sizeof(Str), "Mesangem Privada de%s: %s",nome,texto);
Ah mlk mais vc nгo tem que adicionar o id?
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:
pawn Код:
format(Str, sizeof(Str), "Mesangem Privada de %s [ID%d]: %s",nome,playerid,texto);
Bom eu expliquei este comando todo, acho que por agora aprenderam, entгo, vou exemplificar mais outros comandos
/av para admin:
pawn Код:
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)
pawn Код:
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 e pronts, 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
®****** - Pela criaзгo do sscanf
®Zeex - Plea criaзгo do zcmd
↓Download↓
↓ZCMD - Clique Aqui
↓sscanf 2.0 - Clique Aqui
Re: Usando sscanf em zcmd -
steki. - 19.08.2011
*---*
Re: Usando sscanf em zcmd -
BrunoBSF - 19.08.2011
Otimo parabens
Re: Usando sscanf em zcmd -
RebeloX - 19.08.2011
Quote:
Originally Posted by Luнs Miki
*---*
|
hehe *---*
Quote:
Originally Posted by BrunoBSF
Otimo parabens
|
Tanks...
Re: Usando sscanf em zcmd -
Leeo_Perez - 19.08.2011
bacana, eu ia fazer um tuto desse , mas vc foi mais rapido, seu tutorial ficou mt bem explicativo!
@edit:
esqueci de avisar... vc podia deixar esse code mais facil de fazer e mais rapido tbm(na minha opniao!)
CMD:mp(playerid, params[])
{
if(sscanf(params, "us",id,texto)) return SendClientMessage(playerid,-1,"Use: /mp [id] [texto]");
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;
}
sу acho que assim seria mais facil ou mais 'otimizado', de qualquer maneira foi apenas uma sugestгo , belo tutorial!
Re: Usando sscanf em zcmd -
MiTToS - 19.08.2011
Como eu devo usar o sscanf com o parametro "u"?
Eu tentei de algumas maneiras mas nunca me funcionava, vi pessoas do fуrum com o mesmo problema -q
pode dar um exemplo?
EDIT: LoL acabei de ver que tem um exemplo com o "u" -q
mals.
Bom tuto +reputacao
Re: Usando sscanf em zcmd -
histire - 19.08.2011
man sу kero fala uma coisa "obrigado hihi"
ontem de ontem tava falando com o dylan tava kerendo aprender sscanf e zcmd vlw pelo tuto vei + repu
Re: Usando sscanf em zcmd -
RebeloX - 19.08.2011
Quote:
Originally Posted by Leeo_Perez
bacana, eu ia fazer um tuto desse , mas vc foi mais rapido, seu tutorial ficou mt bem explicativo!
|
Obrigado
Quote:
Originally Posted by MiTToS
Como eu devo usar o sscanf com o parametro "u"?
Eu tentei de algumas maneiras mas nunca me funcionava, vi pessoas do fуrum com o mesmo problema -q
pode dar um exemplo?
EDIT: LoL acabei de ver que tem um exemplo com o "u" -q
mals.
Bom tuto +reputacao 
|
Nгo percisa de desculpar LoooL, o "u" й o id do player, usado para setar, dar grana, enviar mp, tudo o que tenha a ver com dar algo a um player....
Quote:
Originally Posted by histire
man sу kero fala uma coisa "obrigado hihi"
ontem de ontem tava falando com o dylan tava kerendo aprender sscanf e zcmd vlw pelo tuto vei + repu
|
Thanks
Re: Usando sscanf em zcmd -
Miqueias Barros - 19.08.2011
Nossa BlueX, parabйns mano
Re: Usando sscanf em zcmd -
Josma_cmd - 19.08.2011
Bom tutorial parabйns, bem explicado.