Você está desconectado.

Conecte-se e veja nossos conteúdos exclusivos!

AVISO: As regras foram atualizadas recentemente! (25/08)
Introdução á Programação LUA Pokeball

Participe do fórum, é rápido e fácil

Você está desconectado.

Conecte-se e veja nossos conteúdos exclusivos!

AVISO: As regras foram atualizadas recentemente! (25/08)
Introdução á Programação LUA Pokeball
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
TibiaDevs

O PokeKing se foi, mas o TibiaDevs surgiu!

Postado por: GOD Vitor em 08/09/2023 ás 22:09 PM

Fala, pessoal! Como voces podem perceber, o PokeKing já está inativo há alguns anos, mas recentemente surgiu um novo fórum chamado TibiaDevs. O pessoal de lá é gente boa,
tem bastante conteúdos exclusivos por lá, também. Então convido vocês a participarem dessa nova comunidade.
Lembrando que o PokeKing não tem nenhum vínculo com o TibiaDevs, estamos apenas apoiando esse novo fórum.

Link do TibiaDevs: https://tibiadevs.com

Ir para baixo
GOD Vitor
GOD Vitor
Administrador
Administrador
King Carteira King Carteira : 5
Reputação : 11737
Eu sou : Scripter
Tópicos : 320
Data de Cadastro : 26/09/2015
Idade : 25
https://pokeking7.forumeiros.com

Introdução á Programação LUA Empty Introdução á Programação LUA

27/9/2017, 16:44
Introdução à programação LUA e lógica de programação

Assim como todas as linguagens de programação, LUA tem suas particularidades e sua estrutura lógica própria, a qual envolve suas funções, operadores e engines.
Para começarmos a programação em LUA, devemos conhecer sua lógica, para que possamos aplicá-la em nossos códigos. Abaixo, você encontra os operadores da linguagem e sua explicação:

• “Local” = É usado para a definição de variáveis. Pode ser encontrado também destacando uma função. Neste último caso, seu uso pode ser dispensado quando a função não se encontra embutida na função principal. Exemplo de uso:

Código:


► local a = 1

► function onUse(cid, item, fromPosition, itemEx, toPosition)
local function helloWorld()
print("Hello World")
return TRUE
end
return helloWorld()
end

► function helloWorld()
print("Hello World")
return TRUE
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
return helloWorld()
end


Note a diferença entre o segundo e o terceiro exemplos. Em ambos, a função principal é a “onUse”, porém, em um dos casos foi usado o operador “local” destacando a função secundária, que se encontrava embutida na função principal, ou seja, “abaixo” da função principal.


• “If” = É usado para definir condições. Ele é bastante usado para tornar o script restrito ao uso não programado. Exemplo de uso:

Código:


► function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerLevel(cid) > 10 then
print("O jogador possui level maior que 10")
end
return TRUE
end


Neste exemplo, o código só poderá ser usado para jogadores com level maior que 10 e retornará a mensagem “O jogador possui level maior que 10”.


• “Elseif” = Assim como o “if”, é usado para definir condições, porém, seu uso deve estar obrigatoriamente associado ao “if”. Este operador define outras condições para que o código entre em vigor. Exemplo de uso:

Código:


► function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerLevel(cid) > 10 then
print("O jogador possui level maior que 10")
elseif getPlayerLevel(cid) == 10 then
print("O jogador possui level 10")
end
return TRUE
end


Neste exemplo, caso o jogador tenha level maior que 10, o código retornará a mensagem “O jogador possui level maior que 10”, mas se o jogador tiver level 10, o código retornará a mensagem “O jogador possui level 10”. Note que para usar o “elseif”, antes tive de usar um “if”.


• “For” = É usado para fazer loops no código, executando várias ações ao mesmo tempo. Seu uso é indicado para encurtamento de scripts, fazendo com que leve menos tempo para o código ser processado e economizando memória. Exemplo de uso:

Código:


► function onUse(cid, item, fromPosition, itemEx, toPosition)
local pos = {
{x=1, y=2, z=3},
{x=4, y=5, z=6}
}
for a = 1,2 do
doSummonCreature("rat", pos[a])
end
return TRUE
end


Neste exemplo, uma tabela indica as posições onde serão sumonados os monstros. O “for” foi usado para indicar que deveriam ser sumonados 1 rat em cada uma das posições especificadas na tabela.


• “While” = É usado para fazer loops no código, porém, diferente do “for”, este executa a ação até ser interrompido. Não é muito usado em OpenTibia pelo fato de usar muita memória para ser executado. Exemplo de uso:

Código:


► function onUse(cid, item, fromPosition, itemEx, toPosition)
local i = 0
while i < 10 do
print (i)
i = i + 1
end
return TRUE
end


No caso acima, a variável “i” foi definida inicialmente como sendo zero. Quando o código é executado, os valores assumidos por “i” são retornados até que “i” chegue ao valor nove, que é quando o código se encerra.


• “Else” = É usado para definir o que será feito caso a condição definida anteriormente seja falsa ou verdadeira, de acordo com o código e com o que se deseja. Exemplo de uso:

Código:


► function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerLevel(cid) >= 10 then
print("O jogador possui level 10 ou mais")
else
print("O jogador possui level 9 ou menos")
end
return TRUE
end


Note que foi usado anteriormente um “if” para a definição da condição. Neste exemplo, caso o jogador tenha level 10 ou mais, será retornada a mensagem “O jogador possui level 10 ou mais”. Mas se o jogador não tiver atingido level 10, será retornado “O jogador possui level 9 ou menos”.


Operadores matemáticos em LUA


Após entender a função de cada operador de linguagem acima, podemos passar aos operadores matemáticos ou “Operadores relacionais”. São usados para fazer a comparação numérica ou de uma string. Veja abaixo:


• “<” = É usado para dizer que algo é “menor que” outro. Exemplo de uso:

Código:


► function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerLevel(cid) < 8 then
print("O jogador não possui vocação, pois seu level é menor que oito")
end
return TRUE
end


A comparação feita mostra se o jogador possui vocação de acordo com seu level, mostrando se ele tem level mínimo para ter vocação, visto que no Tíbia, jogadores abaixo do level 8 não possuem vocação.


• “>” = O inverso de seu antecessor. É usado para dizer que algo é “maior que” outro. Exemplo de uso:

Código:


►function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerLevel(cid) > 8 then
print("O jogador pode posuir vocação")
end
return TRUE
end


Neste caso, o código retornará que o jogador pode possuir alguma vocação pois possui level maior que 8.


•“<=” = Este operador faz a comparação que algo é “menor ou igual” que/a outro. Exemplo de uso:

Código:


► function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerLevel(cid) <= 8 then
print("O jogador não pode usar exura")
end
return TRUE
end


Neste exemplo, o código verifica se o jogador possui level 8 ou menos para dizer se ele pode ou não usar exura, visto que no Tíbia o jogador só pode usar exura se tiver level 9 ou maior.


• “>=” = Este operador faz a comparação que algo é “maior ou igual” que/a outro. Exemplo de uso:

Código:


► function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerLevel(cid) >= 9 then
print("O jogador pode usar exura")
end
return TRUE
end


Neste caso, o código verifica se o jogador possui level 9 ou mais para dizer se ele pode ou não usar exura.


• “==” = Este operador faz a comparação de igualdade. Exemplo de uso:

Código:


► function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerLevel(cid) == 8 then
print("O jogador já pode abandonar rookgaard")
end
return TRUE
end


A comparação feita mostra se o level do jogador é ou não 8. Se for 8, o código retorna a mensagem “O jogador já pode abandonar rookgaard”.


• “~=” = Este operador faz a comparação de diferença. Exemplo de uso:

Código:


► function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerLevel(cid) ~= 10 then
print("Somente jogadores com level 10 podem usar")
end
return TRUE
end


O exemplo restringe o uso apenas a jogadores com level 10. Se o jogador não possuir level 10, o código retorna a mensagem “Somente jogadores com level 10 podem usar”.

_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.

Bom, é isso. Tentei fazer um tutorial completo e que ajudasse quem quisesse aprender a linguagem. Tutorial feito totalmente por mim. Espero que esteja bom e espero comentários também.

Crédito:
Joaohd
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos