Project1

标题: 键盘输入数值 [打印本页]

作者: zhshh    时间: 2013-7-4 16:47
标题: 键盘输入数值
本帖最后由 zhshh 于 2013-7-4 16:57 编辑

脚本非我自己创作。公共事件自己创作,但需要此脚本。在魔塔设快捷键时发现。主要可以省去输入变量时的麻烦。在公共事件中修改输入时间。
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================
  4. #
  5. #  全键盘
  6. # ★、Kboard.press?(键位)  返回是否按下这个键的判断。
  7. #     比如条件分歧:Kboard.keyboard($R_Key_H)
  8. #                   则当按下键盘H键的时候条件分歧成立
  9. #
  10. # ★、Kboard.repeat?(键位) == 1 当连续按住某键返回真,否则为false
  11. #     比如条件分歧:Kboard.keyb($R_Key_U) == 1
  12. #                   则当持续按下键盘U的时候条件分歧成立
  13. #
  14. # ★、Kboard.trigger?(键位,1) 似乎可以做开关用。按下一次变为true,再按变false
  15. #  修改:夏娜
  16. #
  17. #============================================================================

  18. module Kboard
  19.   #==========================================================================
  20.   # 以下是全键盘按键列表
  21.   #--------------------------------------------------------------------------
  22.   $Rmouse_BUTTON_L = 0x01        # left mouse button
  23.   $Rmouse_BUTTON_R = 0x02        # right mouse button
  24.   $Rmouse_BUTTON_M = 0x04        # middle mouse button
  25.   $Rmouse_BUTTON_4 = 0x05        # 4th mouse button
  26.   $Rmouse_BUTTON_5 = 0x06        # 5th mouse button
  27.   #--------------------------------------------------------------------------
  28.   $R_Key_BACK      = 0x08        # BACKSPACE key
  29.   $R_Key_TAB       = 0x09        # TAB key
  30.   $R_Key_RETURN    = 0x0D        # ENTER key
  31.   $R_Key_SHIFT     = 0x10        # SHIFT key
  32.   $R_Key_CTLR      = 0x11        # CTLR key
  33.   $R_Key_ALT       = 0x12        # ALT key
  34.   $R_Key_PAUSE     = 0x13        # PAUSE key
  35.   $R_Key_CAPITAL   = 0x14        # CAPS LOCK key
  36.   $R_Key_ESCAPE    = 0x1B        # ESC key
  37.   $R_Key_SPACE     = 0x20        # SPACEBAR
  38.   $R_Key_PRIOR     = 0x21        # PAGE UP key
  39.   $R_Key_NEXT      = 0x22        # PAGE DOWN key
  40.   $R_Key_END       = 0x23        # END key
  41.   $R_Key_HOME      = 0x24        # HOME key
  42.   $R_Key_LEFT      = 0x25        # LEFT ARROW key
  43.   $R_Key_UP        = 0x26        # UP ARROW key
  44.   $R_Key_RIGHT     = 0x27        # RIGHT ARROW key
  45.   $R_Key_DOWN      = 0x28        # DOWN ARROW key
  46.   $R_Key_SELECT    = 0x29        # SELECT key
  47.   $R_Key_PRINT     = 0x2A        # PRINT key
  48.   $R_Key_SNAPSHOT  = 0x2C        # PRINT SCREEN key
  49.   $R_Key_INSERT    = 0x2D        # INS key
  50.   $R_Key_DELETE    = 0x2E        # DEL key
  51.   #--------------------------------------------------------------------------
  52.   $R_Key_0         = 0x30        # 0 key
  53.   $R_Key_1         = 0x31        # 1 key
  54.   $R_Key_2         = 0x32        # 2 key
  55.   $R_Key_3         = 0x33        # 3 key
  56.   $R_Key_4         = 0x34        # 4 key
  57.   $R_Key_5         = 0x35        # 5 key
  58.   $R_Key_6         = 0x36        # 6 key
  59.   $R_Key_7         = 0x37        # 7 key
  60.   $R_Key_8         = 0x38        # 8 key
  61.   $R_Key_9         = 0x39        # 9 key
  62.   #--------------------------------------------------------------------------
  63.   $R_Key_A         = 0x41        # A key
  64.   $R_Key_B         = 0x42        # B key
  65.   $R_Key_C         = 0x43        # C key
  66.   $R_Key_D         = 0x44        # D key
  67.   $R_Key_E         = 0x45        # E key
  68.   $R_Key_F         = 0x46        # F key
  69.   $R_Key_G         = 0x47        # G key
  70.   $R_Key_H         = 0x48        # H key
  71.   $R_Key_I         = 0x49        # I key
  72.   $R_Key_J         = 0x4A        # J key
  73.   $R_Key_K         = 0x4B        # K key
  74.   $R_Key_L         = 0x4C        # L key
  75.   $R_Key_M         = 0x4D        # M key
  76.   $R_Key_N         = 0x4E        # N key
  77.   $R_Key_O         = 0x4F        # O key
  78.   $R_Key_P         = 0x50        # P key
  79.   $R_Key_Q         = 0x51        # Q key
  80.   $R_Key_R         = 0x52        # R key
  81.   $R_Key_S         = 0x53        # S key
  82.   $R_Key_T         = 0x54        # T key
  83.   $R_Key_U         = 0x55        # U key
  84.   $R_Key_V         = 0x56        # V key
  85.   $R_Key_W         = 0x57        # W key
  86.   $R_Key_X         = 0x58        # X key
  87.   $R_Key_Y         = 0x59        # Y key
  88.   $R_Key_Z         = 0x5A        # Z key
  89.   #--------------------------------------------------------------------------
  90.   $R_Key_LWIN      = 0x5B        # Left Windows key (Microsoft Natural keyboard)
  91.   $R_Key_RWIN      = 0x5C        # Right Windows key (Natural keyboard)
  92.   $R_Key_APPS      = 0x5D        # Applications key (Natural keyboard)
  93.   #--------------------------------------------------------------------------
  94.   $R_Key_NUMPAD0   = 0x60        # Numeric keypad 0 key
  95.   $R_Key_NUMPAD1   = 0x61        # Numeric keypad 1 key
  96.   $R_Key_NUMPAD2   = 0x62        # Numeric keypad 2 key
  97.   $R_Key_NUMPAD3   = 0x63        # Numeric keypad 3 key
  98.   $R_Key_NUMPAD4   = 0x64        # Numeric keypad 4 key
  99.   $R_Key_NUMPAD5   = 0x65        # Numeric keypad 5 key
  100.   $R_Key_NUMPAD6   = 0x66        # Numeric keypad 6 key
  101.   $R_Key_NUMPAD7   = 0x67        # Numeric keypad 7 key
  102.   $R_Key_NUMPAD8   = 0x68        # Numeric keypad 8 key
  103.   $R_Key_NUMPAD9   = 0x69        # Numeric keypad 9 key
  104.   $R_Key_MULTIPLY  = 0x6A        # Multiply key (*)
  105.   $R_Key_ADD       = 0x6B        # Add key (+)
  106.   $R_Key_SEPARATOR = 0x6C        # Separator key
  107.   $R_Key_SUBTRACT  = 0x6D        # Subtract key (-)
  108.   $R_Key_DECIMAL   = 0x6E        # Decimal key
  109.   $R_Key_DIVIDE    = 0x6F        # Divide key (/)
  110.   #--------------------------------------------------------------------------
  111.   $R_Key_F1        = 0x70        # F1 key
  112.   $R_Key_F2        = 0x71        # F2 key
  113.   $R_Key_F3        = 0x72        # F3 key
  114.   $R_Key_F4        = 0x73        # F4 key
  115.   $R_Key_F5        = 0x74        # F5 key
  116.   $R_Key_F6        = 0x75        # F6 key
  117.   $R_Key_F7        = 0x76        # F7 key
  118.   $R_Key_F8        = 0x77        # F8 key
  119.   $R_Key_F9        = 0x78        # F9 key
  120.   $R_Key_F10       = 0x79        # F10 key
  121.   $R_Key_F11       = 0x7A        # F11 key
  122.   $R_Key_F12       = 0x7B        # F12 key
  123.   #--------------------------------------------------------------------------
  124.   $R_Key_NUMLOCK   = 0x90        # NUM LOCK key
  125.   $R_Key_SCROLL    = 0x91        # SCROLL LOCK key
  126.   #--------------------------------------------------------------------------
  127.   $R_Key_LSHIFT    = 0xA0        # Left SHIFT key
  128.   $R_Key_RSHIFT    = 0xA1        # Right SHIFT key
  129.   $R_Key_LCONTROL  = 0xA2        # Left CONTROL key
  130.   $R_Key_RCONTROL  = 0xA3        # Right CONTROL key
  131.   $R_Key_L_ALT    = 0xA4        # Left ALT key
  132.   $R_Key_R_ALT    = 0xA5        # Right ALT key
  133.   #--------------------------------------------------------------------------
  134.   $R_Key_SEP      = 0xBC        # , key
  135.   $R_Key_DASH      = 0xBD        # - key
  136.   $R_Key_DOTT      = 0xBE        # . Key
  137.   
  138.   
  139.   
  140. module_function

  141. @R_Key_Hash = {}
  142. @R_Key_Repeat = {}

  143. GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')

  144. def press?(rkey)
  145.    return GetKeyState.call(rkey) != 0
  146. end

  147. def repeat?(rkey)
  148.    result = GetKeyState.call(rkey)
  149.    if result != 0
  150.      if @R_Key_Repeat[rkey].nil?
  151.        @R_Key_Repeat[rkey] = 0
  152.        return true
  153.      end
  154.      @R_Key_Repeat[rkey] += 1
  155.    else
  156.      @R_Key_Repeat[rkey] = nil
  157.      @R_Key_Hash[rkey] = 0
  158.    end
  159.    if !@R_Key_Repeat[rkey].nil? and @R_Key_Repeat[rkey] > 4 # 4乃准确数字
  160.      @R_Key_Repeat[rkey] = 0
  161.      return true
  162.    else
  163.      return false
  164.    end
  165. end

  166. def trigger?(rkey)
  167.    result = GetKeyState.call(rkey)
  168.    if @R_Key_Hash[rkey] == 1 and result != 0
  169.      return false
  170.    end
  171.    if result != 0
  172.      @R_Key_Hash[rkey] = 1
  173.      return true
  174.    else
  175.      @R_Key_Hash[rkey] = 0
  176.      return false
  177.    end
  178. end

  179. end

复制代码
Data.rar (156.71 KB, 下载次数: 71) 我不清楚公共事件是哪个文件,就把data全放上了
使用键盘F1-F12下面的(Esc下面,tab上面那排),键盘右面的不能用
最多8位数值,人物图忘换了,必须在对话结束,什么也不显时输入,一次一位数
作者: chpmi    时间: 2013-7-4 21:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: ♂雨    时间: 2013-7-7 10:52
话说,这脚本不是发过很多次了么?
作者: zhshh    时间: 2013-7-9 16:49
♂雨 发表于 2013-7-7 10:52
话说,这脚本不是发过很多次了么?

主要是用键盘输入数值
我写了,脚本非我原创




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1