[Ajuda] Como fazer comandos com efeitos para outros players
#1

Acho que meu singelo tнtulo nгo ajudou muito na explicaзгo. Pois bem, vou tentar. Sou novatнssimo nessa de pawn e tф tentando aprender algo porque me interessei pela бrea de programaзгo. Eu queria saber como fazer comandos do tipo:

/cura ID

Para curar um certo ID do server... Enfim... Colocar ID's nos meus comandos. Alguйm pode ajudar?
Reply
#2

aqui tens uma base:

pawn Код:
CMD:vida(playerid, params[])
{
    new plid, Float:vida;
    if(sscanf(params, "uf", plid, vida))
        return SendClientMessage(playerid, -1, "Digite: /vida [id] [quantidade]");
    if(vida < 1.0 || vida > 100.0)
        return SendClientMessage(playerid, -1, "A quantidade mбxima й de 100");
    if(!IsPlayerConnected(plid))
        return SendClientMessage(playerid, -1, "Jogador nгo conectado!");
    SetPlayerHealth(plid, vida);
    SendClientMessage(playerid, -1, "Comando efetuado com sucesso!");
    return 1;
}
Reply
#3

Sim, mas daн em que Public eu coloco essa de CMD? ((Atй agora para criar comandos eu sу usei a OnPlayerCommandText que eu acho que й mais de novato, e atй mais fбcil de usar huh'?))

E que parte desse code й a que estipula que este comando vai ter um parвmetro de ID?

Sinto que o resto de tudo eu entendi desse code...

@Edit: E claro, qual й o a parte do code que indica que terб um parвmetro de X quantia da vida que vai curar?
Reply
#4

A parte do sscanf aponta o ID que vocк digita, e tambйm a vida.

Na linha

PHP код:
if(sscanf(params"uf"plidvida)) 
A letra "u" й o ID do player e vai armazenar o ID na variбvel "plid"

A letra "f" й um Float Number (dйcimal) e vai armazenar a vida na variбvel "vida"


Depois nas funзхes em vez de, por exemplo,

PHP код:
GivePlayerMoney(playerid100); 
faz

PHP код:
GivePlayerMoney(plid100); 
para dar dinheiro ao jogador destino.

Ah, e btw, esse cуdigo й de um processador de comandos que vocк devia usar chamada ZCMD, e nгo se coloca dentro de nenhuma callback.
Reply
#5

Genial! Mas em que Callback eu coloco o CMD?
Reply
#6

Comandos em ZCMD, como esse, nгo sгo colocados em callbacks.

Quando ver comandos com comeзo:

pawn Код:
CMD:/*Comando*/(playerid, params[])
ou

pawn Код:
COMMAND:/*comando*/(playerid, params[])
sгo em ZCMD, portanto nгo precisam ser colocados em callbacks, mais й bom organizб-los juntos...

#Edit

Quando se quer criar comandos em ZCMD, deverб ser incluнdo no topo do seu GM:

pawn Код:
#include <ZCMD>
Reply
#7

Pode crк. Entгo eles ficam ou no topo ou no fim do GM. Muito obrigado galera. Eu daria REP pra vocкs, mas infelizmente hб coisas que me impedem. #chateado kkk.
Reply
#8

Entгo, vocк pode colocar tanto no comeзo, tanto no fim, quanto no meio. Eu, sempre uso no meio, organizando assim:

pawn Код:
// Comandos

CMD:vida(playerid, params[])
{
    new plid, Float:vida;
    if(sscanf(params, "uf", plid, vida))
        return SendClientMessage(playerid, -1, "Digite: /vida [id] [quantidade]");
    if(vida < 1.0 || vida > 100.0)
        return SendClientMessage(playerid, -1, "A quantidade mбxima й de 100");
    if(!IsPlayerConnected(plid))
        return SendClientMessage(playerid, -1, "Jogador nгo conectado!");
    SetPlayerHealth(plid, vida);
    SendClientMessage(playerid, -1, "Comando efetuado com sucesso!");
    return 1;
}

// Fim dos comandos
Reply
#9

Pode crк. Obg.
Reply
#10

Normalmente ficam no fim. Fica mais bonito
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)