SCAR Code:
Program ULTRAPowerChopper;
{.Include SRL/SRL.Scar}
//INSTRUCTIONS.
{
WEAR YOUR AXE, USE LOW DETAIL, HIGHEST BRIGHTNESS, FULL OUT CONST/DECLARE PLAYERS, DRAG THE CROSS-HAIR ONTO THE RUNESCAPE SCREEN, HIT RUN, ENJOY!
}
//INSTRUCTIONS.
//Credits To: Rasta Magician - He Standarized My Script :P.
//Credits To: N1ke - He Fixed My Script Abit.
//Credits To: Timer & Spaztaz666 - They Helped Me With Multi-Player.
//Moved Some Code To Another Place.
//Removed Procedure WoodcuttingTalk.
//Added A Little More Fail-Safes.
Var
TreeTypeColor : Integer;
LogsCut : Integer;
LoadsCut, PLoadsCut : Integer;
Ents : Integer;
X, Y, AX1, AY1, AX2, AY2 : Integer;
RuneAxe, AddyAxe, MithAxe, BlackAxe, SteelAxe, IronAxe, BronzeAxe : Integer;
Const
Yew = 2184775;
Teak = 6071180;//Members Only.
Willow = 2332288;
Oak = 2188891;
Tree = 4483941;
Version = '2.3';
{SET UP HERE}
Const
TreeTolerance = 7;//Tolerance Of The Tree.
MaxSeconds = 3;//Maximum Seconds To Wait While Cutting A Tree.
RunAwayToDirection = 'n';//Direction To Run Away To If Find Ent Or Fight. LOWER CASE LETTER!
TreeType = 'Oak';//Yew, Teak, Willow, Oak, Tree. Capitalized.
SRLStatsID = '3213';//SRL STATS ID.
SRLStatsPW = '2313';//SRL STATS PASSWORD.
Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //username
Players[0].Pass := ''; //password
Players[0].Nick := 'amri'; //3-4 letters from your username
Players[0].Active := True;
Players[0].Integers[0] := 1;//Loads To Do
End;
{END OF SETUP}
Procedure LoadDTMs;
Begin
RuneAxe := DTMFromString('78DA630C666660B8C8C8800C5CA25318FE036' +
'990E87F20600C01AA3987AA06220B2381B43750CD79026A02806A' +
'2E1350E301547383801A2FA09A7BF8D50000AAEB0CF3');
AddyAxe := DTMFromString('78DA630C616660B8C8C8800C9C829D18FE036' +
'990E87F206004A93987AA06220B2381B43750CD79026A3C806A6E' +
'1050E303547393801A37A09A7BF8D5000089DC0CC6');
MithAxe := DTMFromString('78DA630C666660B8C8C8800C1C1CE219FE036' +
'990E87F20600C05AA3987AA06220B2381B43750CD79026A3C816A' +
'AE1250E30E54739B08731EE25703008ED00CCF');
BlackAxe := DTMFromString('78DA630C666660B8C0C8800C44858519FE036' +
'990E87F2060F401AAB989AA06220B2381B43750CD79026A3C806A' +
'6E1050130A54738E801A17A09AA7F8D50000137E0C2E');
SteelAxe := DTMFromString('78DA630C616660B8C8C8800CAA8B8A18FE036' +
'990E87F20600C05AA3987AA06220B2381B43750CD79026A3C816A' +
'AE1250E301547383801A37A09A7BF8D50000F0070D48');
IronAxe := DTMFromString('78DA630C666660B8C8C8800C827D7D19FE036' +
'990E87F206004A93987AA06220B2381B43750CD79026A3C816AAE' +
'1250E301547383801A37A09A7BF8D5000096F10CD3');
BronzeAxe := DTMFromString('78DA630C666660B8C8C8800CBCAD94C1344C9' +
'43114A8E61CAA1A982C5C8D3750CD79026ABC806A2E1150E30654' +
'738F801A4FA09A87F8D50000CE48079D');
End;
Function FindAxe : Boolean;
Begin
GameTab(5);
If(FindDTM(RuneAxe, X, Y, MIX1, MIY1, MIX2, MIY2))Or(FindDTM(AddyAxe, X, Y, MIX1, MIY1, MIX2, MIY2))Or
(FindDTM(MithAxe, X, Y, MIX1, MIY1, MIX2, MIY2))Or(FindDTM(BlackAxe, X, Y, MIX1, MIY1, MIX2, MIY2))Or
(FindDTM(SteelAxe, X, Y, MIX1, MIY1, MIX2, MIY2))Or(FindDTM(IronAxe, X, Y, MIX1, MIY1, MIX2, MIY2))Or
(FindDTM(BronzeAxe, X, Y, MIX1, MIY1, MIX2, MIY2))Then
Begin
WriteLn('Axe Is Equipped/Found.');
Result:=True;
End Else
If(Not(FindDTM(RuneAxe, X, Y, MIX1, MIY1, MIX2, MIY2)))And(Not(FindDTM(AddyAxe, X, Y, MIX1, MIY1, MIX2, AY2)))And
(Not(FindDTM(MithAxe, X, Y, MIX1, MIY1, MIX2, MIY2)))And(Not(FindDTM(BlackAxe, X, Y, MIX1, MIY1, MIX2, MIY2)))And
(Not(FindDTM(SteelAxe, X, Y, MIX1, MIY1, MIX2, MIY2)))And(Not(FindDTM(IronAxe, X, Y, MIX1, MIY1, MIX2, MIY2)))And
(Not(FindDTM(BronzeAxe, X, Y, MIX1, MIY1, MIX2, MIY2)))Then
WriteLn('AXE IS NOT EQUIPPED/NOT FOUND.');
Result:=False;
End;
Procedure Report;
Begin
ClearDebug;
Begin
WriteLn('--------------------------------------------------------------------');
WriteLn('Power Chopper Version ' + Version + '.');
WriteLn('Made By U L T R A.');
WriteLn('--------------------------------------------------------------------');
WriteLn('Ran For ' + TimeRunning + '.');
WriteLn('Cut ' + IntToStr(PLoadsCut) + ' Loads.');
WriteLn('Cut ' + IntToStr(LogsCut) + ' ' + TreeType + ' Logs.');
WriteLn('Avoided ' + IntToStr(Ents) + ' Ents.');
WriteLn('--------------------------------------------------------------------');
End;
End;
Procedure PerfectSwitchPlayer;
Begin
WriteLn('Sorry Problem Accured, Switching Players...');
Report;
LogOut;
NextPlayer(False);
PLoadsCut := PLoadsCut + LoadsCut;
LoadsCut := 0;
End;
Procedure ShowSignature;
Begin
WriteLn(' ___ ____ .____ ___________ __________ _____');
Wait(200+random(300));
WriteLn('| | \ | | \__ ___/ \______ \ / _ \');
Wait(300+random(200));
WriteLn('| | / | |___ | | | | \ / | \');
Wait(200+random(300));
WriteLn('|______/ |_______ \ |____| |____|_ / \____|__ /');
Wait(1000+random(4000));
End;
Procedure DeclareTreeType;
Begin
Case TreeType of
'Yew': TreeTypeColor := Yew;
'Teak': TreeTypeColor := Teak;
'Willow': TreeTypeColor := Willow;
'Oak': TreeTypeColor := Oak;
'Tree': TreeTypeColor := Tree;
end;
end;
{Procedure : RandomHoverMMouse)}
{Author : U L T R A.}
{Description : Randomly moves the mouse somewhere.}
Procedure RandomHoverMMouse;
Begin
Case Random(6)Of
0:MMouse(random(250), random(250), 10, 10);
1:MMouse(random(100), random(100), 50, 50);
2:MMouse(random(50), random(50), 150, 150);
3:MMouse(100, 100, 150, 150);
4:MMouse(300, 300, 100, 100);
5:MMouse(200, 200, 50, 50);
End;
End;
Procedure RandomlyDisguise;
Begin
Case Random(21)Of
0: Disguise('Windows Live Messenger');
1: Disguise('iTunes');
2: Disguise('RuneScape - the massive online adventure game by Jagex Ltd - Mozilla Firefox');
3: Disguise('RuneScape - the massive online adventure game by Jagex Ltd - Microsoft Internet Explorer');
4: Disguise('untitled - Paint');
5: Disguise('Google Tools');
6: Disguise('C:');
7: Disguise('Tip.it Runescape Help :: The Original RuneScape help site!');
8: Disguise('Rune Headquarters :.:.: Your Unfair RuneScape Advantage');
9: Disguise('C:/Program');
10: Disguise('Mozilla Firefox');
11: Disguise('My files');
12: Disguise('Rune Headquarters :.:.: Your Unfair RuneScape Advantage');
13: Disguise('RuneScape - das riesige Online-Abenteuerspiel fu"r Tausende von Spielern von Jagex Ltd.');
14: Disguise('Jagex Software :: Home');
15: Disguise('Google - Mozilla Firefox');
16: Disguise('Google - Microsoft Internet Explorer');
17: Disguise('Microsoft Internet Explorer');
18: Disguise('Video Game Cheats - Video Game Reviews - Video Game Codes - Video Game Web Site - GameFAQs');
19: Disguise('Habbo ~ Home');
20: Disguise('YouTube - Broadcast Yourself.');
End;
End;
Procedure SetUpPowerChopper;
Begin
MakeCompass('N');
GameTab(4);
If(MaxSeconds <= 1)Then
Begin
WriteLn('Maximum Seconds To Wait Is ' + IntToStr(MaxSeconds) + '! Seconds Too Low! Re-Set It To 5 to 15!');
TerminateScript;
End;
End;
Procedure URunTo(Direction : String);
Begin
Case Lowercase(Direction) of
'n': Mouse(644, 25, 5, 5, True);
'e': Mouse(703, 80, 5, 5, True);
's': Mouse(642, 139, 5, 5, True);
'w': Mouse(582, 88, 5, 5, True);
End;
FFlag(0);
End;
Procedure URunBack;
Begin
If(RunAwayToDirection = 'N')Then
Begin
URunTo('S');
End Else
If(RunAwayToDirection = 'E')Then
Begin
URunTo('W');
End Else
If(RunAwayToDirection = 'S')Then
Begin
URunTo('N');
End Else
If(RunAwayToDirection = 'W')Then
Begin
URunTo('E');
End;
End;
Function SolveEnt : Boolean;
Begin
If(FindColorTolerance(x, y, 56797, 25, 16, 99, 17, 5))And(IsUpText(TreeType))Then
Begin
WriteLn('Found Ent!');
URunTo(RunAwayToDirection);
Wait(10000+random(5000));
URunBack;
Ents := Ents + 1;
ReportVars[2] := ReportVars[2] + 1;
Result := True;
End Else
Result := False;
End;
Procedure SolveFight;
Begin
If(FindFight)Then
Begin
MakeCompass('N');
URunTo(RunAwayToDirection);
Wait(10000+random(5000));
URunBack;
End;
FindNormalRandoms;
End;
Procedure FindRandoms;
Begin
FindNormalRandoms;
SolveEnt;
SolveFight;
End;
Function WaitCount(SecondTimeOut : Integer) : Boolean;
Var
TimesCount : Integer;
Begin
TimesCount := 0;
Begin
Repeat
Wait(1000);
TimesCount := TimesCount + 1;
If(TimesCount < 10)Then WriteLn('Waited ' + IntToStr(TimesCount) + '000 M.Seconds.');
Wait(100);
If(TimesCount > 10)Then WriteLn('Waited ' + IntToStr(TimesCount) + '0000 M.Seconds.');
Wait(100);
Until(TimesCount >= SecondTimeOut)Or(SecondTimeOut >= 100)Or(FindNormalRandoms)Or(Not(LoggedIn));
If(TimesCount >= SecondTimeOut)Then Result:=True;
End;
End;
Procedure TextWait;
Begin
Repeat
Wait(500+random(500));
SolveEnt;
FindRandoms;
Until(WaitCount(MaxSeconds))Or(Not(IsUpText(TreeType)))Or(SolveEnt = True)Or(Not(LoggedIn))Or(InvFull)Or(ClickToContinue)Or(FindNormalRandoms);
If(WaitCount(MaxSeconds))Then
Exit;
End;
Procedure Cut;
Begin
If(Not(LoggedIn))Then PerfectSwitchPlayer;
If(FindObj(x, y, TreeType, TreeTypeColor, TreeTolerance))Then
Begin
Mouse(x, y, 5, 5, True);
WriteLn('Clicked The ' + TreeType + '.');
TextWait;
SolveEnt;
FindRandoms;
End;
End;
Procedure DropAllItems(StartingItem : Integer);
Var
I : Integer;
Begin
I := StartingItem;
If(I <= 0)Or(I >=28)Then Exit;
Begin
Repeat
FindRandoms;
DropItem(I);
I := I + 1;
Until(I >= 28);
End;
End;
Procedure MainCut;
Begin
Repeat
Cut;
SolveEnt;
FindRandoms;
Until(InvFull);
If(InvFull)Then
Begin
DropAllItems(1);
LogsCut := LogsCut + 27;
LoadsCut := LoadsCut + 1;
ReportVars[0] := ReportVars[0] + 27;
ReportVars[1] := ReportVars[1] + PLoadsCut;
End;
End;
Procedure AntiBan;
Begin
Case Random(3) Of
0:Begin
RandomHoverMMouse;
WriteLn('Used Anti-Ban - Randomly Moved The Mouse.');
End;
1:Begin
Wait(1000+random(4000));
WriteLn('Used Anti-Ban - Waited 1-5 Seconds.');
End;
2:Begin
HoverSkill('random', False);
WriteLn('Used Anti-Ban - Hovered A Random Skill.');
End;
End;
End;
Procedure SetUpSRLStats;
Begin
ScriptID := '569';
SRLID := SRLStatsID;
SRLPassword := SRLStatsPW;
If(SRLStatsID = '')Or(SRLStatsPW = '')Then
Begin
WriteLn('Register At SRL Stats And Fill Everything! Leecher!');
TerminateScript;
End;
End;
Begin
SetUpSRL;
RandomlyDisguise;
SetUpSRLStats;
ShowSignature;
LoadDTMs;
DeclarePlayers;
If(Not(LoggedIn))Then LogInPlayer;
Wait(1000+random(4000));
If(InvFull)Then DropAllItems(1);
DeclareTreeType;
SetUpPowerChopper;
Begin
Repeat
Repeat
Repeat
FindAxe;
Until(FindAxe)Or(Not(FindAxe));
If(Not(FindAxe))Then PerfectSwitchPlayer;
If(Not(LoggedIn))Then PerfectSwitchPlayer;
Report;
MainCut;
SolveEnt;
FindRandoms;
AntiBan;
Until(LoadsCut >= Players[CurrentPlayer].Integers[0])Or(Not(LoggedIn));
If(LoadsCut >= Players[CurrentPlayer].Integers[0])Or(Not(LoggedIn))Then
Begin
PerfectSwitchPlayer;
End;
Until(False);
End;
End.