[...] To usando o do Yanfly Main Menu Manager
Devido à presença deste corpo indevido, não sei se o que faremos dará certo. Brincadeira. Ou não.
O primeiro passo seria decidir onde ela ficará dentro do menu. Estou partindo do pressuposto que ela ficará dentro de alguma janela do menu principal, certo? Isso facilita muito pois as janelas já possuem uma função que desenha uma barrinha, a mesma que é utilizada para desenhar a vida e magia do personagem. Por se tratar de uma função das janelas, obviamente ela estará no
rpg_windows, é só dar um Ctrl+ F em
Window_Base.prototype.drawGauge.
Window_Base.prototype.drawGauge = function(x, y, width, rate, color1, color2) {
var fillW = Math.floor(width * rate);
var gaugeY = y + this.lineHeight() - 8;
this.contents.fillRect(x, gaugeY, width, 6, this.gaugeBackColor());
this.contents.gradientFillRect(x, gaugeY, fillW, 6, color1, color2);
};Os argumentos dessa função são: x para a coordenada dentro da janela onde a barra irá começar, horizontalmente; y a coordenada vertical para o mesmo propósito que a anterior; width é a largura da barra; rate é o quanto da barrinha será preenchida; color1 e color2 são as cores. Como pode ver nas barras de vida e magia, as barras possuem um degradê, que, caso tu opte por não utilizá-lo, pode deixar as duas cores iguais.
Então você já tem tudo que precisa para criar uma barrinha, só resta chamar essa função com os argumentos que desejar. E onde fazer isso?
Para caráter de exemplo, tu poderia fazer na Window_MenuStatus. Se fosse utilizar somente um personagem, essa barrinha poderia ficar abaixo dos dado dele. Nesse caso, a barrinha não sofrerá alteração enquanto o jogador estiver no menu, logo, ela não precisa de um update para ser atualizada constantemente. Então o ideal seria desenhar ela junto com tudo que é desenhado no começo, na função
initialize dessa janela, porém, ela é uma janela de seleção. Este tipo de janela usa muito a função
refresh, para atualização de suas opções selecionáveis conforme o jogador manuseia o menu, então teremos que desenhar a barra pós a execução desta função, uma vez que ela limpa a janela para redesenhar as opções. Se fizermos a barrinha antes, ela será apagada nesse refresh.
O
Window_MenuStatus.prototype.refresh é somente herdado da classe mãe, a
Window_Selectable, então tu não vai achar ele (imagino eu). Tu terá que redigir essa função com o cuidados de não substituir o que ela já faz, somente adicionando o que deseja, e fazemos isso por meio de aliases. Vale a pena procurar e estudar sobre esse carinha, ele é a solução de muitas incompatibilidades sobre códigos.
var Window_MenuStatus_prototype_refresh_plus = Window_MenuStatus.prototype.refresh;
Window_MenuStatus.prototype.refresh = function() {
Window_MenuStatus_prototype_refresh_plus.call(this);
};Primeiro guardamo a função original, que não está visível lá, como falei, mas existe, só é idêntica à da classe mãe. Em seguida abrimos a função normalmente, porém, desta vez ela irá executar os comandos que nós colocarmos. O porém é que, antes de colocarmos os comandos que queremos, temos que utilizar a variável que acabamos de criar para chamar a função original. Vê? Assim não perdemos a função original, todos códigos que precisam dela continuarão funcionando, e ainda adicionamos o que queremos.
E vamos adicionar logo pós o Window_MenuStatus_prototype_refresh_plus.call(this). Lá tu vai chamar a função que cria a barrinha substituindo os argumentos pelos que desejar.
this.drawGauge(x, y, width, rate, color1, color2);A única parte levemente mais difícil aqui será o argumento rate, que é o quanto da barrinha estará preenchida. Enviando 1, ela estará totalmente cheia. Enviando 0.5, estará pela metade. Como tu vai usar uma variável, tu terá que fazer o cálculo de dividir o valor atual da variável pelo valor necessário para que ela fique cheia. Por exemplo, se a variável é 5 e o barrinha enche com 10, 5 /10 = 0.5, logo a barrinha estará meio completa. O código para chamar o valor de uma variável é $gameVariables.value(id), onde id é o id d variável em questão.
Agora tu tenta fazer aí pra gente.

Vale lembrar que, se a janela escolhida não for um janela selecionável, tu pode desenhar a barrinha no
initialize dela, sem a necessidade de um alias.