以下是我在大三时,武林外传游戏还在公测时写的一个外挂,辅助玩游戏。以前在大学时用着很好用,和大家共享出来。希望有朋友能够进行重构,发布一些更好用的JAVA实现的外挂程序。

由于这是本人的处女做,所以代码结构有些乱,但由于程序本身并不是很复杂,有心人是一定会看懂的,此外还有一些简单的注释。

由于当时不会使用IDE,仅用记事本写的,所以写得比较辛苦,也花费了较长时间。希望对大家能够有所帮助。

Java代码
  1. package game;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.event.*;
  6. import java.lang.*;
  7. import java.io.*;
  8. //主类
  9. public class Action
  10. {
  11. static int TimeNumber=0;
  12. public static void main(String[] args)
  13. {
  14. ViewFlow vf=new ViewFlow();
  15. vf.addActionlistener();
  16. }
  17. }
package game;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.lang.*;
import java.io.*; //主类
public class Action
{static int TimeNumber=0;public static void main(String[] args){ViewFlow vf=new ViewFlow();vf.addActionlistener();}}
Java代码
  1. package game;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.event.*;
  6. import java.lang.*;
  7. import java.io.*;
  8. class MyActionListener2 implements ActionListener//核心类(实现主要功能)
  9. {
  10. static int ip=0;
  11. public void actionPerformed(ActionEvent e2)
  12. {
  13. try
  14. {
  15. Robot robot=new Robot();
  16. int x=73,y=23,
  17. x2=ViewFlow.slider1.getValue(),
  18. y2=23,
  19. x3=228,y3=26,
  20. x4=0,y4=0;
  21. /*
  22. int i=ViewFlow.slider1.getValue(),j=23,k=0;
  23. {
  24. try
  25. {
  26. Robot rb=new Robot();
  27. while(k<1)
  28. {
  29. rb.mouseMove(i,j);
  30. rb.getPixelColor(i,j);
  31. System.out.print((k++)+": "+rb.getPixelColor(i,j)+": ");
  32. System.out.println("(i="+(i++)+",j="+j+");");
  33. }
  34. }
  35. catch(AWTException e3){}
  36. }
  37. */
  38. if(robot.getPixelColor(x,y).equals(new Color(255,75,53))&&MyActionListener2.ip==1)//自动打怪
  39. {
  40. robot.keyPress(KeyEvent.VK_5);//捡东西
  41. if(  robot.getPixelColor(x3,y3).equals(new Color(255,107,87))
  42. ||robot.getPixelColor(x3,y3).equals(new Color(255,107,86)))
  43. {
  44. robot.keyPress(KeyEvent.VK_1);//技能1
  45. //robot.keyPress(KeyEvent.VK_2);//技能2
  46. //robot.keyPress(KeyEvent.VK_3);//技能3
  47. //robot.keyPress(KeyEvent.VK_4);//打怪1
  48. }
  49. else
  50. {
  51. robot.keyPress(KeyEvent.VK_TAB);
  52. robot.keyRelease(KeyEvent.VK_TAB);
  53. }
  54. }
  55. //System.out.println(MyActionListener.myTimer.getDelay());//改变加血速度测试
  56. if(!robot.getPixelColor(x,y).equals(new Color(255,75,53)))
  57. {
  58. ViewFlow.setText1("提示:请启动游戏");
  59. //System.out.println(ViewFlow.slider1.getValue());//测试1
  60. //System.out.println(ViewFlow.slider2.getValue());//测试2
  61. }
  62. else if(  robot.getPixelColor(x2,y2).equals(new Color(255,75,53))       //加血位置与血的颜色相等
  63. ||robot.getPixelColor(x,y).equals(robot.getPixelColor(x2,y2))   //加血位置与指定的理想的血的位置的颜色相等
  64. /*
  65. ||robot.getPixelColor(x2,y2).equals(new Color(255,159,147))     //加血位置与指血的颜色1比较
  66. ||robot.getPixelColor(x2,y2).equals(new Color(247,193,186))     //加血位置与指血的颜色2比较
  67. ||robot.getPixelColor(x2,y2).equals(new Color(228,103,88))      //加血位置与指血的颜色3比较
  68. ||robot.getPixelColor(x2,y2).equals(new Color(245,72,51))       //加血位置与指血的颜色4比较
  69. ||robot.getPixelColor(x2,y2).equals(new Color(255,183,174))     //加血位置与指血的颜色5比较
  70. ||robot.getPixelColor(x2,y2).equals(new Color(228,91,75))       //加血位置与指血的颜色6比较
  71. ||robot.getPixelColor(x2,y2).equals(new Color(248,73,52))       //加血位置与指血的颜色7比较
  72. ||robot.getPixelColor(x2,y2).equals(new Color(225,195,188))     //加血位置与指血的颜色8比较
  73. ||robot.getPixelColor(x2,y2).equals(new Color(235,141,130))     //加血位置与指血的颜色9比较
  74. ||robot.getPixelColor(x2,y2).equals(new Color(235,69,49))       //加血位置与指血的颜色10比较
  75. ||robot.getPixelColor(x2,y2).equals(new Color(239,154,144))     //加血位置与指血的颜色11比较
  76. */
  77. )
  78. {
  79. ViewFlow.setText1("不需加血");
  80. }
  81. else if(  robot.getPixelColor(x,y).equals(new Color(255,75,53))//加血
  82. &&!robot.getPixelColor(x,y).equals(robot.getPixelColor(x2,y2))
  83. )
  84. {
  85. robot.keyPress(KeyEvent.VK_F8);//加血的键位
  86. //ViewFlow.setText1("自动加血开始");
  87. }
  88. }
  89. catch(AWTException eException1){}
  90. }
  91. }
package game;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.lang.*;
import java.io.*;class MyActionListener2 implements ActionListener//核心类(实现主要功能){static int ip=0;public void actionPerformed(ActionEvent e2){try{Robot robot=new Robot();int x=73,y=23,x2=ViewFlow.slider1.getValue(),y2=23,x3=228,y3=26,x4=0,y4=0;
/*
int i=ViewFlow.slider1.getValue(),j=23,k=0;{try{Robot rb=new Robot();while(k<1){ rb.mouseMove(i,j);rb.getPixelColor(i,j);System.out.print((k++)+": "+rb.getPixelColor(i,j)+": ");System.out.println("(i="+(i++)+",j="+j+");");}}catch(AWTException e3){}}
*/if(robot.getPixelColor(x,y).equals(new Color(255,75,53))&&MyActionListener2.ip==1)//自动打怪{robot.keyPress(KeyEvent.VK_5);//捡东西if(  robot.getPixelColor(x3,y3).equals(new Color(255,107,87))||robot.getPixelColor(x3,y3).equals(new Color(255,107,86))){robot.keyPress(KeyEvent.VK_1);//技能1//robot.keyPress(KeyEvent.VK_2);//技能2//robot.keyPress(KeyEvent.VK_3);//技能3//robot.keyPress(KeyEvent.VK_4);//打怪1}else{robot.keyPress(KeyEvent.VK_TAB);robot.keyRelease(KeyEvent.VK_TAB);}}//System.out.println(MyActionListener.myTimer.getDelay());//改变加血速度测试if(!robot.getPixelColor(x,y).equals(new Color(255,75,53))){ViewFlow.setText1("提示:请启动游戏");//System.out.println(ViewFlow.slider1.getValue());//测试1//System.out.println(ViewFlow.slider2.getValue());//测试2}                                        else if(  robot.getPixelColor(x2,y2).equals(new Color(255,75,53))       //加血位置与血的颜色相等||robot.getPixelColor(x,y).equals(robot.getPixelColor(x2,y2))   //加血位置与指定的理想的血的位置的颜色相等/*||robot.getPixelColor(x2,y2).equals(new Color(255,159,147))     //加血位置与指血的颜色1比较 ||robot.getPixelColor(x2,y2).equals(new Color(247,193,186))     //加血位置与指血的颜色2比较 ||robot.getPixelColor(x2,y2).equals(new Color(228,103,88))      //加血位置与指血的颜色3比较 ||robot.getPixelColor(x2,y2).equals(new Color(245,72,51))       //加血位置与指血的颜色4比较 ||robot.getPixelColor(x2,y2).equals(new Color(255,183,174))     //加血位置与指血的颜色5比较 ||robot.getPixelColor(x2,y2).equals(new Color(228,91,75))       //加血位置与指血的颜色6比较 ||robot.getPixelColor(x2,y2).equals(new Color(248,73,52))       //加血位置与指血的颜色7比较 ||robot.getPixelColor(x2,y2).equals(new Color(225,195,188))     //加血位置与指血的颜色8比较 ||robot.getPixelColor(x2,y2).equals(new Color(235,141,130))     //加血位置与指血的颜色9比较 ||robot.getPixelColor(x2,y2).equals(new Color(235,69,49))       //加血位置与指血的颜色10比较||robot.getPixelColor(x2,y2).equals(new Color(239,154,144))     //加血位置与指血的颜色11比较*/){ViewFlow.setText1("不需加血");}else if(  robot.getPixelColor(x,y).equals(new Color(255,75,53))//加血&&!robot.getPixelColor(x,y).equals(robot.getPixelColor(x2,y2))){robot.keyPress(KeyEvent.VK_F8);//加血的键位//ViewFlow.setText1("自动加血开始");   }}catch(AWTException eException1){}}}
Java代码
  1. package game;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.event.*;
  6. import java.lang.*;
  7. import java.io.*;
  8. class MyActionListener3 implements ActionListener
  9. {
  10. public void actionPerformed(ActionEvent e3)
  11. {
  12. MyActionListener.myTimer.stop();
  13. ViewFlow.setText1("       外挂程序已停止");
  14. }
  15. }
package game;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.lang.*;
import java.io.*;class MyActionListener3 implements ActionListener{public void actionPerformed(ActionEvent e3){MyActionListener.myTimer.stop();ViewFlow.setText1("       外挂程序已停止");}}
Java代码
  1. package game;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.event.*;
  6. import java.lang.*;
  7. import java.io.*;
  8. class MyActionListener4 implements ActionListener
  9. {
  10. public void actionPerformed(ActionEvent e7)
  11. {
  12. if(e7.getSource()==ViewFlow.helpMenuItem1)//打开使用帮助网页
  13. {
  14. try
  15. {
  16. Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://blog.csdn.net/sunnyjavamoon/archive/2006/10/27/1352772.aspx");
  17. }
  18. catch(IOException eIO){}
  19. }
  20. else if(e7.getSource()==ViewFlow.helpMenuItem2)//打开在线更新网页
  21. {
  22. try
  23. {
  24. Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://blog.csdn.net/sunnyjavamoon/archive/2006/11/04/1366552.aspx");
  25. }
  26. catch(IOException eIO){}
  27. }
  28. else if(e7.getSource()==ViewFlow.helpMenuItem3)//打开作者主页网页
  29. {
  30. try
  31. {
  32. Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://blog.csdn.net/SunnyJavaMoon/");
  33. }
  34. catch(IOException eIO){}
  35. }
  36. else if(e7.getSource()==ViewFlow.helpMenuItem4)//打开关于网页
  37. {
  38. try
  39. {
  40. Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://blog.csdn.net/sunnyjavamoon/archive/2006/10/27/1352772.aspx");
  41. }
  42. catch(IOException eIO){}
  43. }
  44. else if(e7.getSource()==ViewFlow.exchangeItem1)//论坛交流
  45. {
  46. try
  47. {
  48. Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://vip3.getbbs.com/Board/TList.aspx?BID=5177");
  49. }
  50. catch(IOException eIO){}
  51. }
  52. else if(e7.getSource()==ViewFlow.exchangeItem2)//论坛主页
  53. {
  54. try
  55. {
  56. Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://ljf365.getbbs.com");
  57. }
  58. catch(IOException eIO){}
  59. }
  60. else if(e7.getSource()==ViewFlow.jbt3)//论坛主页
  61. {
  62. try
  63. {
  64. Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://blog.csdn.net/sunnyjavamoon/archive/2006/11/04/1366552.aspx");
  65. }
  66. catch(IOException eIO){}
  67. }
  68. }
  69. }
package game;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.lang.*;
import java.io.*;class MyActionListener4 implements ActionListener{public void actionPerformed(ActionEvent e7){if(e7.getSource()==ViewFlow.helpMenuItem1)//打开使用帮助网页{try{Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://blog.csdn.net/sunnyjavamoon/archive/2006/10/27/1352772.aspx");  }catch(IOException eIO){}}else if(e7.getSource()==ViewFlow.helpMenuItem2)//打开在线更新网页{try{Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://blog.csdn.net/sunnyjavamoon/archive/2006/11/04/1366552.aspx");  }catch(IOException eIO){}}else if(e7.getSource()==ViewFlow.helpMenuItem3)//打开作者主页网页{try{Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://blog.csdn.net/SunnyJavaMoon/");  }catch(IOException eIO){}}else if(e7.getSource()==ViewFlow.helpMenuItem4)//打开关于网页{try{Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://blog.csdn.net/sunnyjavamoon/archive/2006/10/27/1352772.aspx");  }catch(IOException eIO){}}else if(e7.getSource()==ViewFlow.exchangeItem1)//论坛交流{try{Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://vip3.getbbs.com/Board/TList.aspx?BID=5177");  }catch(IOException eIO){}}else if(e7.getSource()==ViewFlow.exchangeItem2)//论坛主页{try{Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://ljf365.getbbs.com");  }catch(IOException eIO){}}else if(e7.getSource()==ViewFlow.jbt3)//论坛主页{try{Runtime.getRuntime().exec("\"C:\\Program  Files\\Internet  Explorer\\iexplore.exe\"http://blog.csdn.net/sunnyjavamoon/archive/2006/11/04/1366552.aspx");  }catch(IOException eIO){}}}}
Java代码
  1. package game;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.event.*;
  6. import java.lang.*;
  7. import java.io.*;
  8. class MyActionListener implements ActionListener
  9. {
  10. static Timer myTimer=new Timer(1500,new MyActionListener2());//速度控制
  11. public void actionPerformed(ActionEvent e)
  12. {
  13. ViewFlow.setText1("        外挂程序启动中......");
  14. MyActionListener.myTimer.start();
  15. }
  16. }
package game;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.lang.*;
import java.io.*;class MyActionListener implements ActionListener{static Timer myTimer=new Timer(1500,new MyActionListener2());//速度控制    public void actionPerformed(ActionEvent e){ViewFlow.setText1("        外挂程序启动中......");                               MyActionListener.myTimer.start();                      }}
Java代码
  1. package game;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.event.*;
  6. import java.lang.*;
  7. import java.io.*;
  8. class MyChangeListener1 implements ChangeListener
  9. {
  10. public void stateChanged(ChangeEvent e4)
  11. {
  12. ViewFlow.setText2("加血位置:"+ViewFlow.slider1.getValue()+"/170");
  13. }
  14. }
package game;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.lang.*;
import java.io.*;class MyChangeListener1 implements ChangeListener{public void stateChanged(ChangeEvent e4){ViewFlow.setText2("加血位置:"+ViewFlow.slider1.getValue()+"/170");}}
Java代码
  1. package game;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.event.*;
  6. import java.lang.*;
  7. import java.io.*;
  8. class MyChangeListener2 implements ChangeListener
  9. {
  10. public void stateChanged(ChangeEvent e5)
  11. {
  12. ViewFlow.setText3("加血速度:"+ViewFlow.slider2.getValue()+" 毫秒/次");
  13. MyActionListener.myTimer.setDelay(ViewFlow.slider2.getValue());
  14. }
  15. }
package game;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.lang.*;
import java.io.*;class MyChangeListener2 implements ChangeListener{public void stateChanged(ChangeEvent e5){ViewFlow.setText3("加血速度:"+ViewFlow.slider2.getValue()+" 毫秒/次");MyActionListener.myTimer.setDelay(ViewFlow.slider2.getValue());}}
Java代码
  1. package game;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.event.*;
  6. import java.lang.*;
  7. import java.io.*;
  8. //界面类
  9. class ViewFlow
  10. {
  11. Container jfContainer=null;
  12. JButton jbt1=null;
  13. JButton jbt2=null;
  14. static JButton jbt3=null;
  15. JPanel jp1=null;
  16. JPanel jp2=null;
  17. JPanel jp3=null;
  18. JPanel jp4=null;
  19. static JSlider slider1=null;
  20. static JSlider slider2=null;
  21. static JTextField jf1=new JTextField("请启动游戏",15);
  22. static JTextField jf2=new JTextField("加血位置:100"+"/170",15);
  23. static JTextField jf3=new JTextField("加血速度:1500"+" 毫秒/次",15);
  24. static JRadioButton jrb1=null;
  25. static JRadioButton jrb2=null;
  26. JMenuBar jmb=null;
  27. JMenu helpMenu=null;
  28. static JMenuItem helpMenuItem1=null;
  29. static JMenuItem helpMenuItem2=null;
  30. static JMenuItem helpMenuItem3=null

和Sun一起开源(武林外传游戏外挂Java源代码) - 博客版相关推荐

  1. 和Sun一起开源(武林外传游戏外挂Java源代码) - 论坛版

    以下是我在大三时,武林外传游戏还在公测时写的一个外挂,辅助玩游戏.以前在大学时用着很好用,和大家共享出来.希望有朋友能够进行重构,发布一些更好用的JAVA实现的外挂程序. 由于这是本人的处女做,所以代 ...

  2. 和Sun一起开源(武林外传游戏外挂Java源代码)

    package game; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.e ...

  3. java毕业设计博客管理系统Mybatis+系统+数据库+调试部署

    java毕业设计博客管理系统Mybatis+系统+数据库+调试部署 java毕业设计博客管理系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开 ...

  4. 最值得收藏的java技术博客(Java篇)

    第一个:java_my_life 作者介绍:找不到原作者信息.大概做了翻阅全部是2012年的博客. 博客主要内容:主要内容是关于Java设计模式的一些讲解和学习笔记,在相信对学习设计模式的同学帮助很大 ...

  5. [java手把手教程][第二季]java后端博客系统文章系统——No10

    项目github地址:github.com/pc859107393- 实时项目同步的地址是国内的码云:git.oschina.net/859107393/m- 我的简书首页是:www.jianshu. ...

  6. java毕业论文_【毕业论文】基于java的博客网站设计与开发毕业论文(word文档)

    <[毕业论文]基于java的博客网站设计与开发毕业论文.doc>由会员分享,可免费在线阅读全文,更多与<[毕业论文]基于java的博客网站设计与开发毕业论文(word文档)>相 ...

  7. JAVA个人博客系统设计与实现 毕业设计开题报告

      本科生毕业论文 基于Java(springboot框架)个人博客系统 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本科生毕业 ...

  8. java个人博客系统代码下载_java个人博客系统代码

    利用现存框架可以更快开发系统.所以选 择 Java 技术作为 blog 的开发工具. 为了增加系统的吞吐量,提高并发 +申请认证 文档贡献者 胡进全 计算机网络管理员 ...... javaweb课程 ...

  9. 记录自己第一个java学习博客

    记录自己第一个java学习博客 阿里java规范 弄懂 JRE.JDK.JVM 之间的区别与联系 DOS常用命令 常用mac终端命令 今天我学习了java第一个程序打印出helloworld! pac ...

最新文章

  1. Hyperledger Fabric 核心模块(6)configtxlator工具
  2. 涨姿势时间:为什么飞机的往返时间会不一样?
  3. 如何实现两个数据库之间的同步
  4. zookeeper conceptual
  5. LeetCode1.两数之和
  6. amp sqlserver中 什么意思_股票术语中的做空到底是什么意思?
  7. Regex Tester 安装教程
  8. Git-第二篇廖雪峰Git教程学习笔记(1)基本命令,版本回退
  9. JAVA数据类型的强制转换
  10. 直觉模糊集的基本要素
  11. 74151/74LS151 8选1数据选择器
  12. Android 10.0 PackageManagerService(四)APK安装流程-[Android取经之路]
  13. 合作式智能运输系统车路协同云控系统V2X设备接入技术规范
  14. ppt文件怎么压缩,ppt压缩的办法步骤
  15. 微博爬虫数据分析可视化程序设计报告
  16. java 当月最后一天_java中取得当月最后一天的四种方法
  17. Netty实战 IM即时通讯系统(一)IM系统简介
  18. 华为***的基本配置
  19. C语言中的大小端转换与高低位颠倒
  20. 火焰和烟雾粒子系统制作

热门文章

  1. 印度的美女和软件咱不得不服--不服气得你就进来看
  2. python爬虫之多线程threading、多进程multiprocessing、协程aiohttp 批量下载图片
  3. 人脸检测之MTCNN:测试代码理解
  4. Android TV-Recyclerview添加按键音
  5. ionic4 混合移动开发 (前世今生)
  6. 免费版的mp3格式转换器有哪些?这三款软件帮你实现!
  7. Java实现将JSON文件导出到Excel
  8. 搜狗手机输入法 for MeeGo 平台今日独家登场
  9. Python爬取和分析旅游数据
  10. python 递归函数返回值