[Tutorial] Criando uma função. |
Mescouleur « Citoyen » 1477252380000
| 0 | ||
function greetings() Vamos mostrar como podemos usar as funções no código. No exemplo a seguir criei uma função chamada greetings() greetings = saudações Code Lua 1 2 3 4 function greetings() A palavra reservada function, diz que você está escrevendo uma função. Sempre que quiser escrever uma função, deve-se, primeiro, inserir function, seguida pelo nome da função. Nesse exemplo, greeting é o nome da função. Não se esqueça de adicionar os parênteses, ao terminar de escrever sua função, você deve adicionar end na última linha. NOTA: end em português significa fim. Uma função pode conter quantas declarações você quiser. Ela também pode incluir declarações if, loops, variáveis, condições, operadores matemáticos e assim por diante. Você pode criar quantas funções quiser em um programa, desde que tenham nomes diferentes. Chamando uma função: Para usar ou chamar uma função, escrevemos o nome da função com os argumentos necessários em parênteses. Se a função não receber nenhum argumento, deve-se apenas inserir o nome dela e um par de parênteses vazios. Para chamar a função greetings() definida anteriormente, deve-se usar o código a seguir: Code Lua 1 greeting() Você pode chamar a função quantas vezes quiser. Vamos chamar a função greetings() três vezes: greeting() greeting() greeting() Funções recebem argumentos Em uma função, os parênteses contêm os argumentos, que são os valores usados pela função. Os valores são utilizados para variáveis específicas dentro da função quando esta é executada. Nem toda função precisa de argumentos. Por exemplo, a função greeting() não recebe argumentos. Mas vamos supor que eu queria exibir um cumprimento a alguém usando o seu nome. Isso será escrito como uma função a fim de que eu possa reutilizar o código para cumprimentar outras pessoas: Code Lua 1 2 3 4 5 function greeting(name) Nesse exemplo, a função é chamada usando um argumento, no caso "Mescouleur". Ao executar, a saída de dados será assim: Dernière modification le 1481487300000 |
Hydroper « Citoyen » 1477253160000
| 0 | ||
Okay – e uma função também pode conter uma vararg. (PS: nem sempre que você chama uma função precisa de parênteses em volta de um argumento contendo string ou tabela – : a dit : ) Quando uma função não é declarada como expressão, ela requere um nome, e vai ser declarada no objeto/tabela global do Lua se não tiver a palavra-chave local antes de function (comentado abaixo). O nome da função não é apenas um nome, também pode ser o campo de uma tabela (não pode ser computado com '[...]', usa só o '.'). function table.property Além disso, a última propriedade da tabela pode ser reproduzido com ':' em vez de '.', isso faz com que o primeiro parâmetro seja self: function table:property Chamando a propriedade de uma tabela (ou outro valor indexável) com ':' faz passar a tabela (ou outro valor indexável) como primeiro argumento da mesma função que está referida na tal propriedade: table:property() Agora, aqui vai um exemplo de como funcionam as varargs atuais para ver se ajuda: local readArgs; readArgs = function(...)
-- a vararg retorna os argumentos equivalentes à posição onde -- foi declarada nos parâmetros de sua função. -- os argumentos são retornados ao ar livre. -- usando table.pack -- você pode transformar o retorno em uma lista de argumentos (tabela) return table.pack(...); print(readArgs("Hello", "etc.")[2]); -- "etc." Dernière modification le 1480270980000 |
Mescouleur « Citoyen » 1477254720000
| 0 | ||
profiver a dit : Muito útil. Esse personagem é o Dennis? ( acho que é assim ), que saudades desse jogo mano. |
0 | ||
Ótimo tópico <3 |
Hydroper « Citoyen » 1478688960000
| 0 | ||
mescouleur a dit : O personagem do meu avatar de antes era o Davis... Achei uma síntaxe especial para funções declaradas no estilo: a dit : Se você quiser que essa função seja local, é só declarar "local" na frente... a dit : equivalente à: a dit : Dernière modification le 1478689980000 |
Bigbryanbig « Citoyen » 1480265040000
| 0 | ||
posso criar scripts aki? |
Hydroper « Citoyen » 1480269060000
| 0 | ||
Bigbryanbig a dit : Trollando? |
Waaalaceee « Citoyen » 1480274160000
| 0 | ||
otimo tpc |
Bigbryanbig « Citoyen » 1480535820000
| 0 | ||
eu posso dar pedidos de scripts aki como TFM.BlaBlaBla? |
Bigbryanbig « Citoyen » 1480537380000
| 0 | ||
function push() tfm.exec.disableAutoShaman(true) tfm.exec.disableAutoScore(true) for name,player in pairs(tfm.get.room.playerList) do tfm.exec.giveMeep(name) end end Isso aki ta certo? |
Sebafrancuz « Consul » 1480604940000
| 0 | ||
Bigbryanbig a dit : function push() tfm.exec.disableAutoShaman(true) tfm.exec.disableAutoScore(true) for name,player in pairs(tfm.get.room.playerList) do tfm.exec.giveMeep(name) end end push() |
Impressorahp « Citoyen » 1480621920000
| 0 | ||
sebafrancuz a dit : Sim, mas não é necessário o "true". |
Bigbryanbig « Citoyen » 1480628280000
| 0 | ||
function punch() Print(*Soco*) TMF.AçãoDeTiraHp.RatoMouse() End End ISso ta certo? ou Errado? |
Fofinhoppp « Consul » 1480636020000
| 0 | ||
Bigbryanbig a dit : errado, você deve inserir um argumento para identificar o jogador, vincule a um keyboard ou outra função que desejar, function punch(player) print('*Soco*') tfm.exec.killPlayer(player) end Note que nesse caso, o print (não use com o 'P' maiúsculo, pois dá erro) irá retornar somente para você, e não aos jogadores da sala, sugiro que use uma textArea ou uma popup |
Bigbryanbig « Citoyen » 1480711260000
| 0 | ||
Oque presciso aprender a mecher para criar uma loja? |
Bigbryanbig « Citoyen » 1481032740000
| 0 | ||
function punch() Dano:2 a 3 Critical dano:4 a 5 print(*Soco*) particulas que sai da cabeça do rato:particula(Id 2) particulas que sai do *Soco* do rato:particula(Id 12) Errado ou Certo? |
Bigbryanbig 1481121480000
| | ||
[Modéré par Excasr, raison : Não faça triple+ posts] |
Bigbryanbig 1481134860000
| | ||
[Modéré par Omitotowch] |
Peanutbutter « Citoyen » 1481139600000
| 0 | ||
Bigbryanbig a dit : [Moderado por Excasr, motivo: Não faça triple+ posts] |
Bigbryanbig « Citoyen » 1481139780000
| 0 | ||
isso significa que nao posso ver se as funções tao certas? |