2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 和Sun一起开源(武林外传游戏外挂Java源代码) - 论坛版

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

时间:2018-08-01 08:07:13

相关推荐

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

以下是我在大三时,武林外传游戏还在公测时写的一个外挂,辅助玩游戏。以前在大学时用着很好用,和大家共享出来。希望有朋友能够进行重构,发布一些更好用的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\"/sunnyjavamoon/archive//10/27/1352772.aspx"); }catch(IOException eIO){}}else if(e7.getSource()==ViewFlow.helpMenuItem2)//打开在线更新网页{try{Runtime.getRuntime().exec("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"/sunnyjavamoon/archive//11/04/1366552.aspx"); }catch(IOException eIO){}}else if(e7.getSource()==ViewFlow.helpMenuItem3)//打开作者主页网页{try{Runtime.getRuntime().exec("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"/SunnyJavaMoon/"); }catch(IOException eIO){}}else if(e7.getSource()==ViewFlow.helpMenuItem4)//打开关于网页{try{Runtime.getRuntime().exec("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"/sunnyjavamoon/archive//10/27/1352772.aspx"); }catch(IOException eIO){}}else if(e7.getSource()==ViewFlow.exchangeItem1)//论坛交流{try{Runtime.getRuntime().exec("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"/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\""); }catch(IOException eIO){}}else if(e7.getSource()==ViewFlow.jbt3)//论坛主页{try{Runtime.getRuntime().exec("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"/sunnyjavamoon/archive//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}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。