taultunleashed logoYO YO YO... here is a hack i found for runescape... : Runescape Discussions
newtopic  postreply
 [ 2 posts ] 
blue large dot

YO YO YO... here is a hack i found for runescape... : Runescape Discussions

Posted: July 6th, 2009, 5:19 pm
 
people0

Total Posts: 1
Joined: July 6th, 2009, 5:01 pm
people0's Reps: 0
User avatar
YOOOOOOOOOOOO, its your boi BEN JIGGITY here laying down a woodcutting and firemaking bot.. 8) this is from SCION BOT.COM ya i know taultunleashed is hella BETTAH, YA DIGG...



After two days of coding, and eight pots of coffee, I finally got it working without crahes, and kind of 99% realibility...

May I present, my first script, woodcutting and firemaking trainer...
Yeah, you really don't wanna train your skills to 99 with this, but at least you can start use this right away after finishing tutorial section.

As you can see, there's commented for few methods that I borrowed from Lolanator's Willow cutter, editted them a bit, and added comments.
(Original script: http://scionbot.com/forum/showthread.php?tid=4937)
Because... How it should say in english, why try to invent wheel again?
Hopefully this don't bother Lolanator?

All you need is you hatchet, and tinderbox, script takes care of rest.
I attached two images here, other is for starting spot (at Draynor), and yes, you have to be near it (closer than 15 tiles), to make script work, but I don't think that's too much to ask?

2009-06-02_143935.gif (Size: 28.69 KB / Downloads: 131)

In other picture you see what script looks like.

2009-06-02_143811.gif (Size: 149.8 KB / Downloads: 116)

I tried to comment script as well I could, for everyone who'd like to get familiar with Scion classes.
And I'm sorry about my possible bad english.

Any bugs or improvement suggestions in this thread.

here is the script:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Threading;
using System.Diagnostics;
using Scion;
using Scion.Core;
using Scion.Library;
using Scion.Library.RS;
using Scion.Library.RS.UI;
using Scion.Library.Underlying;
using Scion.Library.Advanced;
using Scion.Library.Antiban;
using Scion.Library.ReturnType;
using Scion.Misc;

namespace WCandFM_Trainer
{
public class Script : Superior
{
public static string ScriptAuthor = "JesuZ";
public static string ScriptComment = "JesuZ's Woodcutter and Firemaker trainer";

TilePath treePath; // Path for trees
TilePath fireSpots; // Firing tiles
TilePath firePath; // Fire path

PaintObject pStatus; // Script Status

PaintObject pwcXP; // Woodcutting XP
PaintObject pwcNeedXP; // Woodcutting needed XP
PaintObject pwcLevel; // Woodcutting current level
int wcStartXP; // Start XP for Woodcutting
int wcStartLevel; // Start Level for Woodcutting

PaintObject pfmXP; // Firemake XP
PaintObject pfmNeedXP; // Firemake needed XP
PaintObject pfmLevel; // Firemake current level
int fmStartXP; // Start XP for Firemaking
int fmStartLevel; // Start Level for Firemaking

PointRandom tinderBox; // Point for tinderbox location
//PointRandom curLog; // Point for current log that will fired up

DateTime started; // Time for when script started
PaintObject pRunned; // How long runned

// Variables for current skill infos
int wcCurLevel;
int wcCurXP;
int fmCurLevel;
int fmCurXP;

// Misc Variables
bool firstLogs;
int logsInBag; // Let's try to count logs that we chopped, for faster counting than Inventory.CountItems()
bool curRunState; // Variable for current run state

public Script(Stub s)
{
baseStub = s;
Graphics.AddObject( new PaintObject( "Woodcutting and Firemaking trainer by JesuZ 2009", Brushes.White, new Point( 10, 40 ) ) );

// Initializing Woodcutting status
pwcLevel = new PaintObject("Woodcutting Level: 0 (0-gained)", Brushes.GreenYellow, new Point(10, 70));
Graphics.AddObject(pwcLevel);
pwcXP = new PaintObject("Woodcutting XP Gained: 0", Brushes.GreenYellow, new Point(10, 85));
Graphics.AddObject(pwcXP);
pwcNeedXP = new PaintObject("Woodcutting XP Needed: -", Brushes.GreenYellow, new Point(10, 100));
Graphics.AddObject(pwcNeedXP);

// Initializing Firemaking status
pfmLevel = new PaintObject("Firemaking Level: 0 (0-gained)", Brushes.Red, new Point(10, 130));
Graphics.AddObject(pfmLevel);
pfmXP = new PaintObject("Firemaking XP Gained: 0", Brushes.Red, new Point(10, 145));
Graphics.AddObject(pfmXP);
pfmNeedXP = new PaintObject("Firemaking XP Needed: -", Brushes.Red, new Point( 10, 160 ));
Graphics.AddObject(pfmNeedXP);

// Initializing rest of status
pRunned = new PaintObject("Time Running: 00:00:00", Brushes.Yellow, new Point(10, 190));
Graphics.AddObject(pRunned);
pStatus = new PaintObject("Status: Initializing script...", Brushes.Yellow, new Point(10,205));
Graphics.AddObject(pStatus);

// Initializing treePath
treePath = new TilePath( this, new Tile[]
{
new Tile( 3082, 3269 ), new Tile( 3083, 3265 ),
new Tile( 3081, 3267 ), new Tile( 3083, 3269 ),
new Tile( 3081, 3270 ), new Tile( 3081, 3271 ),
new Tile( 3078, 3272 ), new Tile( 3077, 3271 ),
new Tile( 3074, 3266 )
});

// Initializing fire-spots
fireSpots = new TilePath( this, new Tile[]
{
new Tile( 3082, 3269 ), new Tile( 3085, 3264 )
});

// Initializing firepath
firePath = new TilePath(this, new Tile[]
{
new Tile( 3085, 3264 ), new Tile( 3083, 3264 ),
new Tile( 3076, 3264 ), new Tile( 3069, 3264 )
});
// And let's inform user
Log.Clear();
Log.WriteLine( "Script initialized..." );

// We set this true to go and empty backpack
firstLogs = true;
}

public object Execution()
{
// Start information about woodcutting
wcStartLevel = getCurrentLvl(Skills.XP_WOODCUTTING);
wcStartXP = getCurrentXp(Skills.XP_WOODCUTTING);

// Start information about firemaking
fmStartLevel = getCurrentLvl(Skills.XP_FIREMAKING);
fmStartXP = getCurrentXp(Skills.XP_FIREMAKING);

// Initializing woodcutting skill status
pwcLevel.text = "Woodcutting Level: " + wcStartLevel.ToString() + " (0-gained)";
pwcNeedXP.text = "Woodcutting XP Needed: " + XPtillNextLevel(wcStartXP).ToString() + " (" + Math.Ceiling((decimal)XPtillNextLevel(wcStartXP) / 25).ToString() + " Logs)";

// Initializing firemaking skill status
pfmLevel.text = "Firemaking Level: " + fmStartLevel.ToString() + " (0-gained)";
pfmNeedXP.text = "Firemaking XP Needed: " + XPtillNextLevel(fmStartXP).ToString() + " (" + Math.Ceiling((decimal)XPtillNextLevel(fmStartXP) / 40).ToString() + " Camp Fires)";

// Getting tinderbox location in backpack
tinderBox = Inventory.FindItem("Tinderbox");

// If empty bag, except tinderbox, set begin false
if (firstLogs && !Decide(Inventory.FindItem("Logs")))
firstLogs = false;

// Let's take care that our running info updates
Thread updateThread = new Thread(new ThreadStart(UpdateThread));
started = DateTime.Now;
updateThread.Start();

// Updating status
Status("Script running...");
return new SleepRandom(400,500);
}

// MAIN LOOPING METHOD
// ///////////////////
public object ExecutionLoop()
{
// Let's add little random for maybe we go and burn logs, currently 20% chance
// Also if there's first run, and there's logs in bag, we go and burn em
// And ofcourse if inventory is full, then should go and burn logs
if (Inventory.IsFull() || (firstLogs && Decide(Inventory.FindItem("Logs"))) || logsInBag >= new System.Random().Next( 7, 10 ) || (new System.Random().Next(0,100) >= 75 && Decide(Inventory.FindItem("Logs"))) )
{
// If first time to burn, let's set this false
if (firstLogs)
firstLogs = false;

// Update status, and walk to first burn spot
Status("Walking to burn logs...");
fireSpots.WalkToEnd(1);
Tab.SwitchTab(4);

// Let's read all log-positions from inventory to List, so we don't have to search them one by one...
List<PointRandom> bagLogs = Inventory.FindItems("Logs");
bagLogs.ForEach(delegate(PointRandom curLog) // And then just burn all of the logs...
{
// We've few spots where we can't light up fire, let's take care that we're not standing on them
Tile pos = Reflection.GetCharacterTile();
if ((pos.x == 3069 && pos.y == 3264) || (pos.x == 3081 && pos.y == 3263))
firePath.TileWalkStart(1);

Status("Burning logs...");
makeFire(curLog);
});

// And finally let's reset logsInBag, and move back to trees
logsInBag = 0;
treePath.WalkTo(0, 1);
}
else
{
// Let's take care that we are not doing anything before finding new spot
if (IsAnimating())
{
Log.WriteLine("[STATUS]You are already doing something else...");
while( IsAnimating() )
{
UpdateInfo();
AntiBan();
Sleep(new SleepRandom(500, 1500));
}
}

// Let's search tree
SetRun();

// But first let's take care that we are not too far away from area...
if (DistanceToTile(treePath.tiles[0]) > 15)
treePath.WalkTo(0, 1);
Status("Searching for tree...");
FindTree();
logsInBag++;
}
return new SleepRandom( 500, 1500 );
}

// Simple method for status updating
// /////////////////////////////////
private void Status(String text)
{
pStatus.text = "Status: " + text;
}


// Running time updating thread
// ////////////////////////////
public void UpdateThread()
{
// Variables for handled data
DateTime currentTime;
TimeSpan timeRunning;
string timeString = null;

// Let's run thread until script stopped
while (Script.scriptRunning)
{
// Let's count how long we've run script
currentTime = DateTime.Now;
timeRunning = currentTime - started;
timeString = timeRunning.ToString();

// And update the correct paintObject
pRunned.text = "Time Running: " + timeString.Substring(0,8);

Thread.Sleep(1000);
}
}

// Array for XPs by Lolanator
// //////////////////////////
private int[] xpArr = new int[]
{
0, 83, 174, 276, 388, 512, 650, 801, 969, 1154, 1358, 1584, 1833, 2107, 2411, 2746, 3115, 3523, 3973, 4470, 5018, 5624, 6291, 7028, 7842, 8740, 9730, 10824, 12031, 13363, 14833, 16456, 18247, 20224, 22406, 24815, 27473, 30408, 33648, 37224, 41171, 45529, 50339, 55649, 61512, 67983, 75127, 83014, 91721, 101333, 111945, 123660, 136594, 150872, 166636, 184040, 203254, 224466, 247886, 273742, 302288, 333804, 368599, 407015, 449428, 496254, 547953, 605032, 668051, 737627, 814445, 899256, 992895, 1096278, 1210421, 1336443, 1475581, 1629200, 1798808, 1968068, 2192818, 2421087, 2673114, 2951373, 3258594, 3597729, 3972294, 4385776, 4842295, 5346332, 5902831, 6517253, 7195629, 7994614, 8771558, 9684577, 10692629, 11805606, 13034431
};

// XP-Methods by Lolanator commented by JesuZ
// //////////////////////////////////////////
private int XPtillNextLevel(int CurrentXP )
{
// Let's take care that currentXP isn't XP for lvl 99
if (CurrentXP >= xpArr[98]) return 0;

// Let's cycle throught xpArray, and check if arrayResult is
// more than current XP, and return them subtraction
for (int i = 0; i <99> CurrentXP) return xpArr[i] - CurrentXP;
}

return -1;
}

// XP-Methods by Lolanator commented by JesuZ
// //////////////////////////////////////////
private int XPtillLevel(int CurrentXP, int GoalLevel)
{
// Let's just take care that needed GoalLevel isn't impossible level
// if that's correct, we return needed XP via GetLevelXP method
// and subtract current XP from it
if (GoalLevel <2> 99) return -1;
else return GetLevelXP(GoalLevel) - CurrentXP;
}

// XP-Methods by Lolanator commented by JesuZ
// //////////////////////////////////////////
private int GetLevelXP(int Level)
{
// And again, let's take care that Level is between 1 and 99
// if that's correct, return value from xpArray
if (Level <1> 99) return -1;
else return xpArr[Level - 1];
}

// Method for making fire of logs
// //////////////////////////////
private void makeFire(PointRandom log)
{
// Updating status
Status("Lighting up fire...");

// Click to tinderBox PointRandom (initialized at the begin of script)
Mouse.ClickMouse(tinderBox, true);
// And click to logs
Mouse.ClickMouse(log, true);

Sleep( new SleepRandom( 500, 1000 ));
// Loop until character stops lighting up
while (IsAnimating())
{
Sleep(new SleepRandom(1000, 1500));
}
// Update status, and skillinfos...
Status("Lighted up a fire...");
UpdateInfo();
Sleep(new SleepRandom(800, 1300));
}

// Method for info-update
// //////////////////////
private void UpdateInfo()
{
// Getting current skill-level and experience infos
wcCurLevel = getCurrentLvl(Skills.XP_WOODCUTTING);
wcCurXP = getCurrentXp(Skills.XP_WOODCUTTING);
fmCurLevel = getCurrentLvl(Skills.XP_FIREMAKING);
fmCurXP = getCurrentXp(Skills.XP_FIREMAKING);

// Updating woodcutting skill status
if (wcCurLevel != wcStartLevel || wcCurXP != wcStartXP)
{
pwcLevel.text = "Woodcutting Level: " + wcCurLevel.ToString() + " (" + (wcCurLevel - wcStartLevel).ToString() + "-gained)";
pwcXP.text = "Woodcutting XP Gained: " + (wcCurXP - wcStartXP).ToString() + " (" + Math.Ceiling((decimal)((wcCurXP - wcStartXP) / 25)).ToString().ToString() + " Logs)";
pwcNeedXP.text = "Woodcutting XP Needed: " + XPtillNextLevel(wcCurXP).ToString() + " (" + Math.Ceiling((decimal)XPtillNextLevel(wcCurXP) / 25).ToString() + " Logs)";
}

// Updating firemaking skill status
if (fmCurLevel != fmStartLevel || fmCurXP != fmStartXP)
{
pfmLevel.text = "Firemaking Level: " + fmCurLevel.ToString() + " (" + (fmCurLevel - fmStartLevel) + "-gained)";
pfmXP.text = "Firemaking XP Gained: " + (fmCurXP - fmStartXP).ToString() + " (" + Math.Ceiling((decimal)((fmCurXP-fmStartXP) /40)).ToString() + " Camp Fires)";
pfmNeedXP.text = "Firemaking XP Needed: " + XPtillNextLevel(fmCurXP).ToString() + " (" + Math.Ceiling((decimal)XPtillNextLevel(fmCurXP) / 40).ToString() + " Camp Fires)";
}
}

// Some randomize to moving
// ////////////////////////
private void SetRun()
{
// Let's random new run status
bool run = Convert.ToBoolean(new System.Random().Next(0, 4));

// Take care that new status is different than old one, to try to change state
// We don't want any irrelevant clicks there
if (run != curRunState)
{
Interface.SetRun(run);
curRunState = run;
}
}

// Some randomizing for character movement by Loliator
// ///////////////////////////////////////////////////
private void AntiBan()
{
int randomNumber = new System.Random().Next(1, 7);
switch (randomNumber)
{
case 1:
Point rndPoint = (new PointRandom(new System.Random().Next(50, Areas.GameSize.Width), new System.Random().Next(50, Areas.GameSize.Height), 100)).random;
Mouse.MoveMouse(rndPoint);
Log.WriteLine("[ANTIBAN]Moved mouse randomly to " + rndPoint.X.ToString() + ", " + rndPoint.Y.ToString());
break;
case 2: goto case 1;
case 3: goto case 1;
case 4:
Log.WriteLine("[ANTIBAN]Checking Woodcutting XP");
Tab.SwitchTab(2);
Sleep(new SleepRandom(200, 700));
Mouse.MoveMouse(new PointRandom(690, 402, 15));
Sleep(new SleepRandom(1000, 4000));
Tab.SwitchTab(4);
Sleep(new SleepRandom(200, 1000));
Tab.SwitchTab(4);
goto case 1;
case 5: goto case 1;
case 6: goto case 5;
case 7: goto case 5;
}
}

// Method for choping the tree
// ///////////////////////////
private void FindTree()
{
// Setting object properties for trees what we are looking for
ObjProperty[] property = new ObjProperty[] { new ObjProperty(FromRGB(149, 163, 83), 5) };
RSObject tree = new RSObject(this, Areas.CharacterCentre, "hop", Areas.WorldBounds, property, 1);


Status("Searching for tree...");
Log.WriteLine("[STATUS]Searching for tree......");

// Trying to cut tree, if fail, write log and move to start location
if ((!tree.DoAction("", ChooseOption.Common)))
{
Log.WriteLine("Failed to find tree!");
Log.WriteLine("Heading to start location...");
treePath.TileWalkTo(0, 1);
}
Status("Cutting...");
AntiBan();
Sleep(new SleepRandom(500, 1500));

// Let's loop until character stops chopping
while( IsAnimating() )
{
Sleep(new SleepRandom(500, 1000));
}
Log.WriteLine("[STATUS]Tree cutted!");
Status("Tree cutted...");
UpdateInfo();
}

}
}


Also attached compressed .DLL in post, so who really don't care about scripting, and only want to get advantage from Scion and scripts, just download it and place in Scion\Scripts folder.

Update LOG
v1.0
-Script Released
V.1.1
- Added bit more statusinfo about how many fires lighted, and how much logs has chopped
- Also fixed firing spots, because oldones caused sometimes character move aroun town to other side of fence to set up fires





well thats tha hack... now i need a MINING and WC bot... plz help me out, ya digg????


You do not have the required permissions to view the files attached to this post.


Reply with quote
Posted: July 29th, 2009, 7:45 pm
 
warmax11

Total Posts: 93
Joined: July 16th, 2009, 5:04 pm
warmax11's Reps: 19
User avatar
Active User > 50 Posts
I dont like the sound of this(HACK), could you possibly make a video using free fraps or gamecam? id appreciate it then


Reply with quote
Want Advertisements After The Last Post Removed? Create A Free Account!

blue large dot Who is online
Users browsing this forum: No registered users and 3 guests

Popular Sections
SWTOR Cheats
Guild Wars 2 Cheats
Guild Wars 2 Hacks
Guild Wars 2 Bots
Diablo 3 Cheats
Guild Wars 2 Mods

Popular Sections
WoW Cataclysm Cheats & Exploits
WoW Cataclysm Hacks & Bots
Star Wars The Old Republic Cheats
SWTOR Mods
Torchlight 2 Cheats
SWTOR Space Mission Bots
Site Nav and RSS
RSS Feed of Runescape Discussions RSS Feed 
Sitemap of Runescape Discussions Sitemap 
SitemapIndex SitemapIndex
RSS Feed RSS Feed
Channel list Channel list
left bottom corner Site and Contents Copyright 2001-2012 All Rights Reserved TaultUnleashed.com bottom corner
top left
top right
createaccount
Username:   Password:   Remember Me?