Ir para conteúdo

Theoo

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Curtir
    Theoo deu reputação a MaXwEllDeN em [Aula 3] Primeiros Passos   
    << Aula 2 - Lógica da programação
     
     
     
     
    Primeiros Passos
     
     
     
     
    Aula 3
     
     
     
    Relembrando o que eu disse na primeira aula, você precisará de um interpretador Lua e é muito recomendado que possua também um bom editor com suporte à sintaxe Lua, então nosso primeiro passo será obter o editor e o interpretador.
     
    As aulas serão voltadas ao scripting para Open Tibia Servers, então nada melhor do que um bom OTServer para testar seus scripts, mas ficar testando os scripts em um OTServer pode ser uma tarefa cansativa e demorada, então vamos usar também scripts fora de OTServers para praticar. Para isso, você pode fazer o download de qualquer um dos seguintes programas:
     
     
    Editores + Interpretadores:
    SciTE Scintilla [Avançado] OTScript Live! [Recomendado]  
    Editores:
     
    Notepad++  
    Interpretadores:
     
    Lua [Oficial]  
    Depois que você tiver seu editor e interpretador Lua (Recomendo o OTScript Live!), instale ele. No caso do OTScript Live!, depois de descompactar, vá em "Help", no menu, e clique em "Register To Lua". Abrirá uma caixa confirmando a alteração, basta apertar "OK" e todos os seus scripts irão abrir com o OTScript Live!.
     
    Testando seus scripts!
    No caso do SciTE, para testar o seu script você deve primeiro salvá-lo com a extensão Lua (*.lua). No caso do SciTE e do OTScript Live! você pode testar seu script apenas apertando F5, sendo que no OTScript Live! não é necessário salvar o script antes de testar.
     
    Após pressionar F5, o SciTE irá abrir uma área de textos abaixo da área de edição com as informações do teste, e o OTScript Live! vai abrir uma janela.
     
    Para testar se o seu SciTE ou OTScript Live! está funcionando, use o seguinte script:
     
     
      print("Hello world!") Nas informações mostradas pelo interpretador deve estar escrito "Hello world!". Se aparecer, parabéns, você testou o seu primeiro script Lua...  (ou não )
     
     
    O que o script fez? o0
     
    Uma das coisas mais importantes nos scripts são as funções. Uma função é "um bloco de código previamente pronto", uma subrotina, que quando chamada executa esse bloco. Imagine as funções como um atalho para executar alguma coisa. Pode ser usada, por exemplo, para encurtar scripts que tenham alguma parte do codigo que se repita muitas vezes. Criando uma função você pode usar esse código que se repete muitas vezes somente uma vez (Dentro da função), então em vez de usar esse bloco várias vezes, você só precisaria chamar a função várias vezes.
     
    Você pode criar suas próprias funções, mas isso veremos mais para frente. Tudo o que importa agora é aprender a chamar funções.
     
      O "Nome da Função", na verdade, é o nome da variável em que está armazenada a função, mas não se preocupem com isto ainda... O "Nome da Função" é o nome que você deve chamar para que a função ocorra, pois há vária funções (Obviamente), então você deve especificar qual função quer chamar. É a mesma coisa do que ter 3 pessoas. Quando quiser chamar uma das pessoas, deve dizer o nome dela.   Os argumentos são as "Respostas" para as "Perguntas" da função chamada. A maioria das funções faz "perguntas". No caso da função "print", ela nos "perguntou" o que queriamos escrever na tela, e "respondemos": "Hello world!".   É importante lembrar que cada pergunta deve ser respondida adequadamente, por exemplo, se alguém te pergunta: "Que horas são?" você não pode responder: "Sim.". A mesma coisa acontece com as funções, você deve responder exatamente o que ela está perguntando. Outra observação importante é que você deve responder as perguntas da função na ordem em que foram perguntadas. Se a pergunta nº 1 for "Que horas são?" e a nº 2 for "Quer um biscoito?", você deve responder respectivamente que horas são e se você quer um biscoito.     OBS: Algumas funções fazem "perguntas" opcionais, ou seja, você pode ou não responder. Se você não "responder", a própria função atribuirá um valor padrão para a resposta.   Os parâmetros são simplesmente o conjunto de todos os argumentos.   OBS: Todos os argumentos (Respostas) do parâmetro devem estar entre parênteses e ser separados por vírgulas!     Tipos de valores!   Bem, como eu disse, cada resposta deve seguir o tipo da pergunta, então vou citar aqui os tipos destes valores.   OBS: Existe uma função para descobrir o tipo de cada valor! Esta função é a função type(valor)...       Numbers   Como o nome diz, numbers são números, não há muito o que falar sobre eles...   Exemplo: print(1) print(2) print(3) OBS: A função print aceita todos os tipos como resposta.
     
    Strings  
    As strings devem iniciar com um símbolo especial e deve terminar com o mesmo caractere que foi usado para iniciar a string. Esses símbolos são:
     
    Apóstrofo: Começa com ' e termina com '.
    Aspas: Começa com " e termina com ".
    Colchete-Colchete: Começa com [[ e termina com ]].
    Colchete-Igual-Igual-Colchete: Começa com [==[ e termina com ]==].
     
    As strings são conjuntos de caracteres, como letras, números (Não são numbers, pois se houver um número entre os símbolos especiais será tomado como string!!!), acentos, espaços, etc... Se você quiser escrever uma frase na tela, por exemplo, não pode deixá-la solta pelo script. Esta frase deve ser uma string, ou o script dará erro.
     
    Exemplo:
    print('Apóstrofos') print("Aspas") print([[Colchete-Colchete]]) print([==[Colchete-Igual-Igual-Colchete]==]) OBS: 1 << Isto é um number.
    "1" << Isto é uma string.
     
    Booleanos  
    Os booleanos podem assumir apenas dois valores: true e false.
    true: Valor verdadeiro.
    false: Valor falso.
     
    OBS: Os booleanos podem ser complicados de entender no começo, mas com o tempo você acostuma. Não se preocupe com eles agora...
     
    Exemplo:
      print(true) print(false) print(nil)  
     
    Functions  
    Exatamente o que o nome diz: é o que estamos vendo agora. Functions são nada mais nada menos do que funções.
     
     
    Exemplo:
      print(function() end) OBS: Não se preocupe com isso ainda!
     
    Tables ou Arrays  
    São tabelas, ou seja, armazenam mais do que um valor dentro de uma "caixa". Tabelas podem armazenar outras tabelas e todos os valores dentro de uma tabela possuem um identificador, chamado "index" (índice).
     
    Tabelas começam com o símbolo { (Chave) e terminam com o símbolo } (Chave).
     
    Exemplo:
    print({})  
    Userdata  
    Lua é uma linguagem de programação criada para dar extensão à linguagem de programação C e C++. Userdatas são ponteiros que indicam valores em C ou C++. Não se preocupe com eles.
     
     
    Nil  
    Nil simboliza um valor nulo. Não deixa de ser um valor, mas é um valor sem conteúdo.
     
    Exemplo:
    print(nil)  
    As funções retornam!
     
    Toda função retorna um ou mais valores, nem que sejam valores nulos (nil), portanto você pode usar uma função dentro do print para escrever os valores que a função retornar! Vamos usar como exemplo a função type(valor), que vai nos retornar uma string com o tipo do valor.
      Exemplo: print(type(1))  
     
    O exemplo acima vai escrever em sua tela a frase: "Number", pois 1 é um number!
     
     
    Exercícios:
    Usando a função print para escrever na tela e type para pegar o tipo de algum valor, obtenha as seguintes frases na tela:
     
     
    Resposta:
     
     
     
     
    Essa aula foi escrita por uma raposa levada Skyen Hasus, todos os créditos são dele.
     
     
     
     
     
     
    Aula 4 - Operadores e Bibliotecas >>
  2. Curtir
    Theoo deu reputação a MaXwEllDeN em [Aula 2] Lógica da Programaçao   
    << Aula 1 - Introdução
     
     
     
     
    Lógica da Programação
    Aula 2
     
     
     
     
    O que é a Lógica da Programação?
    Bem, tudo o que é escrito em alguma linguagem de programação deve seguir uma lógica para poder funcionar. Vamos pegar um exemplo simples e curto: Um script de SD. (Sudden Death Rune)
     
    Quando o script de SD for chamado (Alguém usou a SD), ela segue passos básicos, que é basicamente a execução dela. Primeiro o script vai verificar se quem usou a SD possui nível, magic level, etc... suficiente para poder usar a SD. Se não possuir opa! Ela vai enviar uma mensagem de erro ao jogador, um efeito de fumaça e vai encerrar a execução. Caso contrário: se for um jogador com todos os requerimentos básicos para usar uma SD, então o script vai verificar se o alvo é um Player ou Monstro. Se não for vai enviar uma mensagem de erro, efeito, e vai parar de executar. Se for um monstro ou player, então o script fará um efeito da SD atingindo o alvo, toda aquela piromancia louca, e então vai tirar o devido dano do jogador.
     
    Um pouco cansativo de ler tudo isso, mas observe o exemplo abaixo:
     
     
      Quando uma SD for usada, então faça: Verifique se o jogador que usou a SD possui nível igual ou maior que 45, e se possui nível mágico maior ou igual a 15. Se possuir, faça: Se o alvo da SD for um Monstro ou Jogador, então faça: Calcule o dano que causará ao alvo. Remova uma carga da SD. Execute o efeito de SD. Calcule o dano que causará ao alvo e execute-o no alvo, tirando a vida dele ou mana, no caso de o alvo estiver usando o Magic Shield (Utamo Vita). Mas se o alvo da SD não for um Monstro ou Jogador, então faça: Envie uma mensagem de erro ao jogador. Envie um efeito de fumaça na posição do jogador. Aqui termina a verificação se o alvo da SD é um Monstro ou Jogador, ou nenhum dos dois. Mas se o jogador não possuir estes requerimentos, então faça: Envie uma mensagem de erro ao jogador. Envie um efeito de fumaça na posição do jogador. Aqui termina a verificação se o jogador possui ou não os requerimentos. Aqui termina a execução da SD. Agora, depois deste algoritmo, talvez tenha ficado mais claro como os programas de computador funcionam. Tudo não passa de um processo lógico, onde a linguagem de programação só serve como uma "máscara" para que o programador escreva o código seguindo esta lógica, por isso é ultra importante saber a lógica da programação antes de começar a programar. O que é um Algoritmo? O "código" que eu escrevi acima (Dentro da caixa de texto) representando o uso da SD foi um algoritmo. Os algoritmos são formas de representar a lógica seguida pelo programa. São passos que o programa segue para atingir determinado objetivo ou em outras palavras, completar uma tarefa (No caso da SD, matar ou não o alvo, ou enviar uma mensagem de erro). Um exemplo de algoritmo são as operações matemáticas, como somar, dividir, multiplicar, subtrair... Quando você soma 2 mais 2, você está executando um algoritmo para ele atingir o objetivo (O resultado!!), que é 4. Um programa ou script é basicamente a escrita dos algoritmos em uma linguagem de programação que é executada pelo computador de forma lógica.
     
    Esta aula foi curta pois eu prefiro lhes ensinar as estruturas lógicas conforme ensino as mesmas em Lua, assim trabalhando a lógica e Lua ao mesmo tempo. Primeiro ensino como funciona a estrutura na Lógica e depois ensino como aplicar em Lua.
     
    Exercícios-Tarefa:
     
    1. Monte o algoritmo de um script de "Shovel (Pá)".
    2. Monte o algoritmo de um script de "Pedra que troca sexo".
    3. Monte o algoritmo de "Ir ao cinema".
    4. Monte o algoritmo de "Fazer bolo".
     
     
     
    Respostas: Só abra depois de ter tentado resolver os exercícios!
     
    Exercício 1:
     
     
     
    Exercício 2:
     
     
    Exercício 3:
     
     
    Exercício 4:
     
     
     
    OBS: Nota-se que já fiquei cansado nas respostas do exercício 3 e 4... 
     
    Aqui só serão aceitas dúvidas ou reporte de erros. Qualquer coisa que não se encaixe nesta descrição será apagado sem aviso.
     
    Essa aula foi escrita por uma raposa levada Skyen Hasus, todos os créditos são dele.
     
     
    Aula 3 - Primeiros Passos >>
  3. Curtir
    Theoo deu reputação a Dom Matteo em Mapa do server PokémonBR [antigo] otbm   
    GALERA QUERO COMPARTILHAR COM VOCÊS ALGO QUE EU DEMOREI MUITO TEMPO PRA ENCONTRAR NA NET E QUE ME TRAZ MUITA NOSTALGIA 
     
    MAPA ANTIGO DO POKEMONBR
     
    OBG: ALGUNS FLOORS E TILES BUGADOS OU TROCADOS, MAS TROCANDO DE UM POR UM OS ITENS ACHO QUE DA PRA USAR SUSSA O MAPA
     
    PRINT
     
     
    LINK PARA DOWNLOAD E SCAN:
     
  4. Gostei
    Theoo deu reputação a Africano em RME Estendido   
    Bom dia, Boa tarde e Boa noite.
    Sou mapper e gostaria de começar a editar um pouco de PokeTibia, pelas sprites diferentes que tem e tudo mais ... porém estou tendo alguns problemas com a versão estendida do RME, vi os tutoriais aqui do TK mas mesmo assim os erros persistem, meu RME para de funcionar, muitas SPR ficam bugadas e no final das contas acabo não conseguindo fazer nada.
    Fiz todo o passo a passo em que pedem nos tutoriais, mas nada muda.
    Se alguem puder me ajudar fico muito agradecido, ou puder disponibilizar o RME que usa pra mesma finalidade

  5. Obrigado
    Theoo deu reputação a Matt Shadows em [OPEN-SOURCE] PokeChampions   
    Olá Caros membros, hoje estou trazendo um servidor para vocês no qual eu fui contratado para adaptar uma source, me "calotaram" e eu achei justo postar a base adaptada. Desfrutem...
     
     

     
     

     
     
     
     

     
     

     
     

     

Informação Importante

Confirmação de Termo