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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值