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

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

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

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();}}
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){}}}
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("       外挂程序已停止");}}
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){}}}}
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();                      }}
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");}}
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());}}
package game;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.lang.*;
import java.io.*;//界面类
class ViewFlow
{Container jfContainer=null;JButton jbt1=null;JButton jbt2=null;static JButton jbt3=null;JPanel jp1=null;JPanel jp2=null;JPanel jp3=null;JPanel jp4=null;static JSlider slider1=null;static JSlider slider2=null;static JTextField jf1=new JTextField("请启动游戏",15);static JTextField jf2=new JTextField("加血位置:100"+"/170",15);static JTextField jf3=new JTextField("加血速度:1500"+" 毫秒/次",15);static JRadioButton jrb1=null;static JRadioButton jrb2=null;JMenuBar jmb=null;JMenu helpMenu=null;static JMenuItem helpMenuItem1=null;static JMenuItem helpMenuItem2=null;static JMenuItem helpMenuItem3=null;static JMenuItem helpMenuItem4=null;JMenu hightSet=null;static JMenuItem hightSetItem1=null;static JMenuItem hightSetItem2=null;static JMenuItem hightSetItem3=null;JMenu exchangeMenu=null;static JMenuItem exchangeItem1=null;static JMenuItem exchangeItem2=null;ButtonGroup bg=null;ViewFlow(){JFrame jf=new JFrame("武林外挂1.0");jf.setSize(218,490);jf.setLocation(550,70);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jfContainer=jf.getContentPane();jfContainer.setLayout(new GridLayout(4,1,10,15));//面版jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();//jp1.setSize(20,5);//jp2.setSize(30,30);jp1.setLayout(new FlowLayout(FlowLayout.CENTER,20,5));jp2.setLayout(new FlowLayout(FlowLayout.CENTER,20,5));jp3.setLayout(new FlowLayout(FlowLayout.CENTER,20,5));jp1.setBorder(BorderFactory.createTitledBorder("主控制区"));jp2.setBorder(BorderFactory.createTitledBorder("加血位置调整"));jp3.setBorder(BorderFactory.createTitledBorder("加血速度调整"));jp4.setBorder(BorderFactory.createTitledBorder("打怪模式设定"));jbt1=new JButton("开启");jbt2=new JButton("停止");jbt3=new JButton("在线升级");jbt3.setSize(10,20);jfContainer.add(jp1);//框架加入面版1jfContainer.add(jp2);//框架加入面版2jfContainer.add(jp3);//框架加入面版3 jfContainer.add(jp4);//框架加入面版4//滑杆1slider1=new JSlider(75,170,100);slider1.setPaintTicks(true);slider1.setMajorTickSpacing(20);slider1.setMinorTickSpacing(2);slider1.setSnapToTicks(true);//slider1.setPaintLabels(true);//显示刻度数字slider1.setPaintTrack(true);//滑杆2slider2=new JSlider(300,3000,1500);slider2.setPaintTicks(true);slider2.setMajorTickSpacing(300);slider2.setMinorTickSpacing(50);slider2.setSnapToTicks(true);//slider2.setPaintLabels(true);//显示刻度数字slider2.setPaintTrack(true);//单选按键jrb1=new JRadioButton("手动打怪");jrb2=new JRadioButton("自动打怪");bg=new ButtonGroup();//菜单jmb=new JMenuBar();jmb.setOpaque(true);jf.setJMenuBar(jmb);hightSet=buildHeightFileNenu();//生成高级选项菜单jmb.add(buildHeightFileNenu());//加载菜单exchangeMenu=builExchangeFileNenu();//生成问题交流菜单jmb.add(exchangeMenu);//加载菜单helpMenu=buildHelpFileMenu();//生成帮助菜单jmb.add(helpMenu);//加载菜单//面版jp1.add(jbt1);//面版1加入按键jp1.add(jbt2);//面版1加入按键jp1.add(jf1);bg.add(jrb1);bg.add(jrb2);jp2.add(slider1);jp2.add(jf2);jp3.add(slider2);   jp3.add(jf3);jp4.add(jrb1);jp4.add(jrb2);jp4.add(jbt3);jf.setVisible(true);}//  public JMenu buildHeightFileNenu(){JMenu file2=new JMenu("高级设置");//菜单1hightSetItem1=new JMenuItem("加血速度");//菜单2_菜单项1   hightSetItem2=new JMenuItem("加血位置");//菜单2_菜单项2hightSetItem3=new JMenuItem("打怪模式");//菜单3_菜单项3file2.add(hightSetItem1);file2.addSeparator();file2.add(hightSetItem2);file2.addSeparator();file2.add(hightSetItem3);return file2;} public JMenu builExchangeFileNenu(){JMenu file2=new JMenu("问题交流");//菜单2exchangeItem1=new JMenuItem("论坛交流");//菜单2_菜单项1   exchangeItem2=new JMenuItem("龙旋风论坛");//菜单2_菜单项2file2.add(exchangeItem1);file2.addSeparator();file2.add(exchangeItem2);return file2;} public JMenu buildHelpFileMenu()//菜单内容生成{JMenu file1=new JMenu("帮助");//菜单3helpMenuItem1=new JMenuItem("使用帮助");//菜单1_菜单项1   helpMenuItem2=new JMenuItem("在线更新");//菜单1_菜单项2helpMenuItem3=new JMenuItem("作者主页");//菜单1_菜单项2helpMenuItem4=new JMenuItem("关于");//菜单1_菜单项3file1.add(helpMenuItem1);file1.addSeparator();file1.add(helpMenuItem2);file1.addSeparator();file1.add(helpMenuItem3);file1.addSeparator();file1.add(helpMenuItem4);return file1;}public void addActionlistener(){jbt1.addActionListener(new MyActionListener());      jbt2.addActionListener(new MyActionListener3());jbt3.addActionListener(new MyActionListener4());slider1.addChangeListener(new MyChangeListener1());slider2.addChangeListener(new MyChangeListener2());jrb1.addItemListener(new MyItemListener1());jrb2.addItemListener(new MyItemListener1());MyActionListener4 MenuItemListener=new MyActionListener4();//菜单监视器//帮助菜单helpMenuItem1.addActionListener(MenuItemListener);helpMenuItem2.addActionListener(MenuItemListener);helpMenuItem3.addActionListener(MenuItemListener);helpMenuItem4.addActionListener(MenuItemListener);//高级设置hightSetItem1.addActionListener(MenuItemListener);hightSetItem2.addActionListener(MenuItemListener);hightSetItem3.addActionListener(MenuItemListener);//问题交流exchangeItem1.addActionListener(MenuItemListener);   exchangeItem2.addActionListener(MenuItemListener);}public static void setText1(String str){jf1.setText(str);}public static void setText2(String str){jf2.setText(str);}public static void setText3(String str){jf3.setText(str);}}
package game;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.lang.*;
import java.io.*;
class MyItemListener1 implements ItemListener{public void itemStateChanged(ItemEvent e6){if(e6.getSource()==ViewFlow.jrb1){MyActionListener2.ip=0;//手动//System.out.println(ViewFlow.ip);//测试单选键1}else if(e6.getSource()==ViewFlow.jrb2){MyActionListener2.ip=1;//自动//System.out.println(ViewFlow.ip);//测试单选键2}}}

和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. java21点游戏源代码_21点游戏(java源代码)

    import java.util.ArrayList; import java.util.Random; import java.util.Scanner; /** * 21点游戏. * 1.洗牌 * ...

  4. 关于利用JAVA开发游戏外挂的几点思考

    能够利用JAVA来编游戏外挂,这真的是一个让人很感兴趣的话题. 在讨论这个题目之前,我们首先来给不玩网络游戏的人补一下课,首先网络游戏的概念大家应该都是知道了,从虾米最早接触的文字MUD<重出江 ...

  5. 【Java】十款经典游戏的Java版本(开源)

    转自 http://blog.csdn.net/qq_32353771/article/details/53899167 开源Java小游戏 前言 看到标题可能有人要笑我,用Java写游戏?没办法,毕 ...

  6. SUN:开源在Web2.0时代

    [IT168 专稿]这一段时间的SUN公司颇为不平静, 07年秋季SUN发布了其重量级处理器产品Sparc T2,各项指标达到了行业内的顶尖水平.去年年末又宣布收购了业内影响力巨大的开源数据库厂商My ...

  7. 开源战略游戏源码_开源的历史告诉我们关于战略优势的知识

    开源战略游戏源码 自由软件运动就像许多其他运动一样开始:一群聪明开朗的人被更大的力量所控制,然后站起来,将事情掌握在自己手中. 与美国革命没什么不同. 殖民者对被英国控制感到厌倦,因此他们宣布独立,并 ...

  8. 编写贩卖《和平精英》游戏外挂,5人被判刑;苹果推出轻App码;Firefox 84.0发布|极客头条...

    整理 | 郑丽媛 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「 ...

  9. 极客日报第 31 期:编写贩卖《和平精英》游戏外挂,5人被判刑;苹果推出轻App码

    文章目录 互联网快讯 程序员专属 Github 每日精选 CSDN 社区优质博文精选 互联网快讯 1.编写贩卖<和平精英>游戏外挂,湖北襄阳 5 人被判刑 据 "湖北高院&quo ...

最新文章

  1. Linux 学习_在Linux下面安装eclipse
  2. 版本不一致_一致哈希:Beyond the basics
  3. C#中Array.Sort()方法分析
  4. C#数据结构-单链表
  5. java编程思想学习(2):对象
  6. php设置上传文件大小限制_php修改上传文件大小限制实例详解
  7. python统计字数分布可视化展示_数据的概率分布并用python实现概率分布可视化图...
  8. 关于“数据分析”如何快速入门一些基本思路
  9. Net中的AOP系列之《方法执行前后——边界切面》
  10. Chrome DevTools
  11. 浅谈Rsync+Inotify实时同步
  12. [bbk4965] 第102集 -第13章 - 表空间管理 00
  13. React native 分享 友盟分享SDK
  14. C#解压zip和rar文件
  15. DES加密解密-java
  16. MacOS为什么无法删除ABC或日语输入法
  17. 微信聊天记录恢复记录
  18. Java-底层建筑-JVM-第3篇-StringTable
  19. ASCⅡCharacters (ASCⅡ码对照表)
  20. Part 2.2 离散类别值与连续值

热门文章

  1. 取消sourse insight输入较长代码时,代码就自动换行
  2. 杭州一行,感悟颇多。初闻不知曲中意,再见已然操千曲。
  3. 上帝捏人玩具MetaHuman重大更新!几分钟捏一张精细到发丝的脸
  4. oracle表空间文件压缩,收缩Oracle表空间物理文件
  5. 线性二自由度汽车模型对前轮角阶跃输入的稳态响应分析(matlab/simulink)
  6. 霍尔电流传感器在直流列头柜的应用
  7. Enterprise JavaBeans导论[转]
  8. 回顾HTML5省技能大赛(html5交互融媒体内容设计与制作)
  9. Linux ❉ 文件目录中常用命令 pwd / ls 详解
  10. 戴文的Linux内核专题:03 驱动程序【转】