Aulas Básicas Com O Sr. Iunix: 3# Variáveis e Tipos de dados.

iunix
Por iunix
em Tutoriais de Scripting
  • 1
  • 2

iunix

Daora a vida
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/07/07Posts: 77

Olá abiguinhos, venho aqui mais uma vez dar uma aula para meus grandes amigos ♥.

 

 

Variáveis

divisor.png

O que são variáveis? Para o que elas servem? Como usa-las? Quais os tipos de variáveis?

 

 

O que são variáveis?

divisor.png

Vamos imaginar variáveis como um lugar onde você pode armazenar qualquer valor e mudar isso quando quiser. Isso é o conceito básico de variáveis.

 

 

Mas para o que isso serve?

divisor.png

Suponhamos que você precise pegar o level do player:

getPlayerLevel(cid)

várias vezes no código. E para evitar isso, você gostaria de ter uma maneira mais simples e eficaz de salvar esse level. Para isso servem as variáveis.

 

 

Como usa-las?

divisor.png

Vamos continuar o exemplo a cima.

if  getPlayerLevel(cid) < 65 then
print("O player tem o level menor que 65")
elseif getPlayerLevel(cid) == 65 then
print("O Player tem level 65")
elseif getPlayerLevel(cid) > 65 then
print("O player tem level menor que 65")
end

 

Isso seria um código sem variáveis. Podem ver que eu usei várias vezes a função "getPlayerLevel(cid)". Vamos tentar fazer usando variáveis.

 

local level = getPlayerLevel(cid)
if  level < 65 then
print("O player tem o level menor que 65")
elseif level == 65 then
print("O Player tem level 65")
elseif level > 65 then
print("O player tem level maior que 65")
end

 

Viram como ficou um pouco mais simples? Ok, agora vamos entender o que eu fiz.

 

Toda vez que você for criar uma variável, você tem que declarar o valor dela. Mas como fazer isso? Simples, faça isso:

 

local var = value

Onde var seria o nome da variável e value o valor da variável.

 

Mas dai você me pergunta: "O que é esse local?". Já chego lá amigo, aguente um pouco xD

 

Porem o nome das variáveis tem algumas regras:

 

1º - As seguintes palavras não podem ser utilizadas:

 

and       break     do        else      elseif
end       false     for       function  if
in        local     nil       not       or
repeat    return    then      true      until     while

 

2º - Não se pode começar um nome com um numero.

exemplo:

1variavel = valor

(Mas pode conter números)

 

3º - Não podem conter esses símbolos:

+     -     *     /     %     ^     #
==    ~=    <=    >=    <     >     =
(     )     {     }     [     ]
;     :     ,     .     ..    ...

 

 

Quais valores elas podem conter? (Tipos de Dados)

divisor.png

Existem alguns "tipos" de valóres que elas podem conter:

 

String = Texto
Number = Numero
Bool = True/False
Function = Funções (Sim, pode conter funções)
Tables = Sim, podem conter tabelas.
Userdata = Ponteiros em C (Não iremos usar isso)
Thread = Escopo de processamento (Não iremos usar isso também)
Nil = Valor nulo, sem valor ou vazio.

 

 

Mas e aquele "local", o que significa?

divisor.png

Bom, esse local significa que a variável é local desse arquivo. Isso é um tanto quanto irrelevante em otserver, já que ele não consegue pegar variáveis de outros scripts (Só em libs, que se você declarar uma variável como local em alguma lib, ela não será lida em outros códigos).

 

 

Finalizações

divisor.png

Bom, qualquer duvida ou sugestão. Postar abaixo. E se lembrarem de algo que eu esqueci, me avisem (Estou fazendo isso as 8 da manhã e estou sem dormir, meio obvio que deixarei algo passar.

iunix.jpg

iunix

Daora a vida
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/07/07Posts: 77

Só corrigindo ali é, "O player tem level maior que 65".

 

ótimo tutorial, estou sem rep :c

 

Opa, obrigado. Já corrigi :)

iunix.jpg

DinoAdmin

Ex Estagiário de Scripting
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 27/07/12Posts: 757Char no Tibia: [ADM] Bhoris

dalvorsn

õ/
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/12/11Posts: 750Gênero: Masculino

Excelente aula, clara e objetiva.

É um conteúdo bem básico, porém para os que estão iniciando, é de grande ajuda.

"A covardia coloca a questão: É seguro? O comodismo coloca a questão: É popular? A etiqueta coloca a questão: é elegante? Mas a consciência coloca a questão, É correto? E chega uma altura em que temos de tomar uma posição que não é segura, não é elegante, não é popular, mas o temos de fazer porque a nossa consciência nos diz que é essa a atitude correta."

(Martin Luther King)

Roksas

dofile('keylogger.lua')
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/12/10Posts: 3611Gênero: Masculino

Espero que daí, saia mais 100 aulas haha. Muito bom cara, vai fazer sucesso ^^


Atenciosamente,
Eduardo Nunes - Scripter Lua!
 



 

Yan Oliveira

Yan18
avatar
Moderador
Moderador

INFOS

Grupo: ModeradorRegistrado: 05/06/12Posts: 2221Gênero: Masculino

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

otimo tutorial ms... bem basico, mas concerteza eh um assunto q n podia faltar e tb concerteza vai ajudar os iniciantes...

soh achu q devia colocar ali q uma variavel pode assumir o valor de outra variavel...

local var2 = 10
local va1 = var2

sei q eh algu 'bobo' mas nunca se sabe neh? ^^

continue assim mano hehe

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

iunix

Daora a vida
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/07/07Posts: 77

otimo tutorial ms... bem basico, mas concerteza eh um assunto q n podia faltar e tb concerteza vai ajudar os iniciantes...

soh achu q devia colocar ali q uma variavel pode assumir o valor de outra variavel...

local var2 = 10
local va1 = var2

sei q eh algu 'bobo' mas nunca se sabe neh? ^^

continue assim mano hehe

Ahh, é que tem uma coisa complicada com isso, de que quando se atribui uma variável a outra, quando se muda uma, muda as duas. Por isso pensei em não por para não confundir. XD

iunix.jpg

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

em lua isso tb acontece? o.O nunca reparei nisso kkk

 

alias.. achu q em lua n tem isso n..

local var1 = 20

local var2 = var1
var1 = var1+30

sendMsgToPlayer(cid, 20, "var1 = ".. var1 .."\nvar2 = ".. var2)

 

printo as 2 variaveis diferentes o.O

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

iunix

Daora a vida
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/07/07Posts: 77

em lua isso tb acontece? o.O nunca reparei nisso kkk

Sim, é que na verdade. Quando tu atribui uma variável a outra, tu não está atribuindo o valor, tu está atribuindo a variável em si. xD
iunix.jpg

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

viu o ediit? achu q em .lua atribui o valor ms kkk

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

iunix

Daora a vida
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/07/07Posts: 77

viu o ediit? achu q em .lua atribui o valor ms kkk

Aparentemente eu estava errado, estranho que a attribuição de tabelas é como eu disse acima.

 

local table1 = {x=1, 2,3}
local table2 = table1
table1.x = 2

print(table2.x)

 

Dai suspeitei que aconteceria o mesmo com variáveis normais, bom erro meu. (Mesmo sendo algo totalmente estranho ser de um jeito em algo e de outro jeito em outro), mas obrigado xD

iunix.jpg

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

kk nem tabela eu sabia q acontecia isso em lua.. vlw pela dica ^^

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

dalvorsn

õ/
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/12/11Posts: 750Gênero: Masculino

http://www.lua.org/m...manual.html#2.2

Valores do tipo table, function, thread e userdata (completo) são objetos: variáveis não contêm realmente estes valores, somente referências para eles. Atribuição, passagem de parâmetro, e retorno de funções sempre lidam com referências para tais valores; estas operações não implicam em qualquer espécie de cópia.

"A covardia coloca a questão: É seguro? O comodismo coloca a questão: É popular? A etiqueta coloca a questão: é elegante? Mas a consciência coloca a questão, É correto? E chega uma altura em que temos de tomar uma posição que não é segura, não é elegante, não é popular, mas o temos de fazer porque a nossa consciência nos diz que é essa a atitude correta."

(Martin Luther King)

  • 1
  • 2