[ENSINA-ME] A Usar DCMD SSCANF ? -
TiagoPS - 30.12.2010
Bom o titulo й autoexplicativo
Obrigado
Re: [ENSINA-ME] A Usar DCMD SSCANF ? -
Cнєsρıяıтσ ѓгη - 30.12.2010
Tutorial dcmd e sscanf!
Re: [ENSINA-ME] A Usar DCMD SSCANF ? -
vinewood - 30.12.2010
Vou fazer melhor , explicarei Zcmd que segundo testes feitos tem melhor performance que DCMD,
primeiro ZCMD e um pouco de sscanf:
Код:
public OnPlayerCommandReceived(playerid, cmdtext[])/* 1-Passo */
{
if(Logado_Sim_ou_Nao[playerid] == false)/* 2-Passo */
{
SendClientMessage(playerid, COR_BRANCA, "SERVIDOR: Voce deve estar logado para usar qualquer comando");
return 0;
}
/* 3-Passo */
return 1;
}
COMMAND:oi(playerid, params[])/* 4-Passo */
{
new frase[32];//
if(!sscanf(params, "s[32]", frase))/* 5-Passo */
{
SendClientMessage(playerid, COR_BRANCA, frase);/* 6-Passo */
}
else
{
SendClientMessage(playerid, COR_BRANCA, "USO CORRETO:/olamundocapitalistaselvagem (frase)");
return 1;
}
}
COMMAND:olamundocapitalistaselvagem(playerid, params[])// EX: ' /olamundocapitalistaselvagem 2 2'
{
new dado_inteiro, dado_inteiro2;
if(!sscanf(params, "dd", dado_inteiro, dado_inteiro2))// d й do tipo de Dado Inteiro apenas numeros inteiros caso contrario ele vai pro else com a menssagen de uso correto
{
dado_inteiro = dado_inteiro+dado_inteiro2;
SendClientMessage(playerid, COR_BRANCA, dado_inteiro);// imprime "4"
}
else
{
SendClientMessage(playerid, COR_BRANCA, "USO CORRETO:/olamundocapitalistaselvagem (frase)");
return 1;
}
}
public OnPlayerCommandPerformed(playerid, cmdtext[], success)/* 7-Passo */
{
printf("%d , %s , %d",playerid,cmdtext,success);/* 8-Passo */
return 1;
}
1-Passo = "Este callback й chamado quando qualquer tentativa de comando й enviado ao server EX: Jogador ID:13 ,Joгozinho preciona a tecla "T" e digita '/oi alguem?' e presiona Enter nesse exato momento o servidor recebe o comando via o callback: OnPlayerCommandReceived(13, "/oi alguem?")";
2-Passo = "Condicao onde testa se o player jб fez login no caso aqui o jogador nгo usara um comando de texo EX:"/login minhasenha", e sim uma caixa de texto de dialogo(ShowPlayerDialog) que eu defini para aparecer quando o jogador atingir o callback OnPlayerRequestClass";
3-Passo = "No Zmcd nгo й necessario declarar nenhum dos comandos apenas ir adcionando como se fosse uma funcгo sem necessidade de forward.";
4-Passo = "Resumindo imagina que aki o zcmd compara com todas as funcхes q comecao com:"COMMAND:nomedocomando(playerid, params[]) ou CMD:nomedocomando(playerid, params[]) ou dentre outras opcoes que sгo sу questгo de estetica";
5-Passo = "Caso nгo satisfaзa a condiзгo vб para o else e retorne a mensagem de erro informando qual deve ser o uso correto, obs: s representa a string que no mбximo devera ter 32 caracteres o sscanf se params(parвmetros) satisfazer a condiзгo entгo ele ira extrair o parвmetro para a variбvel local frase que tambйm permitir 32 caracteres , agora enfim o que joгozinho escreveu pode ser mostrado.";
6-Passo = "IMPRIME: 'alguem?' ";
7-Passo = "Vamos supor que jхaozinho digitou uma besteira qualquer que resultou a falso pois o comando : '/playboy' nгo existe.";
8-Passo = "IMPRIME: '13 , /playboy , 0'";
Bom.. espero tenha esclarecido algumas de suas duvidas qualquer coisa se encontrarem qualquer erro jб tenho motivo conveniente pra editar o post: "Madruguei hoje.".
Re: [ENSINA-ME] A Usar DCMD SSCANF ? -
Cнєsρıяıтσ ѓгη - 30.12.2010
No tutorial que eu passei tem todas as funзхes de zcmd, dcmd e sscanf. E jб basta usar estas funзхes:
pawn Код:
CMD:banir(playerid, params[])
{
new id, motivo[73], string[256];
if (sscanf(params, "uz", id, motivo)) return SendClientMessage(playerid, 0xFFFFFFFF, "Digite: /banir id motivo!");//U: valor, z: string!
if (id == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFFFFFFFF, "Jogador nгo conectado");
format(string, sizeof(string), "%s %s", id, motivo);
SendClientMessageToAll(0xFFFFFFFF, string);
Ban(id);//Bani o id selecionado.
return 1;
}
Re: [ENSINA-ME] A Usar DCMD SSCANF ? -
andmeida10 - 30.12.2010
aconselho ao mбximo usar strtok...
So entender,... apartir dai й a coisa mais simples do Pawn
Re: [ENSINA-ME] A Usar DCMD SSCANF ? -
blackwave - 30.12.2010
Quote:
Originally Posted by TiagoPS
Bom o titulo й autoexplicativo
Obrigado
|
Hб pouco tempo, fiz um sobre dcmd. Mas esta ingles, ja que foi direcionado аs pessoas que falam inglкs. Ta aqui:
Click aqui [dcmd]
Click aqui [basic sscanf]
Re: [ENSINA-ME] A Usar DCMD SSCANF ? -
Katros - 30.12.2010
Cara, nгo gosto muito de comandos, no meu GM o ъnico que existe e o /Comandos pois o resto й tudo Dialog!
Mais vai uma dica, й melhor usar strtok, dps que aprende jб й mano!
Re: [ENSINA-ME] A Usar DCMD SSCANF ? -
Cнєsρıяıтσ ѓгη - 30.12.2010
Pra mim dcmd й muito mais fбcil!
Respuesta: Re: [ENSINA-ME] A Usar DCMD SSCANF ? -
ipsBruno - 30.12.2010
Quote:
Originally Posted by andmeida10
aconselho ao mбximo usar strtok...
So entender,... apartir dai й a coisa mais simples do Pawn
|
Nгo,ZCMD й o mais fбcil.
Vou fazer um Tutorial.
Depois que acabar de assistir Crepъsculo 2,pera.
Re: Respuesta: Re: [ENSINA-ME] A Usar DCMD SSCANF ? -
zSuYaNw - 30.12.2010
Quote:
Originally Posted by [FeK]DraKiNs
Nгo,ZCMD й o mais fбcil.
Vou fazer um Tutorial.
Depois que acabar de assistir Crepъsculo 2,pera.
|
ZCMD й faciil.
queria aprender sscanf.