SCAR Code:
////////////////////\\\\\\\\\\\\\\\\\\\\\
/////////Zeta's Maple Masher v0.2\\\\\\\\\\\
//Big thanks to : Kevin Wolf, Town, and SantaClause\\
/////////////////////\\\\\\\\\\\\\\\\\\\\\\\\
program ZetasMapleMasher;
{.include SRL\SRL.scar}
{.include SRL\SRL\Skill\Woodcutting.SCAR}
const
Maple = 19058; //the colors of the maples
Maple2 = 16760;
Maple3 = 9548;
Tol = 10; //tolerance to find the maple
AntiBanAmount= 40; //Set this for the chance of Antiban to do something.
//40 is default, lower for more antiban, higher for less.
var
Loads:Integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 2; //Number of players to use
NumberOfPlayers(HowManyPlayers); //Don't Touch
CurrentPlayer := 0; //Player to start with
Players[0].Name := ''; //Players username
Players[0].Pass := ''; //Players password
Players[0].Nick := ''; //3-4 characters from players username(Lowercase and no spaces)
Players[0].Active := True; //Are you using this player
Players[0].Integers[0] := 2;//Loads For Player
Players[1].Name := ''; //Players username
Players[1].Pass := ''; //Players password
Players[1].Nick := ''; //3-4 characters from players username(Lowercase and no spaces)
Players[1].Active := True; //Are you using this player?
Players[1].Integers[0] := 2;//Loads For Player
Players[2].Name := ''; //Players username
Players[2].Pass := ''; //Players password
Players[2].Nick := ''; //3-4 characters from players username(Lowercase and no spaces)
Players[2].Active := True; //Are you using this player?
Players[2].Integers[0] := 2;//Loads For Player
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
end;
function RadialToleranceWalk(TheColor: Integer; StartRadial, EndRadial: Integer;
Radius: Integer; Xmod, Ymod, Tol: Integer): Boolean; // By Wizzup? and WT-Fakawi.
var
i, X1, Y1, x, y: Integer;
begin
if (RoadColorChecker) then
if (DebugRadialRoad) then
WriteLn(' THROUGH RADIALROADWALK= ---> ' + IntToStr(RoadColor));
if (StartRadial = EndRadial) then
begin
WriteLn('Using LinearRoadWalk, equal values.')
if LinearRoadWalk(TheColor, StartRadial, Radius, Xmod, Ymod) then
Result := True;
end
else if (StartRadial < EndRadial) then
begin
repeat
for i := StartRadial to EndRadial do
begin
x1 := Round(Radius * Sine(i)) + 646;
y1 := Round(-Radius * Cose(i)) + 84;
if Not LoggedIn then Exit;
if (FindColorTolerance(x, y, TheColor, X1, Y1, X1 + 1, Y1 + 1, Tol)) then
begin
MouseFindNoFlag(X,Y,Xmod,Ymod);
Result := True;
CountFlag(10);
Exit;
end;
end;
Radius := Radius - 4;
until (Radius <= 1);
end else
if (StartRadial > EndRadial) then
begin
repeat
for i := StartRadial downto EndRadial do
begin
x1 := Round(Radius * Sine(i)) + 646;
y1 := Round(-Radius * Cose(i)) + 84;
if Not LoggedIn then Exit;
if (FindColorTolerance(x, y, TheColor, X1, Y1, X1 + 1, Y1 + 1, Tol)) then
begin
MouseFindNoFlag(X,Y,Xmod,Ymod);
Result := True;
CountFlag(10);
Exit;
end;
end;
Radius := Radius - 4;
until (Radius <= 1);
end
end;
procedure SetupClient;
begin
if (not(LoggedIn)) then Exit;
SetChat('on', 1);
SetChat('off', 2);
SetChat('on', 3);
SetChat('on', 4);
Setrun(true);
end;
Function FindFastRandoms: Boolean; // By WT-Fakawi.
Var
i: Integer;
Begin
if not LoggedIn then Exit;
For I := 1 To 10 Do
Begin
Case I Of
1: If FindDead Then
Result := True;
2: If FindMime Then
Result := True;
3: If FindMaze Then
Result := True;
4: If FindQuiz Then
Result := True;
5: If FindDemon Then
Result := True;
6: Begin
If NoGameTab Then
Begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Players[CurrentPlayer].Active := False;
Logout;
Exit;
End;
End;
7 : If RC Then
Result:=True;
8 : If FindFight Then
Result := True;
9 : If FindTalk Then
Result := True;
10: If FindCerter Then
Result := True;
End;
Wait(1);
End;
End;
procedure AntiRandoms;
begin
FindTalk;
FindNormalRandoms;
FindFastRandoms;
FindLamp('Woodcutting');
SolvePinball;
if (FindFight) then
begin
MakeCompass('N');
RunTo('W', True);
Wait(8000 +Random(6423));
RunBack;
end;
end;
Procedure AntiBan1;
begin
if(not(LoggedIn))then Exit;
case Random(AntiBanAmount) of
1: begin
HoverSkill('Woodcutting',false);
wait(2364+Random(413));
GameTab(4);
end;
2: PickUpMouse;
3: begin
MakeCompass('N');
wait(10+random(5));
MakeCompass('S');
wait(10+random(5));
MakeCompass('N');
end;
5: begin
LowestAngle;
wait(10+random(74));
HighestAngle;
end;
6: SleepAndMoveMouse(5000+random(3000));
8: GameTab(1 + Random(12));
9: begin
MakeCompass('N');
wait(10+random(5));
MakeCompass('S');
wait(10+random(5));
MakeCompass('N');
end;
end;
end;
Procedure Antiban2;
begin
if(not(LoggedIn))then Exit;
case Random(AntiBanAmount) of
0: PickUpMouse;
1: FindNormalRandoms;
3: HoverSkill('Random', False);
5: DoEmote(1 + Random(20));
7: GameTab(1 + Random(12));
end;
end;
procedure WalkToMaples;
begin
MakeCompass('N');
HighestAngle;
Antiban1;
RadialToleranceWalk(98061, 330, 384, 65, 10, 12, 18)
Flag;
end;
procedure ChopMaples;
var
x, y, ChopMark: Integer;
begin
if (not (LoggedIn)) then Exit;
repeat
if FindObjCustom(x, y, ['aple tree'], [Maple, Maple2, Maple3], Tol) then
begin
Writeln('Found a maple... chopping');
GetMousePos(X, Y);
Antiban1;
Wait(500 + Random(102));
Mouse(X, Y, 0, 0, True);
AntiRandoms;
MarkTime(ChopMark);
repeat
Wait(500 + Random(250));
AntiRandoms;
if Random(AntiBanAmount div 2) = 0 then AntiBan2
until(TimeFromMark(ChopMark) >= (10000 + Random(5000))) or (InvFull) or (not (LoggedIn));
end;
until (InvFull);
end;
procedure WalkToBank;
var
x,y: integer;
begin
if (not(LoggedIn)) then
Exit;
SymbolAccuracy:= 0.1;
Makecompass('N');
HighestAngle;
begin
if (FindSymbol(x, y, 'bank')) then
begin
Mouse(x, y, 2, 2, true);
Antiban1;
AntiRandoms;
Flag;
end;
end;
end;
procedure Bank;
begin
OpenBank3;
if (BankScreen) then
FixBank;
Deposit(2,28,2);
Closebank;
Loads:=Loads+1;
end;
procedure NextPlayer;
begin
If(LoggedIn) and (Loads >= Players[CurrentPlayer].Integer[0])then
begin
Logout;
end;
end;
procedure MainLoop;
begin
ActivateClient;
SetUpSRL;
DeclarePlayers;
LoginPlayer;
SetupClient;
repeat
if not LoggedIn then NextPlayer(false);
WalkToMaples;
ChopMaples;
WalkToBank;
Bank;
NextPlayer;
if (not (LoggedIn)) then NextPlayer;;
until(false)
end;
begin
MainLoop;
end.