Ir para conteúdo
  • Cadastre-se

(Resolvido)Todo script é feito em lua? Onde começar para fazer scripts?


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Olá, como o título já diz gostaria de saber se todo script de um servidor é feito em lua, e se há diferença em fazer script no client clássico e no otclient. Sou leigo na parte de scripts, então sejam claros, porém, não escondam os detalhes.

Entendo razoavelmente sobre lógica de programação mas não compreendo a essência dos scripts tibianos, por onde eu começo? e, também, há algum dicionário com as funções e comandos dessa linguagem?

 

Muito obrigado desde já.

 

Kyuubi_Naruto_by_HaruDSX.gif

Link para o post
Compartilhar em outros sites

Tudo se torna mais fácil quando vemos que existem funções prontinhas para serem usadas, tudo o que você precisa é saber como usá-las. Dentro de uma pasta chamada DOC em sua pasta/servidor, existe um arquivo chamado LUA_FUNCTIONS que explica exatamente como funciona as funções padrões de todos os servidores, incluindo derivados.

 

Alguns sistemas são programados em XML que facilita na hora de unir tudo em um lugar só, mas na minha opinião, eu prefiro programar em lua mesmo. Se você não tem uma base de LUA, meu conselho é que você baixe apostilas em PDF ou pesquise sobre o assunto no google pra você pegar uma base boa e quem sabe um dia caso você não seja ainda, se tornar um scripter.

 

Abraços, Jatum!

Link para o post
Compartilhar em outros sites

Em OTServ, basicamente sim. Mesmo porquê, .lua é poderoso.
Os scripts fazem parte do servidor, o client é usado apenas para ver o resultado das instruções.

Já vai ter as funções em mãos, basta começar o script com a respectiva:

function onUse(cid, item, pos, itemEx, toPos)
function onSay(cid, words, param)

etc, etc.

 

 

 

 

Sugiro começar com Actions/Talkactions.



No TK mesmo tem umas aulas ótimas, com certeza vai aprender bastante coisa:
http://www.tibiaking.com/forum/forum/220-aulas-de-scripting/




É bom ir olhando scripts já existentes caso tenha alguma dúvida no código, até ir pegando o jeito.

Editado por Nogard (veja o histórico de edições)


spacer.png

 

 

Link para o post
Compartilhar em outros sites
  • Solução

sim, todo script é feito em lua mas como lua é uma linguagem dinâmica e relativamente simples as declarações são organizadas em XML.. as funções usadas são todas da source (que é escrita em C++) mas pra fazer um script existe uma ordem respectiva que você tem que respeitar:
 

NON-SCRIPT RELATED / LIB RELATED

CALLBACK
    SCRIPT RELATED
        SCRIPT ITSELF

RETURN (true/false/anything)
END OF CALLBACK

essa é a estrutura de um script perfeito mas na prática são poucos os scripts que possuem esse cuidado todo. Se quer começar pegue uma apostila de matlab pra compreender numa linguagem mais didática como são as estruturas condicionais e de repetição, como usar métodos e tudo mais. Depois pegue e crie scripts simples pra treinar e vá evoluindo com o tempo

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

@Jatum @Nogard

Muito obrigado, podem ter certeza que ajudou bastante :D

 

 

sim, todo script é feito em lua mas como lua é uma linguagem dinâmica e relativamente simples as declarações são organizadas em XML.. as funções usadas são todas da source (que é escrita em C++) mas pra fazer um script existe uma ordem respectiva que você tem que respeitar:
 

NON-SCRIPT RELATED / LIB RELATED

CALLBACK
    SCRIPT RELATED
        SCRIPT ITSELF

RETURN (true/false/anything)
END OF CALLBACK

essa é a estrutura de um script perfeito mas na prática são poucos os scripts que possuem esse cuidado todo. Se quer começar pegue uma apostila de matlab pra compreender numa linguagem mais didática como são as estruturas condicionais e de repetição, como usar métodos e tudo mais. Depois pegue e crie scripts simples pra treinar e vá evoluindo com o tempo

 

Vamos ver. Lua é uma linguagem desenvolvida pela linguagem C++, é isso? E as declarações no caso é como tudo se encaixa dentro do script? não sei se entendi muito bem. Por exemplo, em lingua X você declara um "{if}" assim, e em Y "|if|" assim. É isso? isso é a declaração?

Por favor, não deixe de responder. Isso está sendo bem esclarecedor.

Kyuubi_Naruto_by_HaruDSX.gif

Link para o post
Compartilhar em outros sites

declaração é tudo que você declara.. se no começo do meu script eu declarar que x vai significar batata toda vez que eu colocar x no script ele vai entender como se eu estivesse escrevendo batata, isso é útil quando seu script vai ter coisas repetidas e serve só como atalho.

As funções que você utiliza, por exemplo a getCreatureHealth(cid), são métodos criados na source justamente pra facilitar e sempre que você for programar ao invés de você utilizar todo um bloco de código pra pegar a vida do player você pode facilmente utilizar apenas getCreatureHealth(cid) que vai te retornar a vida do player.

Lua é um linguagem criado no Brasil e não tem qualquer relação com C++, todas as linguagens tem diferenças entre si mas entre as linguagens grandes e conhecidas elas são todas equivalentes (c++, python, java.. etc), a forma de fazer as estrututas condicionais e de repetição diferem entre elas.

ex1: para escrever algo no console:
Em java:
System.out.Println("Olá mundo")

em Lua:
print("Olá mundo")
ex2: para escrever os numeros de 1 a 9 usando for.
Em java:
for (int i = 1; i<=9; i++) {
System.out.Println(i)
}

em Lua:
for i = 1, 9 do
print(i)

As diferenças são sutis mas Lua é bem simples e por isso é vastamente explorada em jogos. C++ é usado pra organizar o jogo inteiro, as funções criadas em C++ são usadas em Lua pra fazer toda a mágica da coisa e XML é usado pra declarar o script (COMO ASSIM DECLARAR??), bem, em outras palavras XML é utilizado como a cola que junta a source (C++) e os scripts (LUA), ele define por exemplo em que pasta o script está e qual é o tipo de função que ele faz com base em toda a lib da source. Isso pode soar meio vago mas espero que tenha ajudado a compreender melhor.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

estou assistindo a vídeo aula e com o tempo já fiz 1 script minha própria do geio que queria, que cada vocação nasce em uma cidade (configurável) ja existe no tibia king só que eu fiz um diferente pra mim.

Conteúdos Tragos Por Mim ao Fórum:

Venda de Vocações [Modern Aac] •

• Comando !Saga 

• [Modern Aac] DragonBall 

• Esconder •

• Naruto 2018

• • •

• •

'NtoProject - Breve'

[Show OFF] Disponível

Link para o post
Compartilhar em outros sites

apenas pra concluir o tópico: a source é o próprio dicionário de funções mas as sources mas bem elaboradas acompanham um doc com a lista de funções que ela possue, você pode achar esse doc aqui pelo tk. Se não restarem mais dúvidas, selecione uma das respostas e clique em "Melhor Resposta!" para que o tópico fique como resolvido.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo