Войти на сайт

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

ТЕМА: [MV] WhitePaper_PressXManyTimes

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

  • WhitePaper
  • WhitePaper аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 359
  • Спасибо получено: 939
  • Проект месяца 3 местоПроект месяца 2 местоРазработчикПисатель 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 Диск.
Последнее редактирование: 5 мес. 2 нед. назад от WhitePaper.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, idavollr, Seibur, DK, Yros, yuryol, Doctor_Bug, PringOva, 2Oth_Century_boi

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

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1470
  • Спасибо получено: 2289
  • 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:
Последнее редактирование: 1 год 9 мес. назад от yuryol.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Noxmils

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

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

[MV] WhitePaper_PressXManyTimes 6 мес. 1 нед. назад #116101

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

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

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

[MV] WhitePaper_PressXManyTimes 6 мес. 1 нед. назад #116106

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

[MV] WhitePaper_PressXManyTimes 6 мес. 1 нед. назад #116107

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

[MV] WhitePaper_PressXManyTimes 5 мес. 2 нед. назад #116699

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

[MV] WhitePaper_PressXManyTimes 5 мес. 2 нед. назад #116702

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

[MV] WhitePaper_PressXManyTimes 5 мес. 2 нед. назад #116705

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

[MV] WhitePaper_PressXManyTimes 5 мес. 2 нед. назад #116708

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

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

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

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