I Am Legend
11-07-2011, 05:30 AM
Back after a long time cuz i heard ruenscape killed all the java bots and my exams jsut finised , was jsut wondering where my old scripts are , it was called WOTCutter but i cant seem to find the script anymore i posted it in like 200-2009.
Than ks
kingarabian
11-07-2011, 05:31 AM
(*================================================ ==================]
[ I Am Legend's WOTcutter version 0.8 ]
[ ]
[ NAME : WOTcutter ]
[ WRITER : I Am Legend. ]
[ CATEGORY : Auto Woodcutter ]
[ DESCRIPTION : Cuts, Oaks & Willows then drops them ]
[ Read below for more info..... ]
[ USAGE : Start by the fight caves entrance. ]
[ AUTOCOLOR : No=[ ( will come in later versions) ]
[ SRL Used : 4.0, Revision 20. ]
[ SCAR Used : 3.15. ]
[ ]
[ More Scripts can be found at ]
[ www.SRL-Forums.com & www.Scar-Scripts.com ]
[================================================== =================]
[ Instructions. ]
[================================================== =================]
[ 1. Smart Enabled. ]
[ 2. Set your Screen to 32 bit TRUE color. ]
[ 3. Setup lines, below. ]
[ 4. Set Playername and Password, below. ]
[ 5. Start in front of any tree that you wish to drop ]
[ 6. Start script Logged Out; The script will log you in. ]
[================================================== =================]
[ Some more info :) ]
[ 1. Random Autotalking- ]
[ 2. This script is ONLY allowed to be posted on www.SRL-Forums.com]
[ & Scar-Scripts.com ]
[ 3. Multi Player Script. Use more than 1 player! :) ]
[ 4. Than you to IceFire from scar-scripts community for providing ]
[ me with alot of help. And Tutorials from SRL Community. ]
[================================================== ============================]
[ Have your character near a tree with an axe. Logged out, ]
[ Allow SCAR and SMART to access internet/files ect. ect.. ]
[ Fill out the SetUpScript and the DelcarePlayers procedures. ]
[ Just hit run. It will load up SMART and log in your players itself. ]
[ The script will chop until you have a full inventory of logs on each player,]
[ and then set the player false and terminate the script. ]
[================================================== ============================]
[ Script Log ]
[================================================== ============================]
[ V 0.6 := Many Quick Fixes thanks to skilld u , Bring it on NoIdea =P ]
[ V 0.7 := Improved my FindEnter, now it detects ents more efficently, i also ]
[ fixed the DTM's ( uses less memory now ). Fixed Auto- Talk. ]
[ V 0.8 := Added in New features *Script Report, SRL Stats , and i improved ]
[ my ,Standars* I believe that the SRL Stats is still bit buggy as ]
[ this is my first time using it. ]
[================================================== ===========================*)
program WOTCutter;
{.Include SRL\SRL\Misc\SMART.SCAR}
{.Include SRL\SRL.SCAR}
{.include SRL/SRL/Skill/Woodcutting.Scar}
{.include srl/srl/misc/trade.scar}
var
T: TPoint;
x, y, Level, lvl, CurLvl, TreeColour, LogDTM : Integer;
MinRange, MaxRange, LogAverage, Loadsdone : Integer;
MadeRespond, Dropped : Integer;
const
YourSRLId = ''; // Your SRL id no. Here
YourSRLPassword = ''; // Your SRL id pass Here.
Versions ='0.8'; // Do Not Touch or your script will get screwed.
//================================================== ===\\
//================================================== ===\\
{| Declare Players Procedure |}
//================================================== ===\\
//================================================== ===\\
procedure DeclarePlayers;
begin
HowManyPlayers := 4; //Number of Players
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
//================================================== ===\\
//================================================== ===//
Players[0].Name := ''; //Username
Players[0].Pass := ''; //Password
Players[0].Nick := ''; //3 - 4 letters of your RS Username, not captial.
Players[0].Integers[0] := 1; //Loads
Players[0].Strings[1] := 'Oak'; // What are you Cutting? Valid Terms :- Tree, Oak , Willow
Players[0].Active:= True; // Active?
//================================================== ===\\
//================================================== ===//
Players[1].Name := ''; //Username
Players[1].Pass := ''; //Password
Players[1].Nick := ''; // 3 - 4 letters of your RS Username, not captial.
Players[1].Integers[0] := 100; //Loads
Players[1].Strings[1] := 'Tree'; // What are you Cutting? Valid Terms :- Tree, Oak , Willow
Players[1].Active:= True; // Active?
//================================================== ===\\
//================================================== ===//
Players[2].Name := 'Username'; //Username
Players[2].Pass := 'Password'; //Password
Players[2].Nick := 'ser'; // 3 - 4 letters of your RS Username, not captial.
Players[2].Integers[0] := 100; //Loads
Players[2].Strings[1] := 'Willow';// What are you Cutting? Valid Terms :- Tree, Oak , Willow
Players[2].Active:= True; // Active?
//================================================== ===\\
//================================================== ===//
Players[3].Name := 'Username'; //Username
Players[3].Pass := 'Password'; //Password
Players[3].Nick := 'ser'; // 3 - 4 letters of your RS Username, not captial.
Players[3].Integers[0] := 100; //Loads
Players[3].Strings[1] := 'Tree';// What are you Cutting? Valid Terms :- Tree, Oak , Willow
Players[3].Active:= True; // Active?
end;
//================================================== ===\\
//================================================== ===\\
{| Script SignatureProcedure |}
//================================================== ===\\
//================================================== ===\\
procedure Signature;
begin
writeln('Hello!');
wait(1000 + random(1001));
writeln('You are using !');
writeln(' ___ ___ ___ ___ ___ ___ ')
writeln(' / /\ / /\ ___ / /\ / /\ ___ ___ / /\ / /\ ')
writeln(' / /:/_ / /::\ /__/\ / /::\ / /:/ /__/\ /__/\ / /::\ / /::\ ')
writeln(' / /:/ /\ / /:/\:\ \ \:\ / /:/\:\ / /:/ \ \:\ \ \:\ / /:/\:\ / /:/\:\ ')
writeln(' / /:/ /:/_ / /:/ \:\ \__\:\ / /:/ \:\ / /:/ \__\:\ \__\:\ / /::\ \:\ / /::\ \:\ ')
writeln(' /__/:/ /:/ /\ /__/:/ \__\:\ / /::\ /__/:/ \ \:\ /__/:/ /\ / /::\ / /::\ /__/:/\:\ \:\ /__/:/\:\_\:\ ')
writeln(' \ \:\/:/ /:/ \ \:\ / /:/ / /:/\:\ \ \:\ \__\/ \ \:\ /:/ / /:/\:\ / /:/\:\ \ \:\ \:\_\/ \__\/~|::\/:/ ')
writeln(' \ \::/ /:/ \ \:\ /:/ / /:/__\/ \ \:\ \ \:\ /:/ / /:/__\/ / /:/__\/ \ \:\ \:\ | |:|::/ ')
writeln(' \ \:\/:/ \ \:\/:/ /__/:/ \ \:\ \ \:\/:/ /__/:/ /__/:/ \ \:\_\/ | |:|\/ ')
writeln(' \ \::/ \ \::/ \__\/ \ \:\ \ \::/ \__\/ \__\/ \ \:\ |__|:|~ ')
writeln(' \__\/ \__\/ \__\/ \__\/ \__\/ \__\| v0.7 ')
writeln(' ');
writeln(' Loading smart please be patient. ');
end;
//================================================== ===\\
//================================================== ===\\
{| SetupScript Procedure |}
//================================================== ===\\
//================================================== ===\\
procedure SetUpScript;
begin
writeln('you are cutting '+(Players[CurrentPlayer].Strings[1]))
case ((Players[CurrentPlayer].Strings[1])) of
'Tree': begin
TreeColour := 2977122; // Tree Colour
LogAverage := 1;
MinRange := 10;
MaxRange := 20;
lvl := 1;
end;
'Oak': begin
TreeColour := 4622460; // Oak Colour , 2977121, 4230013
LogAverage := 5+random(2);
MinRange := 40;
MaxRange := 80;
lvl := 15;
end;
'Willow': begin
TreeColour := 8697264; // Willow Colour
LogAverage := 7+random(2);
MinRange := 60;
MaxRange := 100;
lvl := 30;
end;
end;
end;
//================================================== ===\\
//================================================== ===\\
{| Find Level Procedure |}
//================================================== ===\\
//================================================== ===\\
Procedure DetermineLevel;
var
TheResults : Integer;
begin
If (Not(LoggedIn)) then
Exit;
Level := GetSkillInfo('woodcutting', False);
TheResults:= lvl - Level;
If Level < lvl then
begin
If Level <= 0 then
begin
Writeln('AllGood');
CurLvl := Level;
end else
begin
Writeln('Your woodcutting level is ' + IntToStr(TheResults) + ' levels to short');
LogOut;
NextPlayer(True);
Players[CurrentPlayer].Integers[0] := Players[CurrentPlayer].Integers[0] - Players[CurrentPlayer].Integers[0];
end;
end else
begin
Writeln('You are all good to cut.');
CurLvl := Level;
end;
end;
//================================================== ===\\
//================================================== ===\\
{| Auto Trader |}
//================================================== ===\\
//================================================== ===\\
procedure AutoTrader;
begin
if (SomeoneTrades) then
begin
AcceptTrade;
Wait(4000 + random(1000));
Decline;
Trades := Trades + 1;
case random(10) of
0: Typesend('nah its ok.');
1: Typesend('No thnx.');
2: Typesend('Kool.');
3: Typesend('I dont needed that.');
4: Typesend('Stop trading me .');
5: Typesend('Pfft. Ive seen better thing.');
6: Typesend('Go and sell these to some1 else.');
7: Typesend(' I already have it.');
8: Typesend('Leave me alone.');
9: Typesend('Nice.');
end;
end;
end;
//================================================== ===\\
//================================================== ===\\
{| Auto Responder ( Heaven'z =P ) |}
//================================================== ===\\
//================================================== ===\\
procedure AutoResponder;
var
WcText: array of string;
i: Integer;
begin
SetArrayLength(WcText, 3);
WcText[0] := 'wc';
WcText[1] := 'lvl';
WcText[2] := 'wc lvl';
for I := 0 to 2 do
if InChat(WcText[i]) then
if (not(FindBlackChatMessage(players[currentplayer].nick))) then
begin
Typesend('My wc lvl is ' + inttostr(GetSkillInfo('woodcutting', false)));
MadeRespond := MadeRespond + 1;
Break;
end;
end;
//================================================== ===\\
//================================================== ===\\
{| Anti Randoms Procedure |}
//================================================== ===\\
//================================================== ===\\
procedure AntiRandoms; // thank you for the example mickaliscious
begin
if(not(LoggedIn))then
Exit;
FindNormalRandoms;
if (FindFight) then
RunTo('N',True);
AutoTrader;
end;
//================================================== ===\\
//================================================== ===\\
{| Auto Talker Procedure |}
//================================================== ===\\
//================================================== ===\\
Procedure AutoTalk;
begin
If Not LoggedIn then
Exit;
begin
case Random(100) of
0: TypeSend('cutting down these treez really get boring ');
1: TypeSend('im going soon , ');
2: TypeSend('i dont like how far the bank is');
3: TypeSend('wot axe are you using?');
4: TypeSend('bronze axe owns');
5: TypeSend('i wish i made more money');
6: TypeSend('I wonder what jagex is going to ruin next');
7: TypeSend('wish the game was more fun');
8: TypeSend('wc levelz');
9: TypeSend('no speak englis');
10: TypeSend('tress dosent look realistic');
12: TypeSend('water luks fake lolz');
13: TypeSend('bah bah black sheep');
14: TypeSend('mUWAHAHAHAHA');
15: TypeSend('I Am legend Owns Me ! lol.');
16: TypeSend('sadeaskj bhabhab hab liasd');
17: TypeSend('my combat level owns urs lolz');
18: TypeSend('wc levelz');
end;
end;
end;
//================================================== ===\\
//================================================== ===\\
{| Anti Ban Procedure |}
//================================================== ===\\
//================================================== ===\\
procedure AntiBan;
begin
if(not(LoggedIn))then
Exit;
writeln('anti');
AntiRandoms;
AutoTrader;
AutoResponder;
case random(40) of
0: RandomRClick;
1: BoredHuman;
2: HoverSkill('Woodcutting', False);
3: begin
MakeCompass('N');
wait(100+random(5));
MakeCompass('S');
wait(100+random(5));
MakeCompass('N');
end;
4: begin
GameTab(1 + Random(12));
wait(750 + random(500));
GameTab(4)
end;
5: AutoTalk;
6: PickUpMouse;
end;
end;
//================================================== ===\\
//================================================== ===\\
{| Tree Finder Function |}
//================================================== ===\\
//================================================== ===\\
function FindTree(var T: TPoint): Boolean;
var
I, CTS: Integer;
TreeTPA: TPointArray;
TreeATPA: T2DPointArray;
begin
if (not (LoggedIn)) then
Exit;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TreeTPA, TreeColour, MSX1, MSY1, MSX2, MSY2, 20);
if (Length(TreeTPA) < 1) then
begin
writeln('hi');
Exit;
end;
ColorToleranceSpeed(CTS);
TreeATPA := SplitTPA(TreeTPA, 15);
for I := 0 to (High(TreeATPA)) do
if (MiddleTPAEX(TreeATPA[i], T.X, T.Y)) then
begin
MMouse(T.X, T.Y, 2, 2);
Wait(600 + Random(250));
if (IsUpText(Copy((Players[CurrentPlayer].Strings[1]), 2, (Length((Players[CurrentPlayer].Strings[1])))))) then
begin
GetMousePos(T.X, T.Y);
if FindEnt(T.X, T.Y, true) then
begin
AntiRandoms;
AntiBan;
Wait(5000+random(100));
end;
Result := True;
Break;
end;
end;
end;
//================================================== ===\\
//================================================== ===\\
{| Chop Procedure |}
//================================================== ===\\
//================================================== ===\\
procedure CutTree;
var
FailSafe1, FailSafe2: Byte; //A very small type of Integer with the range of 0 - 255.
begin
repeat
if (not (LoggedIn)) then
Exit;
if (FindTree(T))then
begin
Wait(RandomRange(100, 300));
Mouse(T.X, T.Y, 0, 0, True);
wait(100+random(50));
AntiRandoms;
FailSafe2 := 0;
repeat
if (not (LoggedIn)) then
Exit;
FailSafe2 := FailSafe2 + 1;
Wait(500);
writeln('1 - before find ENT ');
if FindEnt(T.X, T.Y, true) then
begin
AntiRandoms;
AntiBan;
Wait(5000+random(100));
end;
AntiRandoms;
writeln('2');
until ((FailSafe2 >= (RandomRange(MinRange, MaxRange))) or (InvFull)) ;
writeln('cut wait random range ');
end;
AntiRandoms;
AntiBan;
FailSafe1 := FailSafe1 + 1;
writeln('4');
until (InvFull);
writeln('finished cutting inv full or random range 5');
end;
//================================================== ===\\
//================================================== ===\\
{| Load DTM |}
//================================================== ===\\
//================================================== ===\\
Procedure LoadDTM;
begin
LogDTM := DTMFromString('78DA631465606010604001AE76120C92409 A1' +
'1CA67940512ACA86A1CACC451D528020931543506DA82A86A D830D52' +
'44498A1AAE102129C04D4F0010969543505E9F6286A004220 0603');
end;
//================================================== ===\\
//================================================== ===\\
{| Find DTM |}
//================================================== ===\\
//================================================== ===\\
function FindLogs(var x, y: integer): Boolean;
var
LogNot : integer;
begin
if (FindDTM(LogDTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
writeln('Found Log');
Result := True;
end else
LogNot := LogNot + 1;
if(LogNot = 5) then
begin
writeln('could not find any more Log, Inv must bee empty.');
Result := False;
end;
end;
//================================================== ===\\
//================================================== ===\\
{| Use DTM |}
//================================================== ===\\
//================================================== ===\\
procedure Drop;
var
i: Integer;
begin
if (InvFull) then
begin
GameTab(4);
writeln('Inv Full now Dropping logs');
for i := 2 to 28 do
begin
AntiRandoms;
if ExistsItem(i) then
begin
MMouseItem(i);
wait(100 + random(50));
if(IsUpText('ogs')) then
begin
DropItem(i)
Dropped := Dropped + 1;
Wait(200 + Random(100));
FTWait(1);
end;
end;
end;
Writeln('Dropped the whole inventory.');
writeln('Checking for Missed Logs ...');
repeat
if(FindLogs(x,y)) then
begin
AntiRandoms;
wait(200);
MMouse(x,y,4,4);
wait(500+random(50));
if(IsUpText('ogs')) then
begin
wait(200+random(100));
Mouse(x,y,0,0,false);
if (ChooseOption('rop')) then
begin
Inc(reportvars[0]);
Dropped := Dropped + 1;
Players[CurrentPlayer].integers[1] := Dropped;
wait(500+random(100));
end;
end;
end;
until(not(FindLogs(x,y))) or (not(loggedIn));
Writeln('Dropped the whole inventory.');
Loadsdone := Loadsdone + 1;
Inc(reportvars[0]);
Inc(reportvars[1]);
end;
end;
//================================================== ===\\
//================================================== ===\\
{| Progress Report |}
//================================================== ===\\
//================================================== ===\\
procedure ProgressReport;
var
i: Integer;
begin
SrlRandomsReport;
Writeln('Sending Report');
Writeln('========================');
Writeln('I Am Legends''s WOTcutter v' + Versions);
Writeln('Worked for :' + timerunning);
Writeln('Dropped ' + inttostr(Dropped) + ' logs.');
Writeln('Dropped ' + inttostr(Loadsdone) + ' loads ( All players ).');
Writeln('Talked ' + inttostr(MadeRespond) + ' times to other ppl.');
Writeln('Made ' + inttostr(Trades) + ' trades.');
Writeln('Please post progrees reports in my Thread =]. Thanx.');
Writeln('========================');
for i := 0 to High(Players) do
begin
Writeln('========================');
Writeln(IntToStr(I) + ': ' + players[i].nick + ' - ' + players[i].loc +
'Dropped ' + IntToStr(Players[i].integers[1]) + ' Logs.' +
'Worked: ' + IntToStr(Players[i].Worked) + ' Seconds ');
Writeln('========================');
end;
end;
//================================================== ===\\
//================================================== ===\\
{| Main Procedure |}
//================================================== ===\\
//================================================== ===\\
begin
SmartSetup('world38', false, true, False);
SetTargetDC(SMARTGetDC)
Signature;
SetUpSRL;
DeclarePlayers;
LoadDTM;
SRLId := YourSRLId;
SRLPassword := YourSRLPassword;
ScriptID := '955';
SetUpScript;
ActivateClient;
repeat
if (not (LoggedIn)) then
LoginPlayer;
Wait(1000);
DetermineLevel;
repeat
if (not (LoggedIn)) then
break;
Wait(RandomRange(1500, 2500));
SetAngle(True);
MakeCompass('N');
Wait(RandomRange(1000, 1500));
CutTree;
Drop;
writeln('6 - Main loop');
ProgressReport;
until (Loadsdone >= (Players[CurrentPlayer].Integers[0]));
writeln('7 after logged in');
NextPlayer(LoggedIn);
writeln('8 - next player logged in. ');
SetUpScript;
until (false);
WriteLn('Script done.');
Exit;
end.
Quick use of the search button ;).
Welcome back you should check out my intro to the SRL forums it's good for returning users. :p
Hobbit
11-07-2011, 06:36 AM
Welcome back
inb4comment:
Fixed your name color.
WT-Fakawi
11-07-2011, 08:20 AM
Good thing we never pruned the forums. goes back til feb 2006. Yummy!
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.