相信非常多程序員都玩游戲,比方LOL :有時候想打人機對戰(玩家對戰小心別人舉報你!
),純屬為了拿經驗和金幣,而本身不想玩,但假設玩家不操作。那么非常快就會被系統覺得是掛機,從而得不到經驗和金幣。所以,本文用java實現簡單的程序,幫你實現偽掛機。能夠自己主動吃經驗、放技能、升級技能。
。
。你僅僅須要開啟程序,然后進入游戲畫面就可以。。。
。
事實上非常easy,主要利用java的robot類來模擬玩家的鼠標點擊(移動)和按鍵輸入(升級或者智能施法),略微學過java的人都能夠非常快搞定。
。。這里不是那種高級外掛,那個是須要也許系統的句柄,然后對玩家操作和游戲系統的信息協議進行攔截、改動等動作,小心騰訊找你。。。
貼上代碼:
package com.lol.game;
import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
/**
*
* LOL偽掛機
* LOL進入游戲后的代打小程序,模擬鼠標點擊 、技能升級和施放
* 須要設置所有為智能施法,小地圖在右下角
*
* @author Administrator
*/
public class LOL_Mouse {
static int size=40;///lol右下角的小地圖標志性size。不同屏幕大小不同
public static void main(String[] args) throws AWTException {
Robot robot = new Robot();
//獲取屏幕大小
Dimension screenSize =Toolkit.getDefaultToolkit().getScreenSize();
double height=screenSize.height/2;
double width=screenSize.width/2;
double theta=Math.atan(height/width);
///得到屏幕中心偏右上方的坐標,便於智能施放技能
int jinengy=(int) (height-50*Math.sin(theta));
int jinengx=(int) (width+50*Math.cos(theta));
///點擊右下角的地圖上的坐標,不同屏幕大小須要改動140為其他適應的值
int x=(int)width*2-140-size;
int y=(int) height*2-140+size;
int i=1;
///無限循環來運行操作
while(true){
robot.mouseMove(x,y);
robot.mousePress(InputEvent.BUTTON3_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK);
robot.delay(5000);
/////下面是砸技能!!!
是砸不是放
robot.keyPress(KeyEvent.VK_Q);
robot.keyRelease(KeyEvent.VK_Q);
robot.delay(500);
robot.keyPress(KeyEvent.VK_W);
robot.keyRelease(KeyEvent.VK_W);
robot.delay(500);
robot.keyPress(KeyEvent.VK_E);
robot.keyRelease(KeyEvent.VK_E);
robot.delay(500);
robot.keyPress(KeyEvent.VK_R);
robot.keyRelease(KeyEvent.VK_R);
robot.delay(500);
///每次選擇一個技能升級,降低電腦響應按鍵輸出的負擔
if(1==i){
////升級技能!
!!
////ctrl+q
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_Q);
robot.keyRelease(KeyEvent.VK_Q);
robot.keyRelease(KeyEvent.VK_CONTROL);
i++;
}else if(2==i){
////ctrl+w
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_W);
robot.keyRelease(KeyEvent.VK_W);
robot.keyRelease(KeyEvent.VK_CONTROL);
i++;
}else if(3==i){
////ctrl+e
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_E);
robot.keyRelease(KeyEvent.VK_E);
robot.keyRelease(KeyEvent.VK_CONTROL);
i++;
}else if(4==i){
////ctrl+r
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_R);
robot.keyRelease(KeyEvent.VK_R);
robot.keyRelease(KeyEvent.VK_CONTROL);
i=1;
}
}
}
}
