i need a realy simple script which declares a hotkey for a certain script (for now... just a hot key for a class scene script)
for) instance:
i got a script which that action will be demonstrated on the screen
or maybe a hot key which calls a scene_class (example: makin an hotkey for this script $scene = Scene_Item.new)
you might think i know stuff, cuz i already had an experience within scripting...
well yeah... bout a week ago XD, and i have no idea how you guys do those wicked hotkey script to call an event,script etc
quick respond will be trully appriciated.
thanks
You can have a paralell process common event that all the time checks if a specific keys are pressed, and then do what you want after that.
Something like
@>Conditional Branch: The X button is being pressed
@>Comment: Do what you want if the one button is pressed here
: Branch End
@>Conditional Branch: The Y button is being pressed
@>Comment: Do what you want if the another button is pressed here
: Branch End
thank you but this isnt exactly what i needed...
the button conditional choices are limited...
so then im not able to pick freely which key i desire to use...
You need a custom controls script to define more buttons.
Tons of Add-ons has the best one available in it. I believe it is the first script in the second part. All the instructions are there. You will need to use a script call as the condition, since the custom buttons won't be listed in the event command. Here's an example:
Say you define a button in the Custom Controls script that you have named TEST
You would make a conditional branch, with a scripted condition like this:
Input.trigger?(Input::TEST)
i made a research ,moment ago... they say, to defin more buttons.. ill need to put the keyboard module script...
i found one... and i think its workin...
the problem is...
where should i put these?
# If I button was pressed
if Input.trigger?(Input::I)
# Calls Scene Script for Inventory
$scene = Scene_Item.new
return
end
thanks
It would depend on what you want to do, but I imagine you want it to be able to be called from the map?
Place this anywhere somewhere after the default scripts:
class Scene_Map
alias added_input_upd update
def update
added_input_upd
# If I button was pressed
if Input.trigger?(Input::I)
# Calls Scene Script for Inventory
$scene = Scene_Item.new(true)
return
end
end
end
class Scene_Item
def initialize(map_flag = false)
@map_flag = map_flag
end
alias back_to_map_main main
def main
back_to_map_main
if @map_flag
$scene = Scene_Map.new
end
end
end
You need to also keep in mind that Scene_Item returns to Scene_Menu on exit, not the game map. So you may press "I" from the map to go to your item screen, but when you exit it, it will take you to your normal menu. Hold on a sec, I'll make you a fix real quick...
EDIT: Okay, the scriptlet in the box should do everything you need, so long as you set up the Input module correctly.
I Finally Figure it out!!
(the last keyboard module i was using was a shitty full of craps... so i looked for another one.. and that my friend solved my problem XD)
of anyone who has the same request for hotkey script.... heres the steps...
first copy the keyboard module (that works) here:
#======================================
# ■ Keyboard Script
#---------------------------------------------------------------------------
# By: Cybersam
# Date: 25/05/05
# Version 4
#======================================
module Kboard
#--------------------------------------------------------------------------
$RMouse_BUTTON_L = 0x01 # left mouse button
$RMouse_BUTTON_R = 0x02 # right mouse button
$RMouse_BUTTON_M = 0x04 # middle mouse button
$RMouse_BUTTON_4 = 0x05 # 4th mouse button
$RMouse_BUTTON_5 = 0x06 # 5th mouse button
#--------------------------------------------------------------------------
$R_Key_BACK = 0x08 # BACKSPACE key
$R_Key_TAB = 0x09 # TAB key
$R_Key_RETURN = 0x0D # ENTER key
$R_Key_SHIFT = 0x10 # SHIFT key
$R_Key_CTLR = 0x11 # CTLR key
$R_Key_ALT = 0x12 # ALT key
$R_Key_PAUSE = 0x13 # PAUSE key
$R_Key_CAPITAL = 0x14 # CAPS LOCK key
$R_Key_ESCAPE = 0x1B # ESC key
$R_Key_SPACE = 0x20 # SPACEBAR
$R_Key_PRIOR = 0x21 # PAGE UP key
$R_Key_NEXT = 0x22 # PAGE DOWN key
$R_Key_END = 0x23 # END key
$R_Key_HOME = 0x24 # HOME key
$R_Key_LEFT = 0x25 # LEFT ARROW key
$R_Key_UP = 0x26 # UP ARROW key
$R_Key_RIGHT = 0x27 # RIGHT ARROW key
$R_Key_DOWN = 0x28 # DOWN ARROW key
$R_Key_SELECT = 0x29 # SELECT key
$R_Key_PRINT = 0x2A # PRINT key
$R_Key_SNAPSHOT = 0x2C # PRINT SCREEN key
$R_Key_INSERT = 0x2D # INS key
$R_Key_DELETE = 0x2E # DEL key
#--------------------------------------------------------------------------
$R_Key_0 = 0x30 # 0 key
$R_Key_1 = 0x31 # 1 key
$R_Key_2 = 0x32 # 2 key
$R_Key_3 = 0x33 # 3 key
$R_Key_4 = 0x34 # 4 key
$R_Key_5 = 0x35 # 5 key
$R_Key_6 = 0x36 # 6 key
$R_Key_7 = 0x37 # 7 key
$R_Key_8 = 0x38 # 8 key
$R_Key_9 = 0x39 # 9 key
#--------------------------------------------------------------------------
$R_Key_A = 0x41 # A key
$R_Key_B = 0x42 # B key
$R_Key_C = 0x43 # C key
$R_Key_D = 0x44 # D key
$R_Key_E = 0x45 # E key
$R_Key_F = 0x46 # F key
$R_Key_G = 0x47 # G key
$R_Key_H = 0x48 # H key
$R_Key_I = 0x49 # I key
$R_Key_J = 0x4A # J key
$R_Key_K = 0x4B # K key
$R_Key_L = 0x4C # L key
$R_Key_M = 0x4D # M key
$R_Key_N = 0x4E # N key
$R_Key_O = 0x4F # O key
$R_Key_P = 0x50 # P key
$R_Key_Q = 0x51 # Q key
$R_Key_R = 0x52 # R key
$R_Key_S = 0x53 # S key
$R_Key_T = 0x54 # T key
$R_Key_U = 0x55 # U key
$R_Key_V = 0x56 # V key
$R_Key_W = 0x57 # W key
$R_Key_X = 0x58 # X key
$R_Key_Y = 0x59 # Y key
$R_Key_Z = 0x5A # Z key
#--------------------------------------------------------------------------
$R_Key_LWIN = 0x5B # Left Windows key (Microsoft Natural keyboard)
$R_Key_RWIN = 0x5C # Right Windows key (Natural keyboard)
$R_Key_APPS = 0x5D # Applications key (Natural keyboard)
#--------------------------------------------------------------------------
$R_Key_NUMPAD0 = 0x60 # Numeric keypad 0 key
$R_Key_NUMPAD1 = 0x61 # Numeric keypad 1 key
$R_Key_NUMPAD2 = 0x62 # Numeric keypad 2 key
$R_Key_NUMPAD3 = 0x63 # Numeric keypad 3 key
$R_Key_NUMPAD4 = 0x64 # Numeric keypad 4 key
$R_Key_NUMPAD5 = 0x65 # Numeric keypad 5 key
$R_Key_NUMPAD6 = 0x66 # Numeric keypad 6 key
$R_Key_NUMPAD7 = 0x67 # Numeric keypad 7 key
$R_Key_NUMPAD8 = 0x68 # Numeric keypad 8 key
$R_Key_NUMPAD9 = 0x69 # Numeric keypad 9 key
$R_Key_MULTIPLY = 0x6A # Multiply key (*)
$R_Key_ADD = 0x6B # Add key (+)
$R_Key_SEPARATOR = 0x6C # Separator key
$R_Key_SUBTRACT = 0x6D # Subtract key (-)
$R_Key_DECIMAL = 0x6E # Decimal key
$R_Key_DIVIDE = 0x6F # Divide key (/)
#--------------------------------------------------------------------------
$R_Key_F1 = 0x70 # F1 key
$R_Key_F2 = 0x71 # F2 key
$R_Key_F3 = 0x72 # F3 key
$R_Key_F4 = 0x73 # F4 key
$R_Key_F5 = 0x74 # F5 key
$R_Key_F6 = 0x75 # F6 key
$R_Key_F7 = 0x76 # F7 key
$R_Key_F8 = 0x77 # F8 key
$R_Key_F9 = 0x78 # F9 key
$R_Key_F10 = 0x79 # F10 key
$R_Key_F11 = 0x7A # F11 key
$R_Key_F12 = 0x7B # F12 key
#--------------------------------------------------------------------------
$R_Key_NUMLOCK = 0x90 # NUM LOCK key
$R_Key_SCROLL = 0x91 # SCROLL LOCK key
#--------------------------------------------------------------------------
$R_Key_LSHIFT = 0xA0 # Left SHIFT key
$R_Key_RSHIFT = 0xA1 # Right SHIFT key
$R_Key_LCONTROL = 0xA2 # Left CONTROL key
$R_Key_RCONTROL = 0xA3 # Right CONTROL key
$R_Key_L_ALT = 0xA4 # Left ALT key
$R_Key_R_ALT = 0xA5 # Right ALT key
#--------------------------------------------------------------------------
$R_Key_SEP = 0xBC # , key
$R_Key_DASH = 0xBD # - key
$R_Key_DOTT = 0xBE # . key
#--------------------------------------------------------------------------
GetKeyState = Win32API.new("user32","GetAsyncKeyState",['i'],'i')
GetKeyboardState = Win32API.new("user32","GetKeyState",['i'],'i')
GetSetKeyState = Win32API.new("user32","SetKeyboardState",['i'],'i')
#--------------------------------------------------------------------------
module_function
#--------------------------------------------------------------------------
def keyb(rkey)
if GetKeyState.call(rkey) != 0
return 1
end
return 0
end
#--------------------------------------------------------------------------
def keyboard(rkey)
GetKeyState.call(rkey) & 0x01 == 1 #
end
#--------------------------------------------------------------------------
def key(rkey, key = 0)
GetKeyboardState.call(rkey) & 0x01 == key #
end
end
then put this below the keyboard module and befor the main
class Scene_Map
alias someshityalias update
def update
someshityalias
# If "BUTTON NAME" button was pressed
if Kboard.keyb($R_Key_BUTTON) == 1 #Change the $R_Key_BUTTON to the values shown in the Keyboard module script.
# Calls Scene Script for Inventory
$scene = Scene_Item.new #just an example, put any script call or statements you liked here
return
end
end
end
anyways.. withouth your help foreverZer0, i would figure it out XD
(althou moment ago, i made an event which opens up inventory if action button was triggered... and can be exited directly to the map instead of main menu.. but after that... it changes back to the menu.. how weird)
That's pretty much exactly what I was saying to do, except I told you where to get a better script to do it with. :P
There is no shortage of custom control scripts out there, but some are better than others. That one works in a more "Ruby" kind of way, where others extend the Input module of RGSS to kind of cover-up all the Win32 hooks and dealing directly with the API, which makes it easier to script with, as well as just being a little better looking.
Someone following your code is going find it much easier to understand:
if Input.trigger?(Input::ITEMS)
than...
if Kboard.keyb($R_Key_BUTTON) == 1
Just a tip, take it as you may.
Tons of Add-ons', Blizz-ABS's and RMX-OS's Custom Controls are a lot more convenient and stable. This script can give 2 different results within the same frame without calling Input.update between.
Quote from: Blizzard on April 21, 2011, 02:23:58 am
Tons of Add-ons', Blizz-ABS's and RMX-OS's Custom Controls are a lot more convenient and stable. This script can give 2 different results within the same frame without calling Input.update between.
2 reasons why i cant use that...
first, im using blizz abs, then i wont able to use the custom control config(i may able to disable it but the second reason explains all why cant use it)
second, the script is too advance for me... i dunno where or what to put a script for me able to use my own key for diferent purpose (not just a,b,x,z,y,up,down,left,right, but anything i desired and what does it do)
but if you teach me how... itll be awesome.. :D :naughty:
thanks
You can't use the Custom Controls from Tons with Blizz-Abs because the same thing is already in Blizz-ABS.
Creating keys is simple, and explained in the instructions. You will also see the currently defined keys in the script which give you all the example you need to follow.