GRB HideTextWindow

Матеріал з РПГ.укр
Перейти до: навігація, пошук

GRB_HideTextWindowплагін для RPG Maker MV та MZ від команди Гарбата. Дозволяє приховувати текстові вікна натисканням клавіші, щоб мати можливість краще подивитися на графіку під ними.

Завантажити плагін: GRB_HideTextWindow.js.

Файл з плагіном мусить називатися GRB_HideTextWindow.js (це важливо).

Налаштування[ ]

Плагін має два налаштування:

  • Внутрішній код клавіші — код клавіші приховання в RPG Maker (при стандартних налаштуваннях hideUi),
  • Клавіша — клавіша на клавіатурі, яка приховуватиме (та потім показуватиме) вікна. За замовчуванням це клавіша H (як в Ren'py). Якщо вибрати пункт «Нестандартна (від іншого плагіна)», плагін не мінятиме коди клавіш.

Самостійне використання[ ]

Якщо ви не використовуєте додаткових плагінів для роботи з клавіатурою, налаштуйте GRB_HideTextWindow таким чином:

  • Внутрішній код клавіші: не міняйте (залиште hideUi),
  • Клавіша: вкажіть потрібну клавішу.

Сполучення з клавіатурними плагінами[ ]

Якщо плагін використовується разом з іншим плагіном (наприклад, DK_Full_Input (див. DK Plugins)), налаштуйте його так:

  • Внутрішній код клавіші: вкажіть код, який визначено вашим плагіном (див. в налаштуваннях плагіна; наприклад, у DK_Full_Input це може бути 'h'),
  • Клавіша: оберіть перший пункт, «Нестандартна (від іншого плагіна)».

Сумісність[ ]

Плагін перевірено на RPG Maker MV 1.6.2 та RPG Maker MZ 1.1.1.

Якщо плагін використовується разом з клавіатурним плагіном, потрібно відповідним чином налаштувати GRB_HideTextWindow: в полі «Клавіша» вибрати «Нестандартна (від іншого плагіна)», а в полі «Внутрішній код клавіші» вибрати такий код, який встановлено в клавіатурному плагіні.

Код[ ]

Показати код плагіну

//=============================================================================
// GRB_HideTextWindow.js
//=============================================================================

/*:
 * @target MV MZ
 * @plugindesc Allows the player to hide message windows
 * @author Garbata Team
 * @url https://рпг.укр/GRB_HideTextWindow
 *
 * @help
 * This plugin allows the players to hide the message window by pressing
 * a certain key. By default the key to hide UI is the H key (like in Ren'py),
 * but you can choose another key.

 * The sub-windows (choices, number input, item input, gold display; and
 * name window in RPG Maker MZ) are also hidden.
 *
 * COMPATIBILITY NOTE: if you use another plugin to handle your keyboard input
 * (for example, DK_Full_Input), set "Key to press" to the first value,
 * "Custom (set by another plugin)". And for "Internal key name" use the key
 * name that is defined by your keyboard plugin.
 *
 * Works in both RPG Maker MV and MZ.
 *
 * This plugin is placed into public domain according to the CC0 public domain
 * dedication. See https://creativecommons.org/publicdomain/zero/1.0/ for more
 * information.
 *
 * @param keyName
 * @text Internal key name
 * @desc The internal ID of the key. Change it if you use a custom
 * keyboard plugin (such as DK_Full_Input).
 * @default hideUi
 *
 * @param keyCodeName
 * @text Key to press
 * @desc The key that needs to be pressed. Use "Custom"
 * if another plugin manages keyboard (e.g. DK_Full_Input).
 * @type select
 * @option Custom (set by another plugin)
 * @option Backspace
 * @option Tab
 * @option Ctrl
 * @option Alt
 * @option Pause/Break
 * @option Caps Lock
 * @option End
 * @option Home
 * @option Insert
 * @option Delete
 * @option 0
 * @option 1
 * @option 2
 * @option 3
 * @option 4
 * @option 5
 * @option 6
 * @option 7
 * @option 8
 * @option 9
 * @option A
 * @option B
 * @option C
 * @option D
 * @option E
 * @option F
 * @option G
 * @option H
 * @option I
 * @option J
 * @option K
 * @option L
 * @option M
 * @option N
 * @option O
 * @option P
 * @option Q
 * @option R
 * @option S
 * @option T
 * @option U
 * @option V
 * @option W
 * @option X
 * @option Y
 * @option Z
 * @option Left WinKey
 * @option Right WinKey
 * @option Select
 * @option NumPad 0
 * @option NumPad 1
 * @option NumPad 2
 * @option NumPad 3
 * @option NumPad 4
 * @option NumPad 5
 * @option NumPad 6
 * @option NumPad 7
 * @option NumPad 8
 * @option NumPad 9
 * @option NumPad *
 * @option NumPad +
 * @option NumPad -
 * @option NumPad .
 * @option NumPad /
 * @option F1
 * @option F2
 * @option F3
 * @option F4
 * @option F5
 * @option F6
 * @option F7
 * @option F8
 * @option F9
 * @option F10
 * @option F11
 * @option F12
 * @option Num Lock
 * @option Scroll Lock
 * @option ;
 * @option =
 * @option ,
 * @option -
 * @option .
 * @option /
 * @option `
 * @option [
 * @option \
 * @option ]
 * @option '
 * @default H
 */
/*:uk
 * @target MV MZ
 * @plugindesc Дозволяє гравцям приховати текстове вікно
 * @author Команда Гарбата
 * @url https://рпг.укр/GRB_HideTextWindow
 *
 * @help
 * Цей плагін дозволяє гравцям приховати вікно повідомлення, натискаючи на певну
 * клавішу. При стандартних налаштуваннях для приховання вікон використовується
 * клавіша H (Р в кирилиці; як в Ren'py), але можна вибрати іншу.
 *
 * Допоміжні вікна (вікно вибору, вікно введення числа, вікно вибору речі; і
 * вікно імені в RPG Maker MZ) також приховуються.
 *
 * ЗАУВАЖЕННЯ ПРО СУМІСНІСТЬ: якщо ви використовуєте інший плагін для обробки
 * клавіатури (наприклад, DK_Full_Input), оберіть в полі «Клавіша» перший пункт
 * «Нестандартна (від іншого плагіна)». А в полі «Внутрішній код клавіші»
 * вкажіть той код, який визначається цим іншим клавіатурним плагіном.
 *
 * Працює і в RPG Maker MV, і в RPG Maker MZ.
 *
 * Цей плагін передано до суспільного надбання згідно з CC0. Детальніше див.
 * на сторінці https://creativecommons.org/publicdomain/zero/1.0/deed.uk
 *
 * @param keyName
 * @text Внутрішній код клавіші
 * @desc Внутрішній код клавіші. Змініть цей пункт, якщо
 * маєте інший клавіатурний плагін (напр. DK_Full_Input)
 * @default hideUi
 *
 * @param keyCodeName
 * @text Клавіша
 * @desc Клавіша, яка приховуватиме вікна. Оберіть
 * «Нестандартна», якщо маєте клавіатурний плагін.
 * @type select
 * @option Нестандартна (від іншого плагіна)
 * @option Backspace
 * @option Tab
 * @option Ctrl
 * @option Alt
 * @option Pause/Break
 * @option Caps Lock
 * @option End
 * @option Home
 * @option Insert
 * @option Delete
 * @option 0
 * @option 1
 * @option 2
 * @option 3
 * @option 4
 * @option 5
 * @option 6
 * @option 7
 * @option 8
 * @option 9
 * @option A
 * @option B
 * @option C
 * @option D
 * @option E
 * @option F
 * @option G
 * @option H
 * @option I
 * @option J
 * @option K
 * @option L
 * @option M
 * @option N
 * @option O
 * @option P
 * @option Q
 * @option R
 * @option S
 * @option T
 * @option U
 * @option V
 * @option W
 * @option X
 * @option Y
 * @option Z
 * @option Left WinKey
 * @option Right WinKey
 * @option Select
 * @option NumPad 0
 * @option NumPad 1
 * @option NumPad 2
 * @option NumPad 3
 * @option NumPad 4
 * @option NumPad 5
 * @option NumPad 6
 * @option NumPad 7
 * @option NumPad 8
 * @option NumPad 9
 * @option NumPad *
 * @option NumPad +
 * @option NumPad -
 * @option NumPad .
 * @option NumPad /
 * @option F1
 * @option F2
 * @option F3
 * @option F4
 * @option F5
 * @option F6
 * @option F7
 * @option F8
 * @option F9
 * @option F10
 * @option F11
 * @option F12
 * @option Num Lock
 * @option Scroll Lock
 * @option ;
 * @option =
 * @option ,
 * @option -
 * @option .
 * @option /
 * @option `
 * @option [
 * @option \
 * @option ]
 * @option '
 * @default H
 */
/*:be
 * @target MV MZ
 * @plugindesc Дазваляе гульцам схаваць тэкставае акно
 * @author Каманда Гарбата
 * @url https://рпг.укр/GRB_HideTextWindow
 *
 * @help
 * Гэты плагін дазваляе гульцам схаваць акно паведамлення, націснуўшы на некаторую
 * клавішу. Пры стандартых наладках для прыхавання акон выкарыстоўваецца клавіша
 * H (Р у кірыліцы; як у Ren'py), але можна выбраць іншую.
 *
 * Дадатковыя вокны (акно выбару, акно ўвядзення ліку, акно выбару рэчы; і акно
 * імені ў RPG Maker MZ) таксама прыхоўваюцца.
 *
 * ЗАЎВАГА ПРА СУМЯШЧАЛЬНАСЦЬ: калі вы выкарыстоўваеце іншы плагін для апрацоўкі
 * клавіятуры (напрыклад, DK_Full_Input), выберыце ў поле «Клавіша» першы пункт,
 * «Нестандартная (ад іншага плагіна). А ў полі «Унутранны код клавішы» прызначце
 * той код, які вызначаецца гэтым іншым клавіятурным плагінам.
 *
 * Працуе і ў RPG Maker MV, і ў RPG Maker MZ.
 *
 * Гэты плагін перададзены ў грамадскі набытак згодна з CC0. Падрабязней гл.
 * на старонцы https://creativecommons.org/publicdomain/zero/1.0/deed.be
 *
 * @param keyName
 * @text Унутраны код клавішы
 * @desc Унутраны код клавішы. Замяніце гэты пункт, калі
 * вы маеце іншы клавіятурны плагін (напр. DK_Full_Input)
 * @default hideUi
 *
 * @param keyCodeName
 * @text Клавіша
 * @desc Клавіша для прыхавання вокнаў. Выберыце
 * «Нестандартная», калі маеце клавіятурны плагін.
 * @type select
 * @option Нестандартная (ад іншага плагіна)
 * @option Backspace
 * @option Tab
 * @option Ctrl
 * @option Alt
 * @option Pause/Break
 * @option Caps Lock
 * @option End
 * @option Home
 * @option Insert
 * @option Delete
 * @option 0
 * @option 1
 * @option 2
 * @option 3
 * @option 4
 * @option 5
 * @option 6
 * @option 7
 * @option 8
 * @option 9
 * @option A
 * @option B
 * @option C
 * @option D
 * @option E
 * @option F
 * @option G
 * @option H
 * @option I
 * @option J
 * @option K
 * @option L
 * @option M
 * @option N
 * @option O
 * @option P
 * @option Q
 * @option R
 * @option S
 * @option T
 * @option U
 * @option V
 * @option W
 * @option X
 * @option Y
 * @option Z
 * @option Left WinKey
 * @option Right WinKey
 * @option Select
 * @option NumPad 0
 * @option NumPad 1
 * @option NumPad 2
 * @option NumPad 3
 * @option NumPad 4
 * @option NumPad 5
 * @option NumPad 6
 * @option NumPad 7
 * @option NumPad 8
 * @option NumPad 9
 * @option NumPad *
 * @option NumPad +
 * @option NumPad -
 * @option NumPad .
 * @option NumPad /
 * @option F1
 * @option F2
 * @option F3
 * @option F4
 * @option F5
 * @option F6
 * @option F7
 * @option F8
 * @option F9
 * @option F10
 * @option F11
 * @option F12
 * @option Num Lock
 * @option Scroll Lock
 * @option ;
 * @option =
 * @option ,
 * @option -
 * @option .
 * @option /
 * @option `
 * @option [
 * @option \
 * @option ]
 * @option '
 * @default H
 */
/*:ru
 * @target MV MZ
 * @plugindesc Позволяет игрокам скрывать окно текста
 * @author Команда Гарбата
 * @url https://рпг.укр/GRB_HideTextWindow
 *
 * @help
 * Этот плагин позволяет игрокам скрывать окно сообщения, нажимая на определённую
 * клавишу. По умолчанию для скрытия окон используется клавиша H (Р в кириллице;
 * как в Ren'py), но можно выбрать и другую.
 *
 * Вспомогательные окна (окно выбора, окно ввода числа, окно выбора предмета,
 * и окно имени в RPG Maker MZ) также скрываются.
 *
 * ЗАМЕЧАНИЕ ПО СОВМЕСТИМОСТИ: если вы используете другой плагин для обработки
 * клавиатуры (например, DK_Full_Input), выберите в поле «Нажимаемая клавиша»
 * первый пункт «Нестандартная (задаётся другим плагином)». А в поле «Внутренний
 * код клавиши» выберите тот код, который задаётся нужным клавиатурным плагином.
 *
 * Работает и в RPG Maker MV, и в MZ.
 *
 * Этот плагин передан в общественное достояние согласно CC0. Подробнее см. на
 * странице https://creativecommons.org/publicdomain/zero/1.0/deed.ru
 *
 * @param keyName
 * @text Внутренний код клавиши
 * @desc Внутренний код клавиши. Измените этот пункт, если
 * включён другой клавиатурный плагин (напр. DK_Full_Input).
 * @default hideUi
 *
 * @param keyCodeName
 * @text Нажимаемая клавиша
 * @desc Клавиша, которую надо будет нажать. Выберите
 * «Нестандартная», если включён клавиатурный плагин.
 * @type select
 * @option Нестандартная (задаётся другим плагином)
 * @option Backspace
 * @option Tab
 * @option Ctrl
 * @option Alt
 * @option Pause/Break
 * @option Caps Lock
 * @option End
 * @option Home
 * @option Insert
 * @option Delete
 * @option 0
 * @option 1
 * @option 2
 * @option 3
 * @option 4
 * @option 5
 * @option 6
 * @option 7
 * @option 8
 * @option 9
 * @option A
 * @option B
 * @option C
 * @option D
 * @option E
 * @option F
 * @option G
 * @option H
 * @option I
 * @option J
 * @option K
 * @option L
 * @option M
 * @option N
 * @option O
 * @option P
 * @option Q
 * @option R
 * @option S
 * @option T
 * @option U
 * @option V
 * @option W
 * @option X
 * @option Y
 * @option Z
 * @option Left WinKey
 * @option Right WinKey
 * @option Select
 * @option NumPad 0
 * @option NumPad 1
 * @option NumPad 2
 * @option NumPad 3
 * @option NumPad 4
 * @option NumPad 5
 * @option NumPad 6
 * @option NumPad 7
 * @option NumPad 8
 * @option NumPad 9
 * @option NumPad *
 * @option NumPad +
 * @option NumPad -
 * @option NumPad .
 * @option NumPad /
 * @option F1
 * @option F2
 * @option F3
 * @option F4
 * @option F5
 * @option F6
 * @option F7
 * @option F8
 * @option F9
 * @option F10
 * @option F11
 * @option F12
 * @option Num Lock
 * @option Scroll Lock
 * @option ;
 * @option =
 * @option ,
 * @option -
 * @option .
 * @option /
 * @option `
 * @option [
 * @option \
 * @option ]
 * @option '
 * @default H
 */

(function () {
  var KEY_CODES = {
    'Backspace': 8, 'Tab': 9, 'Enter': 13, 'Shift': 16, 'Ctrl': 17, 'Alt': 18,
    'Pause/Break': 19, 'Caps Lock': 20, 'Esc': 27, 'Page Up': 33,
    'Page Down': 34, 'End': 35, 'Home': 36, '←': 37, '↑': 38, '→': 39, '↓': 40,
    'Insert': 45, 'Delete': 46, '0': 48, '1': 49, '2': 50, '3': 51, '4': 52,
    '5': 53, '6': 54, '7': 55, '8': 56, '9': 57, 'A': 65, 'B': 66, 'C': 67,
    'D': 68, 'E': 69, 'F': 70, 'G': 71, 'H': 72, 'I': 73, 'J': 74, 'K': 75,
    'L': 76, 'M': 77, 'N': 78, 'O': 79, 'P': 80, 'Q': 81, 'R': 82, 'S': 83,
    'T': 84, 'U': 85, 'V': 86, 'W': 87, 'X': 88, 'Y': 89, 'Z': 90,
    'Left WinKey': 91, 'Right WinKey': 92, 'Select': 93, 'NumPad 0': 96,
    'NumPad 1': 97, 'NumPad 2': 98, 'NumPad 3': 99, 'NumPad 4': 100,
    'NumPad 5': 101, 'NumPad 6': 102, 'NumPad 7': 103, 'NumPad 8': 104,
    'NumPad 9': 105, 'NumPad *': 106, 'NumPad +': 107, 'NumPad -': 109,
    'NumPad .': 110, 'NumPad /': 111, 'F1': 112, 'F2': 113, 'F3': 114,
    'F4': 115, 'F5': 116, 'F6': 117, 'F7': 118, 'F8': 119, 'F9': 120,
    'F10': 121, 'F11': 122, 'F12': 123, 'Num Lock': 144, 'Scroll Lock': 145,
    ';': 186, '=': 187, ',': 188, '-': 189, '.': 190, '/': 191, '`': 192,
    '[': 219, '\\': 220, ']': 221, "'": 222
  };

  var params = PluginManager.parameters('GRB_HideTextWindow');
  var hidingKeyName = String(params.keyName || '');
  var hidingKeyCodeName = String(params.keyCodeName || '');
  var hidingKeyCode = KEY_CODES[hidingKeyCodeName] || false;

  if (hidingKeyName && hidingKeyCode) {
    Input.keyMapper[hidingKeyCode] = hidingKeyName;
  }

  var Game_Message_clear = Game_Message.prototype.clear;
  Game_Message.prototype.clear = function() {
    Game_Message_clear.call(this);
    this._grbUiHidden = false;
  }

  Game_Message.prototype.grbToggleUi = function () {
    this._grbUiHidden = !this._grbUiHidden;
  }

  Game_Message.prototype.grbUiIsHidden = function () {
    return this._grbUiHidden;
  }

  var Scene_Map_update = Scene_Map.prototype.update;
  Scene_Map.prototype.update = function() {
    this.grbUpdateUiHiding();
    Scene_Map_update.call(this);
  }

  Scene_Map.prototype.grbUpdateUiHiding = function() {
    if (this.grbHideUiTriggered()) {
      $gameMessage.grbToggleUi();
    }
  }

  Scene_Map.prototype.grbHideUiTriggered = function() {
    return Input.isTriggered(hidingKeyName);
  }

  var Window_Message_update = Window_Message.prototype.update;
  Window_Message.prototype.update = function() {
    if ($gameMessage.grbUiIsHidden() && this.visible) {
      this.hide();
      this.subWindows().forEach(function(window) {
        window.hide();
      });
    } else if (!$gameMessage.grbUiIsHidden() && !this.visible) {
      this.show();
      this.subWindows().forEach(function(window) {
        window.show();
      });
    }

    if ($gameMessage.grbUiIsHidden()) {
      this.grbUpdateForClosedUi();
    } else {
      Window_Message_update.call(this);
    }
  }

  if (Utils.RPGMAKER_NAME == "MZ") {
    //This function already exists in RMMV
    Window_Message.prototype.subWindows = function () {
      return [this._goldWindow, this._nameBoxWindow, this._choiceListWindow,
                this._numberInputWindow, this._eventItemWindow]
            .filter(function (x) {
              return x !== null;
            });
    }
  }

  Window_Base.prototype.grbUpdateForClosedUi = function() {
    var needsOpening = Input.isRepeated('ok') || Input.isRepeated('cancel') ||
        Input.isTriggered('up') || Input.isTriggered('down') ||
        Input.isTriggered('left') || Input.isTriggered('right') ||
        TouchInput.isRepeated();
    if (needsOpening) {
      $gameMessage.grbToggleUi();
      Input.clear();
    }
  }

  var Window_ChoiceList_update = Window_ChoiceList.prototype.update;
  Window_ChoiceList.prototype.update = function() {
    if ($gameMessage.grbUiIsHidden()) {
      this.grbUpdateForClosedUi();
    } else {
      Window_ChoiceList_update.call(this);
    }
  }
})();

Подібні плагіни[ ]