O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Estâmina [Shep]

Iniciado por Shephiroth, 24/03/2020 às 20:06

Sistema de consumo de estâmina [Shep]

Compativel com: RMMV

[box class=titlebg]
Condições de Uso
[/box]
Livre para uso comercial e não comercial, edição e/ou compartilhamento.

[box class=titlebg]
Para que serve o script
[/box]
O Script usa uma variável para consumir e recarregar a estâmina, quando a barra zera a opção de "correr" fica inabilitada.

Modificáveis por parâmetros:

- Localização da janela
- Título da janela
- Cor 1 da barra
- Cor 2 da barra
- Variável utilizada (muito importante, configure corretamente)
- Velocidade de regeneração de estâmina
- Velocidade de consumo de estâmina


[box class=titlebg]
Imagens
[/box]
Spoiler



[close]

[box class=titlebg]
Script
[/box]
/*:
 * @plugindesc Exibe um contador de estamina, que decresce de acordo com uma variável, exibe um gauge na tela.
 * @author Shephiroth v1.0
 *
 * @param Variavel Estamina
 * @desc Define o numero da variável a ser utilizada.
 * @default 1
 * 
 * @param Exibir Janela
 * @desc Digite "sim" ou "não" para exibir a janela.
 * @default sim
 * 
 * @param Local da Janela
 * @desc Digite "topo1", "topo2" ou "topo3" para as três posições de cima, "meio1", "meio2" ou "meio3" para o meio ou "baixo1", "baixo2" ou "baixo3".
 * @default topo1
 * 
 * @param Titulo Estamina
 * @desc Define o título da janela.
 * @default Estâmina
 *
 * @param Primeira cor Gauge
 * @desc Defina o ID do ícone presente no seu Iconset
 * @default vermelho
 * 
 * @param Segunda cor Gauge
 * @desc Defina o ID do ícone presente no seu Iconset
 * @default verde
 * 
 * @param Consumo de Estamina
 * @desc Defina a velocidade que a estamina é drenada ao correr
 * @default 20
 * 
 * @param Regeneracao de Estamina
 * @desc Defina a velocidade que a estamina é regenerada automaticamente
 * @default 5
 * 
 * 
 *
 * @help Use os comandos de parâmetro para configurar exatamente como deseja
 * que a janela de HUD de estâmina apareça. Dúvidas ? Procure na centrorpg.com
 */


(function() {

    // PARÂMETROS #############################################

    var parameters = PluginManager.parameters('EstaminaContShep');
    var variavelEstamina = Number(parameters['Variavel Estamina'] || 1);
    var exibeJanelaEstamina = String(parameters['Exibir Janela'] || 'sim');
    var localJanelaEstamina = String(parameters['Local da Janela'] || 'topo1');
    var tituloEstamina = String(parameters['Titulo Estamina']||'Estâmina');
    var primeiraCorGauge = String(parameters['Primeira cor Gauge']||'vermelho');
    var segundaCorGauge = String(parameters['Segunda cor Gauge']||'verde');
    var consumoEstamina = Number(parameters['Consumo de Estamina']|| 20);
    var regeneracaoEstamina = Number(parameters['Regeneracao de Estamina']|| 5);

    //#################################################################

    Game_Player.prototype.updateDashing = function() {
        if (this.isMoving()) {    
            if ($gameVariables.value(variavelEstamina)>0 && $gamePlayer.isDashButtonPressed()) $gameVariables.setValue(variavelEstamina,$gameVariables.value(variavelEstamina)-consumoEstamina);
            return;   
        }
        if (this.canMove() && !this.isInVehicle() && !$gameMap.isDashDisabled() && $gameVariables.value(variavelEstamina) > consumoEstamina) {
            this._dashing = this.isDashButtonPressed() || $gameTemp.isDestinationValid();
        } else {
            this._dashing = false;
        }
    };

    var _map_estamina_contador = Scene_Map.prototype.createSpriteset;
    Scene_Map.prototype.createSpriteset = function() {
        _map_estamina_contador.call(this);
        var windowx = 0;
        var windowy = 0;

        if (localJanelaEstamina.toLowerCase()=="topo1"){
            windowx = 0;
            windowy = 0;
        }
        if (localJanelaEstamina.toLowerCase()=="topo2"){
            windowx = (Graphics.boxWidth - 150)/2;
            windowy = 0;
        }
        if (localJanelaEstamina.toLowerCase()=="topo3"){
            windowx =  (Graphics.boxWidth - 150);
            windowy = 0;
        }
        if (localJanelaEstamina.toLowerCase()=="meio1"){
            windowx = 0;
            windowy = (Graphics.boxHeight - 90)/2;
        }
        if (localJanelaEstamina.toLowerCase()=="meio2"){
            windowx = (Graphics.boxWidth - 150)/2;
            windowy = (Graphics.boxHeight - 90)/2;
        }
        if (localJanelaEstamina.toLowerCase()=="meio3"){
            windowx = (Graphics.boxWidth - 150);
            windowy = (Graphics.boxHeight - 90)/2;
        }
        if (localJanelaEstamina.toLowerCase()=="baixo1"){
            windowx = 0;
            windowy = (Graphics.boxHeight - 90);
        }
        if (localJanelaEstamina.toLowerCase()=="baixo2"){
            windowx = (Graphics.boxWidth - 150)/2;
            windowy = (Graphics.boxHeight - 90);
        }
        if (localJanelaEstamina.toLowerCase()=="baixo3"){
            windowx = (Graphics.boxWidth - 150);
            windowy = (Graphics.boxHeight - 90);
        }

        this._estaminaWindow = new Window_EstaminaCont(windowx, windowy, 150, 90);
        this.addChild(this._estaminaWindow);
        if (exibeJanelaEstamina.toLowerCase()!="sim") this._estaminaWindow.hide();
    };

    function Window_EstaminaCont() {
        this.initialize.apply(this, arguments);
    }
    
    Window_EstaminaCont.prototype = Object.create(Window_Base.prototype);
    Window_EstaminaCont.prototype.constructor = Window_EstaminaCont;
    
    Window_EstaminaCont.prototype.initialize = function(x, y, width, height) {
        Window_Base.prototype.initialize.call(this, x, y, width, height);
    };
    
    Window_EstaminaCont.prototype.update = function() {
        var valorEstamina = $gameVariables.value(variavelEstamina);
        if (valorEstamina < 1200){
            $gameVariables.setValue(variavelEstamina,valorEstamina + regeneracaoEstamina);
        } 
        this.contents.clear();
        if (exibeJanelaEstamina.toLowerCase()=="sim") this.drawContents(valorEstamina);
    };
    
    Window_EstaminaCont.prototype.drawContents = function(valorEstamina) {
        var primeiraCor;
        switch (primeiraCorGauge.toLowerCase()) {
            case "azul":
                primeiraCor = "#014ED3";
                break
            case "vermelho":
                primeiraCor = "#ff0000";
                break
            case "verde":
                primeiraCor = "#00ff00";
                break 
            case "amarelo":
                primeiraCor = "#ffff00";
                break
            case "laranja":
                primeiraCor = "#FD580A";
                break
            case "roxo":
                primeiraCor = "#7A04F8";
                break    
            case "cinza":
                primeiraCor = "#979494";
                break 
            case "preto":
                primeiraCor = "#000000";
                break 
            case "branco":
                primeiraCor = "#ffffff";
                break               
            default:
                primeiraCor = primeiraCorGauge;
        }

        var segundaCor;
        switch (segundaCorGauge.toLowerCase()) {
            case "azul":
                segundaCor = "#014ED3";
                break
            case "vermelho":
                segundaCor = "#ff0000";
                break
            case "verde":
                segundaCor = "#00ff00";
                break 
            case "amarelo":
                segundaCor = "#ffff00";
                break
            case "laranja":
                segundaCor = "#FD580A";
                break
            case "roxo":
                segundaCor = "#7A04F8";
                break    
            case "cinza":
                segundaCor = "#979494";
                break 
            case "preto":
                segundaCor = "#000000";
                break 
            case "branco":
                segundaCor = "#ffffff";
                break            
            default:
                segundaCor = segundaCorGauge;
        }
        this.drawGauge(0,10,valorEstamina,0.1,primeiraCor,segundaCor);
        this.drawText(tituloEstamina,0,0,0,0,);
    }

})();

[box class=titlebg]
Créditos e Avisos
[/box]
Criador: Não é necessário, mas caso se sinta a vontade pode citar Shephiroth
Aceito todas sugestões para melhora-lo :D
.

Boa noite amigo
Estou conseguindo adicionar a barra de Estâmina no jogo, sou um pouco leigo na parte de variáveis. Pode me ajudar amigo ?

Claro!

Veja só, em qualquer evento você tem acesso na aba 1 a opção controle de variáveis, conforme a imagem abaixo:
Spoiler
[close]

A janela abaixo se abrirá, clique nos três pontinhos para você ver todas suas variáveis.
Spoiler
[close]

Ai você verá uma listagem com as 20 primeiras variáveis do seu jogo (se você não editou nada, estarão em branco). Escolha qualquer uma delas, digite um nome para se organizar e use o número da variável para o plugin de estâmina. Conforme a imagem abaixo eu utilizei a variável número 2 do meu projeto, então no plugin eu configurei o número 2.
Spoiler
[close]

Importante: Essa variável não poderá ser utilizada em outros sistemas/plugins, deverá ser exclusiva. Para demais sistemas você pode criar outras variáveis (nomeando).

É somente isso sua dúvida? Espero ter ajudado.
.