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

Тема: [MZ] Phileas_SkippingMessages

  1. #1
    Бывалый Аватар для Phileas
    Информация о пользователе
    Регистрация
    05.02.2016
    Адрес
    HD 128620, HR 5459, CP−60°5483, GCTP 3309.00A, LHS 50
    Сообщений
    635
    Записей в дневнике
    26
    Репутация: 23 Добавить или отнять репутацию

    По умолчанию [MZ] Phileas_SkippingMessages

    Название плагина: Phileas's Skipping Messages

    Автор: Phileas

    Версия: 1.2.0 для MZ

    Дата выхода:
    1.0.0 - 03.09.2022
    1.1.0 - 25.07.2023
    1.2.0 - 05.02.2024

    Описание плагина:
    Плагин позволяет пропускать сообщения диалогов нажатием любой клавиши (задаётся в настройках плагина).
    Можно также выбрать скорость пропуска: медленную или быструю.
    Оба параметра возможно изменить в ходе игры с помощью команд плагина.

    Использование плагина:
    Первый параметр - строковый код клавиши, при нажатии на которую нужно пропускать сообщения. По умолчанию - Control (Ctrl).
    Второй параметр - скорость пропуска сообщений. По умолчанию - Slow (медленная).
    После включения и настройки (опционально) плагина достаточно во время диалога зажать заданную клавишу.
    В событии можно вызвать команды плагина, чтобы изменить клавишу и скорость пропуска сообщений.

    Как это выглядит:


    Код:
    Спойлер Версия 1.2.0:
    Код:
    //=============================================================================
    // Phileas_SkippingMessages.js
    //=============================================================================
    // [Update History]
    // 2022.September.3 Ver1.0.0 First Release
    // 2023.July.25 Ver1.1.0 Added skip speed selection
    //                       Added commands that allow to change the text skip key and skip speed during the game
    // 2024.February.05 Ver1.2.0 Added mouse support
    
    /*
    Title: Phileas_SkippingMessages
    Author: Phileas
    Site: https://boosty.to/phileas
    E-mail: olek.olegovich@gmail.com
    Version: 1.2.0
    First release: 2022.September.3
    Last release: 2024.February.05
    */
    
    /*ru
    Название: Phileas_SkippingMessages
    Автор: Phileas
    Сайт: https://boosty.to/phileas
    E-mail: olek.olegovich@gmail.com
    Версия: 1.2.0
    Первый релиз: 03.09.2022
    Последний релиз: 05.02.2024
    */
    
    /*:
     * @target MZ
     * @plugindesc The plugin allows to skip messages by pressing any key
     * @author Phileas
     *
     * @param Default skip key
     * @type string
     * @desc String identifier of the key
     * @default control
     *
     * @param Default skip speed
     * @type combo
     * @option Slow
     * @option Fast
     * @default Slow
     *
     * @command setSkipKey
     * @text Set the skip key
     * @desc Assigns a new messages skip key.
     * @arg keyName
     * @text Key name
     * @type string
     * @default control
     *
     * @command setSkipSpeed
     * @text Set the skip speed
     * @desc Assigns a new messages skip speed.
     * @arg skipSpeed
     * @text Skip speed
     * @type combo
     * @option Slow
     * @option Fast
     * @default Slow
     *
     * @help
     * To assign a keyboard key, use a unique string identifier. If you haven't redefined them, then they look like this:
     *     9: "tab", // tab
     *     13: "ok", // enter
     *     16: "shift", // shift
     *     17: "control", // control
     *     18: "control", // alt
     *     27: "escape", // escape
     *     32: "ok", // space
     *     33: "pageup", // pageup
     *     34: "pagedown", // pagedown
     *     37: "left", // left arrow
     *     38: "up", // up arrow
     *     39: "right", // right arrow
     *     40: "down", // down arrow
     *     45: "escape", // insert
     *     81: "pageup", // Q
     *     87: "pagedown", // W
     *     88: "escape", // X
     *     90: "ok", // Z
     *     96: "escape", // numpad 0
     *     98: "down", // numpad 2
     *     100: "left", // numpad 4
     *     102: "right", // numpad 6
     *     104: "up", // numpad 8
     *     120: "debug" // F9
     *
     * You can also choose the speed of text skipping: slow or fast.
     * 
     * The plugin provides 2 commands, their arguments duplicate the parameters:
     * 0) Set the skip key - assigns a new messages skip key.
     * 1) Set the skip speed - assigns a new messages skip speed.
     *
     * You can always write to the author if you need other features or even plugins.
     * Boosty: https://boosty.to/phileas
     * RPG Maker Web: https://forums.rpgmakerweb.com/index.php?members/phileas.176075/
     * RPG Maker Union: https://rpgmakerunion.ru/id/phileas
     * Email: olek.olegovich gmail.com
     * Telegram: olekolegovich
     * 
     * [License]
     * This plugin is released under MIT license.
     * http://opensource.org/licenses/mit-license.php
     *
     * This means that you can freely use the plugin in non-commercial and commercial games and even edit it.
     * But be sure to include me in the credits!
     */
     
    /*:ru
     * @target MZ
     * @plugindesc Плагин позволяет пропускать сообщения нажатием любой клавиши
     * @author Phileas
     *
     * @param Default skip key
     * @text Клавиша пропуска по умолчанию
     * @type string
     * @desc String identifier of the key
     * @default control
     *
     * @param Default skip speed
     * @text Скорость пропуска по умолчанию
     * @desc Slow - медленно, Fast - быстро.
     * @type combo
     * @option Slow
     * @option Fast
     * @default Slow
     *
     * @command setSkipKey
     * @text Установить клавишу пропуска
     * @desc Назначает новую клавишу пропуска сообщений.
     * @arg keyName
     * @text Название клавиши
     * @type string
     * @default control
     *
     * @command setSkipSpeed
     * @text Установить скорость пропуска
     * @desc Назначает новую скорость пропуска сообщений.
     * @arg skipSpeed
     * @text Скорость пропуска
     * @type combo
     * @option Slow
     * @option Fast
     * @default Slow
     *
     * @help
     * Чтобы назначить клавишу клавиатуры, используйте её уникальный строковый идентификатор. Если вы не переопределили их, то они выглядят так:
     *     9: "tab", // tab
     *     13: "ok", // enter
     *     16: "shift", // shift
     *     17: "control", // control
     *     18: "control", // alt
     *     27: "escape", // escape
     *     32: "ok", // space
     *     33: "pageup", // pageup
     *     34: "pagedown", // pagedown
     *     37: "left", // left arrow
     *     38: "up", // up arrow
     *     39: "right", // right arrow
     *     40: "down", // down arrow
     *     45: "escape", // insert
     *     81: "pageup", // Q
     *     87: "pagedown", // W
     *     88: "escape", // X
     *     90: "ok", // Z
     *     96: "escape", // numpad 0
     *     98: "down", // numpad 2
     *     100: "left", // numpad 4
     *     102: "right", // numpad 6
     *     104: "up", // numpad 8
     *     120: "debug" // F9
     *
     * Вы также можете выбрать скорость пропуска текста: медленную или быструю.
     * 
     * Плагин предоставляет 2 команды, их аргументы дублируют параметры:
     * 0) Установить клавишу пропуска - назначает новую клавишу пропуска сообщений.
     * 1) Установить скорость пропуска - назначает новую скорость пропуска сообщений.
     *
     * Вы всегда можете написать автору, если вам нужны другие функции или даже плагины.
     * Boosty: https://boosty.to/phileas
     * RPG Maker Web: https://forums.rpgmakerweb.com/index.php?members/phileas.176075/
     * RPG Maker Union: https://rpgmakerunion.ru/id/phileas
     * Email: olek.olegovich gmail.com
     * Телеграм: olekolegovich
     * 
     * [License]
     * Этот плагин распространяется по лицензии MIT.
     * http://opensource.org/licenses/mit-license.php
     *
     * Это означает, что вы можете свободно использовать плагин в некоммерческих и коммерческих играх и даже редактировать его.
     * Но обязательно укажите меня в титрах!
     */
    
    (function() {
    
    //--------MY CODE:
        var parameters = PluginManager.parameters("Phileas_SkippingMessages");
        var skipKeyName = String(parameters["Default skip key"] || "control");
        var isFastMode = parameters["Default skip speed"] == "Fast";
        var skipFlag = false;
        
        PluginManager.registerCommand("Phileas_SkippingMessages", "setSkipKey", setSkipKey);
        PluginManager.registerCommand("Phileas_SkippingMessages", "setSkipSpeed", setSkipSpeed);
        
        setSkipOnCancel();
        
        function setSkipKey(params) {
            let keyName = params['keyName'];
            skipKeyName = keyName;
            setSkipOnCancel();
        }
        
        function setSkipSpeed(params) {
            let skipSpeed = params['skipSpeed'];
            isFastMode = skipSpeed == "Fast";
        }
        
        function setSkipOnCancel() {
            if (skipKeyName !== "escape") {
                document.removeEventListener("mousedown", skippingMouseDownHandler);
                document.removeEventListener("mouseup", skippingMouseUpHandler);
                return;
            }
            
            document.addEventListener("mousedown", skippingMouseDownHandler);
            document.addEventListener("mouseup", skippingMouseUpHandler);
        }
        
        function skippingMouseDownHandler(event) {
            if (event.button == 2) {
                skipFlag = true;
            }
        };
        
        function skippingMouseUpHandler(event) {
            if (event.button == 2) {
                skipFlag = false;
            }
        };
        
        function isSkipKeyPressed() {
            return Input.isPressed(skipKeyName)
                || skipKeyName === "ok" && TouchInput.isLongPressed()
                || skipFlag;
        }
    
    //--------CHANGED CORE:
    
        const Original_isTriggered = Window_Message.prototype.isTriggered;
        Window_Message.prototype.isTriggered = function() {
            if (isSkipKeyPressed()) {
                this._pauseSkip = isFastMode;
                return true;
            }
    
            return Original_isTriggered.call(this);
        };
    }());

    Или можно скачать файл тут.

    Лицензия
    MIT, вся ответственность на пользователе.

    Совместимость:
    Плагин расширяет только один метод базового кода движка - Window_Message.prototype.isTriggered. В моём методе вызывается оригинальный, если заданная клавиша не зажата. Тем не менее, может возникнуть проблема совместимости с плагином, который также переписывает этот метод. Скорее всего, это могут делать плагины, связанные с системой сообщений. Если возникнут проблемы - пишите, постараюсь разобраться.
    Последний раз редактировалось Phileas; 05.02.2024 в 23:12.
    Мои игры

    Мои плагины

    Мой Telegram-канал

    Мой Boosty



    Спойлер In my humble opinion :

    Все мои сообщения отражают лишь моё скромное мнение. Я ни в коем случае не пытаюсь кого-либо обидеть, ни на кого/что не наезжаю и ничего не навязываю. Благодарю за понимание и адекватность.

  2. #2
    Создатель Аватар для Рольф
    Информация о пользователе
    Регистрация
    14.04.2008
    Адрес
    Южно- Сахалинск/Пенза
    Сообщений
    10,283
    Записей в дневнике
    2
    Репутация: 108 Добавить или отнять репутацию

    По умолчанию

    Со скринами. Я одобряю.

  3. #3
    Бывалый Аватар для Phileas
    Информация о пользователе
    Регистрация
    05.02.2016
    Адрес
    HD 128620, HR 5459, CP−60°5483, GCTP 3309.00A, LHS 50
    Сообщений
    635
    Записей в дневнике
    26
    Репутация: 23 Добавить или отнять репутацию

    По умолчанию

    Обновление до версии 1.1.0!

    • Теперь можно выбирать скорость пропуска сообщений.
    • С помощью команд плагина можно менять клавишу и скорость пропуска в процессе игры.
    Мои игры

    Мои плагины

    Мой Telegram-канал

    Мой Boosty



    Спойлер In my humble opinion :

    Все мои сообщения отражают лишь моё скромное мнение. Я ни в коем случае не пытаюсь кого-либо обидеть, ни на кого/что не наезжаю и ничего не навязываю. Благодарю за понимание и адекватность.

  4. #4
    Познающий Аватар для KARAKURT
    Информация о пользователе
    Регистрация
    11.05.2008
    Сообщений
    292
    Записей в дневнике
    5
    Репутация: 8 Добавить или отнять репутацию

    По умолчанию

    А через сенсорное управление можно сделать?

  5. #5
    Бывалый Аватар для Phileas
    Информация о пользователе
    Регистрация
    05.02.2016
    Адрес
    HD 128620, HR 5459, CP−60°5483, GCTP 3309.00A, LHS 50
    Сообщений
    635
    Записей в дневнике
    26
    Репутация: 23 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от KARAKURT Посмотреть сообщение
    А через сенсорное управление можно сделать?
    А как? Если просто удерживать палец, то будет стандартное ускорение (чибики чуть быстрее двигаются, сообщения чуть быстрее читаются). Вы хотите изменить это ускорение? Можно тогда в настройках плагина попробовать указать "ok".
    Мои игры

    Мои плагины

    Мой Telegram-канал

    Мой Boosty



    Спойлер In my humble opinion :

    Все мои сообщения отражают лишь моё скромное мнение. Я ни в коем случае не пытаюсь кого-либо обидеть, ни на кого/что не наезжаю и ничего не навязываю. Благодарю за понимание и адекватность.

  6. #6
    Бывалый Аватар для Phileas
    Информация о пользователе
    Регистрация
    05.02.2016
    Адрес
    HD 128620, HR 5459, CP−60°5483, GCTP 3309.00A, LHS 50
    Сообщений
    635
    Записей в дневнике
    26
    Репутация: 23 Добавить или отнять репутацию

    По умолчанию

    Обновил до версии 1.2.0

    Добавил поддержку клавиш мыши. Теперь, если установить в клавишу пропуска значение "ok" или "escape", сообщения будут проматываться при зажатии ЛКМ или ПКМ.


    Хотя я не рекомендую так делать. По моему игровому опыту, так неудобно. Считаю control идеальной клавишей пропуска: на неё не назначены никакие стандартные функции мейкера и она удобно расположена.
    Последний раз редактировалось Phileas; 05.02.2024 в 23:21.
    Мои игры

    Мои плагины

    Мой Telegram-канал

    Мой Boosty



    Спойлер In my humble opinion :

    Все мои сообщения отражают лишь моё скромное мнение. Я ни в коем случае не пытаюсь кого-либо обидеть, ни на кого/что не наезжаю и ничего не навязываю. Благодарю за понимание и адекватность.

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

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

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

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

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

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

Ваши права

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