[Tutorial] Explicaзao de Chaves/Returns...[Iniciantes]
#1

Ola Pessoal,criei este tutorial com o Intuito de ajudar os iniciantes no Pawn,Esse tuto Abordara: Chaves,Returns,Explicaзoes de Funзoes de Um Comando...
e aqui vamos nos,comeзarei explicando o processador de Comandos Do Proprio Sa-mp,que e o strcmp.
e ele deve ser usado dentro da public OnPlayerCommandText,Diferente de Zcmd...

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/comando", true))
    {
    SendClientMessage(playerid,0x008000AA,"Ola,esse e um Comando Simples de SendClientMessage");
    return 1;
    }
    return 0;
}
Explicaзao:
public OnPlayerCommandText(playerid, cmdtext[]) A Calback do processador de comandos originais do samp.

if(!strcmp(cmdtext, "/comando", true))o if significa:Se , o Strcmp que e para processar o comando,o /comando e o comando que quando digitar acontera a funзao definida no comando,no caso desse,o SendClientMessage, e o True e igual a Verdadeiro,no pawn, true e verdadeiro,pode ser usado como True ou como numero 1,o compiler lera da mesma forma...
Agora resumindo : Se Digitar /comando verificara se o comando e verdadeiro(True ou 1),e se for executara a funзao dele.

SendClientMessage(playerid,0x008000AA,"Ola,esse e um Comando Simples de SendClientMessage");
SendClientMessage = Enviar Mensagem Ao Cliente.
Playerid = Armazenara o id do player e executara aquela funзao a ele.
0x008000AA = Cor da mensagem
"Ola,esse e um Comando Simples de SendClientMessage" = Aspas abre e fecha a mensagem,e dentro fica a mensagem. e o ; finaliza a funзao.

return 1; retornara verdade ou 1,pois no pawn True = 1,False = 0,entao pode se usar por palavras ou por numeros,voce e quem escolhe.

} A Chave que fechara o comando em,nao a public.

return 0;Agora sim,Isto fecha a calback,0 = False,ou seja se nao existir o comando que o player digitar retornara Server : Unknown Command

} E Nessa chave e a que fecha a calback,

Conclusгo Sobre Chaves: Toda chave que se abre deve ser fechada,Observe que na public,Depois de Public OnPlayerCommandText... tem uma chave abrindo a public,e essa ultima depois do return 0 e a que fecha a public

agora,vou ensinar algo mais sobre chaves(estou falando tanto assim de chaves,porque qualquer chave aberta que nao e fechada e vice-versa Causa 26 Erros no seu Script,em linhas que nao contem erros,entao,quando voce tiver 26 erros em Lugares onde nao tem erros,isso e causado por Chaves,e ultimamente,no forum esta cheio de duvidas de como arrumar esses 26 Erros.).

Veja agora um exemplo de comando:
pawn Код:
if(!strcmp(cmdtext, "/comando", true))
{
if(!IsPlayerInRangeOfPoint(playerid, 2.0, 231.4386,161.1232,1003.0234)) return SendClientMessage(playerid, 0x008000AA, "Voce Nao Esta No Lugar Certo!");
SendClientMessage(playerid, 0x008000AA, "Parabens,voce esta no lugar certo e digitou o comando!");
}
return 1;
}
Observe que depois da funзao existe uma chave que fecha,quer saber por que?? R:Ela serve para fechar o if,simplesmente isso.
e agora vo dar uma dica de como Identar um comando,ou seja,deixar ele mais leve para o compilador...
vamos usar o comando que usei acima:
pawn Код:
if(!strcmp(cmdtext, "/comando", true))
{
if(!IsPlayerInRangeOfPoint(playerid, 2.0, 231.4386,161.1232,1003.0234)) return SendClientMessage(playerid, 0x008000AA, "Voce Nao Esta No Lugar Certo!");
SendClientMessage(playerid, 0x008000AA, "Parabens,voce esta no lugar certo e digitou o comando!");
}
return 1;
}
Como eu ja disse,o "if" significa Se,e o "!" Significa nao,ou seja,Se Nao EstiverNoPontoCerto que e
231.4386,161.1232,1003.0234,retornara "Voce Nao Esta No Lugar Certo!" e nao acontecera a funзao do comando que e "Parabens,voce esta no lugar certo e digitou o comando!".
Muitos usam dessa forma:
pawn Код:
if(!strcmp(cmdtext, "/comando", true))
{
if(!IsPlayerInRangeOfPoint(playerid, 2.0, 231.4386,161.1232,1003.0234))
{
SendClientMessage(playerid, 0x008000AA, "Voce Nao Esta No Lugar Certo!");
return 1;
}
SendClientMessage(playerid, 0x008000AA, "Parabens,voce esta no lugar certo e digitou o comando!");
}
return 1;
}
Isso tambem funciona,so que faz com que o compilador demore mais para ler.

Conclusгo Geral
{ = Abre
} = Fecha
True = Verdadeiro
1 = Verdadeiro Tambem
False = Falso
0 = Falso Tambem
Return = Retorna

E Pessoal,por inquanto e isso,se estiver algo errado,por favor fale,e se quiser que eu acrescente ao mais e so pedir,e se nao intender,Pergunte,seja curioso,assim se voce nao Desistir, voce sera um Grande Scripter um dia,Como a minha antiga Frase diz : " O Bom Scripter Nao E Aquele Que E Experiente,Mais Sim Aquele Que Nunca Desiste ".
Reply
#2

Muito bom tutorial Gustavo
Reply
#3

Legal pra quem й bem iniciante. Aprendi isso sozinho
Bom tuto. 10/10.
Reply
#4

6/10
Achei o tуpico meio fraco.
Reply
#5

Vlw a todos e a voce Tambem Ricop522,Pois acho que um Bom Scripter nao e so Feitos de Scripts,Mais tambem de Elogios e Criticas...e Depois vo dar uma concertada,e porque eu fisso meio rapido,tava com pressa,amanha do uma corrigida ae..
Reply
#6

na hora que o return chega o processo й parado ali mesmo nгo estб ali sу de infeite e nem vai demorar mais para lкr ou whatever pois o resto do processo nгo vai ser processado nгo estб ali de enfeite o compilador nгo fica mais dificil ou mais fбcil na parte da identaзгo e meu amigo os pragmas existem para redefinir o comportamento do compilador.
Reply
#7

ta bom, mais й melhor explicar melhor.
Reply
#8

Quote:
Originally Posted by [AF]Junior
Посмотреть сообщение
Legal pra quem й bem iniciante. Aprendi isso sozinho
Bom tuto. 10/10.
Digo o mesmo.
Reply
#9

Sim, sem falar que alguйm precisa ensinar para o criador como й que, pelo menos faz a identaзгo corretamente.

Depois fica usando pre-compilador e chorando no forum.
Reply
#10

Sim,mais esse eu nao fisso com pressa,apenas estava com um pouco de Sono,entao,quando estou com sono fico um pouco desatento...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)