Плохо! Плохо!:  0
Показано с 1 по 3 из 3

Тема: [MV] WhitePaper_PressXManyTimes

  1. #1
    Познающий Аватар для WhitePaper
    Информация о пользователе
    Регистрация
    02.12.2015
    Адрес
    Украина, Киев
    Сообщений
    251
    Записей в дневнике
    98
    Репутация: 32 Добавить или отнять репутацию

    По умолчанию [MV] WhitePaper_PressXManyTimes

    Название плагина: PressXManyTimes
    Автор: WhitePaper
    Версия: 1.2
    Дата выхода: 10.01.2019
    Описание плагина:
    Мини-игра, в которой нужно наполнить шкалу с помощью нажатия клавиши подтверждения (Enter, пробел или Z). После первого нажатия шкала начинает опустошаться. Если она станет пустой - игрок проиграет.

    Спойлер Помощь в использовании плагина:
    В Win variable ID сохраняется результат мини-игры:
    1 - победа
    -1 - поражение

    В Power variable ID определяется уровень наполнения шкалы за нажатие клавиши. Значение в процентах.
    Например:
    100 - шкала полностью заполняется
    20 - шкала заполняется на 20%
    Шкала убавляется на 1 процент каждый кадр.

    Команды плагина:
    PressXCall - вызывает мини-игру

    Код плагина:

    Код:
    //=============================================================================
    // WhitePaper_PressXManyTimes.js
    //=============================================================================
    
    /*:
     * @plugindesc Мини-игра, в которой нужно наполнить шкалу с помощью нажатия клавиши подтверждения (Enter, пробел или Z). После первого нажатия шкала начинает опустошаться. Если она станет пустой - игрок проиграет.
     * @author WhitePaper
     *
     * @param Win variable ID
     * @desc Номер переменной, в которую сохраняется результат мини-игры (по умолчанию 1)
     * @default 1
     * @type variable
     *
     * @param Power variable ID
     * @desc Номер переменной, которая опередяет уровень наполнения шкалы за нажатие в процентах (по умолчанию 3)
     * @default 3
     * @type variable
     *
     * @help Мини-игра, в которой нужно наполнить шкалу с помощью нажатия клавиши 
     * подтверждения (Enter, пробел или Z). После первого нажатия шкала начинает 
     * опустошаться. Если она станет пустой - игрок проиграет.
     *
     * В Win variable ID сохраняется результат мини-игры:
     *  1 - победа
     * -1 - поражение
     *
     * В Power variable ID определяется уровень наполнения шкалы за нажатие клавиши.
     * Значение в процентах.
     * Например:
     *  100 - шкала полностью заполняется
     *  20 - шкала заполняется на 20%
     * Шкала убавляется на 1 процент каждый кадр.
     *
     * Команды плагина:
     * PressXCall - вызывает мини-игру
     *
     * 
     */
    
        var params = PluginManager.parameters('WhitePaper_PressXManyTimes');
    	var powerId = params['Power variable ID'];
    	var winId = params['Win variable ID'];
    	
    	Window_Base.prototype.drawPressXGauge = function(x, y, width, rate, color1, color2) {
    		var fillW = Math.floor(width * rate);
    		var gaugeY = y + this.lineHeight() * 2 - 8;
    		var height = 100;
    		this.contents.fillRect(x, gaugeY, width, height, this.gaugeBackColor());
    		this.contents.gradientFillRect(x, gaugeY, fillW, height, color1, color2);
    	};
    	var Game_Interpreter_plugincommand = Game_Interpreter.prototype.pluginCommand;
    	Game_Interpreter.prototype.pluginCommand = function(command, args) {
    		Game_Interpreter_plugincommand.call(this, command, args);
    		if(command === 'PressXCall') {
    			SceneManager.push(Scene_PressX);			
    		}
    	};
    
    	function Window_PressX() {
            this.initialize.apply(this, arguments);
    		h = 0;
    		okPress = 0;
    		POWER = $gameVariables.value(powerId) * 0.01;
        };
    	Window_PressX.prototype = Object.create(Window_Base.prototype);
        Window_PressX.prototype.constructor = Window_PressX;
        Window_PressX.prototype.update = function() {
    		if (h >=0.01) {
    			h -= 0.01;
    		};
            this.contents.clear();
    
    		this.drawPressXGauge(0, 0, 500, h, this.hpGaugeColor1(), this.hpGaugeColor2());
    		if (Input.isRepeated('ok')) {
                this.onButtonOk();
            };
    		if (h >= 1){
    			$gameVariables.setValue(winId, 1);
    			SceneManager.pop();
    			//return 1;
    		};
    		if (okPress !== 0 && h <= 0.01){
    			$gameVariables.setValue(winId, -1);
    			SceneManager.pop();
    		};
    	};
    	Window_PressX.prototype.onButtonOk = function() {
    		this.contents.clear();
    		h +=POWER;
    		okPress = 1;
    		if (h >= 1) {
    			h = 1;
    		}
    		this.drawPressXGauge(0, 0, 500, h, this.hpGaugeColor1(), this.hpGaugeColor2());
    		
    	};
    	function Scene_PressX() {
    		this.initialize.apply(this, arguments);
    	};
    	Scene_PressX.prototype = Object.create(Scene_MenuBase.prototype);
    	Scene_PressX.prototype.constructor = Scene_PressX;
    
    	Scene_PressX.prototype.initialize = function() {
    		Scene_MenuBase.prototype.initialize.call(this);
    	};
    
    	Scene_PressX.prototype.create = function() {
    		Scene_MenuBase.prototype.create.call(this);
    		this.createWindow();
    	};
    	Scene_PressX.prototype.createWindow = function() {
    		this._pressX = new Window_PressX(Graphics.boxWidth / 2 - 250,Graphics.boxHeight / 2 - 60, 500, 120);
            this.addWindow(this._pressX);
    	};
    	
    	Scene_Menu.prototype.start = function() {
    		Scene_MenuBase.prototype.start.call(this);
    	};
    Также можно скачать с Google Диск.
    Последний раз редактировалось WhitePaper; 12.07.2020 в 14:12. Причина: Забыла изменить код на новый

  2. #2
    Маститый Аватар для Temendir13
    Информация о пользователе
    Регистрация
    12.07.2010
    Адрес
    в городе я проживаю, в Иркутске.
    Сообщений
    1,048
    Записей в дневнике
    1
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    О, один из квиктайм эвентов, клёво)

  3. #3
    Познающий Аватар для WhitePaper
    Информация о пользователе
    Регистрация
    02.12.2015
    Адрес
    Украина, Киев
    Сообщений
    251
    Записей в дневнике
    98
    Репутация: 32 Добавить или отнять репутацию

    По умолчанию

    Исправлен баг с ложными срабатываниями при любых командах плагина.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
[MV] WhitePaper_PressXManyTimes