DoubleX RMMV Skill Hotkeys

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,469
Reaction score
545
First Language
Chinese
Primarily Uses
N/A
Note
This plugin's available for commercial use

Purpose
Lets you bind hotkeys to skills for actors outside battles, and use them to select usable skills for actors inside battles

Introduction
Code:
 *    1. When the party's out of battles, an actor can bind hotkeys to his/her
 *       currently usable/unusable skills in the skill menu, unless the result
 *       of the relevant notetags indicates otherwise                 
 *       All these bindings will be saved                             
 *    2. When the party's inside battles, an actor having nonempty hotkey slot
 *       can use hotkeys to use their corresponding usable skills directly,
 *       unless the result of the relevant notetags indicates otherwise

Compatibility Fix

DoubleX RMMV Skill Hotkeys Compatibility

Videos


Games using this plugin

None so far

Parameters
Code:
 * @param isEnabled
 * @desc Sets whether this plugin will be enabled
 * It'll be the contents of a function returning a Boolean
 * @default return true;
 *
 * @param bindNotePriority
 * @desc Sets the data type priority of <bind skill hotkey: BSHX>
 * It'll be the contents of a function returning an Array of Strings
 * @default return ["states", "armors", "weapons", "classes", "actors"];
 *
 * @param useNotePriority
 * @desc Sets the data type priority of <use skill hotkey: USHX>
 * It'll be the contents of a function returning an Array of Strings
 * @default return ["states", "armors", "weapons", "classes", "actors"];
 *
 * @param bindNoteChainingRule
 * @desc Sets how to use multiple <bind skill hotkey: BSHX> notetags
 * It'll be the contents of a function returning a String
 * @default return "first";
 *
 * @param useNoteChainingRule
 * @desc Sets how to use multiple <use skill hotkey: USHX> notetags
 * It'll be the contents of a function returning a String
 * @default return "first";
 *
 * @param bindHotkeyText
 * @desc Sets the bind hotkey text for skills without hotkeys
 * It'll be the contents of a function returning a String
 * @default return "Bind Hotkey";
 *
 * @param useSkillText
 * @desc Sets the use skill text when showing the bind hotkey texts
 * It'll be the contents of a function returning a String
 * @default return "Use";
 *
 * @param unusableSkillCoverIconPath
 * @desc Sets the path of the icon masking that of unusable skills
 * It'll be the contents of a function returning a String
 * @default return "img/pictures/";
 *
 * @param unusableSkillCoverIconName
 * @desc Sets the name of the icon masking that of unusable skills
 * It'll be the contents of a function returning a String
 * @default return "UnusableSkill";
 *
 * @param unusableSkillCoverIconHue
 * @desc Sets the hue of the icon masking that of unusable skills
 * It'll be the contents of a function returning a Number
 * @default return 0;
 *
 * @param unusableSkillCoverIconSmooth
 * @desc Sets the smooth of the icon masking that of unusable skills
 * It'll be the contents of a function returning a Boolean
 * @default return true;
 *
 * @param hotkeyCmdWindowW
 * @desc Sets the width of the window for binding hotkeys to skills
 * It'll be the contents of a function returning a Number
 * @default return Window_SkillHotkeyBase.prototype.windowWidth.call(this);
 *
 * @param hotkeyCmdWindowH
 * @desc Sets the height of the window for binding hotkeys to skills
 * It'll be the contents of a function returning a Number
 * @default return Window_SkillHotkeyBase.prototype.windowHeight.call(this);
 *
 * @param hotkeyCmdWindowX
 * @desc Sets the x position of the window for binding hotkeys
 * It'll be the contents of a function returning a Number
 * @default return 0;
 *
 * @param hotkeyCmdWindowY
 * @desc Sets the y position of the window for binding hotkeys
 * It'll be the contents of a function returning a Number
 * @default return 0;
 *
 * @param hotkeyCmdLineH
 * @desc Sets the line height of the window for binding hotkeys
 * It'll be the contents of a function returning a Number
 * @default return 36;
 *
 * @param hotkeyCmdFontSize
 * @desc Sets the font size of the window for binding hotkeys
 * It'll be the contents of a function returning a Number
 * @default return 28;
 *
 * @param hotkeyCmdPadding
 * @desc Sets the standard padding of the window for binding hotkeys
 * It'll be the contents of a function returning a Number
 * @default return 18;
 *
 * @param hotkeyCmdTextPadding
 * @desc Sets the text padding of the window for binding hotkeys
 * It'll be the contents of a function returning a Number
 * @default return 6;
 *
 * @param hotkeyCmdBackOpacity
 * @desc Sets the back opacity of the window for binding hotkeys
 * It'll be the contents of a function returning a Number
 * @default return 192;
 *
 * @param hotkeyCmdTranslucentOpacity
 * @desc Sets the translucent opacity of the hotkey binding window
 * It'll be the contents of a function returning a Number
 * @default return 160;
 *
 * @param hotkeyCmdSpacing
 * @desc Sets the spacing of the window for binding hotkeys
 * It'll be the contents of a function returning a Number
 * @default return 12;
 *
 * @param hotkeyListWindowW
 * @desc Sets the width of the window listing the actor hotkey slots
 * It'll be the contents of a function returning a Number
 * @default return Graphics.boxWidth;
 *
 * @param hotkeyListWindowH
 * @desc Sets the height of the window listing the actor hotkey slots
 * It'll be the contents of a function returning a Number
 * @default return this.fittingHeight(2);
 *
 * @param hotkeyListWindowX
 * @desc Sets the x position of the window listing actor hotkey slots
 * It'll be the contents of a function returning a Number
 * @default return 0;
 *
 * @param hotkeyListWindowY
 * @desc Sets the y position of the window listing actor hotkey slots
 * It'll be the contents of a function returning a Number
 * @default return 0;
 *
 * @param hotkeyListLineH
 * @desc Sets the line height of the window listing actor hotkeys
 * It'll be the contents of a function returning a Number
 * @default return 36;
 *
 * @param hotkeyListFontSize
 * @desc Sets the font size of the window listing actor hotkey slots
 * It'll be the contents of a function returning a Number
 * @default return 28;
 *
 * @param hotkeyListPadding
 * @desc Sets the padding of the window listing actor hotkeys
 * It'll be the contents of a function returning a Number
 * @default return 18;
 *
 * @param hotkeyListTextPadding
 * @desc Sets the text padding of the window listing actor hotkeys
 * It'll be the contents of a function returning a Number
 * @default return 6;
 *
 * @param hotkeyListBackOpacity
 * @desc Sets the back opacity of the window listing actor hotkeys
 * It'll be the contents of a function returning a Number
 * @default return 192;
 *
 * @param hotkeyListTranslucentOpacity
 * @desc Sets the translucent opacity of the actor hotkey list window
 * It'll be the contents of a function returning a Number
 * @default return 160;
 *
 * @param hotkeyListSpacing
 * @desc Sets the spacing of the window listing actor hotkey slots
 * It'll be the contents of a function returning a Number
 * @default return 12;
 *
 * @param hotkeyCmdListWindowW
 * @desc Sets the width of the window listing the hotkeys in battle
 * It'll be the contents of a function returning a Number
 * @default return Graphics.boxWidth;
 *
 * @param hotkeyCmdListWindowH
 * @desc Sets the height of the window listing the hotkeys in battle
 * It'll be the contents of a function returning a Number
 * @default return this.fittingHeight(2);
 *
 * @param hotkeyCmdListWindowX
 * @desc Sets the x position of the window listing hotkeys in battle
 * It'll be the contents of a function returning a Number
 * @default return 0;
 *
 * @param hotkeyCmdListWindowY
 * @desc Sets the y position of the window listing hotkeys in battle
 * It'll be the contents of a function returning a Number
 * @default return Graphics.boxHeight - this.fittingHeight(4) - this.windowHeight();
 *
 * @param hotkeyCmdListLineH
 * @desc Sets the line height of the window listing hotkeys in battle
 * It'll be the contents of a function returning a Number
 * @default return 36;
 *
 * @param hotkeyCmdListFontSize
 * @desc Sets the font size of the window listing hotkeys in battle
 * It'll be the contents of a function returning a Number
 * @default return 28;
 *
 * @param hotkeyCmdListPadding
 * @desc Sets the padding of the window listing hotkeys in battle
 * It'll be the contents of a function returning a Number
 * @default return 18;
 *
 * @param hotkeyCmdListTextPadding
 * @desc Sets the text padding of the hotkey window in battle
 * It'll be the contents of a function returning a Number
 * @default return 6;
 *
 * @param hotkeyCmdListBackOpacity
 * @desc Sets the back opacity of the hotkey window in battle
 * It'll be the contents of a function returning a Number
 * @default return 192;
 *
 * @param hotkeyCmdListTranslucentOpacity
 * @desc Sets the translucent opacity of the hotkey window in battle
 * It'll be the contents of a function returning a Number
 * @default return 160;
 *
 * @param hotkeyCmdListSpacing
 * @desc Sets the spacing of the window listing hotkeys in battle
 * It'll be the contents of a function returning a Number
 * @default return 12;

Notetags
Code:
 *       Among all the same notetag types in the same data, only the 1st one
 *       can be effective(Reference tag: NOTETAG_MONO)               
 *       Each line can only have at most 1 notetag(Reference tag: LINE_MONO)
 *----------------------------------------------------------------------------
 *    # Actor/Class/Weapon/Armor/State/Skill Notetags:               
 *      Having no effective notetag means the actors can bind hotkeys 
 *      to the skills(Reference tag: DEFAULT_TRUE)                   
 *      1. <bind skill hotkey: BSHX>                                 
 *         - Sets whether the actor can bind hotkeys for the skill as the
 *           value returned by function with name BSHX, which can only be
 *           edited in the configuration region, which is inside this plugin
 *           js file contents, directly                               
 *         - E.g.:                                                   
 *           <bind skill hotkey: BSH1> will set the actor to always be able to
 *           bind the skill due to BSH1, which is the name of a function in
 *           the configuration region, always returning true         
 *    # Actor/Class/Weapon/Armor/State Notetags:                     
 *      Having no effective notetag means the actors can use hotkeys 
 *      1. <use skill hotkey: USHX>                                   
 *         - Sets whether the actor can use hotkeys as the value returned by
 *           function with name USHX, which can only be edited in the 
 *           configuration region, which is inside this plugin js file
 *           contents, directly                                       
 *         - E.g.:                                                   
 *           <use skill hotkey: USH1> will set the actor to always be able to
 *           use the skill due to USH1, which is the name of a function in the
 *           configuration region, always returning true

Plugin Calls

Code:
 *    # Configuration manipulations                                   
 *      1. $gameSystem.skillHotkeys.params.param                     
 *         - Returns the stored value of param listed in the plugin manager or
 *           their configuration counterpart                         
 *         - E.g.:                                                   
 *           $gameSystem.skillHotkeys.params.isEnabled will return the
 *           contents of a function returning a Boolean indicating whether
 *           this plugin's enabled                                   
 *      2. $gameSystem.skillHotkeys.params.param = funcContents       
 *         - Sets the stored value of param listed in the plugin manager or
 *           their configuration counterpart as funcContents, which is the
 *           contents of a function                                   
 *         - E.g.:                                                   
 *           $gameSystem.skillHotkeys.params.isEnabled = return false; will
 *           set the stored value of parameter isEnabled shown on the plugin
 *           manager or its configuration counterpart as return false;,
 *           causing the corresponding function to always return false, thus
 *           always disabling this plugin                             
 *         - $gameSystem.skillHotkeys.params.param changes will be saved
 *         - DoubleX_RMMV.Skill_Hotkeys.params.param = func, where func is the
 *           corresponding function having funcContents as its contents,
 *           should be explicitly called immediately afterwards       
 *      3. $gameSystem.skillHotkeys.cfgs.cfg                         
 *         - Basically the same as $gameSystem.skillHotkeys.params.param,
 *           except that this plugin call applies to configurations found in
 *           the configuration region only                           
 *      4. $gameSystem.skillHotkeys.cfgs.cfg = funcContents           
 *         - Basically the same as                                   
 *           $gameSystem.skillHotkeys.params.param = funcContents, except that
 *           this plugin call applies to configurations found in the 
 *           configuration region only                               
 *         - DoubleX_RMMV.Skill_Hotkeys.cfgs.cfg = func, where func is the
 *           corresponding function having funcContents as its contents,
 *           should be explicitly called immediately afterwards       
 *      5. $gameSystem.skillHotkeys.notes.note                       
 *         - Basically the same as $gameSystem.skillHotkeys.params.param,
 *           except that this plugin call applies to notetag values found in
 *           the configuration region                                 
 *      6. $gameSystem.skillHotkeys.notes.note = funcContents         
 *         - Basically the same as                                   
 *           $gameSystem.skillHotkeys.params.param = funcContents, except that
 *           this plugin call applies to notetag values found in the 
 *           configuration region                                     
 *         - DoubleX_RMMV.Skill_Hotkeys.notes.note = func, where func is the
 *           corresponding function having funcContents as its contents,
 *           should be explicitly called immediately afterwards       
 *    # Actor/Class/Weapon/Armor/State/Skill notetag manipulations   
 *      1. meta.skillHotkeys.canBind                                 
 *         - Returns the function name BSHX, which is a String, in   
 *           <bind skill hotkey: BSHX>                               
 *         - E.g.:                                                   
 *           $dataStates[1].meta.skillHotkeys.canBind will return the function
 *           name BSH1, which is a String, in <bind skill hotkey: BSH1>
 *           notetag of state with id 1                               
 *      2. meta.skillHotkeys.canBind = BSHX                           
 *         - Sets the <bind skill hotkey: BSHX> notetag to use the function
 *           with name BSHX, which is a String                       
 *         - E.g.:                                                   
 *           $dataActors[2].meta.skillHotkeys.canBind = BSH1 will set the
 *           <bind skill hotkey: BSHX> notetag of actor with id 2 to use the
 *           function with name BSH1, with is a String               
 *         - The function name must be one of the notetag values in the
 *           configuration region                                     
 *         - All meta.statusBars changes can be saved if             
 *           DoubleX RMMV Dynamic Data is used                       
 *      3. meta.skillHotkeys.canUse                                   
 *         - Basically the same as meta.skillHotkeys.canBind, except that this
 *           plugin call works with <use skill hotkey: USHX>         
 *      4. meta.skillHotkeys.canUse = USHX                           
 *         - Basically the same as meta.skillHotkeys.canBind = BSHX, except
 *           that this plugin call works with <use skill hotkey: USHX>
 *    # Actor manipulations                                           
 *      1. bindSkillHotkey(skillId, hotkey)                           
 *         - Binds the hotkey with symbol hotkey to the skill with id skillId
 *           for the actor involved, bypassing all <bind skill hotkey: BSHX>
 *           notetags                                                 
 *         - E.g.:                                                   
 *           $gameParty.aliveMembers()[0].bindSkillHotkey(1, #1) will bind the
 *           hotkey with symbol #1 to the skill with id 1 for the 1st alive
 *           party member                                             
 *         - Don't use this plugin call when players are             
 *           binding/using hotkeys unless you really know what you're truly
 *           doing                                                   
 *      2. canBindSkillHotkey(skillId)                               
 *         - Returns whether the actor involved can bind hotkeys for the skill
 *           with id skillId                                         
 *         - E.g.:                                                   
 *           $gameParty.aliveMembers()[0].canBindSkillHotkey(1) will return
 *           whether the 1st alive party member can bind hotkeys for the skill
 *           with id 1                                               
 *      3. canUseSkillHotkey(skillId)                                 
 *         - Returns whether the actor involved can use the hotkey bound to
 *           the skill with id skillId                               
 *         - E.g.:                                                   
 *           $gameActors.actor(1).canUseSkillHotkey(1) will return whether the
 *           actor with id 1 can use the hotkey bound to the skill with id 1
 *      4. isSkillHotkeysBound(skillId)                               
 *         - Returns whether the actor has bound a hotkey for the skill with
 *           id skillId                                               
 *         - E.g.:                                                   
 *           $gameParty.aliveMembers()[$gameParty.aliveMembers().length - 1].
 *                   isSkillHotkeysBound(1) will return whether the last alive
 *           party member has bound a hotkey for the skill with id 1 
 *      5. boundSkillHotkeys(skillId)                                 
 *         - Returns the list of symbols of hotkeys bound to the skill with id
 *           skillId                                                 
 *         - E.g.:                                                   
 *           $gameParty.aliveMembers()[$gameParty.aliveMembers().length - 1].
 *                   boundSkillHotkeys(1) will return the list of symbols of
 *           hotkeys bound to the skill with id 1                     
 *      6. hotkeys()                                                 
 *         - Returns the list of symbols of hotkeys bound to skills   
 *         - E.g.:                                                   
 *           $gameParty.aliveMembers()[$gameParty.aliveMembers().length - 1].
 *                   hotkeys() will return the list of symbols of hotkeys
 *           bound to the skills                                     
 *      7. raiseSkillHotkeyNoteChangeFactors()                       
 *         - Notifys that all notetags might need to be reevaluated due to
 *           potential data source changes or changes in the actor involved
 *         - This plugin call should be called whenever there are potential
 *           changes in the bindNoteChainingRule/useNoteChainingRule 
 *           parameter/configuration                                 
 *         - E.g.:                                                   
 *           $gameActors.actor(1).raiseSkillHotkeyNoteChangeFactors() will
 *           notify the actor with id 1 that all notetags might need to be
 *           reevaluated due to potential data source changes or changes in
 *           the actor involved                                       
 *      8. skillHotkeys.hotkeyMapping                                 
 *         - Access the mapping from the hotkey symbols to the skill ids where
 *           the hotkey represented by the formers' bound to the skill
 *           referred by the latters                                 
 *         - E.g.:                                                   
 *           $gameActors.actor(1).skillHotkeys.hotkeyMapping will access the
 *           mapping from the hotkey symbols to the skill ids where the hotkey
 *           represented by the formers' bound to the skill referred by the
 *           latters for the actor with id 1                         
 *      9. skillHotkeys.noteChangeFactors[note][factor] = true       
 *         - Notifys that the notetag note might need to be reevaluated due to
 *           potential changes in factor factor                       
 *         - note is either "canBind", referring to the notetag       
 *           <bind skill hotkey: BSHX>, or 'canUse", referring to the notetag
 *           <use skill hotkey: USHX>                                 
 *         - factor is either "states", meaning the changes in state notetags,
 *           "armors", meaning the changes in armor notetags, "weapons",
 *           meaning the changes in weapon notetags, "classes", meaning the
 *           changes in classes notetags, "actors", meaning the changes in
 *           actors notetags, or "priority", meaning the changes in the
 *           bindNotePriority/useNotePriority parameter/configuration 
 *         - E.g.:                                                   
 *           $gameParty.aliveMembers()[$gameParty.aliveMembers().length - 1].
 *                   skillHotkeys. noteChangeFactors[canBind][priority] = true
 *           will notify the last alive party member that the         
 *           <bind skill hotkey: BSHX> notetag might need to be reevaluated
 *           due to potential changes in the bindNotePriority         
 *           parameter/configuration                                 
 *           (The counterpart for <use skill hotkey: USHX> is useNotePriority)

Plugin Commands

Code:
 *      1. bindSkillHotkey actorId skillId hotkey                     
 *         - The same as the plugin call bindSkillHotkey(skillId, hotkey) in
 *           Actor manipulations for the actor with id actorId       
 *         - Don't use this plugin command for actors that don't exist yet
 *           unless you really know what you're truly doing           
 *      2. canBindSkillHotkey actorId skillId                         
 *         - The same as the plugin call canBindSkillHotkey(skillId) in
 *           Actor manipulations for the actor with id actorId       
 *         - Don't use this plugin command for actors that don't exist yet
 *           unless you really know what you're truly doing           
 *      3. canUseSkillHotkey actorId skillId                         
 *         - The same as the plugin call canUseSkillHotkey(skillId) in
 *           Actor manipulations for the actor with id actorId       
 *         - Don't use this plugin command for actors that don't exist yet
 *           unless you really know what you're truly doing           
 *      4. isSkillHotkeysBound actorId skillId                       
 *         - The same as the plugin call isSkillHotkeysBound(skillId) in
 *           Actor manipulations for the actor with id actorId       
 *         - Don't use this plugin command for actors that don't exist yet
 *           unless you really know what you're truly doing           
 *      5. boundSkillHotkeys actorId skillId                         
 *         - The same as the plugin call boundSkillHotkeys(skillId) in
 *           Actor manipulations for the actor with id actorId       
 *         - Don't use this plugin command for actors that don't exist yet
 *           unless you really know what you're truly doing           
 *      6. hotkeys actorId                                           
 *         - The same as the plugin call hotkeys() in Actor manipulations for
 *           the actor with id actorId                               
 *         - Don't use this plugin command for actors that don't exist yet
 *           unless you really know what you're truly doing           
 *      7. raiseSkillHotkeyNoteChangeFactors actorId                 
 *         - The same as the plugin call raiseSkillHotkeyNoteChangeFactors()
 *           in Actor manipulations for the actor with id actorId     
 *         - Don't use this plugin command for actors that don't exist yet
 *           unless you really know what you're truly doing

Configurations

Code:
        /**
         * The this pointer refers to the actor involved
         * Sets the list of hotkeys mapped with their corresponding names
         * None of the hotkeys are supposed to be changed during the same battle
         * Using a keyboard mapping plugin, like Quasi Input, can be useful here
         * Ensure it won't return different values when binding/using hotkeys
         * unless you really know what you're truly doing
         * Potential Hotspot/Nullipotent
         * @returns {Object[String, String]} The requested hotkey-name mapping
         * @since v1.00a
         * @version v1.00a
         */
        hotkeyNames: function() {
            return {
                "#1" : "1", // Hotkey #1 with name 1
                "#2" : "2", // Hotkey #2 with name 2
                "#3" : "3", // Hotkey #3 with name 3
                "#4" : "4", // Hotkey #4 with name 4
                "#5" : "5", // Hotkey #5 with name 5
                "#6" : "6", // Hotkey #6 with name 6
                "#7" : "7", // Hotkey #7 with name 7
                "#8" : "8", // Hotkey #8 with name 8
                "#9" : "9", // Hotkey #9 with name 9
                "#0" : "0" // Hotkey #0 with name 0
            };
        } // hotkeyNames

Author Notes

Code:
 *      1. DoubleX RMMV Skill Hotkeys aims to give extreme control and freedom
 *         to users by making it as flexible as I can with as little damage to
 *         user-friendliness as I can

Instructions

Code:
 *      1. If you want to edit configurations instead of parameters, you must
 *         open this js file to access its configuration region       
 *         Some settings, like the hotkey mappings, are only available as
 *         configurations                                             
 *      2. The default plugin file name is DoubleX RMMV Skill Hotkeys v100a
 *         If you want to change that, you must edit the value of     
 *         DoubleX_RMMV.Skill_Hotkeys_File, which must be done via opening
 *         this plugin js file directly                               
 *      3. If you wish to use DoubleX RMMV Skill Hotkeys Unit Test, place it
 *         right below this plugin

Prerequisites

Code:
 *      Abilities:                                                   
 *      1. Nothing special for most ordinary cases                   
 *      2. Little RMMV plugin development proficiency for more advanced uses
 *      3. Some RMMV plugin development proficiency to fully utilize this

Terms Of Use

Code:
 *      1. Commercial use's always allowed and crediting me's always optional.
 *      2. You shall keep this plugin's Plugin Info part's contents intact.
 *      3. You shalln't claim that this plugin's written by anyone other than
 *         DoubleX or my aliases. I always reserve the right to deny you from
 *         using any of my plugins anymore if you've violated this.   
 *      4. CC BY 4.0, except those conflicting with any of the above, applies
 *         to this plugin, unless you've my permissions not needing follow so.
 *      5. I always reserve the right to deny you from using this plugin
 *         anymore if you've violated any of the above.

Authors

DoubleX

Changelog

Code:
 *      v1.01a(GMT 1400 17-7-2019):
 *      1. Lets you show skill names instead of icons in the hotkey list
 *      2. Lets you show hotkey icons instead of names in the hotkey list
 *      (v1.01a+ will be incompatible with v1.00a due to hotkeyNames changes)
*      v1.00a(GMT 0900 8-9-2017):                                   
 *      1. 1st version of this plugin finished

Download Links

DoubleX RMMV Skill Hotkeys
DoubleX RMMV Skill Hotkeys Unit Test
 

Attachments

Last edited:

EGStryker

Veteran
Veteran
Joined
Nov 11, 2015
Messages
39
Reaction score
21
First Language
English
Primarily Uses
Wow, this is another great plugin! Thank you for coming up with this. :D

If I may add a suggestion (I don't know if it's already possible), it would be a lot better if there is an option to adjust the minimum or maximum amount of hotkeys that can be used and not fixed to having 10 hotkeys.

Once again, great plugin! :D
 

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,469
Reaction score
545
First Language
Chinese
Primarily Uses
N/A
Wow, this is another great plugin! Thank you for coming up with this. :D

If I may add a suggestion (I don't know if it's already possible), it would be a lot better if there is an option to adjust the minimum or maximum amount of hotkeys that can be used and not fixed to having 10 hotkeys.

Once again, great plugin! :D
Code:
        /**
         * The this pointer refers to the actor involved
         * Sets the list of hotkeys mapped with their corresponding names
         * None of the hotkeys are supposed to be changed during the same battle
         * Using a keyboard mapping plugin, like Quasi Input, can be useful here
         * Ensure it won't return different values when binding/using hotkeys
         * unless you really know what you're truly doing
         * Potential Hotspot/Nullipotent
         * @returns {Object[String, String]} The requested hotkey-name mapping
         * @since v1.00a
         * @version v1.00a
         */
        hotkeyNames: function() {
            return {
                "#1" : "1", // Hotkey #1 with name 1
                "#2" : "2", // Hotkey #2 with name 2
                "#3" : "3", // Hotkey #3 with name 3
                "#4" : "4", // Hotkey #4 with name 4
                "#5" : "5", // Hotkey #5 with name 5
                "#6" : "6", // Hotkey #6 with name 6
                "#7" : "7", // Hotkey #7 with name 7
                "#8" : "8", // Hotkey #8 with name 8
                "#9" : "9", // Hotkey #9 with name 9
                "#0" : "0" // Hotkey #0 with name 0
            };
        } // hotkeyNames
The number of hotkeys are controlled by this configuration, so changing that number on the fly's done by changing this configuration on the fly using this plugin call:
Code:
 *      4. $gameSystem.skillHotkeys.cfgs.cfg = funcContents                
 *         - Basically the same as                                        
 *           $gameSystem.skillHotkeys.params.param = funcContents, except that
 *           this plugin call applies to configurations found in the      
 *           configuration region only                                    
 *         - DoubleX_RMMV.Skill_Hotkeys.cfgs.cfg = func, where func is the
 *           corresponding function having funcContents as its contents,  
 *           should be explicitly called immediately afterwards
If you don't have to change it on the fly, then just changing the aforementioned configuration's enough :)
 

bebenleneufe

Villager
Member
Joined
Oct 26, 2017
Messages
7
Reaction score
4
First Language
French
Primarily Uses
RMMV
Hi !

Just wanted to say thank you for this script it's going to help me so much ! :kaoluv:

I have a simple question though :
I wanted to only have 4 hotkeys, so I modified it like this which worked perfectly :

Code:
        hotkeyNames: function() {
            return {
                "#1" : "1", // Hotkey #1 with name 1
                "#2" : "2", // Hotkey #2 with name 2
                "#3" : "3", // Hotkey #3 with name 3
                "#4" : "4", // Hotkey #4 with name 4
            };
        } // hotkeyNames
Then I wanted to replace the numbers with icons of the button that was to be pressed on the joystick, so I tried :

Code:
        hotkeyNames: function() {
            return {
                "#1" : "\i[640]", // Hotkey #1 with name 1
                "#2" : "\i[641]", // Hotkey #2 with name 2
                "#3" : "\i[642]", // Hotkey #3 with name 3
                "#4" : "\i[643]", // Hotkey #4 with name 4
            };
        } // hotkeyNames
And :

Code:
        hotkeyNames: function() {
            return {
                "#1" : "\\i[640]", // Hotkey #1 with name 1
                "#2" : "\\i[641]", // Hotkey #2 with name 2
                "#3" : "\\i[642]", // Hotkey #3 with name 3
                "#4" : "\\i[643]", // Hotkey #4 with name 4
            };
        } // hotkeyNames
But both only appear as "i[640]" and "\i[640]" in-game ...
I'm a bit of a beginner but ... Am I missing something ? :kaocry:
 

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,469
Reaction score
545
First Language
Chinese
Primarily Uses
N/A
Unfortunately, this plugin doesn't have such functionality at all, as it's supposed to use a descriptive text to indicate which keys are to trigger which skills, which are identified by their own icons.
If I were to implement this functionality, it could end up showing either 1 icon and 1 descriptive text, or 2 icons(1 for skill and 1 for hotkey) per hotkey slot, meaning that I'd have to design the hotkey slot UI to handle both the new and old cases.
Currently, I've no plans for doing so, as I don't think that I can figure out any neat way to do so soon, and I'm currently busy on other stuffs :)
 

bebenleneufe

Villager
Member
Joined
Oct 26, 2017
Messages
7
Reaction score
4
First Language
French
Primarily Uses
RMMV
Oh I understand, no problem I'll try to face this differently !
Thank you for the time you took to answer :kaoluv:
 

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,469
Reaction score
545
First Language
Chinese
Primarily Uses
N/A
Updates
Code:
 *      v1.01a(GMT 1400 17-7-2019):
 *      1. Lets you show skill names instead of icons in the hotkey list
 *      2. Lets you show hotkey icons instead of names in the hotkey list
 *      (v1.01a+ will be incompatible with v1.00a due to hotkeyNames changes)
 

Oxem

Villager
Member
Joined
Sep 30, 2015
Messages
7
Reaction score
1
First Language
French
Primarily Uses
Hi there,

Im here to report a compatibility issue with Yanfly Learn Skill plugin, I can learn skill even if im out of Job Point,
It seems that there is a conflict due to the skills scene.

Have a nice day !
 

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,469
Reaction score
545
First Language
Chinese
Primarily Uses
N/A
Hi there,

Im here to report a compatibility issue with Yanfly Learn Skill plugin, I can learn skill even if im out of Job Point,
It seems that there is a conflict due to the skills scene.

Have a nice day !
You may want to try this:
DoubleX RMMV Skill Hotkeys Compatibility

Ideally, the compatibility should be solved on Yanfly's side by adding isCurrentItemEnabled in Window_SkillLearn, as any plugin editing isCurrentItemEnabled in Window_SkillList will break Yanfly Learn Skill plugin. But as I don't know how to contact him/her anymore, I've made the compatibility just for Yanfly Learn Skill and this plugin :)
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

40 card deck size, the plugin seems more sluggish.
Village theme I composed for a commission!
Stream will be live shortly with some Haunting Ground! Feel free to drop by!
welp, the stock market went down by 7% because of corona today. Time to buy stocks?

Forum statistics

Threads
94,563
Messages
921,921
Members
124,429
Latest member
sheepman
Top