Название плагина: PressXManyTimes
Автор: WhitePaper
Версия: 1.3
Дата выхода: 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 Диск.