SCAR Code:
{/////|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\\\\\
/////|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\\\\\
|||||/ \|||||
||||| PowerCutter Ver 4 Mikevskater |||||
||||| BIG Shout Out to JAD for his great tuts and advice! |||||
||||| Thanks ALOT to pwnaz0r for fixing my cut procedure! |||||
||||| Also big thanks to Timer, as well as richk1693 for all their help |||||
||||| WORKING TREES ARE REGULAR, OAK, WILLOW, MAPLE, YEW, AND MAGIC |||||
|||||\ Start by trees with axe equppied /|||||
\\\\\|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||/////
\\\\\|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||/////
}
program FirstScript;
{.include srl/srl.scar}
{.include srl/srl/skill/woodcutting.scar}
{.include srl/srl/misc/Users.scar}
var
x, y, Logs, Clicks, TreeColor, xp, SleepCount, SleepOften, SleepTime: Integer;
TreeName, Log: String;
UseSleep: Boolean;
////////////////////////////////////////////////////////////////////////////////
procedure DeclarePlayers;
begin
SRLPlayerForm(True, ['Use Sleeps', 'Use Responder'],
['Sleep How Often[mins]', 'How Long To Sleep[mins]'],
['Type of tree', 'SRL ID', 'SRL PASSWORD'], []);
Usesleep := Players[CurrentPlayer].Booleans[0];
SleepOften := Players[CurrentPlayer].Integers[0];
SleepTime := Players[CurrentPlayer].Integers[1];
SRLID := Players[CurrentPlayer].Strings[1];
SRLPassword := Players[CurrentPlayer].Strings[2];
end;
////////////////////////////////////////////////////////////////////////////////
procedure Anti;
begin
FindNormalRandoms;
if FindFight then
RunAway('N', True, 1, 9000+random(1000));
end;
////////////////////////////////////////////////////////////////////////////////
procedure Antiban;
begin
case random(20) of
0,3,6: BoredHuman;
4,7,10: RandomMovement;
8,11,14: PickUpMouse;
12,15,18: HoverSkill('woodcutting', false);
16,19: begin
Gametab(random(13+1));
wait(random(1000)+random(500));
Gametab(random(13+1));
wait(random(1000)+random(500));
Gametab(random(13+1));
wait(random(1000)+random(500));
gametab(4);
end;
end;
end;
////////////////////////////////////////////////////////////////////////////////
Function FindAxeIn: Boolean;
var
axe: Integer;
begin
axe := DTMFromString('78DA63B463626078C880021A9304C1342394C' +
'FE80054739D010D30A2AAF101AAB949408D27A65D186AAC816A3E' +
'1050630154F31EBF1A00027307E9');
Gametab(5);
wait(1000);
If finddtm(axe, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Axe Found');
result := true;
exit;
end;
Gametab(4);
wait(1000);
If finddtm(axe, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Axe Found');
result := true;
end;
freedtm(axe);
end;
////////////////////////////////////////////////////////////////////////////////
Procedure CheckForBrokenAxe;
var
x, y, BrokenAxe: Integer;
begin
BrokenAxe := DTMFromString('78DA636C616260E0636440061D697C601A26C' +
'AD80354C38FAA06260B57D30754C34D404D2F508D080135CD4035' +
'5C04D4D400D5A8E05703008C0604B4');
Gametab(4);
wait(1000);
if finddtm(BrokenAxe, x, y, MIX1, MIY1, MIX2, MIY2) then
Logout;
freedtm(BrokenAxe);
end;
////////////////////////////////////////////////////////////////////////////////
procedure Cut;
var
Inv, z: Integer;
begin
repeat
CheckForBrokenAxe;
if FindColorTolerance(x, y, treecolor, MSX1, MSY1, MSX2, MSY2, 15) then
begin
mmouse(x,y,0,0);
wait(500);
if isuptext(treename) and not(findent(x, y, true)) then
begin
Inv := InvCount;
Mouse(x, y, 0, 0, True);
z := 0;
FFlag(0);
Clicks := Clicks + 1
ReportVars[1] := ReportVars[1] + 1;
Anti;
repeat
wait(250+random(250));
z := z+1;
Anti;
until(InvCount > Inv) or (z > 100) or InvFull;
Anti;
end;
end;
until(InvFull);
end;
////////////////////////////////////////////////////////////////////////////////
Procedure Drop;// By Timer150
var
i: Integer;
ItemPoint: TPoint;
begin
GameTab(4);
Wait(500 + Random(500));
for i := 1 to 28 do
if (ExistsItem(i)) then
begin
ItemPoint := ItemCoords(i);
MMouse(ItemPoint.x, ItemPoint.y, 5, 5);
Wait(250 + Random(60));
if IsUpText(Log) then
begin
Mouse(ItemPoint.x, ItemPoint.y, 5, 5, False);
Wait(250 + Random(50));
ChooseOption('rop');
logs := logs + 1;
ReportVars[0] := ReportVars[0] + 1;
case Treename of
'ree': begin
xp := xp + 25;
ReportVars[2] := ReportVars[2] + 25;
end;
'ak': begin
xp := xp + 37;
ReportVars[2] := ReportVars[2] + 37;
end;
'illow': begin
xp := xp + 67;
ReportVars[2] := ReportVars[2] + 67;
end;
end;
end;
end;
ArrangeInv;
end;
////////////////////////////////////////////////////////////////////////////////
procedure Proggy;
begin
ClearDebug;
Writeln('/-----------------------------------\');
Writeln('| PowerCutter by MikeVSkater |');
Writeln('\-----------------------------------/');
Writeln('/-----------------------------------\');
writeln('Clicks: ' + inttostr(clicks));
Writeln('Logs: ' + inttostr(logs));
Writeln('Time: ' + TimeRunning);
Writeln('Xp Gaind: ' + inttostr(xp));
Writeln('\-----------------------------------/');
end;
////////////////////////////////////////////////////////////////////////////////
procedure Signature;
begin
ClearDebug;
Writeln('PowerCutter ver4 made by Mikevskater');
wait(1000);
Writeln('This is my first script so please help me '+
'on anything you know that I dont?');
Wait(5000+random(1000))
end;
////////////////////////////////////////////////////////////////////////////////
procedure Setup;
begin
case LowerCase(Players[CurrentPlayer].Strings[0]) of
'tree': begin
TreeColor := 1190181;
TreeName := 'ree';
Log := 'ogs';
end;
'oak': begin
TreeColor := 2317131;
TreeName := 'ak';
Log := 'ak logs';
end;
'willow': begin
TreeColor := 5078394;
TreeName := 'illow';
Log := 'illow logs';
end;
'maple': begin
TreeColor := 11361;
TreeName := 'aple tree';
Log := 'aple logs';
end;
'yew': begin
TreeColor := 4095344;
TreeName := 'ew';
Log := 'ew logs';
end;
'magic': begin
TreeColor := 10677746;
TreeName := 'agic tree';
Log := 'agic logs';
end;
end;
end;
////////////////////////////////////////////////////////////////////////////////
procedure LevelRespond;
var
Level, loop : Integer;
LvLookfor : TStringArray;
begin
if not (Players[CurrentPlayer].Booleans[1] = false) then
Exit;
LvLookfor := ['oodcutting l', 'cuttin lv', 'odcut le', 'cutin lvl'];
for loop := 0 to 3 do
begin
if InChat(LvLookFor[loop]) then
begin
Level := GetSkillInfo('fletching', False);
case Random(5) of
0: TypeSend(IntToStr(Level));
1: TypeSend(IntToStr(Level)+'FTW');
2: TypeSend(IntToStr(Level) + ' here');
3: TypeSend('Im ' + IntToStr(Level));
4: TypeSend('...'+IntToStr(Level));
end;
end;
end;
if inchat(Players[CurrentPlayer].Nick) then
case random(3) of
0: Typesend('???');
1: typesend('Hi?');
2: Typesend('You!');
end;
end;
////////////////////////////////////////////////////////////////////////////////
begin
SetupSRL;
ScriptID := '599';
DeclarePlayers;
Setup;
Signature;
If SRLID = '' then
begin
ClearDebug;
Writeln('Register at SRL now and stop Leech`n');
Writeln('Please go to : http://www.srl-forums.com/forum/register.php');
TerminateScript;
end;
wait(100 + Random(500));
ActivateClient;
Writeln('Found RuneScape');
Wait(500 + random(50));
If (not Loggedin) then
LoginPlayer;
SetAngle(True);
MakeCompass('N');
wait(2000);
MarkTime(SleepCount);
FindAxeIn;
if FindAxein = false then
begin
Writeln('Axe not found');
Logout;
TerminateScript;
end;
repeat
Cut;
AntiBan;
Anti;
LevelRespond;
Drop;
Anti;
AntiBan;
Proggy;
SRLRandomsReport;
until(False)
end.
Thanks to anyone who helps me out