66rpg吧 关注:5,759贴子:31,999
  • 3回复贴,共1

【幻想世界在你手中】66RPG脚本:全键盘脚本(夏娜改,优化)

只看楼主收藏回复

1、Kboard.press?(key) 同 Input.press?(key)
2、Kboard.repeat?(key) 同 Input.repeat?(key)
3、Kboard.trigger?(key) 同 Input.trigger?(key)



--------------------------------------------------------------------------------


module Kboard

 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

 



IP属地:广东1楼2007-05-15 22:48回复
    作者:灼眼的夏娜 

    脚本使用的通用说明 

    约定:本脚本来源于网络,任何人不得随意将本脚本应用于商业用途,如需转载,必须保留所有版权信息,如果是国内作者,最好征求作者同意——否则发生任何后果,66RPG不予负责。使用此脚本表示您默认接受上述约定。 

    说明:不同脚本之间、尤其是不同作者脚本之间会有冲突,本站会对已知脚本冲突进行简单说明。测试新脚本请下载本站提供的测试文件或者新建工程测试。脚本不要贪多,否则可能会互相冲突对您的游戏造成未知的影响。如果脚本内或者本站内提供了解释,请务必完全看完解释后再使用,如有问题,请到论坛讨论。


    IP属地:广东2楼2007-05-16 13:33
    回复
      2026-03-15 10:06:47
      广告
      不感兴趣
      开通SVIP免广告
      继续UP


      3楼2007-05-16 21:44
      回复
        顶啊


        4楼2007-05-16 21:44
        回复