SCAR Code:
{
By DoomRider
****** ****** ****** ****** ******
****** ****** ****** ****** ******
****** ****** ****** ****** ******
******************************************************
********************************************************
**********************************************************
************************************************************
************* DoomRider's Bows Stringer *********************
************************you must do thes************************
*************************its not for sell*************************
********* 1- set-up on line 33-37. **********
********* 2- amout to do on line 20 **********
********* 3- but the screen resolutin to 1024,768. **********
********* 4- bows (u) somewhere in upperscreen of bank **********
********* 5- bs somewhere in upperscreen of the bank **********
*******************************************************************
*******************************************************************
*******************************************************************
*************** Script runs great in draynour bank ****************
*******************************************************************
*******************************************************************
Features:
- More antiban
- Chatback
- Better random detection methods
- Fix bugs
- And much more!
If u have any suggestions or comment please contact me at:
ElectricDoomRider(at)gmail(dot)com
U can add me on msn or email me
}
program DoomRidersBowStringer;
{.include SRL/SRL.scar}
////////////////////////////////////////////
const
RunAwayDir = 'N';
BowsToString = 2000;
Player0 = 0;
var
UseAntiBan, DebugMode: Boolean;
AntiBanAmount: integer;
ChatString: string;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
//***player setup***
Players[0].Name := 'bramiesaus2'; // your user name
Players[0].Pass := 'kolere'; //your password
Players[0].Nick := 'amie'; // your nick name
Players[0].String1 := '0912'; //pin
Players[0].Active := True;
UseAntiBan := True; // U wanted to use the antiban? (under construction, so its not in use yet)
AntiBanAmount := 3; // Anti-ban rate (under construction, so its not in use yet)
DebugMode := False; //debug mode on or off (true - false)
end;
var
bowallreadystringed, bowdtm, frotdtm, fullbowdtm: integer;
procedure LoadDtms;
begin
bowdtm := DTMFromString('78DA63946260601063400109219C0C46409A1' +
'188FF0301A31C90218BAAA6AF5608AE0604188581042FAA9ACC18' +
'4E881C140300F28D079B');
frotdtm := DTMFromString('78DA63AC676460E0056224D05C11C92009A44' +
'1A2FF8180B100C8E246555398EE0B5703028C8D4096086E73C06A' +
'AA812C31FC6A00F4CF0BBF');
fullbowdtm := DTMFromString('78DA63146260601060400133DB84182481342' +
'310FF0702466E208313554D660C275C0D08304A01093954357DB5' +
'42A86AD8810417AA9A9AE26254357C404208B71A66102D0A24A4F' +
'0AB01003EAA0CB5');
end;
procedure RunAway;
begin
RunAwayDirection(RunAwayDir);
Wait(12000 + random(2000));
RunBack;
end;
procedure Report;
begin
ClearDebug;
SRLRandomsReport;
WriteLn('/\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ ')
WriteLn('\/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ ')
WriteLn(' DoomRiders Bow Stringer ')
WriteLn(' ')
WriteLn(' Running Time: ' + (TimeRunning) + '')
WriteLn(' bow stringed: ' + IntToStr(bowallreadystringed) + '')
WriteLn(' XP Gained: ' + IntToStr(bowallreadystringed * 75) + '')
WriteLn('/\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ ')
WriteLn('\/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ ')
end;
procedure StopWholeScript;
begin
Report;
if (DebugMode = True) then WriteLn('Script stopped, propably because u logged out!');
Logout;
TerminateScript;
Exit;
end;
procedure MouseAntiBan;
begin
if not (LoggedIn) then StopWholeScript;
case Random(6) of
0: IdleTime(1000 + Random(350), 500, 1.0);
1: IdleTime(1000 + Random(350), 1000, 1.0);
2: IdleTime(1000 + Random(350), 750, 0.5);
3: SleepAndMoveMouse(2500 + Random(2500));
4: SleepAndMoveMouse(1500 + Random(1500));
5: SleepAndMoveMouse(500 + Random(500));
end
end;
//------------------------------------------------------------------------\\
{ MyAntiBan - Anti-Ban procedure by Yakman. ||
\\------------------------------------------------------------------------//}
procedure MyAntiBan; //From Yakman
var
DItem, DBanMe, AntiBanRatio: Integer;
begin
if not (LoggedIn) then StopWholeScript;
AntiBanRatio := 25 + (25 * AntiBanAmount);
DBanMe := Random(AntiBanRatio);
case DBanMe of
0: MMouse(Random(MSX2), Random(MSY2), 0, 0);
1: RandomRClickEvery(2 + Random(13));
2: HoverSkill('mining', False);
3: HoverSkill('smithing', False);
4: RotateEvery(20 + random(10));
5: LeaveScreenEvery(5 + random(5));
6: HoverEvery(15 + random(5), 'random');
7: HoverEvery(15 + random(5), players[currentplayer].skill);
8: MouseAntiBan;
9: begin
DItem := 1 + random(14);
if (ExistsItem(DItem)) then
DragItem(DItem, 15 + random(10));
end
10: begin
GameTab(1 + random(12));
wait(1500 + random(500));
GameTab(4);
end;
end;
end;
function FindFastRandoms: Boolean;
var
i: Integer;
begin
for i := 1 to 12 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;
Logout;
Exit;
end;
end;
8: begin
if InBlack then
begin
Result := True;
Logout;
Exit;
end;
end;
9: begin
if (DetectFrogCave) then SolveFrogSwamp;
end;
10: begin
if (FindFight) then
begin
RunAwayDirection('W');
Wait(10000 + Random(2000));
RunBack;
end;
end;
11: begin
FindLamp('Prayer');
end;
12: begin
if findname or findtalk then
begin
FindNormalRandoms;
end
end;
end;
Wait(1);
end;
end;
procedure Antirandoms2;
begin
Findname;
Findnormalrandoms;
FindTalk;
DwarfItem;
end;
procedure Randoms;
begin
FindFastRandoms;
FindTalk;
wait(10)
FindNormalRandoms;
if (FindFight) then
RunAway;
end;
procedure Bank;
var
x, y, fs, fs2: Integer;
begin
if not (LoggedIn) then StopWholeScript;
repeat
randoms;
Flag;
if (FindObj(x, y, 'booth', 607324, 10)) then
Mouse(x, y, 4, 4, False)
else
if (FindObj3(x, y, 'booth', 7243412, 10)) then
Mouse(x, y, 4, 4, False)
else
if (FindObj3(x, y, 'booth', 6324369, 10)) then
Mouse(x, y, 4, 4, False);
Wait(250 + random(20));
if (ClickOption('quickly', 1)) then
begin
Flag;
repeat
Wait(100 + random(20));
fs := fs + 1;
until (BankScreen) or (PinScreen) or (fs >= 50);
if (PinScreen) then InPin(Players[CurrentPlayer].String1);
end;
fs2 := fs2 + 1;
until (BankScreen) or (PinScreen) or (fs2 > 5);
if (pinscreen) then InPin(Players[CurrentPlayer].String1);
end;
{
function ClickBar:Boolean;
var WhereX,WhereY:integer;
begin
if FindBitmapMaskTolerance(BarMask, WhereX, WhereY, MIX1, MIY1 ,MIX2, MIY2, 10, 10) then
begin
Mouse(WhereX + 8,WhereY+8, 8, 8, True);
end;
FTWait(2);
If FindColor(WhereX,WhereY, 16777215, MIX1, MIY1, MIX2, MIY2) then Result:=True;
end;
}
procedure TakeBows1;
var
Number: integer;
begin
if (DebugMode = True) then WriteLn('Searching for bow dtm');
if not (FindDTM(bowdtm, x, y, 22, 49, 495, 324)) then
begin
if (DebugMode = True) then WriteLn('bow dtm NOT found');
Exit;
end;
if FindDTM(bowdtm, x, y, 22, 49, 495, 324) then
begin
Mouse(x, y, 5, 5, false)
if (DebugMode = True) then WriteLn('bow dtm found');
Wait(100 + Random(200))
ClickOption('X', 1);
Wait(800 + Random(200))
Number := 14;
TypeSend(IntToStr(Number));
Wait(200 + Random(250));
TypeSend(Chr(13));
Wait(200 + Random(250));
end;
end;
procedure TakeBows2;
begin
if (DebugMode = True) then WriteLn('Searching for bow dtm');
wait(500 + random(100));
if not (FindDTM(bowdtm, x, y, 22, 49, 495, 324)) then Exit;
if FindDTM(bowdtm, x, y, 22, 49, 495, 324) then
begin
Mouse(x, y, 3, 3, false)
if (DebugMode = True) then WriteLn('bow dtm found');
end;
Wait(200 + Random(200))
ClickOption('All', 1);
Wait(800 + Random(200))
Wait(500 + Random(250));
end;
procedure TakeStrings1;
begin
if (DebugMode = True) then WriteLn('Searching for string dtm');
wait(500 + random(100));
if not (FindDTM(frotdtm, x, y, 22, 49, 495, 324)) then Exit;
if FindDTM(frotdtm, x, y, 22, 49, 495, 324) then
begin
Mouse(x, y, 3, 3, false)
if (DebugMode = True) then WriteLn('string dtm found');
end;
Wait(200 + Random(200))
ClickOption('All', 1);
Wait(800 + Random(200))
Wait(500 + Random(250));
end;
procedure TakeStrings2;
var
Number: integer;
begin
if (DebugMode = True) then WriteLn('Searching for string dtm');
wait(500 + random(100));
if not (FindDTM(frotdtm, x, y, 22, 49, 495, 324)) then
begin
if (DebugMode = True) then WriteLn('bow dtm NOT found');
Exit;
end;
if FindDTM(frotdtm, x, y, 22, 49, 495, 324) then
begin
Mouse(x, y, 3, 3, false)
if (DebugMode = True) then WriteLn('string dtm found');
Wait(100 + Random(200))
ClickOption('X', 1);
Wait(800 + Random(200))
Number := 14;
TypeSend(IntToStr(Number));
Wait(200 + Random(250));
TypeSend(Chr(13));
Wait(200 + Random(250));
end;
end;
procedure DoShit1;
begin
if (DebugMode = True) then WriteLn('DoShit Random 1');
TakeStrings2;
TakeBows2;
end;
procedure DoShit2;
begin
if (DebugMode = True) then WriteLn('DoShit Random 1');
TakeBows1;
TakeStrings1;
end;
procedure DoShit3;
begin
if (DebugMode = True) then WriteLn('DoShit Random 1');
TakeBows1;
TakeStrings2;
end;
procedure TakeBowsAndStrings;
var rndnumber: integer;
begin
FixBank;
rndnumber := Random(3) + 1;
if (DebugMode = True) then WriteLn('The random Number was: ' + IntToStr(rndnumber) + '');
case rndnumber of
1: DoShit1;
2: DoShit2;
3: DoShit3;
end;
CloseBank;
bowallreadystringed := bowallreadystringed + 14;
//Randoms;
end;
procedure MakeBowsReady;
begin
//Randoms;
if (DebugMode = True) then WriteLn('Making the bows Ready')
wait(100 + random(150));
UseItem((random(14) + 1));
wait(300 + random(150));
UseItem((random(14) + 15));
//wait(100+random(131));
end;
procedure MakeBowsFull;
var FTM: integer;
begin
if not (LoggedIn) then StopWholeScript;
if (DebugMode = True) then WriteLn('Stringing the bows...');
Randoms;
MakeBowsReady;
wait(100 + RANDOM(300));
MMouse(253, 414, 5, 5);
wait(100 + RANDOM(100));
Mouse(253, 414, 5, 5, false);
wait(200 + random(500));
ClickOption('All', 3);
MMouse(random(628), random(334), 4, 4);
MarkTime(FTM);
repeat
//wait(500+random(1000));
//MMouse(628, 334, 10, 10);
//wait(500+random(1000));
//MyAntiBan; //find dtm van volledige afgebouwde boog op
//inv spot 14
// GameTab(4);
until (TimeFromMark(FTM) > 12000) or (FindDTM(fullbowdtm, x, y, 609, 318, 647, 356))
end;
procedure DeposititAll;
begin
if (DebugMode = True) then WriteLn('Deposit whole inventory in bank...');
if not (LoggedIn) then StopWholeScript;
wait(100 + random(200));
DepositAll;
wait(200 + random(120));
//CloseBank;
end;
procedure BeginIntro;
begin
Wait(1000);
WriteLn(' ')
WriteLn(' ')
Wait(500);
WriteLn('/\*************************\/*************************/\')
Wait(500);
WriteLn('\/*************************/\*************************\/')
Wait(500);
WriteLn('DoomRiderS Bow Stringer')
Wait(500);
WriteLn('!!! Straight from srl !!!')
Wait(500);
WriteLn(' ')
Wait(500);
WriteLn('U got any comment, suggestions or u found a bug ')
Wait(500);
WriteLn('please report it!')
Wait(500);
WriteLn(' ')
Wait(500);
WriteLn('E-Mail: ElectricDoomRider(at)gmail(dot)com')
Wait(500);
WriteLn(' ')
Wait(500);
WriteLn('Have Fun')
Wait(500);
WriteLn('\/*************************/\*************************\/')
Wait(500);
WriteLn('/\*************************\/*************************/\')
Wait(500);
WriteLn(' ')
WriteLn(' ')
WriteLn(' ')
Wait(3500);
end;
begin
setupSRL;
BeginIntro;
declareplayers;
CurrentPlayer := Player0;
activateclient;
loginplayer;
LoadDtms;
repeat
if not (LoggedIn) then StopWholeScript;
if not (Bankscreen) then
begin
Bank;
DeposititAll;
end;
//ChatString := GetNewChatMsg;
// WriteLn('Last Chat: ' + (ChatString) + '');
TakeBowsAndStrings;
MakeBowsFull;
wait(1500 + random(20));
Bank;
wait(1000 + random(20));
DeposititAll;
wait(1000 + random(20));
report;
until (bowallreadystringed >= BowsToString);
if (bowallreadystringed >= BowsToString) then
begin
StopWholeScript;
end;
end.