You last visited: Today at 10:04
Advertisement
[HowTo]RSBot - German
Discussion on [HowTo]RSBot - German within the Runescape forum part of the MMORPGs category.
View Poll Results: Sticky?
Ja
20
83.33%
Nein
4
16.67%
02/20/2011, 12:34
#1
elite*gold: 0
Join Date: Jul 2010
Posts: 626
Received Thanks: 164
[HowTo]RSBot - German
Ich habe mich entschieden ein Tut zum RSBot ( auch als Powerbot bekannt ) zu schreiben.
1. Was ist der RSBot?
RSBot ist ein populärer Bot für das Onlinerollenspiel Runescape. RSBot spielt für euch Runescape wenn ihr unterwegs seit oder einfach nicht selbst spielen wollt. Der Sourcecode ist frei und jeder der sich auskennt kann für den RSBot eigene Scripts schreiben, von denen der RSBot lebt. Diese Scripts können ( fast ) alles. Es gibt z.B. Scripts für Holzfällerei aber auch für Angriff, andere Skills und Moneymakingmethoden.
2. Klingt toll aber wie hoch ist die Chance gesperrt zu werden?
Die Chance gesperrt zu werden ist von Script zu Script unterschiedlich. Beispielweise ist die Chance gesperrt zu werden höher wenn man ein Script ohne Antiban nutzt.
3. Antiban?
Der Antiban sollte in jedem Script enthalten sein. Er verhindert das man als Bot erkannt wird indem er verschiedene Sachen z.B. zufällige Bewegungen oder einfach nichts tut ( es wird ein normaler Spieler simuliert ).
4. Wo lade ich ihn herunter?
5. Ich habe ihn heruntergeladen was jetzt?
Nachdem ihr den Bot gestartet habt wird er einen Ordner in C:\Users\EuerName\Documents\RSBot erstellen.
In den Ordner Sources ( liegt in dem Ordner Scripts ) werden später die Scripts eingefügt.
Als nächstes braucht ihr das JDK. Man kann es hier downloaden:
Wählt euer System aus und ladet es runter. Wenn ihr es heruntergeladen habt müsst ihr es installieren. Um Scripts hinzufügen
müsst ihr den Bot schon min. 1 mal geöffnet haben ( er erstellt den Ordner RSBot wie oben schon beschrieben ).
6. Scripts hinzufügen
Ihr sucht auf der Website in den Foren nach Bots ( diese sind im Scriptbereich zu finden ).
Nachdem ihr euren Bereich ausgewählt habt geht ihr auf einen Thread euer Wahl ( kommt drauf an was der Bot später für euch spielen soll ). Ich nehme als Beispiel einen Bot der Bäume für mich fällt.
Wenn ihr in euerem Thread seit gibt es mehrere Möglichkeiten wie die Source gepostet sein kann.
1. Sie ist im Post eingefügt -> ihr müsst den Code einfach kopieren
2. Sie ist auf etwas hochgeladen wie Pastie -> geht auf den Link und kopiert dann den Source auf der Seite
3. Man kann die Datei direkt herunterladen
In meinem Fall würde die kopierte Source dann so aussehen:
//---------------------------------------------------------------------------
//************************************************** *************************
//************************************************** *************************
//
// * BE ORIGINAL *
// * DON'T COPY WORK THAT'S NOT YOURS *
// * xScriptx *
//
// You may learn from this script, but not copy.
//
//************************************************** *************************
//************************************************** *************************
//---------------------------------------------------------------------------
//IMPORTS RSBOT
import org.rsbot.script.wrappers.*;
import org.rsbot.script.methods.*;
import org.rsbot.script.util.*;
import org.rsbot.event.listeners.*;
import org.rsbot.script.Script;
import org.rsbot.script.ScriptManifest;
import org.rsbot.script.wrappers.RSTile;
import org.rsbot.script.wrappers.RSNPC;
import org.rsbot.script.wrappers.RSObject;
import org.rsbot.script.util.WindowUtil;
import org.rsbot.event.events.MessageEvent;
import org.rsbot.util.GlobalConfiguration;
//IMPORTS JAVA
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.awt.*;
import java.lang.String.*;
import java.io.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.net.MalformedURLException;
import javax.imageio.ImageIO;
@ScriptManifest(authors = {"<html><style>div{color:green;}</tyle><div><h3>xScriptx<h3></div></html>"}, keywords = {"Chopper"}, name = "xScriptxChopper", description = "<html><style>div{background-color:blue; color:white;}</tyle><div><h3>PowerChops any Willow Tree - By xScriptx<h3></div></html>", version = 3.0)
public class xScriptxChopper extends Script implements PaintListener, MouseListener, MessageListener {
/* Variables & Constants */
//ETC
private gui gui;
private Point mousePoint;
private static final Pattern UPDATER_VERSION_PATTERN = Pattern.compile("version\\s*=\\s*([0-9.]+)");
//BOOLEAN
private boolean hide = false, logout = false, dropping = false;
private boolean startScript = false;
//IMAGES
private Rectangle closeFixed = new Rectangle(480, 459, 30, 13), close = new Rectangle(466, 111, 30, 13);
private BufferedImage normal = null, clicked = null;
private final Image logo = getImage("http://img156.imageshack.us/img156/763/xscriptx.png");
private final Image back = getImage("http://img573.imageshack.us/img573/7755/backr.png");
//INT
private int WillowTrees[] = {5551, 5552, 5553}, Hatchets[] = {1349, 1351, 1353, 1355, 1357, 1359, 1361, 6739, 13470};
private int levelsGained;
private int storeNpc = 531;
private int bankMode;
private int mode;
private int BankId;
private int startexp = 0;
private int startlevel;
//STRING
private String scriptVersion = "v3.0";
private String status;
private static final String UPDATER_FILE_NAME = "xScriptxChopper.java";
private static final String UPDATER_URL = "http://xscriptx.atwebpages.com/xScriptxChopper.java";
//FLOAT & DOUBLE
private float xpGained = 0;
private double xpsec;
private double xpmin;
private double logs = 0;
private double xphour;
private double currentVer = xScriptxChopper.class.getAnnotation(ScriptManifest .class).version();
//LONG
private long startTime = System.currentTimeMillis();
private long millis;
private long hours;
private long minutes;
private long seconds;
//RSBOT API
private RSObject Willow;
private RSObject secondTree;
private RSTile[] portSarimPath = {new RSTile(3058, 3253), new RSTile(3048, 3246), new RSTile(3042, 3242), new RSTile(3047, 3236)};
private RSTile[] DraynorPath = {new RSTile(3086, 3234), new RSTile(3085, 3239), new RSTile(3087, 3247), new RSTile(3092, 3243)};
private RSTile[] rimmingtonPath = {new RSTile(2969, 3195), new RSTile(2968, 3198), new RSTile(2962, 3203), new RSTile(2956, 3208), new RSTile(2951, 3214), new RSTile(2949, 3216)};
private RSTile[] path;
private RSArea areaWillow;
private RSArea areaBank;
/* START OF GUI */
public class gui extends javax.swing.JFrame {
public gui() {
initComponents();
}
@SuppressWarnings("unchecked")
private void initComponents() {
this.setTitle("xScriptx - Universal Willow Chopper");
WindowUtil.position(this);
label1 = new java.awt.Label();
label2 = new java.awt.Label();
jComboBox1 = new javax.swing.JComboBox();
jLabel1 = new javax.swing.JLabel();
jSlider1 = new javax.swing.JSlider();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
button1 = new java.awt.Button();
setDefaultCloseOperation(javax.swing.WindowConstan ts.DO_NOTHING_ON_CLOSE);
setResizable(false);
label1.setAlignment(java.awt.Label.CENTER);
label1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
label1.setFont(new java.awt.Font("Verdana", 1, 36));
label1.setForeground(new java.awt.Color(255, 51, 51));
label1.setText("xScriptx");
label2.setAlignment(java.awt.Label.CENTER);
label2.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
label2.setFont(new java.awt.Font("Verdana", 1, 24));
label2.setForeground(new java.awt.Color(102, 255, 102));
label2.setText("Willow Chopper");
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "PowerChop", "PortSarim", "Draynor", "Rimmington" }));
jComboBox1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jComboBox1ActionPerformed(evt);
}
});
jLabel1.setText("Location/Powerchop:");
jSlider1.setMaximum(3);
jSlider1.setMinimum(1);
jSlider1.setPaintTicks(true);
jSlider1.setSnapToTicks(true);
jSlider1.setValue(2);
jLabel2.setText("Optimized");
jLabel3.setText("Human");
jLabel4.setText("Fast");
button1.setFont(new java.awt.Font("Verdana", 1, 18));
button1.setLabel("Start");
button1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
button1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING)
.addComponent(label1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 273, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(label2, javax.swing.GroupLayout.DEFAULT_SIZE, 263, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(10, 10, 10)
.addComponent(jSlider1, javax.swing.GroupLayout.DEFAULT_SIZE, 253, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.UNRELATED)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel3)
.addGap(78, 78, 78)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED, 84, Short.MAX_VALUE)
.addComponent(jLabel4))
.addGroup(layout.createSequentialGroup()
.addGap(93, 93, 93)
.addComponent(button1, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(label1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addComponent(label2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addComponent(jSlider1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(4, 4, 4)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jLabel2)
.addComponent(jLabel4))
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addComponent(button1, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_S IZE, Short.MAX_VALUE))
);
pack();
}
private void jComboBox1ActionPerformed(java.awt.event.ActionEve nt evt) {
}
private void button1ActionPerformed(java.awt.event.ActionEvent evt) {
gui.setVisible(false);
startScript = true;
}
private java.awt.Button button1;
private javax.swing.JComboBox jComboBox1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JSlider jSlider1;
private java.awt.Label label1;
private java.awt.Label label2;
}
/* END OF GUI */
/* START OF METHODS */
private boolean checkForUpdates() {
try {
double newVer = -1;
URL url = new URL(UPDATER_URL);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String line, lines = "";
Matcher m;
while ((line = in.readLine()) != null) {
lines += line + "\n";
if ((m = UPDATER_VERSION_PATTERN.matcher(line)).find()) {
newVer = Double.parseDouble(m.group(1));
break;
}
}
if (newVer < 0) {
in.close();
log("Unable to find the new version - update failed");
return false;
}
if (currentVer == newVer) {
in.close();
log("You have the latest script version");
return false;
}
log("Update found! Downloading version " + newVer);
String scriptFilePath = GlobalConfiguration.Paths.getScriptsSourcesDirecto ry() + "\\" + UPDATER_FILE_NAME;
PrintWriter out = new PrintWriter(scriptFilePath);
out.print(lines);
while ((line = in.readLine()) != null) {
out.println(line);
}
out.close();
in.close();
log("Successfully saved " + UPDATER_FILE_NAME + " to " + GlobalConfiguration.Paths.getScriptsSourcesDirecto ry());
log.warning("Please compile scripts to run the latest version.");
logout = true;
return true;
} catch (IOException e) {
log(e.toString());
log("Update failed.");
}
return false;
}
private Image getImage(String url) {
try {
return ImageIO.read(new URL(url));
} catch (IOException e) {
return null;
}
}
public void messages() {
URLConnection url = null;
BufferedReader in = null;
try {
url = new URL("http://xscriptx.atwebpages.com/messages.txt").openConnection();
in = new BufferedReader(new InputStreamReader(url.getInputStream()));
String message = in.readLine();
if (message != null) {
log.warning(message);
}
in.close();
} catch (IOException e) {
}
}
public boolean shopIsOpen(RSInterface shop, int millis) {
if (millis < 0) {
return false;
}
if (shop == null) {
return false;
}
long startTime = System.currentTimeMillis();
while (System.currentTimeMillis() - startTime <= millis) {
if (shop.isValid()) {
return true;
}
sleep(200);
}
return false;
}
public void useBank() {
try{
status = "I am Banking";
if (bankMode == 1 || bankMode == 2) {
RSObject banker = objects.getNearest(BankId);
if (banker != null && !banker.isOnScreen()) {
camera.turnToObject(banker);
}
if (bankMode == 1) {
if(!bank.isOpen() && banker != null){
banker.doAction("Use-quickly");
sleep(random(800, 1000));
}if(bank.isOpen() && inventory.isFull()){
bank.depositAllExcept(Hatchets);
sleep(random(800, 1000));
sleep(random(800, 1000));
}if (bank.isOpen() && !inventory.isFull()){
bank.close();
sleep(random(800, 1000));
}
} else if (bankMode == 2) {
if(!bank.isDepositOpen() && !getMyPlayer().isMoving() && banker != null){
banker.doAction("Deposit");
sleep(random(3000, 4000));
} if(bank.isDepositOpen() && bank.getBoxCount() == 28){
bank.depositAllExcept(Hatchets);
sleep(random(800, 1000));
}if (bank.isDepositOpen()&& bank.getBoxCount() != 28){
bank.close();
sleep(random(1000, 1500));
}
}
} else if(bankMode == 3) {
RSNPC shoper = npcs.getNearest(storeNpc);
if (!shoper.isOnScreen() && shoper != null) {
camera.turnToCharacter(shoper);
}
if (shoper.isOnScreen() && shoper != null) {
if (!store.isOpen()) {
shoper.doAction("Trade");
sleep(random(800, 1000));
shopIsOpen(store.getInterface(), random(3000, 3500));
}
if (store.isOpen()) {
inventory.getItem(1519).doAction("Sell 50");
if (inventory.contains(1511)) {
inventory.getItem(1511).doAction("Sell 5");
}
sleep(random(800, 1000));
sleep(random(800, 1000));
cameraHandler();
}
}
}
}catch(Exception e){
log.warning("Error at useBank() - Please report to thread.");
}
}
public void walkToTrees() {
status = "I am going to the Willow trees";
RSTilePath willow = walking.newTilePath(path);
willow.reverse();
willow.traverse();
sleep(1000);
}
private void walkToBank() {
status = "I am going to bank";
RSTilePath banking = walking.newTilePath(path);
banking.traverse();
sleep(1000);
}
private boolean atWillowTrees() {
return areaWillow.contains(getMyPlayer().getLocation());
}
private boolean atBank() {
return areaBank.contains(getMyPlayer().getLocation());
}
private void bank() {
try{
if (!atBank() && inventory.isFull() && !bank.isOpen()){
while (!atBank()) {
walkToBank();
}
}
if (atBank() && inventory.isFull()) {
sleep(random(800, 1100));
useBank();
}
if(!bank.isOpen() && !bank.isDepositOpen()){
if(!inventory.isFull())
walkToTrees();
}
}catch(Exception e){
log.warning("Error at Bank() - Please report to thread.");
}
}
public void configureMode() {
if (gui.jComboBox1.getSelectedItem() == "PowerChop") {
mode = 1;
}
if (gui.jComboBox1.getSelectedItem() == "PortSarim") {
bankMode = 2;
areaBank = new RSArea(new RSTile(3043, 3235), new RSTile(3050, 3237));
areaWillow = new RSArea(new RSTile(3056, 3250), new RSTile(3064, 3256));
path = portSarimPath;
mode = 2;
BankId = 36788;
}
if (gui.jComboBox1.getSelectedItem() == "Draynor") {
bankMode = 1;
areaBank = new RSArea(new RSTile(3092, 3240), new RSTile(3095, 3246));
areaWillow = new RSArea(new RSTile(3080, 3225), new RSTile(3091, 3239));
path = DraynorPath;
mode = 2;
BankId = 2213;
}
if (gui.jComboBox1.getSelectedItem() == "Rimmington") {
bankMode = 3;
areaBank = new RSArea(new RSTile(2946, 3214), new RSTile(2949, 3218));
areaWillow = new RSArea(new RSTile(2966, 3190), new RSTile(2976, 3198));
path = rimmingtonPath;
mode = 2;
}
}
public RSObject findSecondTree(final RSObject nearestTree, final int... treeIDs) {
return objects.getNearest(new Filter<RSObject>() {
public boolean accept(RSObject trees) {
if (nearestTree.equals(trees)) {
return false;
}
for (int id : treeIDs) {
if (trees.getID() == id) {
return true;
}
}
return false;
}
});
}
public void dropWillows() {
try{
if(gui.jSlider1.getValue() == 1)
mouse.setSpeed(random(6, 7));
if(gui.jSlider1.getValue() == 2)
mouse.setSpeed(random(5, 6));
if(gui.jSlider1.getValue() == 3)
mouse.setSpeed(random(1 ,2));
dropping = true;
status = "I am Dropping The willow logs";
int randomnum = random(0, 20);
if (randomnum != 5) {
inventory.dropAllExcept(Hatchets);
} else {
inventory.dropAllExcept(true, Hatchets);
}
mouse.setSpeed(random(6, 7));
cameraHandler();
dropping = false;
}catch(Exception e){
log.warning("Error at Drop Method - Please report to thread.");
}
}
public void chop() {
try {
RSObject willowtree = objects.getNearest(WillowTrees);
if (willowtree != null && getMyPlayer().getAnimation() == -1 && !getMyPlayer().isMoving()) {
status = "I am Chopping the Willow tree";
if (!willowtree.isOnScreen() && willowtree != null) {
camera.turnToTile(willowtree.getLocation());
if (calc.distanceTo(willowtree) > 3) {
walking.walkTileMM(willowtree.getLocation());
}
}
willowtree.doAction("Chop down");
if (random(0, 3) != 1) {
mouseHandler();
cameraHandler();
}
Willow = objects.getNearest(WillowTrees);
secondTree = findSecondTree(Willow, WillowTrees);
int randomNum = random(1, 15);
if (randomNum == 8) {
camera.turnToObject(Willow);
}
status = "I am Chopping the Willow tree";
int randomNum2 = random(0, 5);
if (randomNum2 != 0) {
sleep(random(1000, 1200));
if (secondTree != null) {
sleep(1000);
secondTree.doHover();
}
}
}
sleep(random(500, 1000));
} catch (Exception e) {
log.warning("error at chop() - Please report to thread");
}
}
/* END OF METHODS */
/* Paint */
public void onRepaint(Graphics g1) {
if (game.isLoggedIn()) {
if (startexp == 0) {
startexp = skills.getCurrentExp(Skills.getIndex("Woodcutting" ));
}
if (startlevel == 0) {
startlevel = skills.getCurrentLevel(Skills.getIndex("Woodcuttin g"));
}
logs = xpGained / 67.5;
logs = Math.round(logs);
int CurrentWcLevel = skills.getCurrentLevel(Skills.getIndex("Woodcuttin g"));
xpGained = skills.getCurrentExp(Skills.getIndex("Woodcutting" )) - startexp;
levelsGained = CurrentWcLevel - startlevel;
millis = System.currentTimeMillis() - startTime;
hours = millis / (1000 * 60 * 60);
millis -= hours * (1000 * 60 * 60);
minutes = millis / (1000 * 60);
millis -= minutes * (1000 * 60);
seconds = millis / 1000;
xpsec = 0;
final int percent = skills.getPercentToNextLevel(Skills.getIndex("Wood cutting"));
int nextlevel = CurrentWcLevel + 1;
if ((minutes > 0 || hours > 0 || seconds > 0) && xpGained > 0) {
xpsec = ((float) xpGained) / (float) (seconds + (minutes * 60) + (hours * 60 * 60));
xpmin = xpsec * 60;
xphour = xpmin * 60;
xphour = Math.round(xphour * 100.0) / 100.0;
}
Graphics2D g = (Graphics2D) g1;
RSObject[] allObjects = objects.getAll();
RSObject Trees = objects.getNearest(WillowTrees);
for (int i = 0; i < allObjects.length; i++) {
if (allObjects[i].getID() == 5551 || allObjects[i].getID() == 5552 || allObjects[i].getID() == 5553) {
g.setColor(Color.green);
g.fillOval(calc.tileToMinimap(allObjects[i].getLocation()).x - 6, calc.tileToMinimap(allObjects[i].getLocation()).y - 4, 10, 10);
} else if (allObjects[i].getID() == 5554) {
g.setColor(Color.red);
g.fillOval(calc.tileToMinimap(allObjects[i].getLocation()).x - 6, calc.tileToMinimap(allObjects[i].getLocation()).y - 4, 10, 10);
}
}
g.setColor(Color.orange);
g.fillOval(calc.tileToMinimap(Trees.getLocation()) .x - 6, calc.tileToMinimap(Trees.getLocation()).y - 4, 10, 10);
g.setColor(Color.blue);
g.drawLine(0, (int) (mouse.getLocation().getY()), 2000, (int) (mouse.getLocation().getY()));
g.drawLine((int) (mouse.getLocation().getX()), 0, (int) (mouse.getLocation().getX()), 2000);
g.drawLine(0, (int) (mouse.getLocation().getY() + 3), 2000, (int) (mouse.getLocation().getY() + 3));
g.drawLine((int) (mouse.getLocation().getX() + 3), 0, (int) (mouse.getLocation().getX() + 3), 2000);
if (normal != null) {
final int mouse_x = mouse.getLocation().x;
final int mouse_y = mouse.getLocation().y;
final int mouse_x2 = mouse.getPressLocation().x;
final int mouse_y2 = mouse.getPressLocation().y;
final long mpt = System.currentTimeMillis()
- mouse.getPressTime();
if (mouse.getPressTime() == -1 || mpt >= 1000) {
g.drawImage(normal, mouse_x - 8, mouse_y - 8, null);
}
if (mpt < 1000) {
g.drawImage(clicked, mouse_x2 - 8, mouse_y2 - 8, null);
g.drawImage(normal, mouse_x - 8, mouse_y - 8, null);
}
}
if (game.isFixed()) {
if (!hide) {
g.drawImage(back, 9, 346, null);
g.setColor(new Color(233, 224, 192));
g.setColor(new Color(223, 214, 179));
g.setStroke(new BasicStroke(1));
g.drawRect(9, 346, 500, 127);
g.setFont(new Font("Comic Sans MS", 0, 13));
g.setColor(new Color(1, 1, 1));
g.drawString("Runtime:" + hours + ":" + minutes + ":" + seconds + ".", 10, 361);
g.drawString(scriptVersion, 480, 361);
g.drawString("Current level: " + CurrentWcLevel, 10, 381);
g.drawString("Exp gained: " + xpGained, 10, 402);
g.drawString("Exp p/h: " + xphour, 10, 422);
g.drawString("Levels gained: " + levelsGained, 10, 442);
g.drawString("Logs: " + logs, 10, 464);
g.setFont(new Font("Comic Sans MS", 1, 12));
g.drawString(status, 217, 461);
g.drawImage(logo, 200, 340, null);
g.setColor(new Color(223, 214, 179));
g.fillRoundRect(249, 417, 100, 11, 20, 0);
g.setColor(Color.blue);
g.fillRoundRect(249, 417, percent, 11, 20, 0);
g.setColor(Color.black);
g.drawRoundRect(249, 417, 100, 11, 20, 0);
g.drawRoundRect(249, 417, percent, 11, 20, 0);
g.drawString(percent + "% till level " + nextlevel, 253, 442);
}
g.setColor(Color.BLACK);
g.drawRect(closeFixed.x, closeFixed.y, closeFixed.width, closeFixed.height);
g.setColor(Color.red);
g.fillRect(closeFixed.x, closeFixed.y, closeFixed.width, closeFixed.height);
g.setColor(Color.white);
g.setFont(new Font("Comic Sans MS", 0, 20));
g.drawString("_", 489, 467);
} else if (!game.isFixed()) {
if (!hide) {
g.drawImage(back, 2, 2, null);
g.setColor(new Color(233, 224, 192));
g.setColor(new Color(223, 214, 179));
g.setStroke(new BasicStroke(1));
g.drawRect(2, 2, 500, 127);
g.setFont(new Font("Comic Sans MS", 0, 13));
g.setColor(new Color(1, 1, 1));
g.drawString("Runtime:" + hours + ":" + minutes + ":" + seconds + ".", 10, 20);
g.drawString(scriptVersion, 475, 20);
g.drawString("Current level: " + CurrentWcLevel, 10, 40);
g.drawString("Exp gained: " + xpGained, 10, 60);
g.drawString("Exp p/h: " + xphour, 10, 80);
g.drawString("Levels gained: " + levelsGained, 10, 100);
g.drawString("Logs: " + logs, 10, 120);
g.setFont(new Font("Comic Sans MS", 1, 12));
g.drawString(status, 217, 120);
g.drawImage(logo, 200, 0, null);
g.setColor(new Color(223, 214, 179));
g.fillRoundRect(249, 75, 100, 11, 20, 0);
g.setColor(Color.blue);
g.fillRoundRect(249, 75, percent, 11, 20, 0);
g.setColor(Color.black);
g.drawRoundRect(249, 75, 100, 11, 20, 0);
g.drawRoundRect(249, 75, percent, 11, 20, 0);
g.drawString(percent + "% till level " + nextlevel, 253, 100);
}
g.setColor(Color.BLACK);
g.drawRect(close.x, close.y, close.width, close.height);
g.setColor(Color.red);
g.fillRect(close.x, close.y, close.width, close.height);
g.setColor(Color.white);
g.setFont(new Font("Comic Sans MS", 0, 20));
g.drawString("_", 476, 118);
}
if (hide) {
}
//Mouse
}
}
/*On Start*/
@Override
public boolean onStart() {
status = "Waking up...";
log("Welcome to xScriptx Chopper");
checkForUpdates();
gui = new gui();
gui.setVisible(true);
while (!startScript) {
sleep(100);
}
log("Loading paint, this may take some seconds...");
startTime = System.currentTimeMillis();
try {
final URL cursorURL = new URL(
"http://img440.imageshack.us/img440/9669/mouse.png");
final URL cursor80URL = new URL(
"http://img217.imageshack.us/img217/5293/mouseclicked.png");
normal = ImageIO.read(cursorURL);
clicked = ImageIO.read(cursor80URL);
} catch (MalformedURLException e) {
log("Unable to buffer cursor.");
} catch (IOException e) {
log("Unable to open cursor image.");
}
mouse.setSpeed(random(5, 7));
messages();
configureMode();
return true;
}
/*Main Loop*/
public int loop() {
if (logout) {
return -1;
}
if (mode == 1) {
if (!inventory.isFull() && !dropping) {
chop();
}
if (getMyPlayer().getAnimation() == 867) {
status = "I am Chopping the Willow tree";
int random3 = random(0, 70);
if (random3 == 1 || random3 == 2) {
mouseHandler();
cameraHandler();
}
}
sleep(random(200, 800));
if (inventory.isFull() && !dropping) {
dropWillows();
}
}
if (mode == 2) {
if (!inventory.isFull() && atWillowTrees() && !getMyPlayer().isMoving()) {
chop();
}
if (getMyPlayer().getAnimation() == 867) {
status = "I am Chopping the Willow tree";
int random3 = random(0, 70);
if (random3 == 1 || random3 == 2) {
mouseHandler();
cameraHandler();
}
}
sleep(random(200, 800));
if (inventory.isFull() || !atWillowTrees()) {
bank();
}
}
return 1;
}
/*On Finish*/
@Override
public void onFinish() {
log("xScriptxChopper ran for " + hours + ":" + minutes + ":" + seconds + " and gained " + xpGained + " exp.");
}
//START: EVENTS
public void mouseClicked(MouseEvent o) {
mousePoint = o.getPoint();
if (close.contains(mousePoint) && !hide) {
hide = true;
} else if (close.contains(mousePoint) && hide) {
hide = false;
}
mousePoint = o.getPoint();
if (closeFixed.contains(mousePoint) && !hide) {
hide = true;
} else if (closeFixed.contains(mousePoint) && hide) {
hide = false;
}
}
public void mouseEntered(MouseEvent o) {
}
public void mouseExited(MouseEvent o) {
}
public void mouseReleased(MouseEvent o) {
}
public void mousePressed(MouseEvent o) {
}
public void messageReceived(MessageEvent e) {
String lastMessage = e.getMessage().toLowerCase();
if (lastMessage.contains("you do not have a hatchet which you have the")) {
log.warning("Error - No hatchet found");
logout = true;
}
}
//END:EVENTS
/* START OF ANTIBAN */
private void mouseHandler() {
try {
int randomNum = random(0, 50);
if (randomNum <= 6) {
int randomNum2 = random(0, 10);
if (randomNum2 == 3) {
if (game.getCurrentTab() != 1) {
mouse.setSpeed(random(4, 9));
status = "I am checking my wc exp";
game.openTab(1);
sleep(random(350, 500));
skills.doHover(Skills.INTERFACE_WOODCUTTING);
sleep(random(1000, 2000));
game.openTab(4);
mouse.moveSlightly();
cameraHandler();
mouse.setSpeed(random(5, 7));
}
} else {
sleep(random(500, 800));
}
}
if (randomNum == 30 || randomNum == 31) {
mouse.moveOffScreen();
sleep(random(1000, 2500));
}
if (randomNum >= 40) {
status = "I am moving the mouse";
mouse.setSpeed(random(4, 8));
mouse.moveSlightly();
mouse.moveRandomly(65, 250);
mouse.setSpeed(random(6, 7));
} else {
sleep(random(50, 800));
}
sleep(random(100, 800));
if (randomNum == 36) {
mouse.move(random(678, 728), random(213, 232));
}
} catch (Exception e) {
log.warning("Error at mouseHandler() - Trying again");
}
}
private void cameraHandler() {
try {
int randomNum = random(0, 45);
if (randomNum == 16 || randomNum == 12) {
status = "I am changing camera position";
camera.setAngle(random(100, 200));
camera.setPitch(random(45, 90));
camera.setAngle(random(100, 300));
}
if (randomNum == 10 || randomNum == 15) {
status = "I am changing camera position";
camera.setAngle(random(10, 100));
}
if (randomNum == 6) {
status = "I am changing camera position";
camera.setPitch(random(60, 90));
camera.setAngle(random(50, 86));
}
if (randomNum == 17) {
status = "I am changing camera position";
camera.setPitch(random(50, 90));
}
if (randomNum == 38) {
status = "I am changing camera position";
camera.setPitch(random(68, 90));
} else {
sleep(random(50, 70));
}
} catch (Exception e) {
log.warning("Error at cameraHandler - Trying again");
}
}
/* END OF ANTIBAN */
}
Das fett Geschriebene ist der Scriptname!
Als nächstes gehen wir in den RSBotordner. Klicken auf Scripts und dann auf Sources. Dann einen Rechtsklick, auf Neu und Textdokument. Der Name ist noch egal. Daraufhin kopieren wir den Code in die Txt datei und speichern sie.
ACHTUNG: Meistens wird im Thread gesagt mit welchen Namen man die Datei speichern muss. In meinem Fall: xScriptxChopper.java bei euch kommt stat dem xScriptXChopper einfach euer Scriptname. ( Ihr müsst die Endung in .java ändern da der RSBot sie sonst nicht erkennt ) Falls ihr den Namen falsch geschrieben habt wird es euch beim compilieren später angezeigt. Wenn ihr alles gespeichert habt geht ihr wieder in den RSBotordner und klickt auf: Compile-Scripts.bat
Wenn es funkioniert hat sollte etwa so etwas kommen ( es darf auf keinen Fall irgendwo stehen Error, dann habt ihr wahrscheinlich den Scriptcode falsch kopiert oder das Script ist veraltet ):
FAQ:
1. Ich bekomme den Code:
Note: scripts\Scriptname.java uses or overides a deprecated API.
Note: Recompile with -Xlint:deprecation for details
Alles was mit "Note" beginnt sind Notizen für Scriptschreiber. Alles hat perfekt geklappt
2. Ich bekomme den Code ( oder ähnliches ):
Scripts\Scriptname.java:284: reached end of file while parsing
}
^
1 Error
Ihr habt das Script falsch kopiert oder es ist veraltet.
3. Ich bekomme den Code:
Path file does not exist. Please run RSBot and try again.
Startet den RSBot und compiliert dann noch einmal.
Wenn alles geklappt hat könnt ihr nun den RSBot starten und euere Scripts mit einem Klick auf "Run Script" auswählen und dann den Bot für euch spielen lassen.
Bei weiteren Fragen einfach hier im Thread posten.
P.S Ich habe noch meinen aktuellen Scriptordner an den Thread gehängt falls jemand zu faul ist sich selbst Scripts zu suchen und zu downloaden. Sind nicht viele aber gute Scripts ( wenn ihr wollt kann ich den regelmäßig updaten -> bitte im Thread posten ).
English
1. What is the RSBot?
The RSBot is a popular Bot for the online MMorg Runescape. The bot plays for while you are not on your computer or always ( it is in your mind ). The Bot is Opensource so everyone can make some scripts for it so there are many scripts for ( almost ) everything. For example a woodcutting or a cooking bot.
2. Sounds amazing. What about Jagex´s bansystem?
It depends on the script you are using. The chance is higher when you are using a script without any antiban.
3.Antiban - can you eat that?
An Antiban should be in every script. It simulats Jagex the bot is a human. It does some random mousemoves turns the camera etc.
4. Where can I download it?
5. I downloaded it. And now?
After you started it the first time the Bot creates a folder ( C:\Users\YourName\Documents\RSBot )
The folder "Sources" is very important. I come back later to it in this TUT.
Now you need the JDK. You can download it here:
Simply download and install. To add some new scripts to the bot you
have to open it.
6. Adding scripts
You can search for bots on their website in the scripts sektion.
Choose your category. And open the thread you choose ( I selected a woodcutting bot for example ).
In the thread are some opportunities the scriptcode can be posted.
1. It is in the post -> simply copy it
.
2. It is uploaded on pastie for an similar website -> go on the website and copy it from there
3. Can can download the script as a .java file -> download
In my case:
//---------------------------------------------------------------------------
//************************************************** *************************
//************************************************** *************************
//
// * BE ORIGINAL *
// * DON'T COPY WORK THAT'S NOT YOURS *
// * xScriptx *
//
// You may learn from this script, but not copy.
//
//************************************************** *************************
//************************************************** *************************
//---------------------------------------------------------------------------
//IMPORTS RSBOT
import org.rsbot.script.wrappers.*;
import org.rsbot.script.methods.*;
import org.rsbot.script.util.*;
import org.rsbot.event.listeners.*;
import org.rsbot.script.Script;
import org.rsbot.script.ScriptManifest;
import org.rsbot.script.wrappers.RSTile;
import org.rsbot.script.wrappers.RSNPC;
import org.rsbot.script.wrappers.RSObject;
import org.rsbot.script.util.WindowUtil;
import org.rsbot.event.events.MessageEvent;
import org.rsbot.util.GlobalConfiguration;
//IMPORTS JAVA
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.awt.*;
import java.lang.String.*;
import java.io.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.net.MalformedURLException;
import javax.imageio.ImageIO;
@ScriptManifest(authors = {"<html><style>div{color:green;}</tyle><div><h3>xScriptx<h3></div></html>"}, keywords = {"Chopper"}, name = "xScriptxChopper", description = "<html><style>div{background-color:blue; color:white;}</tyle><div><h3>PowerChops any Willow Tree - By xScriptx<h3></div></html>", version = 3.0)
public class xScriptxChopper extends Script implements PaintListener, MouseListener, MessageListener {
/* Variables & Constants */
//ETC
private gui gui;
private Point mousePoint;
private static final Pattern UPDATER_VERSION_PATTERN = Pattern.compile("version\\s*=\\s*([0-9.]+)");
//BOOLEAN
private boolean hide = false, logout = false, dropping = false;
private boolean startScript = false;
//IMAGES
private Rectangle closeFixed = new Rectangle(480, 459, 30, 13), close = new Rectangle(466, 111, 30, 13);
private BufferedImage normal = null, clicked = null;
private final Image logo = getImage("http://img156.imageshack.us/img156/763/xscriptx.png");
private final Image back = getImage("http://img573.imageshack.us/img573/7755/backr.png");
//INT
private int WillowTrees[] = {5551, 5552, 5553}, Hatchets[] = {1349, 1351, 1353, 1355, 1357, 1359, 1361, 6739, 13470};
private int levelsGained;
private int storeNpc = 531;
private int bankMode;
private int mode;
private int BankId;
private int startexp = 0;
private int startlevel;
//STRING
private String scriptVersion = "v3.0";
private String status;
private static final String UPDATER_FILE_NAME = "xScriptxChopper.java";
private static final String UPDATER_URL = "http://xscriptx.atwebpages.com/xScriptxChopper.java";
//FLOAT & DOUBLE
private float xpGained = 0;
private double xpsec;
private double xpmin;
private double logs = 0;
private double xphour;
private double currentVer = xScriptxChopper.class.getAnnotation(ScriptManifest .class).version();
//LONG
private long startTime = System.currentTimeMillis();
private long millis;
private long hours;
private long minutes;
private long seconds;
//RSBOT API
private RSObject Willow;
private RSObject secondTree;
private RSTile[] portSarimPath = {new RSTile(3058, 3253), new RSTile(3048, 3246), new RSTile(3042, 3242), new RSTile(3047, 3236)};
private RSTile[] DraynorPath = {new RSTile(3086, 3234), new RSTile(3085, 3239), new RSTile(3087, 3247), new RSTile(3092, 3243)};
private RSTile[] rimmingtonPath = {new RSTile(2969, 3195), new RSTile(2968, 3198), new RSTile(2962, 3203), new RSTile(2956, 3208), new RSTile(2951, 3214), new RSTile(2949, 3216)};
private RSTile[] path;
private RSArea areaWillow;
private RSArea areaBank;
/* START OF GUI */
public class gui extends javax.swing.JFrame {
public gui() {
initComponents();
}
@SuppressWarnings("unchecked")
private void initComponents() {
this.setTitle("xScriptx - Universal Willow Chopper");
WindowUtil.position(this);
label1 = new java.awt.Label();
label2 = new java.awt.Label();
jComboBox1 = new javax.swing.JComboBox();
jLabel1 = new javax.swing.JLabel();
jSlider1 = new javax.swing.JSlider();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
button1 = new java.awt.Button();
setDefaultCloseOperation(javax.swing.WindowConstan ts.DO_NOTHING_ON_CLOSE);
setResizable(false);
label1.setAlignment(java.awt.Label.CENTER);
label1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
label1.setFont(new java.awt.Font("Verdana", 1, 36));
label1.setForeground(new java.awt.Color(255, 51, 51));
label1.setText("xScriptx");
label2.setAlignment(java.awt.Label.CENTER);
label2.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
label2.setFont(new java.awt.Font("Verdana", 1, 24));
label2.setForeground(new java.awt.Color(102, 255, 102));
label2.setText("Willow Chopper");
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "PowerChop", "PortSarim", "Draynor", "Rimmington" }));
jComboBox1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jComboBox1ActionPerformed(evt);
}
});
jLabel1.setText("Location/Powerchop:");
jSlider1.setMaximum(3);
jSlider1.setMinimum(1);
jSlider1.setPaintTicks(true);
jSlider1.setSnapToTicks(true);
jSlider1.setValue(2);
jLabel2.setText("Optimized");
jLabel3.setText("Human");
jLabel4.setText("Fast");
button1.setFont(new java.awt.Font("Verdana", 1, 18));
button1.setLabel("Start");
button1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
button1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING)
.addComponent(label1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 273, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(label2, javax.swing.GroupLayout.DEFAULT_SIZE, 263, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(10, 10, 10)
.addComponent(jSlider1, javax.swing.GroupLayout.DEFAULT_SIZE, 253, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.UNRELATED)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel3)
.addGap(78, 78, 78)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED, 84, Short.MAX_VALUE)
.addComponent(jLabel4))
.addGroup(layout.createSequentialGroup()
.addGap(93, 93, 93)
.addComponent(button1, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(label1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addComponent(label2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addComponent(jSlider1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(4, 4, 4)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jLabel2)
.addComponent(jLabel4))
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addComponent(button1, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_S IZE, Short.MAX_VALUE))
);
pack();
}
private void jComboBox1ActionPerformed(java.awt.event.ActionEve nt evt) {
}
private void button1ActionPerformed(java.awt.event.ActionEvent evt) {
gui.setVisible(false);
startScript = true;
}
private java.awt.Button button1;
private javax.swing.JComboBox jComboBox1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JSlider jSlider1;
private java.awt.Label label1;
private java.awt.Label label2;
}
/* END OF GUI */
/* START OF METHODS */
private boolean checkForUpdates() {
try {
double newVer = -1;
URL url = new URL(UPDATER_URL);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String line, lines = "";
Matcher m;
while ((line = in.readLine()) != null) {
lines += line + "\n";
if ((m = UPDATER_VERSION_PATTERN.matcher(line)).find()) {
newVer = Double.parseDouble(m.group(1));
break;
}
}
if (newVer < 0) {
in.close();
log("Unable to find the new version - update failed");
return false;
}
if (currentVer == newVer) {
in.close();
log("You have the latest script version");
return false;
}
log("Update found! Downloading version " + newVer);
String scriptFilePath = GlobalConfiguration.Paths.getScriptsSourcesDirecto ry() + "\\" + UPDATER_FILE_NAME;
PrintWriter out = new PrintWriter(scriptFilePath);
out.print(lines);
while ((line = in.readLine()) != null) {
out.println(line);
}
out.close();
in.close();
log("Successfully saved " + UPDATER_FILE_NAME + " to " + GlobalConfiguration.Paths.getScriptsSourcesDirecto ry());
log.warning("Please compile scripts to run the latest version.");
logout = true;
return true;
} catch (IOException e) {
log(e.toString());
log("Update failed.");
}
return false;
}
private Image getImage(String url) {
try {
return ImageIO.read(new URL(url));
} catch (IOException e) {
return null;
}
}
public void messages() {
URLConnection url = null;
BufferedReader in = null;
try {
url = new URL("http://xscriptx.atwebpages.com/messages.txt").openConnection();
in = new BufferedReader(new InputStreamReader(url.getInputStream()));
String message = in.readLine();
if (message != null) {
log.warning(message);
}
in.close();
} catch (IOException e) {
}
}
public boolean shopIsOpen(RSInterface shop, int millis) {
if (millis < 0) {
return false;
}
if (shop == null) {
return false;
}
long startTime = System.currentTimeMillis();
while (System.currentTimeMillis() - startTime <= millis) {
if (shop.isValid()) {
return true;
}
sleep(200);
}
return false;
}
public void useBank() {
try{
status = "I am Banking";
if (bankMode == 1 || bankMode == 2) {
RSObject banker = objects.getNearest(BankId);
if (banker != null && !banker.isOnScreen()) {
camera.turnToObject(banker);
}
if (bankMode == 1) {
if(!bank.isOpen() && banker != null){
banker.doAction("Use-quickly");
sleep(random(800, 1000));
}if(bank.isOpen() && inventory.isFull()){
bank.depositAllExcept(Hatchets);
sleep(random(800, 1000));
sleep(random(800, 1000));
}if (bank.isOpen() && !inventory.isFull()){
bank.close();
sleep(random(800, 1000));
}
} else if (bankMode == 2) {
if(!bank.isDepositOpen() && !getMyPlayer().isMoving() && banker != null){
banker.doAction("Deposit");
sleep(random(3000, 4000));
} if(bank.isDepositOpen() && bank.getBoxCount() == 28){
bank.depositAllExcept(Hatchets);
sleep(random(800, 1000));
}if (bank.isDepositOpen()&& bank.getBoxCount() != 28){
bank.close();
sleep(random(1000, 1500));
}
}
} else if(bankMode == 3) {
RSNPC shoper = npcs.getNearest(storeNpc);
if (!shoper.isOnScreen() && shoper != null) {
camera.turnToCharacter(shoper);
}
if (shoper.isOnScreen() && shoper != null) {
if (!store.isOpen()) {
shoper.doAction("Trade");
sleep(random(800, 1000));
shopIsOpen(store.getInterface(), random(3000, 3500));
}
if (store.isOpen()) {
inventory.getItem(1519).doAction("Sell 50");
if (inventory.contains(1511)) {
inventory.getItem(1511).doAction("Sell 5");
}
sleep(random(800, 1000));
sleep(random(800, 1000));
cameraHandler();
}
}
}
}catch(Exception e){
log.warning("Error at useBank() - Please report to thread.");
}
}
public void walkToTrees() {
status = "I am going to the Willow trees";
RSTilePath willow = walking.newTilePath(path);
willow.reverse();
willow.traverse();
sleep(1000);
}
private void walkToBank() {
status = "I am going to bank";
RSTilePath banking = walking.newTilePath(path);
banking.traverse();
sleep(1000);
}
private boolean atWillowTrees() {
return areaWillow.contains(getMyPlayer().getLocation());
}
private boolean atBank() {
return areaBank.contains(getMyPlayer().getLocation());
}
private void bank() {
try{
if (!atBank() && inventory.isFull() && !bank.isOpen()){
while (!atBank()) {
walkToBank();
}
}
if (atBank() && inventory.isFull()) {
sleep(random(800, 1100));
useBank();
}
if(!bank.isOpen() && !bank.isDepositOpen()){
if(!inventory.isFull())
walkToTrees();
}
}catch(Exception e){
log.warning("Error at Bank() - Please report to thread.");
}
}
public void configureMode() {
if (gui.jComboBox1.getSelectedItem() == "PowerChop") {
mode = 1;
}
if (gui.jComboBox1.getSelectedItem() == "PortSarim") {
bankMode = 2;
areaBank = new RSArea(new RSTile(3043, 3235), new RSTile(3050, 3237));
areaWillow = new RSArea(new RSTile(3056, 3250), new RSTile(3064, 3256));
path = portSarimPath;
mode = 2;
BankId = 36788;
}
if (gui.jComboBox1.getSelectedItem() == "Draynor") {
bankMode = 1;
areaBank = new RSArea(new RSTile(3092, 3240), new RSTile(3095, 3246));
areaWillow = new RSArea(new RSTile(3080, 3225), new RSTile(3091, 3239));
path = DraynorPath;
mode = 2;
BankId = 2213;
}
if (gui.jComboBox1.getSelectedItem() == "Rimmington") {
bankMode = 3;
areaBank = new RSArea(new RSTile(2946, 3214), new RSTile(2949, 3218));
areaWillow = new RSArea(new RSTile(2966, 3190), new RSTile(2976, 3198));
path = rimmingtonPath;
mode = 2;
}
}
public RSObject findSecondTree(final RSObject nearestTree, final int... treeIDs) {
return objects.getNearest(new Filter<RSObject>() {
public boolean accept(RSObject trees) {
if (nearestTree.equals(trees)) {
return false;
}
for (int id : treeIDs) {
if (trees.getID() == id) {
return true;
}
}
return false;
}
});
}
public void dropWillows() {
try{
if(gui.jSlider1.getValue() == 1)
mouse.setSpeed(random(6, 7));
if(gui.jSlider1.getValue() == 2)
mouse.setSpeed(random(5, 6));
if(gui.jSlider1.getValue() == 3)
mouse.setSpeed(random(1 ,2));
dropping = true;
status = "I am Dropping The willow logs";
int randomnum = random(0, 20);
if (randomnum != 5) {
inventory.dropAllExcept(Hatchets);
} else {
inventory.dropAllExcept(true, Hatchets);
}
mouse.setSpeed(random(6, 7));
cameraHandler();
dropping = false;
}catch(Exception e){
log.warning("Error at Drop Method - Please report to thread.");
}
}
public void chop() {
try {
RSObject willowtree = objects.getNearest(WillowTrees);
if (willowtree != null && getMyPlayer().getAnimation() == -1 && !getMyPlayer().isMoving()) {
status = "I am Chopping the Willow tree";
if (!willowtree.isOnScreen() && willowtree != null) {
camera.turnToTile(willowtree.getLocation());
if (calc.distanceTo(willowtree) > 3) {
walking.walkTileMM(willowtree.getLocation());
}
}
willowtree.doAction("Chop down");
if (random(0, 3) != 1) {
mouseHandler();
cameraHandler();
}
Willow = objects.getNearest(WillowTrees);
secondTree = findSecondTree(Willow, WillowTrees);
int randomNum = random(1, 15);
if (randomNum == 8) {
camera.turnToObject(Willow);
}
status = "I am Chopping the Willow tree";
int randomNum2 = random(0, 5);
if (randomNum2 != 0) {
sleep(random(1000, 1200));
if (secondTree != null) {
sleep(1000);
secondTree.doHover();
}
}
}
sleep(random(500, 1000));
} catch (Exception e) {
log.warning("error at chop() - Please report to thread");
}
}
/* END OF METHODS */
/* Paint */
public void onRepaint(Graphics g1) {
if (game.isLoggedIn()) {
if (startexp == 0) {
startexp = skills.getCurrentExp(Skills.getIndex("Woodcutting" ));
}
if (startlevel == 0) {
startlevel = skills.getCurrentLevel(Skills.getIndex("Woodcuttin g"));
}
logs = xpGained / 67.5;
logs = Math.round(logs);
int CurrentWcLevel = skills.getCurrentLevel(Skills.getIndex("Woodcuttin g"));
xpGained = skills.getCurrentExp(Skills.getIndex("Woodcutting" )) - startexp;
levelsGained = CurrentWcLevel - startlevel;
millis = System.currentTimeMillis() - startTime;
hours = millis / (1000 * 60 * 60);
millis -= hours * (1000 * 60 * 60);
minutes = millis / (1000 * 60);
millis -= minutes * (1000 * 60);
seconds = millis / 1000;
xpsec = 0;
final int percent = skills.getPercentToNextLevel(Skills.getIndex("Wood cutting"));
int nextlevel = CurrentWcLevel + 1;
if ((minutes > 0 || hours > 0 || seconds > 0) && xpGained > 0) {
xpsec = ((float) xpGained) / (float) (seconds + (minutes * 60) + (hours * 60 * 60));
xpmin = xpsec * 60;
xphour = xpmin * 60;
xphour = Math.round(xphour * 100.0) / 100.0;
}
Graphics2D g = (Graphics2D) g1;
RSObject[] allObjects = objects.getAll();
RSObject Trees = objects.getNearest(WillowTrees);
for (int i = 0; i < allObjects.length; i++) {
if (allObjects[i].getID() == 5551 || allObjects[i].getID() == 5552 || allObjects[i].getID() == 5553) {
g.setColor(Color.green);
g.fillOval(calc.tileToMinimap(allObjects[i].getLocation()).x - 6, calc.tileToMinimap(allObjects[i].getLocation()).y - 4, 10, 10);
} else if (allObjects[i].getID() == 5554) {
g.setColor(Color.red);
g.fillOval(calc.tileToMinimap(allObjects[i].getLocation()).x - 6, calc.tileToMinimap(allObjects[i].getLocation()).y - 4, 10, 10);
}
}
g.setColor(Color.orange);
g.fillOval(calc.tileToMinimap(Trees.getLocation()) .x - 6, calc.tileToMinimap(Trees.getLocation()).y - 4, 10, 10);
g.setColor(Color.blue);
g.drawLine(0, (int) (mouse.getLocation().getY()), 2000, (int) (mouse.getLocation().getY()));
g.drawLine((int) (mouse.getLocation().getX()), 0, (int) (mouse.getLocation().getX()), 2000);
g.drawLine(0, (int) (mouse.getLocation().getY() + 3), 2000, (int) (mouse.getLocation().getY() + 3));
g.drawLine((int) (mouse.getLocation().getX() + 3), 0, (int) (mouse.getLocation().getX() + 3), 2000);
if (normal != null) {
final int mouse_x = mouse.getLocation().x;
final int mouse_y = mouse.getLocation().y;
final int mouse_x2 = mouse.getPressLocation().x;
final int mouse_y2 = mouse.getPressLocation().y;
final long mpt = System.currentTimeMillis()
- mouse.getPressTime();
if (mouse.getPressTime() == -1 || mpt >= 1000) {
g.drawImage(normal, mouse_x - 8, mouse_y - 8, null);
}
if (mpt < 1000) {
g.drawImage(clicked, mouse_x2 - 8, mouse_y2 - 8, null);
g.drawImage(normal, mouse_x - 8, mouse_y - 8, null);
}
}
if (game.isFixed()) {
if (!hide) {
g.drawImage(back, 9, 346, null);
g.setColor(new Color(233, 224, 192));
g.setColor(new Color(223, 214, 179));
g.setStroke(new BasicStroke(1));
g.drawRect(9, 346, 500, 127);
g.setFont(new Font("Comic Sans MS", 0, 13));
g.setColor(new Color(1, 1, 1));
g.drawString("Runtime:" + hours + ":" + minutes + ":" + seconds + ".", 10, 361);
g.drawString(scriptVersion, 480, 361);
g.drawString("Current level: " + CurrentWcLevel, 10, 381);
g.drawString("Exp gained: " + xpGained, 10, 402);
g.drawString("Exp p/h: " + xphour, 10, 422);
g.drawString("Levels gained: " + levelsGained, 10, 442);
g.drawString("Logs: " + logs, 10, 464);
g.setFont(new Font("Comic Sans MS", 1, 12));
g.drawString(status, 217, 461);
g.drawImage(logo, 200, 340, null);
g.setColor(new Color(223, 214, 179));
g.fillRoundRect(249, 417, 100, 11, 20, 0);
g.setColor(Color.blue);
g.fillRoundRect(249, 417, percent, 11, 20, 0);
g.setColor(Color.black);
g.drawRoundRect(249, 417, 100, 11, 20, 0);
g.drawRoundRect(249, 417, percent, 11, 20, 0);
g.drawString(percent + "% till level " + nextlevel, 253, 442);
}
g.setColor(Color.BLACK);
g.drawRect(closeFixed.x, closeFixed.y, closeFixed.width, closeFixed.height);
g.setColor(Color.red);
g.fillRect(closeFixed.x, closeFixed.y, closeFixed.width, closeFixed.height);
g.setColor(Color.white);
g.setFont(new Font("Comic Sans MS", 0, 20));
g.drawString("_", 489, 467);
} else if (!game.isFixed()) {
if (!hide) {
g.drawImage(back, 2, 2, null);
g.setColor(new Color(233, 224, 192));
g.setColor(new Color(223, 214, 179));
g.setStroke(new BasicStroke(1));
g.drawRect(2, 2, 500, 127);
g.setFont(new Font("Comic Sans MS", 0, 13));
g.setColor(new Color(1, 1, 1));
g.drawString("Runtime:" + hours + ":" + minutes + ":" + seconds + ".", 10, 20);
g.drawString(scriptVersion, 475, 20);
g.drawString("Current level: " + CurrentWcLevel, 10, 40);
g.drawString("Exp gained: " + xpGained, 10, 60);
g.drawString("Exp p/h: " + xphour, 10, 80);
g.drawString("Levels gained: " + levelsGained, 10, 100);
g.drawString("Logs: " + logs, 10, 120);
g.setFont(new Font("Comic Sans MS", 1, 12));
g.drawString(status, 217, 120);
g.drawImage(logo, 200, 0, null);
g.setColor(new Color(223, 214, 179));
g.fillRoundRect(249, 75, 100, 11, 20, 0);
g.setColor(Color.blue);
g.fillRoundRect(249, 75, percent, 11, 20, 0);
g.setColor(Color.black);
g.drawRoundRect(249, 75, 100, 11, 20, 0);
g.drawRoundRect(249, 75, percent, 11, 20, 0);
g.drawString(percent + "% till level " + nextlevel, 253, 100);
}
g.setColor(Color.BLACK);
g.drawRect(close.x, close.y, close.width, close.height);
g.setColor(Color.red);
g.fillRect(close.x, close.y, close.width, close.height);
g.setColor(Color.white);
g.setFont(new Font("Comic Sans MS", 0, 20));
g.drawString("_", 476, 118);
}
if (hide) {
}
//Mouse
}
}
/*On Start*/
@Override
public boolean onStart() {
status = "Waking up...";
log("Welcome to xScriptx Chopper");
checkForUpdates();
gui = new gui();
gui.setVisible(true);
while (!startScript) {
sleep(100);
}
log("Loading paint, this may take some seconds...");
startTime = System.currentTimeMillis();
try {
final URL cursorURL = new URL(
"http://img440.imageshack.us/img440/9669/mouse.png");
final URL cursor80URL = new URL(
"http://img217.imageshack.us/img217/5293/mouseclicked.png");
normal = ImageIO.read(cursorURL);
clicked = ImageIO.read(cursor80URL);
} catch (MalformedURLException e) {
log("Unable to buffer cursor.");
} catch (IOException e) {
log("Unable to open cursor image.");
}
mouse.setSpeed(random(5, 7));
messages();
configureMode();
return true;
}
/*Main Loop*/
public int loop() {
if (logout) {
return -1;
}
if (mode == 1) {
if (!inventory.isFull() && !dropping) {
chop();
}
if (getMyPlayer().getAnimation() == 867) {
status = "I am Chopping the Willow tree";
int random3 = random(0, 70);
if (random3 == 1 || random3 == 2) {
mouseHandler();
cameraHandler();
}
}
sleep(random(200, 800));
if (inventory.isFull() && !dropping) {
dropWillows();
}
}
if (mode == 2) {
if (!inventory.isFull() && atWillowTrees() && !getMyPlayer().isMoving()) {
chop();
}
if (getMyPlayer().getAnimation() == 867) {
status = "I am Chopping the Willow tree";
int random3 = random(0, 70);
if (random3 == 1 || random3 == 2) {
mouseHandler();
cameraHandler();
}
}
sleep(random(200, 800));
if (inventory.isFull() || !atWillowTrees()) {
bank();
}
}
return 1;
}
/*On Finish*/
@Override
public void onFinish() {
log("xScriptxChopper ran for " + hours + ":" + minutes + ":" + seconds + " and gained " + xpGained + " exp.");
}
//START: EVENTS
public void mouseClicked(MouseEvent o) {
mousePoint = o.getPoint();
if (close.contains(mousePoint) && !hide) {
hide = true;
} else if (close.contains(mousePoint) && hide) {
hide = false;
}
mousePoint = o.getPoint();
if (closeFixed.contains(mousePoint) && !hide) {
hide = true;
} else if (closeFixed.contains(mousePoint) && hide) {
hide = false;
}
}
public void mouseEntered(MouseEvent o) {
}
public void mouseExited(MouseEvent o) {
}
public void mouseReleased(MouseEvent o) {
}
public void mousePressed(MouseEvent o) {
}
public void messageReceived(MessageEvent e) {
String lastMessage = e.getMessage().toLowerCase();
if (lastMessage.contains("you do not have a hatchet which you have the")) {
log.warning("Error - No hatchet found");
logout = true;
}
}
//END:EVENTS
/* START OF ANTIBAN */
private void mouseHandler() {
try {
int randomNum = random(0, 50);
if (randomNum <= 6) {
int randomNum2 = random(0, 10);
if (randomNum2 == 3) {
if (game.getCurrentTab() != 1) {
mouse.setSpeed(random(4, 9));
status = "I am checking my wc exp";
game.openTab(1);
sleep(random(350, 500));
skills.doHover(Skills.INTERFACE_WOODCUTTING);
sleep(random(1000, 2000));
game.openTab(4);
mouse.moveSlightly();
cameraHandler();
mouse.setSpeed(random(5, 7));
}
} else {
sleep(random(500, 800));
}
}
if (randomNum == 30 || randomNum == 31) {
mouse.moveOffScreen();
sleep(random(1000, 2500));
}
if (randomNum >= 40) {
status = "I am moving the mouse";
mouse.setSpeed(random(4, 8));
mouse.moveSlightly();
mouse.moveRandomly(65, 250);
mouse.setSpeed(random(6, 7));
} else {
sleep(random(50, 800));
}
sleep(random(100, 800));
if (randomNum == 36) {
mouse.move(random(678, 728), random(213, 232));
}
} catch (Exception e) {
log.warning("Error at mouseHandler() - Trying again");
}
}
private void cameraHandler() {
try {
int randomNum = random(0, 45);
if (randomNum == 16 || randomNum == 12) {
status = "I am changing camera position";
camera.setAngle(random(100, 200));
camera.setPitch(random(45, 90));
camera.setAngle(random(100, 300));
}
if (randomNum == 10 || randomNum == 15) {
status = "I am changing camera position";
camera.setAngle(random(10, 100));
}
if (randomNum == 6) {
status = "I am changing camera position";
camera.setPitch(random(60, 90));
camera.setAngle(random(50, 86));
}
if (randomNum == 17) {
status = "I am changing camera position";
camera.setPitch(random(50, 90));
}
if (randomNum == 38) {
status = "I am changing camera position";
camera.setPitch(random(68, 90));
} else {
sleep(random(50, 70));
}
} catch (Exception e) {
log.warning("Error at cameraHandler - Trying again");
}
}
/* END OF ANTIBAN */
}
The bold is the script´s name.
Then you go to the rsbotfolder. Click on the scriptfolder and then on "Sources". Than make a new textdocument. Paste the code you copied before in the new one.
Attention: Most times the coders writes the scriptname in his post. ( In my case: xScriptxChopper.java ) Your scriptfile should look so: Scriptname.java ( else the Bot won´t recognize it is a scriptfile ). Simply save the file and then go back an click on "Compile-Scripts.bat"
It worked when it looks similar to mine:
FAQ:
1. I get the code:
Note: scripts\Scriptname.java uses or overides a deprecated API.
Note: Recompile with -Xlint:deprecation for details
You can simply ignore it. ( Note is for scriptwriters
)
2. I get the code ( or similar ):
Scripts\Scriptname.java:284: reached end of file while parsing
}
^
1 Error
You copied the script wrong or it is simply not working.
3. Ich bekomme den Code:
Path file does not exist. Please run RSBot and try again.
Start the bot and try again.
Now the bot should be working fine. Click on "Run" and select your script. Now the bot plays for you.
You can send me a PM or post here if you have a question or a suggestion.
Attached Files
Scripts.zip
(1.31 MB, 88 views)
02/20/2011, 14:50
#2
elite*gold: 2
Join Date: Jun 2010
Posts: 768
Received Thanks: 233
Finde ich echt Toll,
denke das gehört Sticky!!
Doch, das ist eher ein TuT also finde ich den Titel nicht so passend.
PS:Für Sticky sollten aber lieber doch die Rechtschreibfehler verschwinden.
02/23/2011, 17:36
#3
elite*gold: 0
Join Date: Jan 2011
Posts: 285
Received Thanks: 25
Sowas gibts schon als Sticky von Gerble.
02/24/2011, 06:26
#4
elite*gold: 2
Join Date: Jun 2010
Posts: 768
Received Thanks: 233
Quote:
Originally Posted by
Type 53.
Sowas gibts schon als Sticky von Gerble.
Hast recht aber Gerbles Anleitung ist komplett englisch, daher würde ich es gut finden auch eine deutschsprachige, ähnlich qualitative Anleitung sticky zu machen.
02/26/2011, 12:22
#5
elite*gold: 0
Join Date: Jul 2010
Posts: 626
Received Thanks: 164
Quote:
Originally Posted by
VastoStyles.
Hast recht aber Gerbles Anleitung ist komplett englisch, daher würde ich es gut finden auch eine deutschsprachige, ähnlich qualitative Anleitung sticky zu machen.
Jop wenn ich mich nicht täusche ist die englische Version von Gerble direkt aus dem Powerbotforum ( bin mir nicht sicher ob es einfach nur Copy + Paste war aber seine Guide sieht der Guide im Forum sehr ähnlich )
03/01/2011, 20:07
#6
elite*gold: 0
Join Date: Jul 2010
Posts: 4
Received Thanks: 1
Update please mal die Codes. Wenn du noch mehr gute hast, adde sie
PS: Kennst du nen guten Runecrafting Bot? Hab bis jetzt kein guten gefunden :s
03/01/2011, 21:05
#7
elite*gold: 0
Join Date: Jul 2010
Posts: 626
Received Thanks: 164
Quote:
Originally Posted by
xp4mhack
Update please mal die Codes. Wenn du noch mehr gute hast, adde sie
PS: Kennst du nen guten Runecrafting Bot? Hab bis jetzt kein guten gefunden :s
Kommt drauf an für was du den Bot brauchst
.
Main post updated. Jetzt mit precompiled Scripts die es nicht mehr auf powerbot.org gibt
03/23/2011, 17:30
#8
elite*gold: 0
Join Date: Jul 2010
Posts: 626
Received Thanks: 164
Bei weiteren Fehler u./oder Verbesserungsvorschlägen einfach hier im Thread schreiben oder mir eine PN schreiben
03/24/2011, 17:54
#9
elite*gold: 45
Join Date: Oct 2010
Posts: 2,066
Received Thanks: 416
Nice Tread endlich ein erfahrener , der deutsch ist
Nun verstehe ich es auch , so geht es auch Kumpels usw....
voteed4 StickY !
#edit1: habn problem....schaut mal kann eienr mir helfen? will das jdk installieren , aber das kommt....
#edit2: Bekomme Rs Bot nicht geöffnet -..-
03/24/2011, 19:00
#10
elite*gold: 0
Join Date: Feb 2010
Posts: 4,213
Received Thanks: 1,178
Kann dir helfen.
Hast du Skype?
03/24/2011, 23:33
#11
elite*gold: 6
Join Date: Jan 2010
Posts: 424
Received Thanks: 33
Seit heute ist eine neue version draußen
03/25/2011, 16:54
#12
elite*gold: 0
Join Date: Jul 2010
Posts: 626
Received Thanks: 164
Freut mich das Vielen meine Anleitung gut gefällt
04/04/2011, 15:32
#13
elite*gold: 0
Join Date: Jul 2010
Posts: 3
Received Thanks: 0
Gutes Tut, hat mir sehr geholfen.
04/08/2011, 15:13
#14
elite*gold: 0
Join Date: Jul 2010
Posts: 626
Received Thanks: 164
# 16 zu 3 Stimmen
Hoffe ihr stimmt weiter fleißig
04/10/2011, 01:55
#15
elite*gold: 45
Join Date: Oct 2010
Posts: 2,066
Received Thanks: 416
Quote:
Originally Posted by
raiderkilla
Seit heute ist eine neue version draußen
Nach jedem Update von Jagex kommt eine neue Version
B2T: Dank diesem Tread hab ich auch How To Bot Using verstanden^^
Frage: Besitzt jemand ein Beschwörungs/Summoning Script ?
Similar Threads
Rsbot - German worlds - Scripts
04/26/2011 - Runescape - 2 Replies
Hallo,
gibt es eine Möglichkeit mit dem Rsbot auf deutschen Servern zu spielen ? Ich hab schon eine Version vom Rsbot gefunden bei dem man die Sprache einstellen konnte nur gabs dafür keine gescheiten Scripts. Kann man die Scripts irgendwie anpassen, sodass man auch auf deutschen Servern zocken kann ?
Translation:
Hello,
is there any possibility to play with the Rsbot on german worlds ? I ve tried a version of Rsbot in which i can switch the languages but for this version I didnt...
[HowTo]-YoutubeHD mit 1080p[GERMAN/DEUTSCH]-Tutorial
05/31/2010 - Tutorials - 10 Replies
Hallo,Leutz.
Ich hab mir mal die Mühe gemacht und ein Video gemacht,
ich zeige euch damit wie ihr mit sony vegas 9.0
720p und 1080p Videos erstellen könnt":
Das Video:
YouTube - HowTo-YoutubeHD mit 1080p-Tutorial
Wenn ihr wollt könnt ihr mich auslachen,auswelchem Grund auch immer.
Ich habe es zum 1.Mal gemacht also gibt mir ne Chance. :D
[HOWTO] Add Items to your NPC (GERMAN !)
09/21/2008 - Flyff Private Server - 1 Replies
So...da antho974 Tutorial auf englisch ist und etwas happig erklärt ist , habe ich nochmal ein Tutorial auf Deutsch geschrieben ^^ Hoffe es hilft euch.
Also um Items bei NPCs zu adden , müsst ihr als erstes die CFS-Dateien aus dem NPCShop-Ordner aus eurem ServerFiles-Ordner öffen. (Doofer Satz :P)
Das geht mit dem Hex Workshop , den ihr hier downloaden könnt : Hex Workshop: Hex Editor, Sector Editor, Base Converter and Hex Calulator for Windows
Hexworkshop installieren blablabla...
Dann...
All times are GMT +2. The time now is 10:04 .