设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1616|回复: 3
打印 上一主题 下一主题

[已经过期] xp的全按键调用脚本为什么用不起来?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2013-10-5
帖子
8
跳转到指定楼层
1
发表于 2014-6-5 22:00:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
脚本如下:#==============================================================================
# 本脚本来自http://tyrpg.5d6d.com/,使用和转载请保留此信息
#==============================================================================
#==============================================================================
# ■ Keyboard Script
#------------------------------------------------------------------------------
#  全键盘按键调用脚本 By: 夏娜 完善:RPG-XP
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#   使用方法见发布页
#==============================================================================
module Kboard
  #----------------------------------------------------------------------------
  # ● 设置所需按键,以下是全键盘按键列表。
  #----------------------------------------------------------------------------
    $BACK          = 0x08        # ← BACKSPACE 按键
  $TAB           = 0x09        # TAB 按键
  $RETURN        = 0x0D        # 回车键
  $SHIFT         = 0x10        # SHIFT 按键
  $CTLR          = 0x11        # Ctrl 按键
  $ALT           = 0x12        # ALT 按键
  $PAUSE         = 0x13        # Pause Break 按键
  $CAPITAL       = 0x14        # 大写/小写 转换键
  $ESCAPE        = 0x1B        # ESC 按键
  $SPACE         = 0x20        # 空格键
  $PRIOR         = 0x21        # PAGE UP 按键
  $NEXT          = 0x22        # PAGE DOWN 按键
  $ENDKEY        = 0x23        # END 按键
  $HOME          = 0x24        # HOME 按键
  $LEFT          = 0x25        # ← 按键
  $UP            = 0x26        # → 按键
  $RIGHT         = 0x27        # ↑ 按键
  $DOWN          = 0x28        #  ↓ 按键
  $SELECT        = 0x29        # select 按键(这是……)
  $PRINT         = 0x2A        # PRINT 按键
  $SNAPSHOT      = 0x2C        # PRINT SCREEN 按键
  $INSERT        = 0x2D        # Insert 按键
  $DELETE        = 0x2E        # Delete 按键
  $Key_0         = 0x30        # 左边数字面板的数字 0 按键
  $Key_1         = 0x31        # 左边数字面板的数字 1 按键
  $Key_2         = 0x32        # 左边数字面板的数字 2 按键
  $Key_3         = 0x33        # 左边数字面板的数字 3 按键
  $Key_4         = 0x34        # 左边数字面板的数字 4 按键
  $Key_5         = 0x35        # 左边数字面板的数字 5 按键
  $Key_6         = 0x36        # 左边数字面板的数字 6 按键
  $Key_7         = 0x37        # 左边数字面板的数字 7 按键
  $Key_8         = 0x38        # 左边数字面板的数字 8 按键
  $Key_9         = 0x39        # 左边数字面板的数字 9 按键
  $A             = 0x41        # 字母 A 按键
  $B             = 0x42        # 字母 B 按键
  $C             = 0x43        # 字母 C 按键
  $D             = 0x44        # 字母 D 按键
  $E             = 0x45        # 字母 E 按键
  $F             = 0x46        # 字母 F 按键
  $G             = 0x47        # 字母 G 按键
  $H             = 0x48        # 字母 H 按键
  $I             = 0x49        # 字母 I 按键
  $J             = 0x4A        # 字母 J 按键
  $K             = 0x4B        # 字母 K 按键
  $L             = 0x4C        # 字母 L 按键
  $M             = 0x4D        # 字母 M 按键
  $N             = 0x4E        # 字母 N 按键
  $O             = 0x4F        # 字母 O 按键
  $P             = 0x50        # 字母 P 按键
  $Q             = 0x51        # 字母 Q 按键
  $R             = 0x52        # 字母 R 按键
  $S             = 0x53        # 字母 S 按键
  $T             = 0x54        # 字母 T 按键
  $U             = 0x55        # 字母 U 按键
  $V             = 0x56        # 字母 V 按键
  $W             = 0x57        # 字母 W 按键
  $X             = 0x58        # 字母 X 按键
  $Y             = 0x59        # 字母 Y 按键
  $Z             = 0x5A        # 字母 Z 按键
  $LWIN          = 0x5B        # 左边开始界面视窗按键(微软自然键盘)
  $RWIN          = 0x5C        # 右边开始界面视窗按键(微软自然键盘)
  $APPS          = 0x5D     # (自然键盘)这个键的称呼我不知道,但它如同于鼠标右键。
  $Key_NUMPAD0   = 0x60        # 右边数字面板的数字 0 按键
  $Key_NUMPAD1   = 0x61        # 右边数字面板的数字 1 按键
  $Key_NUMPAD2   = 0x62        # 右边数字面板的数字 2 按键
  $Key_NUMPAD3   = 0x63        # 右边数字面板的数字 3 按键
  $Key_NUMPAD4   = 0x64        # 右边数字面板的数字 4 按键
  $Key_NUMPAD5   = 0x65        # 右边数字面板的数字 5 按键
  $Key_NUMPAD6   = 0x66        # 右边数字面板的数字 6 按键
  $Key_NUMPAD7   = 0x67        # 右边数字面板的数字 7 按键
  $Key_NUMPAD8   = 0x68        # 右边数字面板的数字 8 按键
  $Key_NUMPAD9   = 0x69        # 右边数字面板的数字 9 按键
  $Key_MULTIPLY  = 0x6A        # 乘号按键
  $ADD           = 0x6B        # 加号按键
  $SEPARATOR     = 0x6C        # Separator 按键
  $SUBTRACT      = 0x6D        # 减号按键
  $DECIMAL       = 0x6E        # Decimal 按键
  $DIVIDE        = 0x6F        # 除号按键
  $F1            = 0x70        # F1 按键
  $F2            = 0x71        # F2 按键
  $F3            = 0x72        # F3 按键
  $F4            = 0x73        # F4 按键
  $F5            = 0x74        # F5 按键
  $F6            = 0x75        # F6 按键
  $F7            = 0x76        # F7 按键
  $F8            = 0x77        # F8 按键
  $F9            = 0x78        # F9 按键
  $F10           = 0x79        # F10 按键
  $F11           = 0x7A        # F11 按键
  $F12           = 0x7B        # F12 按键
  $NUMLOCK       = 0x90        # NUM LOCK 按键
  $SCROLL        = 0x91        # SCROLL LOCK 按键
  $LSHIFT        = 0xA0        # 左边SHIFT按键
  $RSHIFT        = 0xA1        # 右边SHIFT按键
  $LCONTROL      = 0xA2        # 左边 CONTROL 按键
  $RCONTROL      = 0xA3        # 右边 CONTROL 按键
  $L_ALT         = 0xA4        # 左边 ALT 按键
  $R_ALT         = 0xA5        # 右边 ALT 按键
  $SEP           = 0xBC        # 逗号按键
  $DASH          = 0xBD        # 减号按键
  $DOTT          = 0xBE        # . 按键
  #--------------------------------------------------------------------------
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

但是在条件分歧里用脚本分事件的时候,就发生了syntaxerror。
这是怎么回事?

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-6-6 19:20:16 | 只看该作者
正确调用方式举例:
RUBY 代码复制
  1. Kboard.trigger?($J)

评分

参与人数 1星屑 +66 收起 理由
天地有正气 + 66 感谢回答

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

3
发表于 2014-6-7 08:45:58 | 只看该作者
以下内容来自外站(注释我自己翻译的)仅供参考
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Input
  3. #------------------------------------------------------------------------------
  4. #  处理游戏手柄和键盘输入信息的模块。
  5. #==============================================================================
  6. module Input
  7.   DOWN=2
  8.   LEFT=4
  9.   RIGHT=6
  10.   UP=8
  11.   A=11
  12.   B=12
  13.   C=13
  14.   X=14
  15.   Y=15
  16.   Z=16
  17.   L=17
  18.   R=18
  19.   SHIFT=21
  20.   CTRL=22
  21.   ALT=23
  22.   F5=25
  23.   F6=26
  24.   F7=27
  25.   F8=28
  26.   F9=29
  27.   #--------------------------------------------------------------------------
  28.   # GetAsyncKeyState or GetKeyState will work here
  29.   #--------------------------------------------------------------------------
  30.   @GetKeyState=Win32API.new("user32", "GetAsyncKeyState", "i", "i")
  31.   #--------------------------------------------------------------------------
  32.   # Returns whether a key is being pressed
  33.   #--------------------------------------------------------------------------
  34.   def self.getstate(key)
  35.     return (@GetKeyState.call(key)&0x8000)>0
  36.   end
  37.   def self.update
  38.     if @keystate
  39.       for i in 0...256
  40.         @newstate=self.getstate(i)
  41.         @triggerstate[i]=(@newstate&&@keystate[i]==0)
  42.         @releasestate[i]=(!@newstate&&@keystate[i]>0)
  43.         @keystate[i]=@newstate ? @keystate[i]+1 : 0
  44.       end   
  45.     else
  46.       @keystate=[]
  47.       @triggerstate=[]
  48.       @releasestate=[]
  49.       for i in 0...256
  50.         @keystate[i]=self.getstate(i) ? 1 : 0
  51.         @triggerstate[i]=false
  52.         @releasestate[i]=false
  53.       end
  54.     end
  55.   end
  56.   def self.buttonToKey(button)
  57.    case button
  58.     when Input::DOWN
  59.      return [0x28] # Down
  60.     when Input::LEFT
  61.      return [0x25] # Left
  62.     when Input::RIGHT
  63.      return [0x27] # Right
  64.     when Input::UP
  65.      return [0x26] # Up
  66.     when Input::A
  67.      return [0x5A,0x10] # Z, Shift
  68.     when Input::B
  69.      return [0x58,0x1B] # X, ESC
  70.     when Input::C
  71.      return [0x43,0x0d,0x20] # C, ENTER, Space
  72.     when Input::X
  73.      return [0x41] # A
  74.     when Input::Y
  75.      return [0x53] # S
  76.     when Input::Z
  77.      return [0x44] # D
  78.     when Input::L
  79.      return [0x51,0x21] # Q, Page Up
  80.     when Input::R
  81.      return [0x57,0x22] # W, Page Up
  82.     when Input::SHIFT
  83.      return [0x10] # Shift
  84.     when Input::CTRL
  85.      return [0x11] # Ctrl
  86.     when Input::ALT
  87.      return [0x12] # Alt
  88.     when Input::F5
  89.      return [0x74] # F5
  90.     when Input::F6
  91.      return [0x75] # F6
  92.     when Input::F7
  93.      return [0x76] # F7
  94.     when Input::F8
  95.      return [0x77] # F8
  96.     when Input::F9
  97.      return [0x78] # F9
  98.     else
  99.      # ★ 参数为整型时使用自定义的按键 ★
  100.      if button.is_a? Integer then return [button] end
  101.      return []
  102.    end
  103.   end
  104.   def self.dir4
  105.     button=0
  106.     repeatcount=0
  107.     if self.press?(Input::DOWN) && self.press?(Input::UP)
  108.       return 0
  109.     end
  110.     if self.press?(Input::LEFT) && self.press?(Input::RIGHT)
  111.       return 0
  112.     end
  113.     for b in [Input::DOWN,Input::LEFT,Input::RIGHT,Input::UP]
  114.      rc=self.count(b)
  115.      if rc>0
  116.       if repeatcount==0 || rc<repeatcount
  117.        button=b
  118.        repeatcount=rc
  119.       end
  120.      end
  121.     end
  122.     return button
  123.   end
  124.   def self.dir8
  125.     buttons=[]
  126.     for b in [Input::DOWN,Input::LEFT,Input::RIGHT,Input::UP]
  127.      rc=self.count(b)
  128.      if rc>0
  129.       buttons.push([b,rc])
  130.      end
  131.     end
  132.     if buttons.length==0
  133.      return 0
  134.     elsif buttons.length==1
  135.      return buttons[0][0]
  136.     elsif buttons.length==2
  137.      #-----------------------------------------------------------------------
  138.      # since buttons sorted by button, no need to sort here
  139.      #-----------------------------------------------------------------------
  140.      if (buttons[0][0]==Input::DOWN && buttons[1][0]==Input::UP)
  141.       return 0
  142.      end
  143.      if (buttons[0][0]==Input::LEFT && buttons[1][0]==Input::RIGHT)
  144.       return 0
  145.      end
  146.     end
  147.     buttons.sort!{|a,b| a[1]<=>b[1]}
  148.     updown=0
  149.     leftright=0
  150.     for b in buttons
  151.      if updown==0 && (b[0]==Input::UP || b[0]==Input::DOWN)
  152.       updown=b[0]
  153.      end
  154.      if leftright==0 && (b[0]==Input::LEFT || b[0]==Input::RIGHT)
  155.       leftright=b[0]
  156.      end
  157.     end
  158.     if updown==Input::DOWN
  159.      return 1 if leftright==Input::LEFT
  160.      return 3 if leftright==Input::RIGHT
  161.      return 2
  162.     elsif updown==Input::UP
  163.      return 7 if leftright==Input::LEFT
  164.      return 9 if leftright==Input::RIGHT
  165.      return 8
  166.     else
  167.      return 4 if leftright==Input::LEFT
  168.      return 6 if leftright==Input::RIGHT
  169.      return 0
  170.     end
  171.   end
  172.   #--------------------------------------------------------------------------
  173.   # ● 按住(repeat)某键时记数
  174.   #--------------------------------------------------------------------------
  175.   def self.count(button)
  176.    for btn in self.buttonToKey(button)
  177.      c=self.repeatcount(btn)
  178.      return c if c>0
  179.    end
  180.    return 0
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ● 判断抬起
  184.   #--------------------------------------------------------------------------
  185.   def self.trigger?(button)
  186.    return self.buttonToKey(button).any? {|item| self.triggerex?(item) }
  187.   end
  188.   #--------------------------------------------------------------------------
  189.   # ● 判断按住
  190.   #--------------------------------------------------------------------------
  191.   def self.repeat?(button)
  192.    return self.buttonToKey(button).any? {|item| self.repeatex?(item) }
  193.   end
  194.   #--------------------------------------------------------------------------
  195.   # ● 判断按下
  196.   #--------------------------------------------------------------------------
  197.   def self.press?(button)
  198.    return self.count(button)>0
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # ● 记数大于20时判定为按住
  202.   #--------------------------------------------------------------------------
  203.   def self.repeatex?(key)
  204.     return false if !@keystate
  205.     return @keystate[key]==1 || (@keystate[key]>20 && (@keystate[key]&1)==0)
  206.   end
  207.   #--------------------------------------------------------------------------
  208.   # ● 抬起后释放
  209.   #--------------------------------------------------------------------------
  210.   def self.releaseex?(key)
  211.     return false if !@releasestate
  212.     return @releasestate[key]
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # ● 按下瞬间
  216.   #--------------------------------------------------------------------------
  217.   def self.triggerex?(key)
  218.     return false if !@triggerstate
  219.     return @triggerstate[key]
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   # ● 按住(repeat)某键时记数
  223.   #--------------------------------------------------------------------------
  224.   def self.repeatcount(key)
  225.     return 0 if !@keystate
  226.     return @keystate[key]
  227.   end
  228.   #--------------------------------------------------------------------------
  229.   # ● 记数大于0时判定为按下
  230.   #--------------------------------------------------------------------------
  231.   def self.pressex?(key)
  232.     return self.repeatcount(key)>0
  233.   end
  234. end

评分

参与人数 1星屑 +77 收起 理由
天地有正气 + 77 感谢回答

查看全部评分


  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
55 小时
注册时间
2014-5-12
帖子
59
4
发表于 2014-6-7 13:20:34 | 只看该作者
本帖最后由 [email protected] 于 2014-6-7 13:45 编辑
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================
  4. #============================================================================
  5. # ■ Keyboard Script
  6. #----------------------------------------------------------------------------
  7. #  By: Cybersam
  8. #   Date: 25/05/05
  9. #   Version 4
  10. #============================================================================
  11. # 66对此脚本使用方法的说明(可能不是很准确,反正大体能用):
  12. #
  13. # ★、Kboard.keyboard(键位)  返回是否按下这个键的判断。
  14. #     比如条件分歧:Kboard.keyboard($R_Key_H)
  15. #                   则当按下键盘H键的时候条件分歧成立
  16. #
  17. # ★、Kboard.keyb(键位) == 1 当连续按住某键返回真,否则为false
  18. #     比如条件分歧:Kboard.keyb($R_Key_U) == 1
  19. #                   则当持续按下键盘U的时候条件分歧成立
  20. #
  21. # ★、Kboard.key(键位,1) 似乎可以做开关用。按下一次变为true,再按变false
  22. #============================================================================
  23. module Kboard
  24.   #==========================================================================
  25.   # 以下是全键盘按键列表
  26.   #--------------------------------------------------------------------------
  27.   $Rmouse_BUTTON_L = 0x01        # left mouse button
  28.   $Rmouse_BUTTON_R = 0x02        # right mouse button
  29.   $Rmouse_BUTTON_M = 0x04        # middle mouse button
  30.   $Rmouse_BUTTON_4 = 0x05        # 4th mouse button
  31.   $Rmouse_BUTTON_5 = 0x06        # 5th mouse button
  32.   #--------------------------------------------------------------------------
  33.   $R_Key_BACK      = 0x08        # BACKSPACE key
  34.   $R_Key_TAB       = 0x09        # TAB key
  35.   $R_Key_RETURN    = 0x0D        # ENTER key
  36.   $R_Key_SHIFT     = 0x10        # SHIFT key
  37.   $R_Key_CTLR      = 0x11        # CTLR key
  38.   $R_Key_ALT       = 0x12        # ALT key
  39.   $R_Key_PAUSE     = 0x13        # PAUSE key
  40.   $R_Key_CAPITAL   = 0x14        # CAPS LOCK key
  41.   $R_Key_ESCAPE    = 0x1B        # ESC key
  42.   $R_Key_SPACE     = 0x20        # SPACEBAR
  43.   $R_Key_PRIOR     = 0x21        # PAGE UP key
  44.   $R_Key_NEXT      = 0x22        # PAGE DOWN key
  45.   $R_Key_END       = 0x23        # END key
  46.   $R_Key_HOME      = 0x24        # HOME key
  47.   $R_Key_LEFT      = 0x25        # LEFT ARROW key
  48.   $R_Key_UP        = 0x26        # UP ARROW key
  49.   $R_Key_RIGHT     = 0x27        # RIGHT ARROW key
  50.   $R_Key_DOWN      = 0x28        # DOWN ARROW key
  51.   $R_Key_SELECT    = 0x29        # SELECT key
  52.   $R_Key_PRINT     = 0x2A        # PRINT key
  53.   $R_Key_SNAPSHOT  = 0x2C        # PRINT SCREEN key
  54.   $R_Key_INSERT    = 0x2D        # INS key
  55.   $R_Key_DELETE    = 0x2E        # DEL key
  56.   #--------------------------------------------------------------------------
  57.   $R_Key_0         = 0x30        # 0 key
  58.   $R_Key_1         = 0x31        # 1 key
  59.   $R_Key_2         = 0x32        # 2 key
  60.   $R_Key_3         = 0x33        # 3 key
  61.   $R_Key_4         = 0x34        # 4 key
  62.   $R_Key_5         = 0x35        # 5 key
  63.   $R_Key_6         = 0x36        # 6 key
  64.   $R_Key_7         = 0x37        # 7 key
  65.   $R_Key_8         = 0x38        # 8 key
  66.   $R_Key_9         = 0x39        # 9 key
  67.   #--------------------------------------------------------------------------
  68.   $R_Key_A         = 0x41        # A key
  69.   $R_Key_B         = 0x42        # B key
  70.   $R_Key_C         = 0x43        # C key
  71.   $R_Key_D         = 0x44        # D key
  72.   $R_Key_E         = 0x45        # E key
  73.   $R_Key_F         = 0x46        # F key
  74.   $R_Key_G         = 0x47        # G key
  75.   $R_Key_H         = 0x48        # H key
  76.   $R_Key_I         = 0x49        # I key
  77.   $R_Key_J         = 0x4A        # J key
  78.   $R_Key_K         = 0x4B        # K key
  79.   $R_Key_L         = 0x4C        # L key
  80.   $R_Key_M         = 0x4D        # M key
  81.   $R_Key_N         = 0x4E        # N key
  82.   $R_Key_O         = 0x4F        # O key
  83.   $R_Key_P         = 0x50        # P key
  84.   $R_Key_Q         = 0x51        # Q key
  85.   $R_Key_R         = 0x52        # R key
  86.   $R_Key_S         = 0x53        # S key
  87.   $R_Key_T         = 0x54        # T key
  88.   $R_Key_U         = 0x55        # U key
  89.   $R_Key_V         = 0x56        # V key
  90.   $R_Key_W         = 0x57        # W key
  91.   $R_Key_X         = 0x58        # X key
  92.   $R_Key_Y         = 0x59        # Y key
  93.   $R_Key_Z         = 0x5A        # Z key
  94.   #--------------------------------------------------------------------------
  95.   $R_Key_LWIN      = 0x5B        # Left Windows key (Microsoft Natural keyboard)
  96.   $R_Key_RWIN      = 0x5C        # Right Windows key (Natural keyboard)
  97.   $R_Key_APPS      = 0x5D        # Applications key (Natural keyboard)
  98.   #--------------------------------------------------------------------------
  99.   $R_Key_NUMPAD0   = 0x60        # Numeric keypad 0 key
  100.   $R_Key_NUMPAD1   = 0x61        # Numeric keypad 1 key
  101.   $R_Key_NUMPAD2   = 0x62        # Numeric keypad 2 key
  102.   $R_Key_NUMPAD3   = 0x63        # Numeric keypad 3 key
  103.   $R_Key_NUMPAD4   = 0x64        # Numeric keypad 4 key
  104.   $R_Key_NUMPAD5   = 0x65        # Numeric keypad 5 key
  105.   $R_Key_NUMPAD6   = 0x66        # Numeric keypad 6 key
  106.   $R_Key_NUMPAD7   = 0x67        # Numeric keypad 7 key
  107.   $R_Key_NUMPAD8   = 0x68        # Numeric keypad 8 key
  108.   $R_Key_NUMPAD9  = 0x69        # Numeric keypad 9 key
  109.   $R_Key_MULTIPLY  = 0x6A        # Multiply key (*)
  110.   $R_Key_ADD       = 0x6B        # Add key (+)
  111.   $R_Key_SEPARATOR = 0x6C        # Separator key
  112.   $R_Key_SUBTRACT  = 0x6D        # Subtract key (-)
  113.   $R_Key_DECIMAL   = 0x6E        # Decimal key
  114.   $R_Key_DIVIDE    = 0x6F        # Divide key (/)
  115.   #--------------------------------------------------------------------------
  116.   $R_Key_F1        = 0x70        # F1 key
  117.   $R_Key_F2        = 0x71        # F2 key
  118.   $R_Key_F3        = 0x72        # F3 key
  119.   $R_Key_F4        = 0x73        # F4 key
  120.   $R_Key_F5        = 0x74        # F5 key
  121.   $R_Key_F6        = 0x75        # F6 key
  122.   $R_Key_F7        = 0x76        # F7 key
  123.   $R_Key_F8        = 0x77        # F8 key
  124.   $R_Key_F9        = 0x78        # F9 key
  125.   $R_Key_F10       = 0x79        # F10 key
  126.   $R_Key_F11       = 0x7A        # F11 key
  127.   $R_Key_F12       = 0x7B        # F12 key
  128.   #--------------------------------------------------------------------------
  129.   $R_Key_NUMLOCK   = 0x90        # NUM LOCK key
  130.   $R_Key_SCROLL    = 0x91        # SCROLL LOCK key
  131.   #--------------------------------------------------------------------------
  132.   $R_Key_LSHIFT    = 0xA0        # Left SHIFT key
  133.   $R_Key_RSHIFT    = 0xA1        # Right SHIFT key
  134.   $R_Key_LCONTROL  = 0xA2        # Left CONTROL key
  135.   $R_Key_RCONTROL  = 0xA3        # Right CONTROL key
  136.   $R_Key_L_ALT    = 0xA4        # Left ALT key
  137.   $R_Key_R_ALT    = 0xA5        # Right ALT key
  138.   #--------------------------------------------------------------------------
  139.   $R_Key_SEP      = 0xBC        # , key
  140.   $R_Key_DASH      = 0xBD        # - key
  141.   $R_Key_DOTT      = 0xBE        # . Key
  142.   #--------------------------------------------------------------------------
  143.   GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
  144.   GetKeyboardState = Win32API.new("user32","GetKeyState",['I'],'I')
  145.   GetSetKeyState = Win32API.new("user32","SetKeyboardState",['I'],'I')
  146.   #--------------------------------------------------------------------------
  147.   module_function
  148.   #--------------------------------------------------------------------------
  149.   def keyb(rkey)
  150.     if GetKeyState.call(rkey) != 0
  151.       return 1
  152.     end
  153.     return 0
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   def keyboard(rkey)
  157.     GetKeyState.call(rkey) & 0x01 == 1  #
  158.   end
  159.   #--------------------------------------------------------------------------
  160.   def key(rkey, key = 0)
  161.     GetKeyboardState.call(rkey) & 0x01 == key #
  162.   end
  163. end
  164. #==============================================================================
  165. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  166. #==============================================================================
复制代码
我觉得这个脚本很好用!简单易懂!功能还多,可以一直按键显示,按一下键显示,键开关,我就用的这个!

评分

参与人数 1星屑 +66 收起 理由
天地有正气 + 66 感谢回答

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-18 16:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表