赞 | 19 |
VIP | 100 |
好人卡 | 0 |
积分 | 19 |
经验 | 74719 |
最后登录 | 2022-3-29 |
在线时间 | 101 小时 |
Lv3.寻梦者
- 梦石
- 1
- 星屑
- 916
- 在线时间
- 101 小时
- 注册时间
- 2006-3-27
- 帖子
- 1081
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
最近看人讨论这个,就试了个
是模仿GTA做的,就是没有输入界面
任意时间都可以输入,任意一个字符都可以做为秘籍的开始- -{/fd}
感觉算法一般,有点冗余,不过至少效果实现了{/fd}
调用公共事件,就基本可以用键盘来实现事件页能做的所有事
使用方法
# 1.设置方法,所需要的秘籍,按照全键盘布局,输入193行处的$mj处,注意首单元为nil
# 默认设置了MONEY和ITEM两个秘籍,分别调用1号、2号公共事件
# 2.如果需要更多,就设置$mj[2]……
# 3.如果输对$mj[n]号秘籍,就会自动调用n+1号公共事件(谁要数组是从0开始- -|)
# 4.拓展:在下面标注了“成功处理”的地方修改就可以
# 如果不希望随时可用,写脚本再加一个开关控制一下就可以了。
- #==============================================================================
- # 本脚本来自www.66RPG.com,使用和转载请保留此信息
- #
- # 作者:幻の飞鱼
- # 按键秘籍v1.1
- # 配合了夏娜的全键盘使用
- # 1.1修复了1.0遇到首字母相同,有一个秘籍不能使用的BUG,但设置秘籍的地方必须保证
- # 首单元为nil
- #
- # 使用方法
- # 1.设置方法,所需要的秘籍,按照全键盘布局,输入193行处的$mj处,注意首单元为nil
- # 默认设置了MONEY和ITEM两个秘籍,分别调用1号、2号公共事件
- # 2.如果需要更多,就设置$mj[2]……
- # 3.如果输对$mj[n]号秘籍,就会自动调用n+1号公共事件(谁要数组是从0开始- -|)
- # 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
-
- @R_Key_Hash = {}
- @R_Key_Repeat = {}
-
- GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
- def press?(rkey)
- return GetKeyState.call(rkey) != 0
- end
-
- def repeat?(rkey)
- result = GetKeyState.call(rkey)
- if result != 0
- if @R_Key_Repeat[rkey].nil?
- @R_Key_Repeat[rkey] = 0
- return true
- end
- @R_Key_Repeat[rkey] += 1
- else
- @R_Key_Repeat[rkey] = nil
- @R_Key_Hash[rkey] = 0
- end
- if !@R_Key_Repeat[rkey].nil? and @R_Key_Repeat[rkey] > 4 # 4乃准确数字
- @R_Key_Repeat[rkey] = 0
- return true
- else
- return false
- end
- end
-
- def trigger?(rkey)
- result = GetKeyState.call(rkey)
- if @R_Key_Hash[rkey] == 1 and result != 0
- return false
- end
- if result != 0
- @R_Key_Hash[rkey] = 1
- return true
- else
- @R_Key_Hash[rkey] = 0
- return false
- end
- end
- end
- #==============================================================================
- #以下是按键秘籍
- #==============================================================================
- $mj=[] #在下面设置秘籍
- $mj[0] = [nil,$R_Key_M,$R_Key_O,$R_Key_N,$R_Key_E,$R_Key_Y]
- $mj[1] = [nil,$R_Key_I,$R_Key_T,$R_Key_E,$R_Key_M]
- class Scene_Map
- alias old update
- def update
- n = 0
- for i in 1..190
- if Kboard.trigger?(i)
- n = i
- end
- end
-
- if n > 0
- if $open
- $open = false
- for @k in @z
- $open = true if n == $mj[@k][@j[@k]]
- end
- for @k in @z
- if n == $mj[@k][@j[@k]]
- @j[@k]+=1
- if @j[@k]==$mj[@k].size
- #-----成功处理,@k为成功的秘籍编号--------
- $game_temp.common_event_id = @k+1 #按对后的功能
- #------------------------------------------
- @j[@k] = 0
- end
- else
- @j[@k] = 0
- end
- end
- end
- end
-
- if $open != true
- @z = []
- @j = []
- for i in 0..$mj.size-1
- if n == $mj[i][1]
- @z.push(i)
- @j[i] = 2
- $open = true
- end
- end
- end
- old
- end
- end
- #==============================================================================
- # 本脚本来自www.66RPG.com,使用和转载请保留此信息
- #==============================================================================
复制代码
附个范例:http://rpg.blue/upload_program/files/按键秘籍v1.1.rar
============华丽的分割==================
这个就是实例了~
最近在做进度缓慢的断指系列,因为这个脚本的出现
搞笑的出了一个“死亡打字员特别版”,就纯粹娱乐一下了- -||
http://rpg.blue/viewthread.php?tid=59293
[本贴由 叶舞枫 于 2007-7-5 10:43:01 进行了编辑] |
|