Войти на сайт

Авторизация, ждите ...
×

ТЕМА: [MV] WhitePaper_PressXManyTimes

[MV] WhitePaper_PressXManyTimes 5 года 3 мес. назад #108324

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

Помощь в использовании плагина [ Нажмите, чтобы развернуть ]


Код плагина:
//=============================================================================
// 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 Диск.
Последнее редактирование: 3 года 11 мес. назад от WhitePaper.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, idavollr, Seibur, DK, Yros, yuryol, Doctor_Bug, akito66, PringOva, 2Oth_Century_boi

[MV] WhitePaper_PressXManyTimes 5 года 3 мес. назад #108325

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2729
  • Победитель конкурсаОраторУчительКомпозитор3 место Готв1 место в ГотвОрганизатор конкурсов2 место
var params = PluginManager.parameters('WhitePaper_PressXManyTimes');
var powerId = params['Power variable ID'];
var winId = params['Win variable ID'];

можно переписать так (просто вдруг не знаешь):
var params = PluginManager.parameters('WhitePaper_PressXManyTimes'),
    powerId = params['Power variable ID']
    winId = params['Win variable ID'];



drawPressXGauge - единственная функция которая с верблюжьим названием. может ее тоже в змеинный переписать? и название плагина тоже может?
кстати в самом мукере тоже по-разному пишут. кто-нибудь знает почему? типа змеинный для классов, для остального верблюжий? или глобальные змеинным?


а так всё нравится, написано понятно и лаконично :blush:
Последнее редактирование: 5 года 3 мес. назад от yuryol.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Noxmils

[MV] WhitePaper_PressXManyTimes 5 года 3 мес. назад #108328

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • ВетеранПрограммист JavaScript Даритель СтимкеяОраторПрограммист Ruby
Насколько заметил, в мейкере переменные верблюжий, типы с заглавных, а подчеркивание отделяет категорию в именах типа (Window, Scene, alias и т д).
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol

[MV] WhitePaper_PressXManyTimes 4 года 1 нед. назад #116101

  • Leprikon01
  • Leprikon01 аватар
  • Вне сайта
  • Мастер
  • Сообщений: 227
  • Спасибо получено: 143
У меня возникло несколько проблем совместимости. Во первых, если расположить плагин после DKTools, то получим ошибку как в на скрине.
DesktopScreenshot2020.04.10-13.32.20.49.png

А если в игре используется плагин YEP_PictureCommonEvents, то при его использовании одновременно запускается кликер.
Подскажите как исправить или где взять альтернативу.

Обновлено:
Все оказалось хуже и тупее. :ohmy: WhitePaper_PressXManyTimes срабатывает на ЛЮБУЮ команду плагина даже ПУСТУЮ.
Последнее редактирование: 4 года 1 нед. назад от Leprikon01.
Администратор запретил публиковать записи гостям.

[MV] WhitePaper_PressXManyTimes 4 года 1 нед. назад #116106

  • WhitePaper
  • WhitePaper аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 378
  • Спасибо получено: 996
  • Проект месяца 2 местоРазработчикПроект месяца 3 местоПисатель 3 место
Исправлено.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Leprikon01, DK

[MV] WhitePaper_PressXManyTimes 4 года 1 нед. назад #116107

  • Leprikon01
  • Leprikon01 аватар
  • Вне сайта
  • Мастер
  • Сообщений: 227
  • Спасибо получено: 143
WhitePaper пишет:
Исправлено.
Да! Теперь все работает.
Администратор запретил публиковать записи гостям.

[MV] WhitePaper_PressXManyTimes 3 года 11 мес. назад #116699

  • Leprikon01
  • Leprikon01 аватар
  • Вне сайта
  • Мастер
  • Сообщений: 227
  • Спасибо получено: 143
Пытаюсь подружить плагин с ALOE_VirtualButtons. Так вот, проблема в том что там надо указать сцену в которой надо показать кнопку. Тоесть ["Scene_Title","Scene_Map","Scene_ChainCommand"] Посмотрел ваш код я нашел только Scene_PressX Но при вводе этого в плагин получаю то что на скрине. Что надо ввести чтобы кнопка появилась?
Вложения:
Последнее редактирование: 3 года 11 мес. назад от Leprikon01.
Администратор запретил публиковать записи гостям.

[MV] WhitePaper_PressXManyTimes 3 года 11 мес. назад #116702

  • WhitePaper
  • WhitePaper аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 378
  • Спасибо получено: 996
  • Проект месяца 2 местоРазработчикПроект месяца 3 местоПисатель 3 место
Исправлено.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Leprikon01, DK

[MV] WhitePaper_PressXManyTimes 3 года 11 мес. назад #116705

  • Leprikon01
  • Leprikon01 аватар
  • Вне сайта
  • Мастер
  • Сообщений: 227
  • Спасибо получено: 143
Работает!
Администратор запретил публиковать записи гостям.

[MV] WhitePaper_PressXManyTimes 3 года 11 мес. назад #116708

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • УчительПрограммист JavaScript Проект месяца 1 местоВетеранРазработчикОраторПроект месяца 2 местоПрограммист RubyПроект месяца 3 местоДаритель Стимкея
Leprikon01 пишет:
У меня возникло несколько проблем совместимости. Во первых, если расположить плагин после DKTools, то получим ошибку как в на скрине.
DesktopScreenshot2020.04.10-13.32.20.49.png

А если в игре используется плагин YEP_PictureCommonEvents, то при его использовании одновременно запускается кликер.
Подскажите как исправить или где взять альтернативу.

Обновлено:
Все оказалось хуже и тупее. :ohmy: WhitePaper_PressXManyTimes срабатывает на ЛЮБУЮ команду плагина даже ПУСТУЮ.

Добавил обработку пустой команды плагина, теперь будет вылезать ошибка, если пусто (так делать нельзя вообще), спасибо.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Leprikon01
Модераторы: NeKotZima
Время создания страницы: 0.289 секунд