Eu aconselho por script. Assim, como o Corvo falou, dá para se fazer por eventos, mas digamos que em um dado como "Missões completas: 013 / 135" você já gastaria quatro imagens no mínimo. Ao vigésimo quinto dado tu chegaria ao limite de imagens que o programa dispõe para uso de eventos. Por código é menos trabalhoso - bem menos trabalhoso - e não tem que ficar preso a esses limites. Seguinte:
Copie o código abaixo para começar o plugin. É um template para criação de uma cena nova.
Scene_Nome é o nome da classe que representa essa cena, tu pode trocar pelo que quiser desde que troque em todos os lugares. Neste template só iremos mudar a função
create, que é onde colocaremos a criação das coisas que serão mostradas na cena.
function Scene_Nome() {
this.initialize.apply(this, arguments);
};
Scene_Nome.prototype = Object.create(Scene_Base.prototype);
Scene_Nome.prototype.constructor = Scene_Nome;
Scene_Nome.prototype.initialize = function() {
Scene_Base.prototype.initialize.call(this);
};
Scene_Nome.prototype.create = function() {
Scene_Base.prototype.create.call(this);
this.createWindowLayer();
};Pelo que eu entendi, seria apenas uma cena com uma janela e nesta janela todos os dados contabilizados pelo jogo e o quanto desses dados o jogador alcançou até então. Antes de colocarmos a janela na cena, precisamos criá-la, então segue o template da janela. Cole após o código que já está no plugin (da Scene).
function Window_Nome() {
this.initialize.apply(this, arguments);
};
Window_Nome.prototype = Object.create(Window_Base.prototype);
Window_Nome.prototype.constructor = Window_Nome;
Window_Nome.prototype.initialize = function() {
Window_Base.prototype.initialize.call(this, 0, 0, Graphics.boxWidth, Graphics.boxHeight);
this.refresh();
};
Window_Nome.prototype.refresh = function() {
};Diferente da classe
Scene, na
Window não utilizamos a função create para dispor as informações contidas na janela, utilizamos a
initialize, que é lida na criação da janela. Perceba que o primeiro comando da função
initialize da classe
Window_Nome chama o
initialize da
Window_Base, que é a classe mãe. Caso não tivéssemos colocado uma classe
initialize para a
Window_Nome, ela herdaria automaticamente a
initialize da sua mãe (
Window_Base), mas como colocamos, o
initialize novo substitui o herdado, então para chamar funções que existem no da classe mãe precisamos chamá-los manualmente. Os valores "0, 0, Graphics.boxWidth e Graphics.boxHeight" referem-se a coordenada X, Y, largura e altura da janela, respectivamente.
Pronto, a janela já está criada. Agora vamos adicioná-la a cena. Para isso, adicione o código abaixo após o código da Scene e antes do código da Window.
Scene_Nome.prototype.createWindow = function() {
this._nomeWindow = new Window_Nome();
this.addWindow(this._nomeWindow);
};Esta é uma nova função que estamos adicionado à
Scene_Nome chamada
createWindow. Esta função irá, primeiramente, setar uma variável (
_nomeWindow) para a janela que desejamos exibir, e em seguida adicionar essa variável à camada de objetos da cena, no caso, à camada seleta de janelas. O
this, em qualquer lugar que for usado, informa que estamos nos referindo a uma variável ou função presente na própria classe (no caso, na
Scene_Nome).
Agora criamos a função que cria a janela, porém ela ainda não será exibida pois esta função não será lida. Isto porque em nenhum momento chamamos esta função, coisa que faremos agora. Dentro da função initialize da cena/Scene, logo após o comando this.createWindowLayer() (que é o comando que cria a camada de janelas, então é fundamental que ele esteja antes da criação da janela), coloque:
this.createWindow();Este comando irá chamar a última função que criamos, e ela então será lida. Note que após o nome da função existe um parênteses vazio. Ele serve para, em função que necessitam de argumentos, possamos colocar os argumentos dentro dos parênteses e eles serão então enviados à função quando chamarmos ela, como foi o caso de quando chamamos o
initialize da classe mãe da
Window_Nome.
Se testar nesse momento o código, verá que a janela aparece mas nenhum texto é exibido, afinal, não fizemos esta parte. Para isso, vamos dentro da função refresh da classe Window_Nome inserir o seguinte código:
this.drawText("Espadas encontradas: " + $gameVariables.value(10) + " / 25", 0, 0, this.contentsWidth(), 'left');Este comando chama a função que escreve um texto na janela. Note que utilizamos os parênteses para enviar argumentos, e muitos. Cada argumento é separado por vírgula, portanto, enviamos cinco argumentos. São eles:
"Espadas encontradas: " + $gameVariables.value(10) + " / 25" - o texto, que deve ser uma
string.
0 - a coordenada X do texto dentro da janela, que deve ser um
número.
0 - a coordenada Y do texto dentro da janela, que também deve ser um número.
this.contentsWidth() - a largura que o texto poderá ocupar dentro da janela. Aqui colocamos chamamos uma outra função que irá retornar o valor da largura da janela, ou seja, o texto poderá ocupar todo o espaço da largura da janela.
'left' - o alinhamento do texto, que também deve ser uma string.
Ah,
$gameVariables é a variável que armazena todas variáveis que utilizamos através dos comandos por eventos.
value(10) é porque iremos requerer o valor da variável de ID 10.
Agora a cena já exibe a janela com o dado que incluímos nela. Para incluir mais dados, basta copiar e colar abaixo o código que escreve o texto, lembrando de alterar a coordenada Y de cada comando novo.
O problema agora é que podemos entrar na cena, mas não temos meios de sair dela. Para isso vamos adicionar a função de
update nela. Esta função é lida constantemente, verificando possíveis atualizações a serem feitas na classe. Como até então não havíamos escrito uma nova, ela era herdada da classe mãe com o que fosse necessário, agora que iremos escrevê-la, devemos tomar o cuidado de chamar o
update da classe mãe para continuarmos tendo o que era preciso da classe mãe, tal como fizemos no
initialize.
Scene_Nome.prototype.update = function() {
Scene_Base.prototype.update.call(this);
if (Input.isTriggered('cancel')) {
this.popScene();
};
};O bloco que se inicia no
if é uma condição. Ela verifica se o botão
'cancel' foi pressionado. Como o
update é lido constantemente, essa verificação é feita constantemente. No momento em que for constatada ser verdadeira, ela irá chamar a função
popScene, que sai da cena atual e volta para a anterior.
E isso aí é o plugin. Salva em .js, coloca na pasta de plugins, ativa-o através do gerenciador e vê se vai funcionar como esperava.

Caso deseje, abaixo está este plugin. Mas recomendo e espero muito que tente fazer seguindo as instruções, pode vir a te passar um pouco sobre como funcionam e quem sabe aprender mais coisas a partir daí.