SCAR Code:
{
(C) Travis AKA Born2Code's scripts.
Logz - A Draynor Willow Log cutter and banker.
Designed for SCAR 2.03 with SRL 3.6.
If you liked this script, be sure to give me a good rating on SRL-Forums!
Features:
-AntiBan
-AntiRandoms
-MultiPlayer
-Fast Chopping procedure
-An AWESOME name =]
Soon to come features:
-Axe Head Finding
-ENT Finding
-Broken Axe Replacing
SETUP LINES 40-79
Enjoy! Do not LEECH, COPY, or REDISTRIBUTE!
}
program Logz;
{.include srl/srl.scar}
{.include SRL\SRL\Skill\Woodcutting.SCAR}
var
Loads,Tries,CutTime,AxeDTM: integer;
const
WillowTreeColor= 263943;//Color of the Tree
AOL= 1;//Amount of loads
WaitTime= 3;//Time between tree clicks (seconds)
LoadTime= 2;//Max. time per load (minutes)
procedure DeclarePlayers;
begin
HowManyPlayers := 6;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := 'UserName';
Players[0].Pass := 'Password';
Players[0].Nick := '3-4 letters of UserName';
Players[0].Active := True;
Players[1].Name := 'UserName';
Players[1].Pass := 'Password';
Players[1].Nick := '3-4 letters of UserName';
Players[1].Active := False;
Players[2].Name := 'UserName';
Players[2].Pass := 'Password';
Players[2].Nick := '3-4 letters of UserName';
Players[2].Active := False;
Players[3].Name := 'UserName';
Players[3].Pass := 'Password';
Players[3].Nick := '3-4 letters of UserName';
Players[3].Active := False;
Players[4].Name := 'UserName';
Players[4].Pass := 'Password';
Players[4].Nick := '3-4 letters of UserName';
Players[4].Active := False;
Players[5].Name := 'UserName';
Players[5].Pass := 'Password';
Players[5].Nick := '3-4 letters of UserName';
Players[5].Active := False;
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
end;
procedure LoadDTM;
begin
AxeDTM := DTMFromString('78DA63E4646060E0634001514E1C609A11CA6' +
'7E401126CA86AB2037851D5B00309515435A1F6A8E600007D4802' +
'54');
end;
procedure WalkTrees;
begin
if(not(LoggedIn)) then Exit;
MakeCompass('N');
RadialRoadWalk(FindWaterColor,228,178,70,2,2);
Wait(2550+random(550));
FFlag(0);
end;
procedure WalkBank;
begin
if(not(LoggedIn)) then Exit;
MakeCompass('N');
if(not(FindSymbol(x,y,'bank'))) then
begin
Tries:=0
repeat
Wait(500+random(500));
if(Tries=25) then break;
Tries:=Tries+1
until FindSymbol(x,y,'bank');
end;
Mouse(x,y,2,2,true);
Wait(2550+random(550));
FFlag(0);
end;
procedure Chop;
begin
if(not(LoggedIn)) then Exit;
if(not(FindObj(x,y,'illow',WillowTreeColor,10))) then
begin
Tries:=0
repeat
Wait(345+random(634));
if(Tries=25) then
begin
Writeln('Couldnt find trees')
NextPlayer(false)
end;
Tries:=Tries+1
until FindSymbol(x,y,'fish');
end;
Mouse(x,y,3,4,true)
Wait(WaitTime*1000+random(1550));
end;
procedure Bank;
var I: Integer;
TP: TPoint;
begin
if(not(LoggedIn)) then Exit;
FFlag(0);
Wait(2550+random(550));
Writeln('Banking.')
MakeCompass('W');
KeyDown(VK_Down);
Wait(1000+random(50));
KeyUp(VK_Down);
Repeat
OpenBankGlass('db', false, false)
Until(BankScreen);
FFlag(0);
wait(500 + random(500));
FixBank;
for I := 1 to 28 do
begin
TP := ItemCoords(I);
if(ExistsItem(I))then
begin
if(not(FindDTM(AxeDTM,x,y,TP.x-25,TP.y-25,TP.x+25,TP.y+25)))then
begin
Mouse(x,y,2,2,false);
ChooseOption(x,y,'All');
end;
end;
end;
CloseBank;
Wait(1000+random(550));
KeyDown(VK_Up);
Wait(1000+random(50));
KeyUp(VK_Up);
Loads := Loads + 1
end;
procedure AntiBaning;
begin
if(not(LoggedIn))then
Exit;
case Random(20) of
0,16,17,18: RandomRClickEvery(3 + Random(3));
1: begin
HoverSkill('Woodcutting', false);
wait(1000+random(1000));
GameTab(4);
end;
2: begin
HoverSkill('Smithing', false);
wait(4000+random(550));
GameTab(4);
end;
3,4,5: RandomChatEvery(4 + Random(4));
6,12: PickUpMouse;
7: BoredEvery(10 + Random(5));
8,14: begin
GameTab(1 + Random(12));
wait(1000+random(1000));
GameTab(4);
end;
10: MouseBox(MMX1,MMY1,MMX2,MMY2,3);
11: SleepAndMoveMouse(5000+random(6000));
13,9: begin
GameTab(2 + Random(12));
wait(2000+random(1500));
GameTab(4);
end;
15: begin
GameTab(6 + Random(12));
wait(1500+random(700));
GameTab(4);
end;
19: begin
HoverSkill('Defene', false);
wait(4000+random(550));
GameTab(4);
end;
end;
end;
function FindFastRandoms: Boolean;
var
i: Integer;
begin
for i := 1 to 9 do
begin
case I of
1: if FindDead then
Result := True;
2: if FindMod then
Result := True;
3: if FindMime then
Result := True;
4: if FindMaze then
Result := True;
5: if FindQuiz then
Result := True;
6: if FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
end;
end;
8: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
9: RC;
end;
wait(1);
end;
end;
procedure Randoms;
begin
FindFastRandoms;
FindNormalRandoms;
end;
procedure Proggie;
begin
Writeln('\/_\/ \/_\/ \/_\/ \/_\/ \/_\/ \/_\/ \/_\/');
Writeln('Thank you for using Logz!');
Writeln('Cut approx. ' + IntToStr(Loads*28) + ' willow logs!');
Writeln('Banked '+ IntToStr(Loads) + ' time(s)!');
Writeln('Please post this proggie at http://www.villavu.com/forum/showthread.php?t=12658!');
Writeln('/\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\ /\_/\');
Writeln('Script by: Travis AKA born2code!');
end;
procedure Start;
begin
LoadDTM;
ClearReport;
ClearDebug;
ActivateClient;
end;
procedure Loop;
begin
Repeat
HighestAngle;
MakeCompass('N');
WalkTrees;
repeat
MarkTime(CutTime);
Randoms;
AntiBaning;
Chop;
until(InvFull) or (TimeFromMark(CutTime) >= LoadTime*60000+random(60700));
WalkBank;
Bank;
Proggie;
Until (Loads=AOL);
NextPlayer(True);
Exit;
Loads:=0;
end;
begin
SetupSRL;
Start;
DeclarePlayers;
Loads := 0
DisguiseScar(IntToStr(Loads) + ' load(s).');
Status(IntToStr(Loads) + ' load(s).');
If(not(LoggedIn))then LoginPlayer;
repeat
If(not(LoggedIn))then NextPlayer(False);
Loop;
Until (False)
ClearDebug;
Proggie;
DisguiseScar('Done!');
Status('Done!');
end.