INI Reader
Autor: Dr.XGB
Plataforma: RPG Maker 2000
Dificuldade: Avançado
Outro Motor: Destiny Patcher 2.0
» O que é um Arquivo INI?
São arquivos de configuração em forma de texto que são usados para carregar dados para um determinado software. Geralmente temos certos parâmetros de configuração que o programa ou um jogo lê e aplica de acordo, como por exemplo, um programa com vários idiomas; para que as mensagens apareçam de acordo com um idioma é necessário de um arquivo INI armazenando todos os textos naquele idioma.
O nome desta extensão vem da palavra inicialization (ou "inicialização, como preferir), ou seja, arquivos que são carregados inicialmente, antes ou durante o início do programa. Usando o exemplo acima dos idiomas, para que apareça num programa as abas "Arquivos", "Editar", "Visualizar", "Ajuda", etc. precisa abrir um arquivo inicializável para dar os nomes às Strings de acordo com o idioma selecionado.
É muito importante lembrar que INI's não são feitos apenas para criar vários idiomas para um jogo, estou usando apenas como exemplo para maior compreensão do material apresentado. Há várias utilidades para estes tipos de arquivos em jogos ou programas.
Um arquivo INI possui uma estrutura para que o programa possa ler e compreender os parâmetros apresentados nele. Essas estruturas são compreendidas como: Seção — onde vai separar um determinado grupo de parâmetros — e Propriedades — que representa o parâmetro com o seu nome em forma de texto, seguido de seu valor, seja String, Float, Integer ou Bool.
Linguagens de programação, desde o MS-DOS, C++, Java, Delphi e afins, usam a leitura destes arquivos. Em makers que usam leitura de arquivos INI podemos citar o Game Maker, que possui uma biblioteca feita justamente para ler esse tipo de arquivo. O desafio deste tópico é desenvolver um padrão para que o RPG Maker também possa ler esses arquivos através do DestinyScript.
Além disso, o próprio RPG Maker possui um arquivo INI que é criado junto com o projeto, carregando os dados do projeto como o nome do jogo e como ficou configurada o modo de visualização de mapas no próprio editor. Vá na pasta do seu projeto e abra o RPG_RT.ini. Veja que lá tembém é aplicada a estrutura citada, uma seção e três propriedades:
[RPG_RT]GameTitle=EnginebyDr.XGB MapEditMode=2MapEditZoom=0
» Desenvolvendo arquivos INI
Vamos começar a mostrar como aplicar as propriedades num arquivo INI. Ela deve ter um nome para identificar aquela variável. Separando com o símbolo "Igual" (=), determinamos então o valor daquele parâmetro que ficará no arquivo que será lido mais tarde pelo programa.
Apliquemos então:
Além disso, devemos colocar estas propriedades em pequenos grupos que chamamos de "Seção". Toda seção tem o seu nome colocado entre colchetes ([]).
Logo:
Também podemos inserir comentários neles, que será a linha do arquivo que o programa não vai ler. Você pode usar esse espaço para organizar os seus parâmetros. Para inserir um comentário, usamos o ponto-e-vírgula (;).
Aplicando ao arquivo de exemplo:
Você pode criar estes arquivos no Bloco de Notas. Não se esqueça de salvar o arquivo usando o formato .ini para reconhecer o arquivo como tipo inicializável. (Ex.: variáveis.ini e não variáveis.txt).
» Lendo arquivos INI no RPG Maker
Depois de ter criado o nosso pequeno e simpático arquivo, criei um sistema onde o RPG Maker vai ler esses arquivo, solicitando o nome da Seção e da Propriedade, armazenando-as em Strings no Destiny, respectivamente em a[2] e a[3], conforme a Demo que está disponível no final do tópico.
Antes de iniciar a leitura, você deve abrir o arquivo pelo Destiny, de acordo com o seguinte comando:
$
Para evitar erros do caso do arquivo já estiver aberto, recomendo que feche o arquivo SEMPRE que você não precisar mais dele ou para abrir um outro arquivo no mesmo espaço. Isso ajuda a melhorar o desempenho da memória RAM do seu computador, evitando lags dependendo da máquina que você está usando.
Baixe a Demo, copie o evento comum Search INI Position e readapte as variáveis de acordo com o seu projeto. Depois disso, use os seguintes comandos:
Chame então o evento comum depois disso para realizar a leitura. Este evento vai procurar pela Seção solicitada e encontrar a propriedade que você digitou. Se as mesmas existirem, a leitura é realizada e o seu valor será colocado em a[1]. Caso você queira escolher uma String específica para colocar o valor INI, altere o valor da variável [0001: IniRead.String] para um número acima de 7 antes de fornecer as strings a[2] e a[3]. Se você não alterar essa variável, ela será automaticamente adicionada à string a[1]. De acordo com o comando, o valor de a[1] será "20". Lembre-se que é uma String, se você converter isso em variável vai dar erro. Caso deseja fazer isso, aguarde o próximo tutorial que vou montar para isso.
» Baixe a Demo deste Tutorial
Clique aqui para baixar a Demonstração
Espero que tenham gostado deste tutorial e que tenha servido como uma novidade.
Baixe a Demo para ver com mais detalhes a programação deste material.
Até mais!