Originally Posted by
Noooooooob
that sounds really great... i used the standard bot which only can ready up one tank... additional i lag something heavy on my "w" key so the tank (amx 13 90 = fast) can scout enemy tanks on some maps... where are no walls in the way
...
could u upload your modified bot? random movements and auto switching between the tanks is definitely a NEED for me
Code:
package m2bot2;
import java.awt.AWTException;
import java.aw*****lor;
import java.awt****bot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
public class M2bot2 {
public static void main(String[] args) throws InterruptedException {
int x;
int l=0, n=0, mo=0;
try {
Thread.sleep(5000);
Robot r = new Robot();
Robot robot = new Robot();
while(true){
// Bot will choose the first tank in a row -->
//1225pix for 6 tanks
for (x=174;x<1051;x=x+174){
//Robot r = new Robot();
r.mouseMove(x,655);
r.delay(50);
r.mousePress( InputEvent.BUTTON1_MASK );
r.delay(50);
r.mouseRelease( InputEvent.BUTTON1_MASK );
r.delay(50);
r.mousePress( InputEvent.BUTTON1_MASK );
r.delay(50);
r.mouseRelease( InputEvent.BUTTON1_MASK );
r.delay(1000);
// Bot will find out if button Battle is click-able
// If isn't then bot will choose another tank -->
//Robot robot = new Robot();
Color c = robot.getPixelColor(663, 60);
Color red_Battle = new Color(231,50,42);
if(c.getRGB() == red_Battle.getRGB()){
r.delay(50);
r.mouseMove(663, 60);
r.delay(50);
r.mousePress( InputEvent.BUTTON1_MASK );
r.delay(50);
r.mouseRelease( InputEvent.BUTTON1_MASK );
r.delay(50);
r.mousePress( InputEvent.BUTTON1_MASK );
r.delay(50);
r.mouseRelease( InputEvent.BUTTON1_MASK );
r.delay(60000);
//r.delay(20000); // Čas potrebný pre načítanie mapy
// <--------------------------
// <editor-fold desc="In Battle">
//Color end = robot.getPixelColor(1147, 706);
Color end2 = robot.getPixelColor(6, 538);
//Color end3 = robot.getPixelColor(214,159);
//Color k = new Color(53,51,41);
Color zero = new Color(5,5,0);
//Color scor = new Color(77,74,63);
// Loop sa bude opakovať pokiaľ tank nebude zničený -->
//while(end.getRGB() != k.getRGB() || end2.getBlue() <= zero.getBlue() || end3.getRGB() == scor.getRGB()){
while(end2.getBlue() == zero.getBlue()){
// Po spustení battle sa naštartujú motory -->
if(mo<1){
r.keyPress(KeyEvent.VK_R);
r.delay(50);
r.keyRelease(KeyEvent.VK_R);
r.delay(50);
r.keyPress(KeyEvent.VK_R);
r.delay(50);
r.keyRelease(KeyEvent.VK_R);
r.delay(50);
r.keyPress(KeyEvent.VK_R);
r.delay(50);
r.keyRelease(KeyEvent.VK_R);
r.delay(200);
System.out.println("Na začiatku battle sa tank pohol.");
mo++;
}
// <-------------
// If speed is 0 km/h, tank will go back a little
//and then forward and turn left -->
Color spd = robot.getPixelColor(72, 572);
Color nula = new Color(63,61,41);
if(spd.getRGB() == nula.getRGB()){
r.delay(50);
r.keyPress(KeyEvent.VK_F);
r.delay(50);
r.keyRelease(KeyEvent.VK_F);
r.delay(50);
r.keyPress(KeyEvent.VK_F);
r.delay(50);
r.keyRelease(KeyEvent.VK_F);
r.delay(50);
r.keyPress(KeyEvent.VK_F);
r.delay(50);
r.keyRelease(KeyEvent.VK_F);
r.delay(800);
r.keyPress(KeyEvent.VK_A);
r.delay(1000);
r.keyRelease(KeyEvent.VK_F);
r.delay(50);
r.keyRelease(KeyEvent.VK_A);
r.delay(50);
r.keyPress(KeyEvent.VK_R);
r.delay(50);
r.keyRelease(KeyEvent.VK_R);
r.delay(50);
r.keyPress(KeyEvent.VK_R);
r.delay(50);
r.keyRelease(KeyEvent.VK_R);
r.delay(1000);
System.out.println("Speed 0 km/h.");
}
System.out.println("Za Zero speed.");
// <-------------
// If enemies are on our base, bot will press F3
// which is command for team - Back To Base -->
Color btb = robot.getPixelColor(531, 148);
Color alert = new Color(160,45,41);
if(l<1){
if(btb.getRed() > alert.getRed() && btb.getGreen() < alert.getGreen() && btb.getBlue() < alert.getBlue()){
r.delay(50);
r.keyPress(KeyEvent.VK_F3);
r.delay(50);
r.keyRelease(KeyEvent.VK_F3);
r.delay(50);
r.keyPress(KeyEvent.VK_F3);
r.delay(50);
r.keyRelease(KeyEvent.VK_F3);
r.delay(50);
System.out.println("Capture!!!!!!!!!");
l++;
}
//System.out.println("No BackToBase.");
}
// <------------ BackToBase will appears only once
System.out.println("Za Cap.");
// HP<40% = Help -->
Color help = robot.getPixelColor(88, 538);
Color hp = new Color(183,84,0);
if(n<1){
if(help.getBlue() > hp.getBlue()){
r.delay(50);
r.keyPress(KeyEvent.VK_F7);
r.delay(50);
r.keyRelease(KeyEvent.VK_F7);
r.delay(50);
r.keyPress(KeyEvent.VK_F7);
r.delay(50);
r.keyRelease(KeyEvent.VK_F7);
r.delay(50);
System.out.println("Help!!!!!!!!!");
n++;
}
//System.out.println("No Help.");
}
System.out.println("Za Help.");
// <------------ Help only once
end2 = robot.getPixelColor(6, 538);
}
// <------------ End of the Battle-loop (tank is finished) // </editor-fold>
// Bot will exit battle --->
r.delay(1000);
r.keyPress(KeyEvent.VK_ESCAPE);
r.delay(300);
r.keyRelease(KeyEvent.VK_ESCAPE);
r.delay(300);
r.mouseMove(682,383);
r.delay(50);
r.mousePress( InputEvent.BUTTON1_MASK );
r.delay(50);
r.mouseRelease( InputEvent.BUTTON1_MASK );
r.delay(100);
r.mouseMove(733,436);
r.delay(50);
r.mousePress( InputEvent.BUTTON1_MASK );
r.delay(50);
r.mouseRelease( InputEvent.BUTTON1_MASK );
r.delay(10000);
System.out.println("Vypínam battle.");
// <------------
}//End of Battle
}//End of red Battle buttton IF
System.out.println("Koniec infinite while loop.");
r.delay(5000);
}// <-------- End of infinite-while-loop
}
catch (AWTException e) {
}
}
}
It is not completed yet. Some comments are in English language and others in Slovak.
I know the code is not perfect - it's my first program in Java.