[Tutorial] Usando 1 parametro em comandos [ZCMD] - 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] Usando 1 parametro em comandos [ZCMD] (
/showthread.php?tid=437499)
Usando 1 parametro em comandos [ZCMD] -
AlucardSnow - 15.05.2013
pawn Код:
////////////////////////////////////////////////////////////////////////////////////////////////
////
////
////
////
//// Usando 1 parametro em comandos [ZCMD]
//// Criado por: AlucarDSnow
//// Agradecimentos:
//// iSmir - Ensinar a usar somente com 1 parametro o ZCMD.
//// BlueX - Tutorial sobre ZCMD e SSCANF.
//// Luis Miki - Pela explicaзгo do "params".
//// Zeex - Criaзгo da include ZCMD.
////
////
////
////
//// Tutorial sugeito a crнticas construtivas, irei atualiza-lo ao passar do tempo.
////////////////////////////////////////////////////////////////////////////////////////////////
Olб pessoal, esse й o primeiro tutorial que estou compartilhando meu conhecimento em ZCMD com vocкs, pretendo ensinar a vocкs usar o comando com 1 parametro.
A maiora das pessoas usam ZCMD e SSCANF com 1 parametro, isso nгo й necessбrio, existe a forma mais fбcil que й sу usar o ZCMD, fica muito mais fбcil e rбpido.
Criei esse tutorial com a intensгo de prolongar o ensinamento ъtil do BlueX.
Qualquer erro, melhoramento pode fazer postando um comentбrio nesse tуpico.
Nгo irei tolerar chingamentos.
Faзa uma crнtica construtiva.
Para inicio vocк precisa ter a include ZCMD, caso nгo tenha a include faзa o seguinte:-> Entre no pastebin.
-> Copie todo o cуdigo.
-> Coloque o cуdigo em algum documento e salve como "zcmd.inc".
-> Jogue o arquivo dentro da pasta "pawno/include".
-> Depois no topo do GM adicionar a include ZCMD.
Include ZCMD, clique aqui.
pawn Код:
#include a_samp
#include zcmd
Quote:
Originally Posted by iSmir
Esse metуdo pode ser usado para o YCMD, bCMD, vбrios processadores de comandos.
|
Vamos direto ao ponto, vou dar um exemplo de comando e explica-lo com 1 parametro e deixar um tutorial do BlueX no final sobre 2 parametros com SSCANF.
pawn Код:
#define xBranco 0xFFFFFFFF
CMD:dinheiro(playerid, params[])
{
new frase[128], UsadorDoComando[25];
if ( isnull ( params ))
return SendClientMessage(playerid, xBranco, "Use: /dargrana quantia");
GivePlayerMoney(playerid, params);
GetPlayerName(playerid, UsadorDoComando, sizeof(UsadorDoComando));
format(frase, sizeof(frase), "O politico %s desviou %d da obra.", UsadorDoComando, params);
SendClientMessageToAll(xBranco, frase);
return 1;
}
O comando acima ele entrega a quantidade de dinheiro que o playerid irб digitar.
Exemplo: "/dinheiro 8994", irб entregar ao player que digitou 8994.
Vamos as explicaзхes:
pawn Код:
new frase[128], UsadorDoComando[25];
Explicaзгo -> Cria as duas variaveis que iremos usar para esse comando.
frase -> Й a nossa string, nela cabe 128 celulas.
UsadorDoComando -> Com ela iremos pegar o nome do playerid e jogar o nome dele no comando.
pawn Код:
if ( isnull strval ( params )) return SendClientMessage...
Explicaзгo -> Caso nгo tenha algo inserido no campo "params" retorna a mensagem "Use /dargrana quantia".
isnull -> Nulo.
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)
pawn Код:
GivePlayerMoney(playerid, strval (params));
Explicaзгo -> Adiciona dinheiro ao jogador que digitou o comando.
params -> Adiciona a quantidade que foi inserida no params.
pawn Код:
GetPlayerName(playerid, UsadorDoComando, sizeof(UsadorDoComando));
Explicaзгo -> Pega o nome do playerid e o armazena na variavel "UsadorDoComando".
pawn Код:
format(frase, sizeof(frase), "O politico %s desviou %d da obra.", UsadorDoComando, params);
SendClientMessageToAll(xBranco, frase);
Explicaзгo -> Envia a mensagem, pegando o nome do player com o %s e mostrando o valor do params em nъmeros "%d".
pawn Код:
if( strval ( params ) == playerid)
return SendClientMessage(playerid, xBranco, "Vocк nгo pode dar dinheiro a vocк mesmo.");
Explicaзгo -> Irб checar se o valor inserido em "params" й o mesmo que o player que digitou (playerid), ao constatar que й o valor й igual ao playerid, ele retorna a mensagem "Vocк nгo pode dar dinheiro a vocк mesmo.".
------------------------------------- FIM Comando /dinheiro ------------------------------
pawn Код:
CMD:pos(playerid, params[])
{
new xRL[128], Float:xPos[3];
if( isnull ( params ))
return SendClientMessage(playerid, xBranco, "Use: /pos ID");
if(!IsPlayerConnected( strval (params))
return SendClientMessage(playerid, xBranco, "Esse ID nгo estб online.");
GetPlayerPos(strval (params), xPos[0], xPos[1], xPos[2]);
format(xRL, sizeof(xRL), "X - %f Y - %f Z - %f", xPos[0], xPos[1], xPos[2]);
SendClientMessage(strval (params), xBranco, xRL);
return 1;
}
Para entender mais um pouco sobre a funзгo: " strval (params) "
Nesse caso quem recebeu a mensagem foi o params ( ID escolhido ).
------------------------------------- FIM Comando /pos -------------------------------------
PS: Quando usar dois parametros vocк pode pegar o valor do id apenas colocando (id).
Mais com 1 parametro й preciso usar "strval (params)".
Veja um exemplo no CODE abaixo, perceba o "strval (params)" e "(id)".
Vamos ver esse exemplo com 2 parametros usando SSCANF.
pawn Код:
#include ZCMD
#include sscanf
pawn Код:
CMD:dargrana(playerid, params[])
{
static xRL[128], Recebedor[25], Usador[25], id, quantia;
if(sscanf(params, "ud", id, quantia))
return SendClientMessage(playerid, xBranco, "Use: /dargrana ID quantia.");
if(!IsPlayerConnected(id))
return SendClientMessage(playerid, xBranco, "O ID que digitou nгo estб online.");
if( strval (id) == playerid ))
return SendClientMessage(playerid, xBranco, "Vocк nгo pode lhe setar dinheiro.");
GivePlayerMoney(id, quantia));
format(xRL, sizeof(xRL), "O Carinha %s deu dinheiro ao player %s, quantia %d.", Usador, Recebedor, quantia);
SendClientMessageToAll(playerid, xBranco, xRL);
return 1;
}
Nгo irei explicar pois nгo tem necessidade, o tutorial do BlueX jб tira todas as suas dъvidas.
https://sampforum.blast.hk/showthread.php?tid=277842
Re: Usando 1 parametro em comandos [ZCMD] -
BreakDriFT - 15.05.2013
Bem bacana o tutorial =]
Re: Usando 1 parametro em comandos [ZCMD] -
PT - 15.05.2013
Quote:
Originally Posted by AlucardSnow
-> Coloque o cуdigo em algum documento e salve como "zcmd.ini".
|
Nao deveria ser .inc ?
Re: Usando 1 parametro em comandos [ZCMD] -
AlucardSnow - 15.05.2013
Quote:
Originally Posted by BreakDriFT
Bem bacana o tutorial =]
|
Obrigado, irei tentar melhorar a explicaзгo assim que possivel.
Quote:
Originally Posted by PT
Nao deveria ser .inc ?
|
Erro de digitaзгo mals ae, jб arrumei.
Re: Usando 1 parametro em comandos [ZCMD] -
PT - 15.05.2013
Fora isso, muito bom parabйns
Re: Usando 1 parametro em comandos [ZCMD] -
Caio_Freeze - 15.05.2013
gosti
Re: Usando 1 parametro em comandos [ZCMD] -
.FuneraL. - 15.05.2013
No correto seria "
CMD:" ou "
COMMAND:", nгo?
Re: Usando 1 parametro em comandos [ZCMD] -
AlucardSnow - 15.05.2013
Quote:
Originally Posted by Caio_Freeze
gosti
|
O conhecimento =)
Quote:
Originally Posted by .FuneraL.
No correto seria "CMD:" ou "COMMAND:", nгo?
|
Os dois estгo corretos.
Re: Usando 1 parametro em comandos [ZCMD] -
PT - 15.05.2013
@ .FuneraL.
Quote:
Originally Posted by .FuneraL.
No correto seria "CMD:" ou "COMMAND:", nгo?
|
tambem pode ser 'ZCMD' olha os caras aqui usando:
link
mas nao daquela forma que o cara tem ae tem de ser:
pawn Код:
zcmd(comando, playerid, params[])
acho que entendera o que quis dizer
Re: Usando 1 parametro em comandos [ZCMD] -
Don_Speed - 15.05.2013
Quote:
Originally Posted by PT
@ .FuneraL.
tambem pode ser 'ZCMD' olha os caras aqui usando: link
mas nao daquela forma que o cara tem ae tem de ser:
pawn Код:
zcmd(comando, playerid, params[])
acho que entendera o que quis dizer
|
zcmd Nгo seria command(