A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张益达 于 2014-7-2 15:10 编辑

上次益达发了一个删除地下城补丁的IO流之后 。现在益达需要连发了 ,所以老规矩 自己动手 丰衣足食 。用别人的不放心 (万一贼人下毒呢。)
什么是连发呢  就是 每当你按下攻击键以后 你按住不放 程序会一直调用攻击键 ,除了省事 还有就是心理爽  = = 。
不说废话 现在开始  
思路是     让系统在键盘按下X的时候就开始捕捉,捕捉到以后  在抬起之前一调用攻击键(益达在游戏中的攻击键是X)但是这有个前提 是要求在任何窗口下,要兼容所有的游戏嘛而且每个人 没个游戏的攻击键很有可能会不一样的伐。因为是全局的所以是没有办法用键盘事件绑定的 绑定的时间一旦没有激活窗口就会失去作用  但是如果要是激活着窗口 那游戏怎么办 擦 = = 。   这就涉及到一个键盘钩子的概念  对于钩子不懂的童鞋自行百度  每一种系统 调用一个输入按键的方式并不一样 所以  要配合examples.jar和JNI    jar包已经打好 随后会放在附近里 大家自行下载查阅= = 。因为主要是为了激发大家的兴趣  就仅仅解释关键的连发实现要点了= = 。
首先要做到   使用程序的人在任何时候   及时同时开着一百个程序也能在按下X的时候 调用自己写的代码   
代码如下
  1.         KBHook keyboy = KBHook.getInstance();
  2.                 keyboy.addKBListener(new KeyBoardListener() {
  3.                         public void acceptEvent(KBEvent e) {
  4.                                 System.out.println(e.keyCode == KeyEvent.VK_X);
  5.                         }
  6.                 });
  7.                 keyboy.install();
复制代码
怎么 代码很简单吧 这段代码  是实现是否X被按下的关键奥= =。只要程序开着 每当按下之后 都会捕捉当前按下的ascii码   x的是88   让按下之后在让他模拟攻击键去不停的猛击 抬起则停下  就要将System.out.println(e.keyCode == KeyEvent.VK_X);改为如下
  1.                 public void acceptEvent(KBEvent e) {
  2.                                 if(e.keyCode == KeyEvent.VK_X){
  3.                                         if(e.state == KeyEvent.VK_ALL_CANDIDATES){
  4.                                                 //按下状态以后要不停的猛击
  5.                                                 DownX.type(KeyEvent.VK_X);
  6.                                         }
  7.                                         if(e.state == KeyEvent.VK_PREVIOUS_CANDIDATE){
  8.                                                 //抬起状态则不在猛击
  9.                                                 DownX.release(KeyEvent.VK_X);
  10.                                         }
  11.                                 }
  12.                                 System.out.println(e.keyCode == KeyEvent.VK_X);
  13.                         }
复制代码





嗯 来一张图  以示清白
代码附上 大家请多多指教 技术分已经凑够数了  还是要点黑币吧   还望版主加精= = ..




20140629231239.png (344.31 KB, 下载次数: 6)

以示清白图

以示清白图

Test.rar

18.81 KB, 下载次数: 127

连发代码

评分

参与人数 1技术分 +2 收起 理由
轻语。 + 2

查看全部评分

6 个回复

倒序浏览
这都没人屌我  。。。。。。。。。。。。。。。。。   哎
回复 使用道具 举报
本帖最后由 张益达 于 2014-6-30 01:03 编辑

不过  益达就是喜欢能直接用在生活中的程序     = =
回复 使用道具 举报
小白一个,还不懂。视频才看到面对象!
回复 使用道具 举报
路过......
回复 使用道具 举报
我也玩地下城,那连发不会是你做的吧??
回复 使用道具 举报
掉渣天   我以前也玩过这个游戏 没自己写过连发
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马