[Tutorial] Functions - Versão de Impressão +- Portal SAMP (https://portalsamp.com) +-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5) +--- Fórum: Guias e Tutoriais (https://portalsamp.com/forumdisplay.php?fid=7) +--- Tópico: [Tutorial] Functions (/showthread.php?tid=1562) |
Functions - iacta - 26/08/2021 Olá pessoal, hoje trago um tutorial para vocês, sobre uso e declaração de functions(funções). Vamos lá Sumário
[b]{
1 - Para que elas servem?[/b] [b]2 - Tipos de declarações
}3 - Explicação geral[/b] 1 Para que elas servem?
Functions servem para facilitar, a programação e organização do script.
2 - Tipos de declarações
Aqui estão os tipos, de declarações de funções:
Código: public e forward 3 - Explicação geral
MyFunc()
Essa é a declaração padrão de uma função, usada para declarar o início de uma função.
Parâmetros, Declaração e Exemplos: Código: MyFunc //Este é o nome da sua função, isso fica a seu critério. () // Aqui ficam os parênteses onde ficaram os parâmetros da sua função, se não houver nenhum deixe em branco
forward
forward informa ao compilador que uma função virá mais tarde. É necessário para todas as funções públicas, mas pode ser usado em outros lugares. Seu uso é "encaminhar" seguido do nome completo e dos parâmetros da função que você deseja encaminhar, seguido por um ponto e vírgula:
Código: forward myfunc(); public public é usado para tornar uma função visível para a Máquina Virtual, ou seja, permite que o servidor chame a função diretamente, em vez de apenas permitir que a função seja chamada de dentro do script.
(créditos: wiki-samp) Uma função public tem seu nome textual armazenado no arquivo amx, ao contrário das funções normais que têm seu endereço armazenado apenas para saltos, o que é outra desvantagem da descompilação. Isso permite que você chame a função por nome de fora do script e também permite que você chame funções por nome de dentro do script, saindo e inserindo-o novamente. Parâmetros, Declaração e Exemplos: Código: forward myfunc(); stock
stock é usado para declarar variáveis e funções que não podem ser usadas, mas para as quais você não deseja gerar avisos não usados. Com as variáveis stock é como const no sentido de que é um modificador, não uma declaração completa.
Se a variável ou função for usada, o compilador irá incluí-la; se não for usada, irá excluí-la. Isso é diferente de usar #pragma unused <symbol>, pois isso simplesmente suprimirá (ou seja, ocultará) o aviso e incluirá as informações de qualquer maneira, o stock ignorará totalmente os dados não utilizados. (créditos: wiki-samp)o stock é mais comumente usado para bibliotecas personalizadas. Se você escreve uma biblioteca, fornece um monte de funções para outras pessoas usarem, mas não tem ideia se elas as usarão ou não. Se o seu código dá muitos avisos para cada função que uma pessoa não usa, as pessoas reclamarão (a menos que seja propositalmente, pois eles TÊM de usar essa função (por exemplo, para inicializar variáveis). Dito isso, no entanto, partindo da experiência pessoal com o pessoal da YSI reclamará de qualquer maneira. Parâmetros, Declaração e Exemplos: Código: stock MyFunc(){ Isso é tudo pessoal
Espero ter ajudado! Até a próxima Qualquer sugestão será muito bem vinda (Se estiver faltando algo informe no tópico que eu irei editar, espero não ter esquecido nada) RE: Functions - c4l1ral - 26/08/2021 belo tutorial E uma coisa muito boa de se usar para otimizar é o #define FS::%0(%1) forward %0(%1);\ public %0(%1) ( Essa DEFINE já vai está definindo a PUBLIC & Forward ) ( "FS::" caso queira substituir basta colocar exemplo "BPF::" ) Invés de você colocar forward myfunc(); public myfunc(){ Você apenas coloca ( FS:: myfunc() { RE: Functions - ipsLuan - 27/08/2021 Tá faltando organização no tutorial. |