[Tutorial] Usando ZMCD Com e sem sscanf
#1

Usando Zcmd/sscanf
Нndice

• Usando ZCMD.
• Usando ZCMD C/ Parвmetros.
• Usando ZCMD C/ sscanf.
• Crйditos.

Usando ZCMD
Ele й mais prбtico mais rбpido, eu acho que ele foi feito para os novatos pararem de copiar, й muito mais facil de usar por ser mais compacto;
Exemplos :
pawn Code:
CMD: oi(playerid)
{
    return 1;
}
Do que
pawn Code:
if(strcmp(cmd,"/oi",true)==0)
Vamos ao que importa,Vamos fazer um comando simples sem parвmetros e sem o uso do sscanf.
Vamos criar um comando com variбveis.
pawn Code:
new Oi;
pawn Code:
CMD:oi(playerid)
{
    if(Oi == 1)//Se a variбvel OI for = 1,retorna a mensagem abaixo
    {
    SendClientMessage(playerid, -1, "Sua Variбvel Oi jб й 1");
    return 1;
    }
    Oi = 1;//Se a variбvel Oi for diferente de 1, ele vai seta-la para 1
    return 1;
}
Bom esta parte й facil, vamos usar ZCMD com parвmetros, eu aprendi sozinho depois estudei e vi que nгo й difнcil,
vamos la

adicione no topo do seu gm/fs
pawn Code:
new playername[MAX_PLAYER_NAME];
pawn Code:
CMD:pegargrana(playerid, params[])
{
    new String[128], playername[25];
    if(isnull(params))
        return SendClientMessage(playerid, -1, "Use: /pegargrana quantia");
    GivePlayerMoney(playerid, params);
    GetPlayerName(playerid, playername, sizeof(playername));
    format(String, sizeof(String), "Vocк %s te deu %d de dinheiro", UsadorDoComando, params);
    SendClientMessage(playerid, -1, String);
    return 1;
}
Vamos as explicaзхes
pawn Code:
if(isnull(params))
        return SendClientMessage(playerid, -1, "Use: /dargrana quantia");
isnull = Nulo


params = Como vocк jб percebeu, no zcmd, params й o que vem depois do comando digitado. Ou seja, seu objetivo й setar um valor.


pawn Code:
GivePlayerMoney(iddele, params);// seta para o recebedor o params que й o dinheiro

iddele = o Objetivo, o id do player que estб recebendo
params = o valor.



Usando ZCMD C/ sscanf



⇝ Nesta etapa vamos usar o sscanf em comandos, como ir em posiзхes ,dar valores e etc

• Comando /setarlevel
pawn Code:
CMD:setlevel(playerid, params[])
{
     new iddele,level;
     if(sscanf(params, "dd", iddele, level))
       return SendClientMessage(playerid, COR_CINZA1, "Use: /setlevel [id] [level]");
     if(!IsPlayerConnected(iddele))
        return SendClientMessage(playerid, COR_CINZA2, "Jogador nгo conectado");
     SetPlayerScore(iddele, level);
     GetPlayerName(iddele, playername1, sizeof(playername1));
     GetPlayerName(playerid, playername, sizeof(playername));
     format(String, 80, "Vocк setou o level do %s para %d ", playername1, level);
     SendClientMessage(playerid, COR_AZULCLARO, String);
     format(String, 80, "O Administrador %s setou seu level para %d", playername, level);
     SendClientMessage(iddele, COR_AZULCLARO, String);
     return 1;
}
• Explicando
if(!IsPlayerConnected(iddele))// !IsPlayerConnected , nгo esta conectado,(iddele) , o recebedor
"dd" oque significa dd - 1є d = O ID Do player que receberб, o 2є й o o level dado.
SetPlayerScore(iddele, level); // iddele , id do player, "level" level setado

pawn Code:
CMD:irpos(playerid, params[])
{
       new Float:X,Float:Y,Float:Z;//Posiзхes X Y Z
       GetPlayerName(iddele, playername1, sizeof(playername1));
       if(sscanf(params, "ddd", X, Y,Z))//Se nгo tiver X Y Z no /irpos retorna a mensagem abaixo
        return SendClientMessage(playerid, COR_CINZA1, "USE: /irpos [X] [Y] [Z]");
       SetPlayerPos(playerid,X,Y,Z);//seta a posiзгo do player "playerid" quem digitou o cmd
        printf("[Posiзгo]: Player %s foi para as posiзхes %f %f %f",playername,X,Y,Z);
       return 1;
}



Crйditos

Zeex (ZCMD)
Y_Less (sscanf)
Wellington1999
Reply
#2

Jб tem tutorias assim na board, mas mesmo assim parabйns pela esforзo '-'
Reply
#3

Quote:
Originally Posted by Juniiro3
View Post
Jб tem tutorias assim na board, mas mesmo assim parabйns pela esforзo '-'
foi pra ajudar um amiguinho;
Reply
#4

i = inteiro
s = string
d = numeros
u = id
f = float
b = booleano(nгo tenho certeza deste)
Reply
#5

Bacana, te dou rep quando eu poder, tenho que esperar 24hrs... --'

Tente melhorar para o prуximo, em relaзгo a tudo, organizaзгo, explicaзгo e os cуdigos que vocк usa como exemplo, vocк acumulou muitas coisas uma em cima da outra, isso pode complicar para quem lк, tente dar um espaзo para descansar a vista e etc.

Abraзos.
Reply
#6

Tem muitas coisas erradas em seu tutorial, primeiramente que na variбvel "Oi" vocк botou funзхes e esqueceu de abrir a chave para poder fechar (geralmente a causa de 26 erros no compilador).

E no comando "/dargrana" vocк tem que saber que isnull й sу quando й usado 1 parametro na funзгo. e no seu comando vocк esta usando 2 variбveis, sendo que nelas nгo tem nenhum valor especнfico. por isto sempre irб funcionar para o ID 0.

Bom, existem mais erros no seu tutorial, creio que os principais eu citei.

Lhe darei +rep se consertalos.



Cheers.
Reply
#7

Quote:
Originally Posted by zSuYaNw
View Post
Tem muitas coisas erradas em seu tutorial, primeiramente que na variбvel "Oi" vocк botou funзхes e esqueceu de abrir a chave para poder fechar (geralmente a causa de 26 erros no compilador).

E no comando "/dargrana" vocк tem que saber que isnull й sу quando й usado 1 parametro na funзгo. e no seu comando vocк esta usando 2 variбveis, sendo que nelas nгo tem nenhum valor especнfico. por isto sempre irб funcionar para o ID 0.

Bom, existem mais erros no seu tutorial, creio que os principais eu citei.

Lhe darei +rep se consertalos.



Cheers.
26 erros й quando a chave de fechar estб faltando
quando estб faltando a de abrir o compilador para de funcionar :$
Reply
#8

Distraзгo minha,eu mudei o comando /dargrana, para /pegargrana[quantia], e valeu por ajudar.
Reply
#9

Quote:
Originally Posted by Wellington1999
View Post
Distraзгo minha,eu mudei o comando /dargrana, para /pegargrana[quantia], e valeu por ajudar.
Vlw man, de grande ajuda pra mim! +rep
Reply
#10

Hб erros no tutorial.


pawn Code:
CMD:pegargrana(playerid, params[])
{
    new String[128], playername[25];
    if(isnull(params))
        return SendClientMessage(playerid, -1, "Use: /pegargrana quantia");
    GivePlayerMoney(playerid, params);
    GetPlayerName(playerid, playername, sizeof(playername));
    format(String, sizeof(String), "Vocк %s te deu %d de dinheiro", UsadorDoComando, params);
    SendClientMessage(playerid, -1, String);
    return 1;
}

Tente compilar isto.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)