DoubleX RMVXA Targeting Hotkeys
Version: v1.00a
IntroductionVersion: v1.00a
Lets you set some hotkeys to speed up skill/item target selections
Prerequisites
* Little RGSS3 scripting proficiency to fully utilize this script
Script
"script"
Code:
#==============================================================================|
# ** Script Info |
#------------------------------------------------------------------------------|
# * Script Name |
# DoubleX RMVXA Targeting Hotkeys |
#------------------------------------------------------------------------------|
# * Functions |
# Lets you set some hotkeys to speed up skill/item target selections |
#------------------------------------------------------------------------------|
# * Terms Of Use |
# You shall keep this script's Script Info part's contents intact |
# You shalln't claim that this script is written by anyone other than |
# DoubleX or his aliases |
# None of the above applies to DoubleX or his aliases |
#------------------------------------------------------------------------------|
# * Prerequisites |
# Abilities: |
# 1. Little scripting proficiency to fully utilize this script |
#------------------------------------------------------------------------------|
# * Instructions |
# 1. Open the script editor and put this script into an open slot between |
# Materials and Main, save to take effect. |
#------------------------------------------------------------------------------|
# * Links |
# Script Usage 101: |
# 1. forums.rpgmakerweb.com/index.php?/topic/32752-rmvxa-script-usage-101/ |
# 2. rpgmakervxace.net/topic/27475-rmvxa-script-usage-101/ |
# This script: |
# 1. http://pastebin.com/UuMjaC7k |
# Mentioned Patreon Supporters: |
# https://www.patreon.com/posts/71738797 |
#------------------------------------------------------------------------------|
# * Authors |
# DoubleX |
#------------------------------------------------------------------------------|
# * Changelog |
# v1.00a(GMT 0200 23-5-2015): |
# 1. 1st version of this script finished |
#==============================================================================|
($doublex_rmvxa ||= {})[:Targeting_Hotkeys] = "v1.00a"
#==============================================================================|
# ** Script Configurations |
# You only need to edit this part as it's about what this script does |
#------------------------------------------------------------------------------|
module DoubleX_RMVXA
module Targeting_Hotkeys
# Sets the hotkeys selecting a target that can be targeted in the target
# window
# The ith hotkey calls the ith target in the target window
# Nothing will happen if the ith hotkey's pressed and the ith target in
# the target window can't be targeted
# A custom keymap binding script may help setting the hotkeys
# Example: To disable this feature, set this as []
HOTKEYS = [
:KEY_1,
:KEY_2,
:KEY_3,
:KEY_4,
:KEY_5,
:KEY_6,
:KEY_7,
:KEY_8
]
#==============================================================================|
# ** Script Implementations |
# You need not edit this part as it's about how this script works |
#------------------------------------------------------------------------------|
# * Script Support Info: |
# 1. Prerequisites |
# - Decent RGSS3 scripting proficiency to fully comprehend this script |
# 2. Method documentation |
# - The 1st part informs whether the method's rewritten, aliased or new |
# - The 2nd part describes what the method does for new methods only |
# - The 3rd part describes what the arguments of the method are |
# - The 4th part describes how this method works for new methods only, |
# and describes the parts added or rewritten for rewritten or aliased |
# methods only |
# Example: |
# #----------------------------------------------------------------------------|
# # Rewrite/Alias/New method: def_name |
# # - What this method does |
# #----------------------------------------------------------------------------|
# # *args: What these arguments are |
# def def_name(*args) |
# # How this method works |
# def_name_code |
# # |
# end # def_name |
#------------------------------------------------------------------------------|
PROCESS_HANDLING = %Q(
alias initialize_target_hotkeys initialize
def initialize(info_viewport)
initialize_target_hotkeys(info_viewport)
init_targeting_hotkey_block
end
alias process_handling_targeting_hotkeys process_handling
def process_handling
if open? && active
DoubleX_RMVXA::Targeting_Hotkeys::HOTKEYS.each(&@targeting_hotkey_block)
end
process_handling_targeting_hotkeys
end # process_handling
def init_targeting_hotkey_block
@targeting_hotkey_block = -> hotkey {
return call_handler(hotkey) if Input.trigger?(hotkey)
}
end
)
end # Targeting_Hotkeys
end # DoubleX_RMVXA
#------------------------------------------------------------------------------|
# * Edit class: Window_BattleActor |
#------------------------------------------------------------------------------|
class Window_BattleActor < Window_BattleStatus
#----------------------------------------------------------------------------|
# Alias/New methods |
#----------------------------------------------------------------------------|
module_eval(DoubleX_RMVXA::Targeting_Hotkeys::PROCESS_HANDLING)
end # Window_BattleActor
#------------------------------------------------------------------------------|
# * Edit class: Window_BattleEnemy |
#------------------------------------------------------------------------------|
class Window_BattleEnemy < Window_Selectable
#----------------------------------------------------------------------------|
# Alias/New methods |
#----------------------------------------------------------------------------|
module_eval(DoubleX_RMVXA::Targeting_Hotkeys::PROCESS_HANDLING)
end # Window_BattleEnemy
#------------------------------------------------------------------------------|
# * Edit class: Scene_Battle |
#------------------------------------------------------------------------------|
class Scene_Battle < Scene_Base
#----------------------------------------------------------------------------|
# Alias method: create_all_windows |
#----------------------------------------------------------------------------|
alias create_all_windows_targeting_hotkeys create_all_windows
def create_all_windows
create_all_windows_targeting_hotkeys
# Added to set the target selection hotkeys in the target windows
set_targeting_hotkeys
#
end # create_all_windows
#----------------------------------------------------------------------------|
# New method: set_targeting_hotkeys |
# - Sets the target selection hotkeys in the target windows |
#----------------------------------------------------------------------------|
def set_targeting_hotkeys
# Creates and sets each hotkey handler for both the actor and enemy windows
hotkeys = DoubleX_RMVXA::Targeting_Hotkeys::HOTKEYS
create_targeting_hotkey_defs(hotkeys)
hotkeys.each_with_index { |hotkey, index|
@actor_window.set_handler(hotkey, method(
"targeting_hotkey_#{index.to_s}".to_sym))
@enemy_window.set_handler(hotkey, method(
"targeting_hotkey_#{index.to_s}".to_sym))
}
#
end # set_targeting_hotkeys
#----------------------------------------------------------------------------|
# New method: create_targeting_hotkey_defs |
# - Creates methods used by the target selection hotkey handlers |
#----------------------------------------------------------------------------|
def create_targeting_hotkey_defs(hotkeys)
# Points the actor's skill/item's target index to the target window index
hotkeys.each_index { |index|
eval(%Q(
def targeting_hotkey_#{index.to_s}
return unless BattleManager.actor.input.item.for_one?
BattleManager.actor.input.target_index = #{index}
@actor_window.hide if @actor_window.active
@enemy_window.hide if @enemy_window.active
@skill_window.hide
@item_window.hide
next_command
end
))
}
#
end # create_targeting_hotkey_defs
end # Scene_Battle
#------------------------------------------------------------------------------|
#==============================================================================|
Instructions
Open the script editor and put this script into an open slot between Materials and Main. Save to take effect.
FAQ
Q1. Why the default hotkeys won't work for me?
A1. It's because it uses Cidiomar's Input as the custom keymap binding script, which can be found in Himeworks
Credits and Thanks
None
Author's Notes
None so far
Terms and Conditions
You shall keep this script's Script Info part's contents intact
You shalln't claim that this script is written by anyone other than DoubleX or his aliases
None of the above applies to DoubleX or his aliases
Changelog
v1.00a(GMT 0200 23-5-2015):
1. 1st version of this script finished