×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Tutorial] Estrutura de um script Lua
1 / 2 › »
[Tutorial] Estrutura de um script Lua
Esh
« Censeur »
1464287760000
    • Esh#0095
    • Profil
    • Derniers messages
    • Tribu
#1
  0
Estrutura de um script Lua
    Neste tópico, estarei explicando as várias estruturas de códigos que o lua utiliza.
    Funções
      É o mecanismo principal na linguagem lua, elas carregam tarefas, como por exemplo calcular seno de um número, ou dar queijo a um jogador. Para declarar uma função, é obrigatório o uso de duas palavras-chaves: function e end, elas dizem quando uma função começa e termina, respectivamente. A palavra-chave function identifica o início da função e o nome dela *, pode ser utilizada de duas formas:

        function soma(a, b)
        soma = function(a, b)

      Os parênteses que seguem o nome da função, delimitam os argumentos * dela, nos exemplos dados acima, a função soma possui dois argumentos: a e b. Já a palavra-chave end identifica o final do código da função, tornando qualquer variável definida com local dentro da função, indisponível fora dela:

        function soma(a, b)
          local c = a+b
        end

      No exemplo dado, a função soma irá somar os números a e b, tornando os dois na váriavel c, a função será finalizada e não irá retornar nada, caso você deseje retornar algum valor de dentro da função, utilizamos a palavra-chave return:

        function soma(a, b)
          local c = a+b
          return c
        end

      Agora ao utilizar a função soma, ela irá retornar um valor: a variável c. Para chamar uma função, só é necessário utilizar o seu nome, seguido de parênteses com os possíveis argumentos dela:

        function soma(a, b)
          local c = a+b
          return c
        end
        local resultado = soma(2, 5)
        print(resultado)

      Aqui utilizamos duas funções: soma, uma função criada por nós e print, já disponível no lua.

    Loops
      O Lua possui quatro tipos de loops: while, repeat, for number e for table, e como as funções, utilizamos end para delimitar os códigos. A palavra-chave while utiliza uma condição que deve ser true para continuar em loop, parando automaticamente quando a condição dada for false:

        local a = 0
        while a < 10 do
          a = a+1
        end

      No exemplo dado acima, o loop irá ocorrer até a variável a for maior ou igual a 10. Utilizamos a palavra-chave do para identificar o fim de uma condição.
      A palavra-chave repeat, diferentemente de while, utiliza a palavra-chave until para delimitar o código:

        local a = 0
        repeat
          a = a+1
        until a == 10

      Aqui o código se repete até a variável a for igual a 10. Utilizamos o for number para executar um loop que não entra em ciclo, nele declaramos o número inicial, o número final e, caso necessário o delta:

        for i = 0, 10 do
          print(i)
        end

      O for irá mostrar os números de 0 a 10 em ordem crescente, para mudar a ordem adicionamos o terceiro argumento:

        for i = 10, 0, -1 do
          print(i)
        end

      Nesse caso, os argumentos são: número final, número inicial e delta, respectivamente. O for também pode ser utilizado para interagir com tabelas, retornando cada index e o valor dentro da tabela:

        local tabela = {"banana", "maçã", preferida = "pêra"}
        for index, valor in pairs(tabela) do
          print(index.." = "..valor)
        end

      Aqui utilizamos a função pairs para retornar todos os valores da tabela, ipairs também pode ser utilizada, retornando os valores em ordem de index.

    Tabelas
      É uma estrutura utilizada para guardar multiplos valores. É declarada utilizando colchetes({}):

        local tabela = {"banana", "maçã", "pêra"}

      Para retornar/editar um valor da tabela, utilizamos tabela[index], onde index é a posição atual do valor. Podemos também tornar as indexes em strings:

        local tabela = {fruta = "banana", vegetal = "alface"}

      Nessa tabela, podemos utilizar tabela["fruta"] ou tabela.fruta para retornar o valor banana ou mudar o mesmo. Além de agir como uma gaveta, também é possível utilizar as tabelas para abrigar funções(como tfm.exec!):

        local honk = {}
        function honk.get()
        end

      Neste exemplo, utilizamos honk.get() para chamar a função.

    * Os nomes das funções e seus respectivos argumentos são facultativos, ou seja, você pode utilizar a função sem identificá-los.
    ** Lembre-se: o lua lê o seu script da primeira linha até a ultima, caso uma função seja chamada, no início do script, na linha 3 e ela esteja declarada na linha 6, o script irá lançar um erro de runtime, pois ele ainda não leu a linha 6.
    *** Não é necessário identar o seu código, mas ao faze-lo, torna a leitura dele mais fácil.


Pitutlyg
« Citoyen »
1464290040000
    • Pitutlyg#0000
    • Profil
    • Derniers messages
    • Tribu
#2
  0
Deu pra entender +/-
Taric
« Citoyen »
1464290940000
    • Taric#5206
    • Profil
    • Derniers messages
    • Tribu
#3
  0
Só falta o tutorial de tonumber
Honk noob
Jellymichey
« Censeur »
1464292140000
    • Jellymichey#0000
    • Profil
    • Derniers messages
    • Tribu
#4
  0
está fixe

fizeste este tópico por causa da dúvida que lancei no tópico de dúvidas n foi?
Marte
« Citoyen »
1464298920000
    • Marte#4838
    • Profil
    • Derniers messages
#5
  0
só ter o núcleo
Esh
« Censeur »
1464308040000
    • Esh#0095
    • Profil
    • Derniers messages
    • Tribu
#6
  0
jellymichey a dit :
está fixe

fizeste este tópico por causa da dúvida que lancei no tópico de dúvidas n foi?

Também, haha
O pessoal que ta iniciando lua sempre tem dúvidas com essas 3 estruturas que citei no tópico, então ter um tópico explicando elas cai bem na seção
Marte
« Citoyen »
1464310560000
    • Marte#4838
    • Profil
    • Derniers messages
#7
  0
esh não to entendendo nd socorro
Bxcdw
« Citoyen »
1464313020000
    • Bxcdw#0000
    • Profil
    • Derniers messages
    • Tribu
#8
  0
Seria legal você deixar exemplos no tópico
Despyzi
« Citoyen »
1468190940000
    • Despyzi#7871
    • Profil
    • Derniers messages
#9
  0
Thuzi a dit :
esh não to entendendo nd socorro

.
Prox
« Sénateur »
1468191480000
    • Prox#3120
    • Profil
    • Derniers messages
    • Tribu
#10
  0
Nossa q belo tópico, pena q nao to entendendo nd

Dernière modification le 1468191540000
Hydroper
« Citoyen »
1468372560000
    • Hydroper#0528
    • Profil
    • Derniers messages
    • Tribu
#11
  0
Faltou uma explicação para o statement do. Ele gera um novo escopo de variáveis.

a dit :
do ... end

Dernière modification le 1468372620000
Apollo
« Citoyen »
1468375740000
    • Apollo#8312
    • Profil
    • Derniers messages
    • Tribu
#12
  0
Não tendi nada, mas ta td bem
Ticipoke
« Citoyen »
1469373000000
    • Ticipoke#0000
    • Profil
    • Derniers messages
#13
  0
Sabia que era difícil, mas não nesse nível. Não entendi nada
Micethelind
1469495700000
    • Micethelind#0000
    • Profil
    • Derniers messages
    • Tribu
#14
[Modéré par Omitotowch, raison : Sem relação com tópico.]
Flash
« Citoyen »
1470593160000
    • Flash#6962
    • Profil
    • Derniers messages
    • Tribu
#15
  0
Parabéns pelo tópico Eshkation, eu sou o V1n1c1ustop, a conta V1n1c1ustop foi banida pois o meu amigo fez Steam Fraud e eu nem sabia...

Bom não entendi nada do tópico pois sou burro, por em quanto eu estou na fase de mapas, eu entendo + ou - de XML e não de formato de Script, mas, mais pra frente eu começo a entender sobre formato de Script.
Proassadu
« Citoyen »
1470622620000
    • Proassadu#0000
    • Profil
    • Derniers messages
    • Tribu
#16
  0
praq eu tenho que saber isso sendo que eu nunca vo ir pra lua
Prox
« Sénateur »
1470657300000
    • Prox#3120
    • Profil
    • Derniers messages
    • Tribu
#17
  0
proassadu a dit :
praq eu tenho que saber isso sendo que eu nunca vo ir pra lua

Não é só pq vc não vai usar /lua que vc não deve saber '-'

Vai se tu quer criar um script. Isso vai te ajudar
Fakemicegil
« Citoyen »
1470961260000
    • Fakemicegil#0000
    • Profil
    • Derniers messages
    • Tribu
#18
  0
voltei pro mice dps d 2 anos pq tava afim d aprender lua ja vi actionscript html e um pouco de java script mais lua é um pouquinho diferent ;-
Hydroper
« Citoyen »
1471039620000
    • Hydroper#0528
    • Profil
    • Derniers messages
    • Tribu
#19
  0
Fakemicegil a dit :
voltei pro mice dps d 2 anos pq tava afim d aprender lua ja vi actionscript html e um pouco de java script mais lua é um pouquinho diferent ;-

O ActionScript e JavaScript são fáceis

Dernière modification le 1471090140000
Impressorahp
« Citoyen »
1471056720000
    • Impressorahp#2775
    • Profil
    • Derniers messages
    • Tribu
#20
  0
profiver a dit :
Fakemicegil a dit :
voltei pro mice dps d 2 anos pq tava afim d aprender lua ja vi actionscript html e um pouco de java script mais lua é um pouquinho diferent ;-

O JavaScript de 2016 é tipo uma bagunça, huehue...
Mas é td fácil

HTML 5 creio que seja mais fácil para mim.
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Tutorial] Estrutura de um script Lua
1 / 2 › »
© Atelier801 2018

Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

Version 1.27