注册会员 登录
Project1 返回首页

带着你的节操下地狱吧! ... https://rpg.blue/?766271 [收藏] [复制] [分享] [RSS]

日志

[笔记08]VA按键秘籍脚本

已有 380 次阅读2014-2-5 13:29

我把XP原版更改了第221行,其余不变
——————————————————脚本内容(高亮部分)——————————————————
#============================================================================== 
# 本脚本来自www.66RPG.com,使用和转载请保留此信息 
# 66rpg网友更改了第221,使其改为VA版的按键秘籍
# 作者:幻の飞鱼 
# 按键秘籍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.reserve_common_event(@k+1)#$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,使用和转载请保留此信息 
#==============================================================================
——————————————————————脚本结束——————————————————————

鸡蛋

鲜花

评论 (0 个评论)

facelist doodle 涂鸦笔

您需要登录后才可以评论 登录 | 注册会员

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

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

GMT+8, 2024-4-20 03:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部