SCAR Code:
program AbsTrACtAutoAlcherSmartVersion;//This is my very first script but I believe it is a pretty good one.
{///////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\}
{ Title: AbsTrACtAutoAlcher }
{ Version: 1.00 SMART }
{ Author: AbsTrACt'^.| }
{ Settings: I don't use colors in this script so it's the same... }
{ Recommendation: Use it in Barrows Tombs as there are no randoms there }
{although you may find some persons there and I didn't made an AutoResponder yet }
{ SetUp Lines: }
{///////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\}
{.include SRL\SRL\Misc\Smart.scar}
{.include SRL\SRL.scar}
{.include SRL\SRL\misc\Users.scar}
var
alchs, Alchspell, AlchLong, x, y: integer;
{/////////////////////////\\\\\\\\\\\\\\\\\\\\\\\}
{ Begin SetUp }
{\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////}
const
RunD = 'n'; //Direction to run from Attacking Random (n, s, w, e)
ItemToAlchName = 'yew longbow'; //Name of the item you are alching (for antiban)
Alchstodo = 213; //How many alchs the bot should do?
Procedure DeclarePlayers; // this procedure is used to log players in
begin
HowManyPlayers :=1; // Set Number of Players here.
NumberOfPlayers(HowManyPlayers); // Sets the Players Array Length;
CurrentPlayer:=0; // CurrentPlayer = Array Index
Players[0].Name :='USERNAME';//Your account username
Players[0].Pass :='PASSWORD';//Your account password
Players[0].Nick :='ser';//3-4 Small letters of your username
Players[0].Active:=True;//Player in use or not in use (True for in use, False for not in use)
Players[1].Name :='USERNAME';//Your account username
Players[1].Pass :='PASSWORD';//Your account password
Players[1].Nick :='ser';//3-4 Small letters of your username
Players[1].Active:=True;//Player in use or not in use (True for in use, False for not in use)
Players[2].Name :='USERNAME';//Your account username
Players[2].Pass :='PASSWORD';//Your account password
Players[2].Nick :='ser';//3-4 Small letters of your username
Players[2].Active:=True;//Player in use or not in use (True for in use, False for not in use)
Players[3].Name :='USERNAME';//Your account username
Players[3].Pass :='PASSWORD';//Your account password
Players[3].Nick :='ser';//3-4 Small letters of your username
Players[3].Active:=True;//Player in use or not in use (True for in use, False for not in use)
Players[4].Name :='USERNAME';//Your account username
Players[4].Pass :='PASSWORD';//Your account password
Players[4].Nick :='ser';//3-4 Small letters of your username
Players[4].Active:=True;//Player in use or not in use (True for in use, False for not in use)
end;
{/////////////////////////\\\\\\\\\\\\\\\\\\\\\\\}
{ End SetUp }
{\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{/////////////////////////\\\\\\\\\\\\\\\\\\\\\\\}
{ Do Not Touch Below }
{\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
procedure Randoms;
begin
FindTalk; //finds talkin randoms
FindNormalRandoms; //finds normal randoms
SolveChatRandom; //solves chat randoms
FindLamp('Magic'); //solves lamp and then choses a skill to update
SolvePinball; //solves pinball random
DwarfItem; //dropes dwarf items
if(FindFight)then //runs away from fight
begin
MakeCompass('n');
RunTo(RunD, True);
Wait(3500 +Random(3000));
RunTo(RunD, True);
end;
end;
procedure AntiBan;
begin
case Random(2) of
0: begin
Wait (3137+(random(1350)));
HoverSkill('Magic', False);
Wait (3137+(random(711)));
Randoms;
Mouse(741,186,10,10,true);
end;
1: begin
Wait (3137+(random(1250)));
BoredHuman;
Wait (3137+(random(747)));
Randoms;
Mouse(741,186,10,10,true);
end;
end;
end;
procedure DTMs;
begin
Alchspell := DTMFromString('78DA63E465606010624001BFBEF1806946289' +
'F1124CFCA80061851D50802092E026AF8895443C82E1120C14F84' +
'7BB8A9E06651202148408D18901026A006242F46400D1F116A388' +
'950C342841A6622DCCC4A4438731356030042560420');
AlchLong := DTMFromString('78DA631467606090644001215EDC609A11CA6' +
'7E40512EA0C688011550D27905020A0860B4888105003B29A9780' +
'1A5122D4C801093E026A5481841001352A40429A08358A44A8D12' +
'0A0461648681250234E84398284E30B000D2903A8');
end;
procedure Report;
begin
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
Writeln('| AbsTrACt Auto Alcher Report! Feel free to post');
Writeln('| Alched '+ IntToStr(Alchs) + ' ' + ItemToAlchName + 's.');
Writeln('| Worked for ' + TimeRunning);
Writeln('| Exp gained '+ IntToStr(alchs*65));
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
Writeln('Made By AbsTrACt!');
end;
procedure Finished;
begin
if (alchs = alchstodo) then
begin
Logout;
report;
end;
end;
procedure Alch;
begin
Mouse(741,186,10,10,true)
repeat
Wait(500+random(150))
if FindDTM(Alchspell, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 10, 10,true);
end;
if FindDTM(AlchLong, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 10, 10, true);
end;
Wait(2000+random(100));
Case random(7) of
0:Wait(150+(random(376)));
1:Wait(55+(random(10)));
2:Wait(0+(random(250)));
3:AntiBan;
4:Wait(0+(random(150)));
5:Wait(150+(random(100)));
6:Wait(0+(random(100)));
end;
Finished;
until (alchs=alchstodo);
end;
Procedure Setup;
begin
smartSetup('world158', True, True);
While Not (SmartReady) Do
Wait(100);
SetTargetDC(SmartGetDC);
If Not (LoggedIn) Then
begin
While Not (SmartGetColor(386, 249) = 65535) Do
begin
Wait(100);
SetupSRL;
wait(1000);
ActivateClient;
wait(1000);
end;
end;
end;
begin
SetupSRL;
Setup;
DeclarePlayers;
LoginPlayer;
DTMs;
Alch;
FreeDTM(Alchspell);
FreeDTM(AlchLong);
Report;
end.