15.05.2013, 22:12
(
Последний раз редактировалось AlucardSnow; 16.05.2013 в 16:40.
)
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.
////////////////////////////////////////////////////////////////////////////////////////////////
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.Include ZCMD, clique aqui.
-> 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.
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.
|
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;
}
Exemplo: "/dinheiro 8994", irб entregar ao player que digitou 8994.
Vamos as explicaзхes:
pawn Код:
new frase[128], UsadorDoComando[25];
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...
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));
params -> Adiciona a quantidade que foi inserida no params.
pawn Код:
GetPlayerName(playerid, UsadorDoComando, sizeof(UsadorDoComando));
pawn Код:
format(frase, sizeof(frase), "O politico %s desviou %d da obra.", UsadorDoComando, params);
SendClientMessageToAll(xBranco, frase);
pawn Код:
if( strval ( params ) == playerid)
return SendClientMessage(playerid, xBranco, "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;
}
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;
}
https://sampforum.blast.hk/showthread.php?tid=277842