Forums » RPG MAKER 2K e 2003

Aula 0 - Conceitos básicos do Destiny Patcher

    • 683 posts
    14 de maio de 2015 23:04:02 ART

    Destiny Script
    :zuado: Aula 0: :zuado:
    Conceitos básicos do Destiny Patcher 

    [box class="catbg2"]Introdução:[/box]
    [box class="catbg3"]

    E aí, galera?
    Primeiramente gostaria de agradecer o moderador Utiru por me autorizar a postar aulas de Destiny Script e também por me ajudar a organizar os tópicos para que os alunos não fiquem perdidos ao procurarem pelas aulas.
    A partir de agora teremos aulas de Destiny Script, um ótimo sistema utilizado para o RPG Maker 2000. Trata-se de uma linguagem de programação desenvolvida por Bananen-Joe quando ele criou o Destiny Patcher. O grande diferencial deste patch é que nele você pode fazer em um só programa o que você teria que fazer com uns 5 patches diferentes:
    [x]Organizar/Remover tela de título e logos de entrada;
    [x]Determinar o limite de pictures utilizadas no projeto;
    [x]Ter acesso a todos os botões do teclado para interagir com o jogo;
    [x]Uso do Mouse;
    [x]Consertar o comando "Enter Hero Name";
    [x]Controlar os arquivos de saves, mapas, o Map Tree e o Banco de Dados (Database).
    O objetivo dessas aulas é despertar novas ideias para o desenvolvedor. Vamos trabalhar muito a nossa criatividade de uma forma dinâmica e interativa para podermos aplicar aos nossos jogos tudo o que vamos aprender a partir de então de uma forma diferente.
    Esta primeira aula nós vamos apenas falar um pouco do Destiny Patcher, uma introdução para aplicar o Destiny Script nos jogos. Os exercícios serão impostos a partir da próxima aula, onde nós vamos começar a pôr a mão na massa. O Destiny Script pode ser difícil de entender no início, mas é muito importante, não só na progamação como em qualquer outra área, que você seja persistente quando queremos realmente alcançar nossos objetivos. É como se a gente estivesse aprendendo a falar um novo idioma ou a tocar um novo instrumento musical. A disciplina e o preparo mental são muito importantes para tornarmos bons naquilo que queremos. Após o domínio desta linguagem, você verá que suas ideias virão de longe para desenvolver um ótimo sistema.

    Sejam muito bem-vindos. Qualquer dúvida é só postar aqui que farei o possível para ajudá-lo!

    [/box]

    [box]Imagem Postada Importante:

    Se você ainda não conhece o Destiny Patcher, clique aqui para ler uma revisão que escrevi sobre ele. Leia apenas a primeira parte, pois nela abordam muitas ideias para que você entenda um pouco mais este patch e que não fique confuso durante as aulas. O link para baixar o Destiny Patcher você encontrará no final desta aula.

    [/box]

    Bom, pessoal. Gostaria de estabelecer alguns padrões para organizar as etapas de nossas aulas. A cada aula, vamos criar um projeto para eles para que você não perca o conteúdo delas para eventuais consultas. Depois altere as configurações do RPG_RT através do Destiny conforme a imagem abaixo:
    Imagem Postada
    Salve as alterações e também escolha a opção Copy Destiny.dll para que o Destiny Script funcione no seu jogo.

    Para podermos aplicar o Destiny Script no projeto, usamos o comando de evento chamado Comment..., iniciando o script ao colocarmos o cifrão ($). Dessa forma, o interpretador reconhecerá que aquilo é um código e os comandos neles serão executados.
    Imagem Postada
    De acordo com o comando mostrado no exemplo do arquivo de ajuda do Destiny, o interpretador vai ler, verificar se tem algum erro de sintaxe ou um identificador diferente ou qualquer espécie de erro. Se o código estver certo, a variável 0001 será alterada para 5.
    Caso você queira continuar o código, deve se colocar um ponto e vírgula (;) no final para que o interpetador entenda que você estará fazendo um novo comando em seguida.


    [box title=Exemplo]$
    v[1] = 5;
    v[1]++;[/box]

    Se você não colocar ponto e vírgula, o interpretador vai ler como se o comando estivesse assim: v[1] = 5v[1]++, causando erro porque ele não reconheceu o valor colocado para alterar a variável 0001, tendo que abortar o jogo. Por isso, acostume-se a terminar um comando com ponto e vírgula SEMPRE!

    [box class="catbg2"]Legendas[/box]
    Você pode ter percebido por que eu altero as cores dos números ao escrever um comando aqui no tópico. Eu coloco mesmo para organizar o conteúdo e que o código fique mais claro para vocês pois na caixinha de comentários do RPG Maker o código todo ficará com um cor só. Veja esta lista para sabermos o que cada cor significa quando escrevo o código em Destiny Script aqui no fórum:



    Vermelho: Strings: variáveis que possuem valores em forma de texto (não é o caso do cifrão);
    Azul: Números: variáveis com valores numéricos, mesmo que seja integer (número inteiros) ou floats (números quebrados). Quando estão em um array, também terão esta cor(Ex.: v[1]. Quando está em negrito, já não serão mais número, mas representarão as condições, métodos e estruturas;
    Roxo: esse não será precisamente no código, mas eles serão uma forma de substituir os números, explicando o tipo de parâmetro que aquela função será lida. Apenas usarei para explicar a função, mas não é para colocar no código o que estará em roxo, e sim substituindo por um valor numérico (no caso em azul).
    [box title=Exemplo]Command.Wait(tempo do wait);[/box]
    [box title=Aplicação]Command.Wait(10); // tempo do wait = 1 segundo[/box]
    Verde: Comentários: linha do código onde o interpretador não vai ler. Ótimo para organizar seus comandos e explicá-los. Os comentários são importantes também para te ajudar a encontrar os códigos caso ocorra algum erro.
    Marrom: Constantes: são valores que representam um determinado valor numérico. No arquivo de ajuda do Destiny possui uma lista de todas as constantes utilizadas e seus determinados valores.
    [box title=Exemplo]$
    if(Keyboard.GetKeyState(VK_RETURN) != 0)
      s[1] = true;
    else
      s[1] = false;
    endif;[/box]
    No caso acima as constantes seriam VK_RETURNtrue e false, onde cada um tem o seu valor de acordo:
    VK_RETURN = 13
    true = 1
    false = 0
    Em outras palavras, o interpretador vai ler dessa forma, substituindo as constantes pelos seus valores:
    [box title=Exemplo]$
    if(Keyboard.GetKeyState(13) != 0)
      s[1] = 1;
    else
      s[1] = 0;
    endif;[/box]

    [box class="catbg2"]Um Passo à Frente[/box]

    Esta área nós vamos falar um pouco do que virá para a próxima aula, já preparando vocês para os próximos 7 dias, trocando ideias entre si e pensando sobre o próximo conteúdo. É lógico que eu não vou dar respostas sobre isso agora pois eu vou explicar na próxima aula, mas seria importante se vocês procurassem a ter uma ideia não do que o comando faz, mas sim a estrutura dos comandos e como funciona a leitura do Destiny Script. Por mais que não tenha ideia do que eles significam, tentem descobrir consigo mesmo, pode chutar, não tenha medo; estamos aqui para aprender. Aos que já sabem, não vale falar a resposta  :-X

    Observe este comando abaixo:


    [box]$
    v[1] = 16;
    Command.SetVehicleChar(SHIP,"VEHICLE",2);
    Command.Wait(2);[/box]
    Procure pensar neste código, baseando-se nas questões abaixo:

    1- O que é "Command"?
    2- O que é "SetVehicleChar" e "Wait"?
    3 - Por que existe um ponto para separá-los?
    4 - O que são aqueles valores entre os parênteses? E aquelas vírgulas? Como funciona tudo isso?
    5 - Por que v[1] não tem parênteses e sim colchetes envolvendo o número 1?
    6 - Por que a variável 1 foi resolvida com um operador matemático e os comandos abaixo não?

     
    [box class="catbg3"]É isso aí, pessoal!
    A aula de hoje foi mais teórica para que na próxima aula o aluno não chegue boiando na hora de pôr o Destiny Script em prática. Não tivemos exercícios nesta aula, mas deixei um momento para vocês refletirem sobre o código. Próxima aula trataremos sobre Objetos e suas funcionalidades, também vamos falar um pouco mais sobre Strings.

    Caso tenham alguma dúvida, não tenha medo de postar aqui. Atenderei todas elas e as responderei.
    Até mais![/box]
    [box class="catbg4"]Acesse o site oficial do Bananen-Joe e baixe o Destiny Patcher 2.0!