Changed Many things (Added randomnes slider, Added Updater)
This commit is contained in:
parent
e973dfc108
commit
1483658935
|
@ -28,9 +28,7 @@ public class Clicker implements Runnable{
|
||||||
private boolean autoplay;
|
private boolean autoplay;
|
||||||
private boolean doubleplayout = true;
|
private boolean doubleplayout = true;
|
||||||
private int truppenwait = 180;
|
private int truppenwait = 180;
|
||||||
|
private int randomness = 15;
|
||||||
public Clicker() {
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sleep( int ms) {
|
private void sleep( int ms) {
|
||||||
if(skipbattle)
|
if(skipbattle)
|
||||||
|
@ -121,13 +119,13 @@ public class Clicker implements Runnable{
|
||||||
modifier = 1.5f;
|
modifier = 1.5f;
|
||||||
// eingestellter wert (0.1 sec) ggf. durch 2 teilen vergangene zeit abziehen (zeit fürs setztem der letzten truppen)
|
// eingestellter wert (0.1 sec) ggf. durch 2 teilen vergangene zeit abziehen (zeit fürs setztem der letzten truppen)
|
||||||
int waittime = ( (int) (((truppenwait * 100) / modifier) - (System.currentTimeMillis()- lastwait)) );//how long to wait?
|
int waittime = ( (int) (((truppenwait * 100) / modifier) - (System.currentTimeMillis()- lastwait)) );//how long to wait?
|
||||||
|
Main.get().ui.info("Waiting for: " + waittime);
|
||||||
while (waittime > 1500 & !skipbattle) {//check for the ok-button every 3 seconds
|
while (waittime > 1500 & !skipbattle) {//check for the ok-button every 3 seconds
|
||||||
long startwait = System.currentTimeMillis();//record needed time
|
long startwait = System.currentTimeMillis();//record needed time
|
||||||
if(checkOK(end, rob)) {//check
|
if(checkOK(end, rob)) {//check
|
||||||
okcount ++;//ok button detected
|
okcount ++;//ok button detected
|
||||||
if(okcount >= okcountmin) {
|
if(okcount >= okcountmin) {
|
||||||
Main.get().ui.info("OK-button detected!");
|
Main.get().ui.info("OK-button detected!");
|
||||||
System.out.println("OK-Button-detected!");
|
|
||||||
skipbattle = true;
|
skipbattle = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -167,9 +165,9 @@ public class Clicker implements Runnable{
|
||||||
clickL(rob, cardslots[card]);//click on the card slot
|
clickL(rob, cardslots[card]);//click on the card slot
|
||||||
sleep(450);//lets Teamviewer transmit the data to the phone and let the phone some time zto sumbit the data to supercell.
|
sleep(450);//lets Teamviewer transmit the data to the phone and let the phone some time zto sumbit the data to supercell.
|
||||||
if(playout != null)//a specified playout spot
|
if(playout != null)//a specified playout spot
|
||||||
clickL(rob, playout);//click on the playout location
|
clickL(rob, playout.add(new Point(randomness)));//click on the playout location
|
||||||
else
|
else
|
||||||
clickL(rob, battle);//non specified playout spot (the battle start button is a good position to play out cards)
|
clickL(rob, battle.add(new Point(randomness)));//non specified playout spot (the battle start button is a good position to play out cards)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -221,6 +219,10 @@ public class Clicker implements Runnable{
|
||||||
autoplay = a;
|
autoplay = a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setRandmones(int rand) {
|
||||||
|
randomness = rand;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean bothset() {
|
public boolean bothset() {
|
||||||
return (end != null & battle != null);
|
return (end != null & battle != null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package mrbesen.cr.auto.clicker;
|
package mrbesen.cr.auto.clicker;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
public class Point {
|
public class Point {
|
||||||
|
|
||||||
int x = 0, y = 0;
|
int x = 0, y = 0;
|
||||||
|
@ -21,4 +23,14 @@ public class Point {
|
||||||
public Point add(int x, int y) {
|
public Point add(int x, int y) {
|
||||||
return new Point(this.x+x, this.y+y);
|
return new Point(this.x+x, this.y+y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Point(int random) {
|
||||||
|
Random rand = new Random();
|
||||||
|
x = rand.nextInt(random) - (random/2);
|
||||||
|
y = rand.nextInt(random) - (random/2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Point add(Point a) {
|
||||||
|
return new Point(a.x+x, a.y+y);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -29,6 +29,7 @@ public class PosSelector implements Runnable {
|
||||||
ui.bot.set(ui.bot.getMouse(), num);//get and save the position
|
ui.bot.set(ui.bot.getMouse(), num);//get and save the position
|
||||||
ui.info("Position saved!");
|
ui.info("Position saved!");
|
||||||
green();
|
green();
|
||||||
|
ui.setPositionDone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void green() {
|
public void green() {
|
||||||
|
|
|
@ -20,51 +20,61 @@ import javax.swing.JSlider;
|
||||||
import javax.swing.event.ChangeEvent;
|
import javax.swing.event.ChangeEvent;
|
||||||
import javax.swing.event.ChangeListener;
|
import javax.swing.event.ChangeListener;
|
||||||
|
|
||||||
public class UI implements ActionListener, ChangeListener{
|
import com.sun.istack.internal.Nullable;
|
||||||
|
|
||||||
JFrame frame = new JFrame("Clash Royale Bot · by MrBesen");;
|
public class UI implements ActionListener {
|
||||||
|
|
||||||
JPanel root = new JPanel();
|
private boolean isSelectionRunning = false; //true if an selection Thread is working,
|
||||||
JPanel top = new JPanel();
|
|
||||||
JPanel bottom = new JPanel();
|
private JFrame frame = new JFrame("Clash Royale Bot · by MrBesen");;
|
||||||
|
|
||||||
|
private JPanel root = new JPanel();
|
||||||
|
private JPanel top = new JPanel();
|
||||||
|
private JPanel bottom = new JPanel();
|
||||||
//JPanel slider = new JPanel();
|
//JPanel slider = new JPanel();
|
||||||
|
|
||||||
JMenuBar menubar = new JMenuBar();
|
private JMenuBar menubar = new JMenuBar();
|
||||||
JMenu file_ = new JMenu("File");
|
private JMenu file_ = new JMenu("File");
|
||||||
JMenuItem load = new JMenuItem();
|
private JMenuItem load = new JMenuItem();
|
||||||
JMenuItem save = new JMenuItem();
|
private JMenuItem save = new JMenuItem();
|
||||||
|
|
||||||
JCheckBox autoplay = new JCheckBox("AutoPlay");
|
|
||||||
JCheckBox doubleplace = new JCheckBox("DoublePlace");
|
|
||||||
|
|
||||||
PosSelector[] posselctors = {
|
private AutoPlayBox autoplay = new AutoPlayBox();
|
||||||
|
private JCheckBox doubleplace = new JCheckBox("DoublePlace");
|
||||||
|
|
||||||
|
private PosSelector[] posselctors = {
|
||||||
new PosSelector(this, "Battle",true, 4),
|
new PosSelector(this, "Battle",true, 4),
|
||||||
new PosSelector(this, "End Battle",true, 5),
|
new PosSelector(this, "End Battle",true, 5),
|
||||||
new PosSelector(this, "Card1",false, 0),
|
new PosSelector(this, "Card1",false, 0),
|
||||||
new PosSelector(this, "Card2",false, 1),
|
new PosSelector(this, "Card2",false, 1),
|
||||||
new PosSelector(this, "Card3",false, 2),
|
new PosSelector(this, "Card3",false, 2),
|
||||||
new PosSelector(this, "Card4", false, 3),
|
new PosSelector(this, "Card4", false, 3),
|
||||||
new PosSelector(this, "Playout", false, 6)//,
|
new PosSelector(this, "Playout", false, 6)
|
||||||
//new PosSelector(this, "Top Left", false, 7)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
JButton skip = new JButton("SKIP"); // the button, to skip waiting
|
private JButton skip = new JButton("SKIP"); // the button, to skip waiting
|
||||||
JButton start = new JButton("START");
|
private JButton start = new JButton("START");
|
||||||
JButton exit = new JButton("EXIT");
|
private JButton exit = new JButton("EXIT");
|
||||||
|
|
||||||
JLabel info = new JLabel("Define positions, to start.");
|
private JLabel info = new JLabel("Define positions, to start.");
|
||||||
|
|
||||||
//JSlider truppenwait = new JSlider(JSlider.HORIZONTAL, 1, 300, 180);
|
private Slider[] slider = {
|
||||||
//JLabel wait = new JLabel("Waittime between playouts: 18.0");
|
new Slider("Waittime: ","s", 1,300,180,-1, null, new Updater() {
|
||||||
|
@Override
|
||||||
Slider[] slider = {
|
public void update(int nummber) {
|
||||||
new Slider("Waittime: ","s", 1,300,180,-1, this, false),
|
bot.setWait(nummber);
|
||||||
new Slider("Radius of Placement: ","px",0,40,15,0,this,false)
|
}
|
||||||
|
}, false),
|
||||||
|
new Slider("Radius of Placement: ","px",0,40,15,0, null, new Updater() {
|
||||||
|
@Override
|
||||||
|
public void update(int nummber) {
|
||||||
|
bot.setRandmones(nummber);
|
||||||
|
}
|
||||||
|
},false)
|
||||||
};
|
};
|
||||||
|
|
||||||
Clicker bot = new Clicker();
|
Clicker bot = new Clicker();
|
||||||
|
|
||||||
File file = new File(".profile");
|
private File file = new File(".profile");
|
||||||
|
|
||||||
public UI() {
|
public UI() {
|
||||||
Main.get().ui = this;
|
Main.get().ui = this;
|
||||||
|
@ -87,38 +97,30 @@ public class UI implements ActionListener, ChangeListener{
|
||||||
|
|
||||||
doubleplace.setSelected(true);
|
doubleplace.setSelected(true);
|
||||||
doubleplace.setEnabled(false);
|
doubleplace.setEnabled(false);
|
||||||
|
|
||||||
// slider[0].setEnabled(false);
|
|
||||||
|
|
||||||
skip.addActionListener(this);
|
skip.addActionListener(this);
|
||||||
start.addActionListener(this);
|
start.addActionListener(this);
|
||||||
exit.addActionListener(this);
|
exit.addActionListener(this);
|
||||||
autoplay.addActionListener(this);
|
|
||||||
doubleplace.addActionListener(this);
|
doubleplace.addActionListener(this);
|
||||||
//truppenwait.addChangeListener(this);
|
|
||||||
|
|
||||||
for(PosSelector poss : posselctors) {
|
for(PosSelector poss : posselctors) {
|
||||||
top.add(poss.button);
|
top.add(poss.button);
|
||||||
}
|
}
|
||||||
|
|
||||||
bottom.add(start);
|
bottom.add(start);
|
||||||
bottom.add(skip);
|
bottom.add(skip);
|
||||||
bottom.add(exit);
|
bottom.add(exit);
|
||||||
bottom.add(autoplay);
|
bottom.add(autoplay);
|
||||||
bottom.add(doubleplace);
|
bottom.add(doubleplace);
|
||||||
bottom.add(info);
|
bottom.add(info);
|
||||||
|
|
||||||
//slider.add(truppenwait);
|
|
||||||
//slider.add(wait);
|
|
||||||
|
|
||||||
|
|
||||||
root.add(top);
|
root.add(top);
|
||||||
root.add(bottom);
|
root.add(bottom);
|
||||||
// root.add(slider);
|
|
||||||
for(Slider s : slider) {
|
for(Slider s : slider) {
|
||||||
root.add(s);
|
root.add(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
frame.add(root);
|
frame.add(root);
|
||||||
|
|
||||||
frame.setVisible(true);
|
frame.setVisible(true);
|
||||||
|
@ -133,7 +135,8 @@ public class UI implements ActionListener, ChangeListener{
|
||||||
//check for the Posselectors
|
//check for the Posselectors
|
||||||
for(PosSelector poss : posselctors) {
|
for(PosSelector poss : posselctors) {
|
||||||
if(poss.button.equals(srcb)) {
|
if(poss.button.equals(srcb)) {
|
||||||
new Thread(poss, "PositionSelector").start();
|
if(!isSelectionRunning)
|
||||||
|
new Thread(poss, "PositionSelector").start();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -166,7 +169,7 @@ public class UI implements ActionListener, ChangeListener{
|
||||||
}
|
}
|
||||||
} else if(src instanceof JCheckBox) {
|
} else if(src instanceof JCheckBox) {
|
||||||
JCheckBox srcb = (JCheckBox) src;
|
JCheckBox srcb = (JCheckBox) src;
|
||||||
if(srcb.equals(autoplay)) {
|
/* if(srcb.equals(autoplay)) {
|
||||||
bot.setAutoPlay(srcb.isSelected());
|
bot.setAutoPlay(srcb.isSelected());
|
||||||
if(srcb.isSelected()) {
|
if(srcb.isSelected()) {
|
||||||
slider[0].setEnabled(true);
|
slider[0].setEnabled(true);
|
||||||
|
@ -175,7 +178,8 @@ public class UI implements ActionListener, ChangeListener{
|
||||||
slider[0].setEnabled(false);
|
slider[0].setEnabled(false);
|
||||||
doubleplace.setEnabled(false);
|
doubleplace.setEnabled(false);
|
||||||
}
|
}
|
||||||
} else if(srcb.equals(doubleplace)) {
|
} else */
|
||||||
|
if(srcb.equals(doubleplace)) {
|
||||||
bot.setDoublePlay(srcb.isSelected());
|
bot.setDoublePlay(srcb.isSelected());
|
||||||
if(srcb.isSelected()) {//*2
|
if(srcb.isSelected()) {//*2
|
||||||
slider[0].setValue(slider[0].getValue()*2);
|
slider[0].setValue(slider[0].getValue()*2);
|
||||||
|
@ -186,17 +190,6 @@ public class UI implements ActionListener, ChangeListener{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void stateChanged(ChangeEvent e) {
|
|
||||||
Object o = e.getSource();
|
|
||||||
if(o instanceof JSlider) {
|
|
||||||
JSlider slider = (JSlider) o;
|
|
||||||
if(slider.equals(this.slider[0])) {
|
|
||||||
bot.setWait(slider.getValue());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void load(boolean info) {
|
private void load(boolean info) {
|
||||||
if(file.exists()) {
|
if(file.exists()) {
|
||||||
try {
|
try {
|
||||||
|
@ -205,20 +198,20 @@ public class UI implements ActionListener, ChangeListener{
|
||||||
String split[] = s.nextLine().split(" ",2);
|
String split[] = s.nextLine().split(" ",2);
|
||||||
if(!split[1].equals("null")) {
|
if(!split[1].equals("null")) {
|
||||||
int num = Integer.parseInt(split[0]);
|
int num = Integer.parseInt(split[0]);
|
||||||
if(num > 100) {
|
if(num > 100) {//special settings (slider / checkboxes)
|
||||||
if(num == 101) {//truppenwait
|
if(num == 101) {//truppenwait
|
||||||
int wait = Integer.parseInt(split[1]);
|
int wait = Integer.parseInt(split[1]);
|
||||||
slider[0].setValue(wait);
|
slider[0].setValue(wait);
|
||||||
} else if(num == 102) { // double playout
|
} else if(num == 102) { // double playout
|
||||||
boolean dp = Boolean.parseBoolean(split[1]);
|
boolean dp = Boolean.parseBoolean(split[1]);
|
||||||
if(dp) {
|
if(dp)
|
||||||
autoplay.setSelected(true);
|
autoplay.setSelected(true);
|
||||||
doubleplace.setEnabled(true);
|
|
||||||
slider[0].setEnabled(true);
|
|
||||||
}
|
|
||||||
doubleplace.setSelected(dp);
|
doubleplace.setSelected(dp);
|
||||||
|
bot.setDoublePlay(dp);
|
||||||
|
} else if(num == 103) {
|
||||||
|
slider[1].setValue(Integer.parseInt(split[1]));
|
||||||
}
|
}
|
||||||
} else
|
} else //standard Point Obj.
|
||||||
bot.set(new Point(split[1]), num);
|
bot.set(new Point(split[1]), num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -242,7 +235,7 @@ public class UI implements ActionListener, ChangeListener{
|
||||||
file.createNewFile();
|
file.createNewFile();
|
||||||
|
|
||||||
FileWriter fw = new FileWriter(file);
|
FileWriter fw = new FileWriter(file);
|
||||||
fw.write(bot.serialize()+"\n101 "+ slider[0].getValue() + "\n102 " + doubleplace.isSelected());
|
fw.write(bot.serialize()+"\n101 "+ slider[0].getValue() + "\n102 " + doubleplace.isSelected()+"\n103" + slider[1].getValue());
|
||||||
fw.flush();
|
fw.flush();
|
||||||
fw.close();
|
fw.close();
|
||||||
|
|
||||||
|
@ -269,12 +262,48 @@ public class UI implements ActionListener, ChangeListener{
|
||||||
info.setText(a);
|
info.setText(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setPositionDone() {
|
||||||
|
isSelectionRunning = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Updater {
|
||||||
|
public void update(int nummber);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AutoPlayBox extends JCheckBox implements ActionListener {//AutoPlayCheck Box (Extra Object because some updateing problems occour)
|
||||||
|
private static final long serialVersionUID = 8957130982898848436L;
|
||||||
|
|
||||||
|
public AutoPlayBox() {
|
||||||
|
super("AutoPlay");
|
||||||
|
addActionListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSelected(boolean b) {
|
||||||
|
super.setSelected(b);
|
||||||
|
update(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void update(boolean b) {
|
||||||
|
doubleplace.setEnabled(b);
|
||||||
|
slider[0].setEnabled(b);
|
||||||
|
slider[1].setEnabled(b);
|
||||||
|
bot.setAutoPlay(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
update(this.isSelected());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class Slider extends JPanel implements ChangeListener{
|
public class Slider extends JPanel implements ChangeListener{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
private JSlider slider;
|
private JSlider slider;
|
||||||
private JLabel label;
|
private JLabel label;
|
||||||
|
|
||||||
private ChangeListener listener;
|
private ChangeListener listener;
|
||||||
|
private Updater updater;
|
||||||
private String prefix = "", sufix = "";
|
private String prefix = "", sufix = "";
|
||||||
private int offset;
|
private int offset;
|
||||||
/**
|
/**
|
||||||
|
@ -285,7 +314,7 @@ public class UI implements ActionListener, ChangeListener{
|
||||||
* @param startvalue inital value
|
* @param startvalue inital value
|
||||||
* @param komma 10^x offset for komma digits
|
* @param komma 10^x offset for komma digits
|
||||||
*/
|
*/
|
||||||
public Slider(String prefix, String sufix, int minvalue, int maxvalue, int startvalue, int komma, ChangeListener cl, boolean enabled) {
|
public Slider(String prefix, String sufix, int minvalue, int maxvalue, int startvalue, int komma, @Nullable ChangeListener cl,@Nullable Updater upd, boolean enabled) {//ChangeListener or Updater could be Null!
|
||||||
slider = new JSlider(minvalue, maxvalue, startvalue);
|
slider = new JSlider(minvalue, maxvalue, startvalue);
|
||||||
slider.addChangeListener(this);
|
slider.addChangeListener(this);
|
||||||
if(prefix != null)
|
if(prefix != null)
|
||||||
|
@ -298,13 +327,14 @@ public class UI implements ActionListener, ChangeListener{
|
||||||
add(slider);
|
add(slider);
|
||||||
add(label);
|
add(label);
|
||||||
listener = cl;
|
listener = cl;
|
||||||
|
updater = upd;
|
||||||
slider.setEnabled(enabled);
|
slider.setEnabled(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getValue() {
|
public int getValue() {
|
||||||
return slider.getValue();
|
return slider.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setValue(int val) {
|
public void setValue(int val) {
|
||||||
slider.setValue(val);
|
slider.setValue(val);
|
||||||
}
|
}
|
||||||
|
@ -315,10 +345,6 @@ public class UI implements ActionListener, ChangeListener{
|
||||||
return prefix + (BigDecimal.valueOf(Math.pow(10, offset)).multiply(BigDecimal.valueOf(slider.getValue()))) + sufix;
|
return prefix + (BigDecimal.valueOf(Math.pow(10, offset)).multiply(BigDecimal.valueOf(slider.getValue()))) + sufix;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*public void setChangeListener(ChangeListener l) { //not required anymore
|
|
||||||
listener = l;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setEnabled(boolean enabled) {
|
public void setEnabled(boolean enabled) {
|
||||||
slider.setEnabled(enabled);
|
slider.setEnabled(enabled);
|
||||||
|
@ -327,7 +353,10 @@ public class UI implements ActionListener, ChangeListener{
|
||||||
@Override
|
@Override
|
||||||
public void stateChanged(ChangeEvent e) {
|
public void stateChanged(ChangeEvent e) {
|
||||||
label.setText(getLabelText());//update info
|
label.setText(getLabelText());//update info
|
||||||
listener.stateChanged(e);//forward Event
|
if(listener != null)
|
||||||
|
listener.stateChanged(e);//forward Event
|
||||||
|
if(updater != null)
|
||||||
|
updater.update(slider.getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue