CA

Lib - O que é ela e como usar.

Por caotic, 18 de ago. de 2012 em Tutoriais de Scripting

otserv
10
2.8k
caoticC
18 de agosto de 2012 às 17:03

A pasta lib se encontra no seu otserv ele e ultilizada para a criação de funções ultilizando a propria linguagem LUA.

Apos feita a função ele pode ser ultilizada em qualquer localidade em seu otserv.

Para ultilizar deve ser criado um arquivo lua com os codigos das funçoes.

 

Um exemplo de uma função

 

function doPlayerAddStorage(cid)
setPlayerStorageValue(cid, 22221, 1)
return true
end

 

Nesta função adicionara a o valor 1 na storage 22221 e se fosse ultilizada por exemplo em actions executaria tal ação.

 

Segue a estrutura

 

function NOME DA FUNÇÃO(parâmetros)
... AÇÃO
RETORNO
TERMINIO DA FUNÇÃO

 

Outro exemplo ultilizando um proprio parâmetros

 

function doPlayerSummon(monster, pos)
doSummonCreature(monster, pos)
return true
end

 

Aqui uma função que sumona um monstro seguida pelo parâmetros nome do monstro e a posição.

 

Para adicionar o paramento deve ser usado dentro de uma função o nome do parâmetros eclarado

 

Exemplo

 

function doPlayerSendMsg(cid, msg)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, msg)
return true
end

 

Nela adicionamos o parâmetros msg se usamos a função

 

doPlayerSendMsg(cid, "hello")

 

 

A funçao que usa o parâmetros ficaria tal

 

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hello")

 

 

 

Ou seja se quisemos alterar o parâmetros cid para para usar a função

 

 

doPlayerSendMsg(param, msg)

 

Ficaria tal

 

doPlayerSendTextMessage(param, MESSAGE_STATUS_CONSOLE_BLUE, msg)

 

Para criar funçoes de verificaçoes

Precisamos retonar o valor que queremos.

function getPlayerPositionPz(cid)
local pz = getTilePzInfo(getCreaturePosition(cid))
return pz
end

 

Como nesta que retornos o local pz mais se quisermos nos poderiamos ultilizar de tal maneira.

function getPlayerPositionPz(cid)
return getTilePzInfo(getCreaturePosition(cid))
end

 

Depos poderemos usar verificaçoes como

 

if getPlayerPositionPz(cid) then

 

 

E isto gente tomara que aprenderam tudo obrigado a todos

 

Ate mais

Editado Agosto 18 por caotic

RaidouR
18 de agosto de 2012 às 17:24

function NOME DA FUNÇÃO(PARAMENTOS)

... AÇÃO

RETORNO

TERMINIO DA FUNÇÃO

 

Bom,acho que este foi o unico erro que achei.

Não seria parametros?

 

 

Abraços,Aprovado.

caoticC
18 de agosto de 2012 às 17:30

Realmente esta errado

 

Ja concertei obrigado

MatheusGladM
18 de agosto de 2012 às 18:29

Uma funçao nao precisa obrigatoriamente de parametros pra funcionar :)

 

function doPlayerAddStorage()

setPlayerStorageValue(cid, 22221, 1)

return true

end

 

Ai sim faltou o parametro cid, no seu exemplo cid = nil.

caoticC
18 de agosto de 2012 às 18:45

Realmente não e necessario parametro.

E claro que parametro e uma variavel ou seja ele pode variar de acordo com sua necessidade.

 

Por isso e bom usar.

RaidouR
18 de agosto de 2012 às 19:22

É bom para usuarios inexperientes,que estão começando na área de .LUA neh?

 

Como eu rsrs;

 

Estou olhando tutoriais,na internet,e no xtibia,Estou cheio de ideias para fazer sistemas e etc.

 

Quando eu aprender,vou liberar todos eles Aqui No XTibia.

OneshotO
18 de agosto de 2012 às 21:47

Bela iniciativa. Acho que o nome do tutorial devia ser "Função - O que é ela e como usar?", pois o que você chama de libs é só um artificio de salvar suas funções em um arquivo .lua dentro da pasta data/lib para tornar o uso dessa, global.

 

Você poderia também detalhar mais a construção de uma função, como, por exemplo, dizer:

 

function doPlayerSendMsg(cid, msg)

 

É um açúcar-de-sintaxe, syntax sugar, em outras palavras, algo que facilita a construção do código e deixa a leitura deste mais agradável aos olhos. Segundo o Manual de Referência, essa é a definição de uma função:

 

doPlayerSendMsg = function(cid, msg) end

 

Não curto muito o estilo corrido dos seus tutoriais, mas mesmo assim, está bem detalhado para os iniciantes no estudo da linguagem. Mas não deixe de detalhar mais o retorno de valores nas funções e a chamada delas em scripts.

 


 

Abraços.

caoticC
18 de agosto de 2012 às 21:56

Realmente acho o nome lib superficial ja que ela e apenas uma pasta com arquivos lua usado globalmente como voce disse e uma especide de dofile(...)

 

E você pode tambem criar suas funçoes sem a necessidade de lib usando em seu proprio script so que não sera globalmente ultilizavel.

 

Em relação a meu tutorial eu não prolongo quero ser mais objetivo.

BeekiB
19 de agosto de 2012 às 12:07

em relação ao titulo do tópico está uma bosta, matou, esquartejou o português! Mude para Lib - O que é e como usar.

CriticalC
19 de agosto de 2012 às 12:24

Título renomeado, tutorial aprovado está sendo movido para seção correta.

 

Atenciosamente, Critical.