Ir para conteúdo
Entre para seguir isso  
Ramza

Escola de Scripting - Aula 1

Recommended Posts

Ramza    11
Ramza

Olá a todos. Constantemente venho recebendo pedidos de ajuda com dúvidas, ou pedindo para que eu ensine scripting, e assumo que adicionei algumas pessoas no msn com o intuito de ajudar, e ajudei bastante. Porém, a cada dia o número cresce, e muitos não entendem as aulas aqui da OTnet.

Portanto, pensei em fazer aulas mais bem explicadas, com suporte meu para dúvidas, e de uma forma que as aulas da OTnet podem ser usadas como "Aulas fixadoras".

 

Portanto, criarei uma lista com os alunos que forem participar DE TODAS AS AULAS, e esses poderão tirar dúvidas comigo a hora que for, e deverão me enviar seus exercícios por MP para correção, e eu divulgarei as notas aqui de cada aula, assim, poderemos ter uma breve avaliação no fim do curso.

Pretendo fazer algo pequeno, entre 5 a 15 aulas, porém fazendo com que ao término do 'curso' vocês saiam fazendo scripts bons, inteligentes, e sempre querendo aprender mais.

 

Quem quiser doar V$, eu aceito, claro, porém as aulas são de graça, com o intuito apenas de criar novos scripters para a OTnet.

Peço apenas que os interessados em se inscrever para o curso completo, para avaliações e tal, me enviem MP dizendo que querem participar, para que eu coloque o nome na lista, que será atualizada com notas a cada nova aula.

 

A aula 1 é EXTREMAMENTE CHATA, sou sincero, mas é a decisiva para vocês se tornarem bons scripters, no futuro vocês me agradecerão :fist:

 

Aula 1 - Alunos:

 

- Mickfern

Nota: 9,0

 

- 4458638

Nota: 6,0

 

- Uchimaru1

Nota: 7,0

 

- Dehko

Nota:

 

- daniel9878

Nota:

 

- Fryen

Nota: 10,0

 

- ShufflezOr

Nota: 6,0

______________________________________________________

 

Aula 1

Lógica de programação para Scripters Lua

Por: Ramza

 

Em qualquer script que seja, sempre deve-se seguir uma ordem lógica, que determinará os passos do inicio ao fim do seu script. Isso tudo pode ser facilitado de inicio usando fluxogramas, que são desenhos ou simbolos usados para determinar uma ordem lógica, e logo em seguida escrever em pseudocódigo, para depois escrevem em código.

Não entendeu?

 

Pense o seguinte: Você está sentado no sofá, de frente pra televisão.

 

 

O que você faria, em ordem, para mudar de canal?

 

Provavelmente, primeiro checaria se o controle está perto de você, certo?

 

Se sim -> Você o pegaria, e então apertaria o botão para mudar o canal.

 

Se não -> Você levantaria, depois andaria até a TV, depois apertaria o botão para mudar de canal.

 

Um fluxograma disso seria:

 

fluxograma.png

 

 

Após isso, criariamos um pseudocódigo-OT, que nada mais é do que narrar um fluxograma, porém vou fazer voltado ao open tibia, que é o que interessa.

 

Ficaria algo como:

 

 

 Mudar canal

[color=Indigo]tv  = televisão
controle = controle remoto

[color=DarkRed]se  controle == perto então
     mudar canal
senão
     andar  até a tv
      mudar canal
return TRUE
fim

return TRUE

[color=Teal]fim[/color][/color][/color]

 

 

Aqui temos o inicio de nossa função, onde dizemos o nome dela.

 

Aqui nós definimos os objetos que vamos usar no código, afinal, você tem como pegar um controle, caso não saiba o que é um? Portanto, definimos.

Esses objetos podem ser chamados de "VÁRIAVEIS".

Uma variável pode ser um nome, um objeto, um número, um texto, uma posição, e assim por diante.

 

Variáveis têm tipos, que são eles:

 

- Tipos Inteiros: São números inteiros como na matemática, ou seja, qualquer número positivo ou negativo, desde que não seja fracionário (desde que não tenha ' , ')

 

- Tipos Reais: É qualquer tipo de número, positivos, negativos, com vírgula, sem vírgula.

 

- Strings: São uma sequência de caracteres, entenda como um texto.

Strings são determinadas por " " entre algo.

Exemplo: "69" é uma string, já 69 é um número inteiro ou/e real.

Exemplos de strings: "rua do pão", "123", "eu-como-morango", "mock dá o ... riaria"

 

- Booleanos ou lógicos: São TRUE ou FALSE. Comum ver em códigos. Podem ser tanto maíusculos quanto minúsculos.

Coisas que você precisa saber sobre variáveis:

 

· Nomes de variáveis poderão ser atribuídos com um ou mais caracterres;

· O primeiro caractere do nome de uma variável não poderá ser em hipótese alguma, um número, sempre deverá ser uma letra;

· O nome de uma variável não poderá possuir espaços em branco;

· Não poderá ser nome de uma variável, uma instrução de programa;

· Não poderão ser utilizados outros caracteres a não ser letras e números.

Obs.: o caracter “_” Under-line ou sub-linha é considerado uma letra.

 

Aqui vem a parte mais complicadinha, em que fazemos algumas 'operações'.

Primeiro, checamos se o controle está perto, certo?

Para isso usamos um "Se". Em inglês, que é usado no open tibia, usamos "If".

Logo em seguida vemos um " == ", que significa checagem.

Em códigos vocês irão se deparar com ' == ' e com ' = ', portanto vou logo explicar a diferença:

 

== é usado para CHECAGEM.

= é usado para atribuir um valor.

 

Exemplo, se você quiser checar se o mock é gay, use

 

if mock == gay then

 

Porém, se quiser dizer que ele É gay, use

 

mock = gay

 

Entenderam?

 

Esse return TRUE é para retornar um dado ou informação. No caso ai ele retorna a informação de que você teve sucesso no que queria, por isso retorna TRUE (true = verdadeiro).

Caso você estivesse tentando fazer um cálculo de média por exemplo, que retornasse sua média no colégio. Você teria definido como variáveis as suas 4 notas, e feito o cálculo de média, então retornaria a média, com um return ou um print, mas o print não é muito utilizado em OTservers, pois ele só aparece no console (aquela janelinha de quando vc poe o OT pra rodar). Ficaria assim o código:

 

calculo de media

nota1  = 7
nota2 = 4
nota3 = 9
nota4 = 9

media = (nota1 +  nota2 + nota3 + nota4) / 4
return media
fim

Ou caso queira usar o print (que terão de usar em alguns exercícios) ficará assim:

 

calculo de media

nota1 = 7
nota2 = 4
nota3 = 9
nota4 = 9

media = (nota1 + nota2 + nota3 + nota4) / 4
print(media)
fim

 

 

Ok, repare que tem um ' fim ' ali.

Toda vez que você usar um ' se ' (if) tem de por um 'fim' (end) para fechar o se.

 

Logo em seguida, vamos que tem outro ' fim ' no código, que é para fechar a sua função.

Toda função deve ter um ' fim ', assim como todo ' se ' deve ter um ' fim '.

 

A partir da próxima aula começarei a usar as palavras apenas em inglês, como é no open-tibia, nessa estou usando em português para ajudar quem não entende NADA de inglês.

 

Na programação open tibia, temos os seguintes operadores aritméticos (usados na matemática) para fazer cálculos:

 

 

- É usado para subtrair.

 

+ É usado para somar.

 

/ É usado para dividir.

 

* É usado para multiplicar.

 

^ É usado para exponênciação (exemplo: 2 elevado a 3)

 

% É um operador de módulo, que vocês só aprenderão lá pras últimas aulas por ser extremamente confuso.

 

Você pode fazer até fórmulas matemáticas com isso, portanto, são infinitas as possibilidades :yes:

 

 

Dicas finais do Ramza:

 

- Nunca esqueça de fechar as funções com o ' fim ' (pode por end, fica até melhor.)

 

- Não tentem usar uma variável sem antes defini-la!

 

- Caso se depare com " -- " em um código, não se assuste! É como definimos que uma linha é apenas um comentário, ou seja, ela não irá ser lida pelo script!

Comentários são criados para organizar o script, apenas!

Você pode comentar mais de uma linha da seguinte forma:

 

--[[ oi essa linha é um comentário

e essa também

essa outra linha também

tá, chega! ]]

 

- Como a aula de hoje é bem básica, não tem muito o que falar, quero apenas que treinem algumas coisinhas básicas.

 

Exercícios!

 

1 – Indique o tipo de variável que poderão armazenar os valores abaixo.

 

I : inteiro

R : real

S : String

L : Lógico ou Booleano

 

( )1000

( ) “0”

( ) “-900”

( )TRUE

( )-456

( )34

( )”Casa 8”

( )0

( )-1.56

( )”FALSE”

( )1.87

( )FALSE

 

2 – Assinale com X os nomes válidos de uma variável

 

( )Endereco

 

( )21brasil

 

( )NomeUsuario

 

( )Nome_usuario

 

( )End-A

 

( )Cidade3

 

( )#Cabec

 

( )23

 

( )N23

 

3 – Desenvolva a lógica de um programa que efetue o cálculo da área de uma circunferência, retornando a medida da área calculada.

 

Fórmula: Area=Pi*Raio^2

 

4 – Ler dois valores A e B, efetuar a troca dos valores de forma que a variável A passe a possuir o valor da variável B e que a variável B passe a possuir o valor da variável A. Apresentar os valores trocados com um ou mais print ao invés de returns.

 

5 – Ler dois valores A e B, efetuar as operações de adição, subtração, multiplicação e divisão de A por B, apresentando no final os quatro resultados obtidos com prints ao invés de returns.

 

- DESAFIO – Elaborar um algoritmo que calcule o salário de um professor onde o usuário deverá entrar com o número de aulas dadas, o valor da hora aula e o percentual de desconto do INSS.

Para fazer essa, podem usar o google para descobrir o valor de percentual de desconto do INSS! Quem ficar com a maior nota nessa primeira aula ganha 10 V$ ! Então quero só ver hein!

 

Até a próxima aula, que eu prometo que vai ser 10x melhor. Essa aula é CHATA, mas é necessária! Com as próximas você já poderá e deverá começar a fazer scripts básicos, e o próximo desafio vai ser bom também!

Abraços, e mandem suas respostas para mim caso queiram participar das aulas, que corrigirei e tirarei dúvidas!

Abraços a todos!

 

 

 

Editado por Ramza

Compartilhar este post


Link para o post
Compartilhar em outros sites
Dean    1
Dean

Exemplo, se você quiser checar se o mock é gay, use

 

if mock == gay then

 

Porém, se quiser dizer que ele É gay, use

 

mock = gay

 

Entenderam?

 

Aauhsuahsuhasuhauhsuahsuahsuahsuashuahua.

 

 

Boa iniciativa, tem que aumentar os scripters do fórum, se quiser uma ajuda pode pedir que eu ajudo.

 

Fórmula: Area=Pi*Raio**2

 

Não lembro muito bem, mas não seria pi*raio²?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Notorious    1
Notorious

Ainda prefiro aulas em um group do MSN, é bem mais interativo e as dúvidas podem ser tiradas na hora ..

Seria uma boa criar tipo um Mapping Academy só que de Scripting, ficadica, se criar eu to dentro ;]

Compartilhar este post


Link para o post
Compartilhar em outros sites
Lwkass    1
Lwkass
Aauhsuahsuhasuhauhsuahsuahsuahsuashuahua.

 

Boa iniciativa, tem que aumentar os scripters do fórum, se quiser uma ajuda pode pedir que eu ajudo.

 

Não lembro muito bem, mas não seria pi*raio²?

 

Em muitas linguagens o "**" é sinal de potencialização, por exemplo:

10 ** 2 é a mesma coisa que 10²

 

Ainda prefiro aulas em um group do MSN, é bem mais interativo e as dúvidas podem ser tiradas na hora ..

Seria uma boa criar tipo um Mapping Academy só que de Scripting, ficadica, se criar eu to dentro ;]

 

apoio a idéia da "Scripting Academy", se criar eu to dentro²

Mas continua ae com as aulas OiaeuMae

Compartilhar este post


Link para o post
Compartilhar em outros sites
Fryen    0
Fryen

Mandei minhas respostas. Parece muito bom o tutorial.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Ramza    11
Ramza

Dean, valeu ai, é que confundo as vezes uma linguagem com outra hauhauha

e como o lwkas falou, ** em algumas linguagens é a mesma coisa que ^ em lua!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mickfern    32
Mickfern

Eu gostei muito da aula, mas me embolei na pergunta ( acho que é ) 4 e no desafio.

Ainda prefiro aulas em um group do MSN, é bem mais interativo e as dúvidas podem ser tiradas na hora ..

Seria uma boa criar tipo um Mapping Academy só que de Scripting, ficadica, se criar eu to dentro ;]

Eu criei um tópico na seção 'atendimento otnet', mas o Majesty falou que não tinha o interesse dos alunos e... se quiser ver mais olha lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Ramza    11
Ramza
Eu gostei muito da aula, mas me embolei na pergunta ( acho que é ) 4 e no desafio.

 

Eu criei um tópico na seção 'atendimento otnet', mas o Majesty falou que não tinha o interesse dos alunos e... se quiser ver mais olha lá.

Respondi sua pergunta já, e o desafio é pra você fazer uma função pra mim que calcule o salário de um professor, usando horas aula, o valor da hora aula e o percentual de desconto do INSS em cima do valor :P

Compartilhar este post


Link para o post
Compartilhar em outros sites
Socket    0
Socket

Ficou muito boa a aula, só tem mais uma coisa que você esqueceu de citar:

 

No otserv TRUE == true, porém em lua TRUE ~= true.

 

Só isso mesmo.

 

Agora quero meus 10V$:

function aula(totalAulas, horaAula, INSS)
   return totalAulas * horaAula - ((totalAulas * horaAula) * INSS/100)
end

 

EDIT, post debaixo, pra não fazer double post.

VAI pro *****, quero meus V$, gastei 1 min do meu precioso tempo pra fazer isso!!

KKK, brinks, precisa não, to so zuando.

Editado por Socket

Compartilhar este post


Link para o post
Compartilhar em outros sites
Ramza    11
Ramza
Ficou muito boa a aula, só tem mais uma coisa que você esqueceu de citar:

 

No otserv TRUE == true, porém em lua TRUE ~= true.

 

Só isso mesmo.

 

Agora quero meus 10V$:

function aula(totalAulas, horaAula, INSS)
   return totalAulas * horaAula - ((totalAulas * horaAula) * INSS/100)
end

Obrigado socket, e só vou dar os V$ quando todos terminarem os exercícios! ahuhaa

Compartilhar este post


Link para o post
Compartilhar em outros sites
Notorious    1
Notorious

Ainda apoio a idéia da Academy, Escola por group no MSN, com interação em tempo real, qual a diferença disso aqui para as aulas oficias?

Se a desculpa for dúvidas alem da seção de suporte que ta infestada de pedidos e eu tiro dúvida direto lá quando não é pedido ainda tem o tópico de dúvidas sobre as aulas

 

Se alguém me apoiar, só me falar no msn, e agente organiza ...

Compartilhar este post


Link para o post
Compartilhar em outros sites
4458638    0
4458638

Po eu curti o tutorial, esta perfeito e o unico dessa area que eu consegui entende algo kkk... so que ainda e dificil para min essa parte de programação ;s

Compartilhar este post


Link para o post
Compartilhar em outros sites
Dartier    0
Dartier

Bela iniciativa Ramza, sempre fazendo um ótimo trabalho.

Ah, faz por mIRC, muuuito melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mickfern    32
Mickfern
Bela iniciativa Ramza, sempre fazendo um ótimo trabalho.

Ah, faz por mIRC, muuuito melhor.

Eu tentei por mIRC consegui não, prefiro aqui mesmo eu pelo menos entendi xD

Uia tirei 9,0 =]

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tyladron    1
Tyladron

meu deus!

Por que sempre pegam o Mock como exemplo para as coisas?

Sempre que vejo ta o nome do santo Mock como exemplo em vários posts!

eu sinceramente acho uma puta falta de sacanagem!

 

Mock quando morrer vai direto pro céu velho .__.

 

_____________

A propósito, gostei do tutorial, mas ramza, post o link da aula 1 e 2 para eles, elas explicam as mesmas coisas de um outro modo, lendo esse tutorial e a aulas 1 e 2, uma pessoa que nunca viu um script na vida consegue entender essa parte. :)

 

Parabéns, adorei a iniciativa!

Agora falta divulgação, e estou a espera de uma outra aula.

Editado por Tyladron

Compartilhar este post


Link para o post
Compartilhar em outros sites
rafa09    0
rafa09

Gostei do tutorial, eu quero ser um scripter so que eu nãao entendo muito disso ....

 

mais tudo bem vamos ver se eu melhororo *-* !!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Ramza    11
Ramza

Eu, o Notorious e o Lwkas estamos organizando uma escola de scripting mais dinâmica, para que vocês entendam melhor.

Em breve daremos noticias ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites
Fryen    0
Fryen

E quando sai a próxima aula?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Ramza    11
Ramza

Hoje!

Estou fazendo ela agora ;P

Compartilhar este post


Link para o post
Compartilhar em outros sites
ShufflezOr    0
ShufflezOr

Aew kCT AULA nova jah *-*

 

Axei legal a Idéia do msn, mais as aulas nao vae ser por lah né?

Seria bom só para tirar duvidas mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×