peão Код:
Criei esse tutorial com a intensгo de prolongar o ensinamento ъtil do BlueX.
Qualquer erro, o melhoramento pode fazer postando um comentário nesse tópico.
Não vou tolerar chingamentos.
Faz uma crítica construtiva.
Para iniciar você precisa ter um include ZCMD, caso não tenha um include faça o seguinte:
Citar:
- Código:
[size=14][size=13]////////////////////////////////////////////////// //////////////////////////////////////////////
////
////
////
////
//// Usando 1 parâmetro em comandos [ZCMD]
//// Criado por: AlucarDSnow
//// Agradecimentos:
//// iSmir - Ensinar a usar somente com 1 parâmetro 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, vou atualizá-lo ao passar do tempo.
////////////////////////////////////////////////// //////////////////////////////////////////////[/size][/size]
[center][size=14]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.[/size]
[size=14]A maiora das pessoas usam ZCMD e SSCANF com 1 parâmetro, isso não é necessário, existe a forma mais fácil que é sу usar o ZCMD, fica muito mais fácil e rápido.[/size][/center]
Criei esse tutorial com a intensгo de prolongar o ensinamento ъtil do BlueX.
Qualquer erro, o melhoramento pode fazer postando um comentário nesse tópico.
Não vou tolerar chingamentos.
Faz uma crítica construtiva.
Para iniciar você precisa ter um include ZCMD, caso não tenha um include faça o seguinte:
peão Код:-> Entre no pastebin.
-> Copiar 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.
- Código:
#include a_samp
#include zcmd
Citar:
Postado originalmente por iSmir Esse método pode ser usado para o YCMD, bCMD, vários comandos ocultos. |
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.
peão Код:- Código:
[size=14][size=13]#define xBranco 0xFFFFFFFF
CMD : dinheiro ( playerid, params [ ] )
{
new frase [ 128 ] , UsadorDoComando [ 25 ] ;
if ( isnull ( params ) )
return SendClientMessage ( playerid, xBranco, "Usar: /dargrana valor" ) ;
GivePlayerMoney ( playerid, params ) ;
GetPlayerName ( playerid, UsadorDoComando, sizeof (UsadorDoComando ) ) ;
format ( frase, sizeof ( frase ) , "O politico %s desviou %d da obra." , UsadorDoComando, params ) ;
SendClientMessageToAll ( xBranco, frase ) ;
retornar 1 ;
}[/size][/size]
[center][/center]
O comando acima ele entrega a quantidade de dinheiro que o playerid irá digitar.
Exemplo: "/dinheiro 8994", irá entregar ao jogador que digitou 8994.
Vamos as explicações:
peão Код:Exemplo: "/dinheiro 8994", irá entregar ao jogador que digitou 8994.
Vamos as explicações:
- Código:
nova frase [ 128 ] , UsadorDoComando [ 25 ] ;
Explicação -> Cria as duas variáveis 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.
peão Код:frase -> Й a nossa string, nela cabe 128 celulas.
UsadorDoComando -> Com ela iremos pegar o nome do playerid e jogar o nome dele no comando.
- Código:
if ( isnull strval ( params ) ) return SendClientMessage...
Explicação -> Caso não tenha algo inserido no campo "params" retorna a mensagem "Use /dargrana quantitativo".
isnull -> Nulo.
params -> Como você já sabe, no zcmd, params é o que vem depois do /comando. Ou seja, seu objetivo é quebrar uma string 'params' para poder pegar a hora para setar o servidor. (Créditos Luís Miki)
peão Код:isnull -> Nulo.
params -> Como você já sabe, no zcmd, params é o que vem depois do /comando. Ou seja, seu objetivo é quebrar uma string 'params' para poder pegar a hora para setar o servidor. (Créditos Luís Miki)
- Código:
GivePlayerMoney ( playerid, strval ( params ) ) ;
Explicação -> Adiciona dinheiro ao jogador que digitou o comando.
params -> Adiciona a quantidade que foi inserida no params.
peão Код:params -> Adiciona a quantidade que foi inserida no params.
- Código:
GetPlayerName ( playerid, UsadorDoComando, sizeof ( UsadorDoComando ) ) ;
Explicação -> Pega o nome do playerid eo armazena na variável "UsadorDoComando".
peão Код:- Código:
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 %se mostrando o valor dos params em nъmeros "%d".
peão Код:- Código:
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 --------- ---------------------
peão Код:------------------------------------- FIM Comando /dinheiro --------- ---------------------
- Código:
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 ( parâmetros ) , xPos [ 0 ] , xPos [ 1 ] , xPos [ 2 ] ) ;
formato ( xRL, sizeof ( xRL ) , "X - %f Y - %f Z - %f" , xPos [ 0 ] , xPos [ 1 ] , xPos [ 2 ] ) ;
SendClientMessage (strval ( params ) , xBranco, xRL ) ;
retornar 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 parâmetros você pode pegar o valor do id apenas operando (id).
Mais com 1 parâmetro é preciso usar "strval (params)".
Veja um exemplo no CODE abaixo, perceba o "strval (params)" e "(id)".
Vamos ver esse exemplo com 2 parâmetros usando SSCANF.
peão Код:Nesse caso quem recebeu a mensagem foi o params ( ID escolhido ).
------------------------------------- FIM Comando /pos --------- ----------------------------
PS: Quando usar dois parâmetros você pode pegar o valor do id apenas operando (id).
Mais com 1 parâmetro é preciso usar "strval (params)".
Veja um exemplo no CODE abaixo, perceba o "strval (params)" e "(id)".
Vamos ver esse exemplo com 2 parâmetros usando SSCANF.
- Código:
[size=14][size=13]#incluir ZCMD
#incluir sscanf[/size][/size]
[size=14]peão Код:
[size=13]CMD : dargrana ( playerid, params [ ] )
{
static xRL [ 128 ] , Recebedor [ 25 ] , Usador [ 25 ] , id, valor;
if ( sscanf ( params, "ud" , id, valor ) )
return SendClientMessage ( playerid, xBranco, "Usar: /dargrana ID valor." ) ;
if ( ! IsPlayerConnected ( id ) )
returnSendClientMessage ( playerid, xBranco, "O ID que digitou nгo estб online." ) ;
if ( strval ( id ) == playerid ) )
return SendClientMessage ( playerid, xBranco, "Você não pode lhe definir dinheiro." ) ;
GivePlayerMoney ( id, quantia ) ) ;
format ( xRL, sizeof ( xRL ) , "O Carinha %s deu dinheiro ao jogador %s, valor %d." , Usador, Recebedor, valor ) ;
SendClientMessageToAll ( playerid, xBranco, xRL ) ;
retornar 1 ;
}[/size][/size]
Não vou explicar pois não tem necessidade, o tutorial do BlueX já tira todas as suas dъvidas.
Creditos: AlucardSnow