Code:
program HoodzFletcher;
{$DEFINE SMART8}
{$I SRL-OSR/SRL.simba}
{$I SRL-OSR/SRL/misc/SmartGraphics.simba}
{$I SRL-OSR/SRL/misc/al_functions.simba}
{$i SRL-OSR/SRL/misc/MiniReflection.simba}
{$I SRL-OSR/SRL/core/antirandoms/C_AntiRandoms.simba}
var
x, y, Count1, LogXp, FinBowDTM, BowUDTM, BowStringDTM, StartXp, FletchTimer, LogDTM, BankTimer, FindBankCounter, KnifeDTM, GainedXp, GainedXpHour, Catched, CatchedHour: Integer;
const
NICKNAME = '';
USERNAME = '';
PASSWORD = '';
BANKPIN = '';
TRAININGSKILL = Skill_Fletching;
WORLD = 20;
VERSION = '1';
LOG = 'yew'; {maple, yew}
MODE = 'cut'; {cut, string}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := USERNAME;
Pass := PASSWORD;
nick := NICKNAME;
Active := True;
lampskill := TRAININGSKILL;
end;
end;
procedure SetupUpdater;
var
NewFile: integer;
OnlineVersion, NewScript, NewFileName: string;
begin
writeln('Checking for script updates...');
OnlineVersion := GetPage('http://pastebin.com/raw.php?i=8P8LnCXz');
if (trim(OnlineVersion) > VERSION) then
begin
writeLn('Script update available!');
writeLn('Updating script to v' + OnlineVersion);
NewScript := GetPage('http://pastebin.com/raw.php?i=NvPQQej9');
NewFileName := 'C:\Simba\Scripts\' + 'HoodzFletcher.simba';
NewFile := Rewritefile(NewFileName, true);
try
WriteFileString(NewFile, NewScript);
except
begin
writeLn('Fatal error writing to ' + NewFileName + '!!');
terminatescript;
end;
end;
CloseFile(NewFile);
writeLn('New script downloaded to ' + NewFileName + '. Please restart Simba.');
TerminateScript;
end
else
writeLn('You have the latest version of the script!');
end;
procedure LoadTheDTMs;
begin
case LOG of
'maple':
begin
LogXP := 58;
KnifeDTM := DTMFromString('mlwAAAHicY2dgYHjAzMBwA4gfA/FzIH4ExLeA+DoQOzEyMAQCsSMQmwOxBRC7AbEPEOelpQF1M2LF/Ay4AXYdEAwFAIDWCWQ=');
LogDTM := DTMFromString('mlwAAAHicY2dgYLjHzMBwA4hfAPEFIH4OxSC2BCMDgwYQS0GxMhCLAbEKEOd58QJ1M2LF/Ay4AXYdEAwFAOY/B+I=');
BowUDTM := DTMFromString('mggAAAHicY2NgYOBgYWDgBWIhIBYB4r/MDAxsQNqKkYHBBYi9gDgAiM2A2AaIt83sB+pixMD8DNgBpkoIhgAAvT0E5A==');
BowStringDTM := DTMFromString('mWAAAAHicY2FgYHgJxJ+B+B4Q3wbiYCAOgdKxQNxcHgkkGeFYhAEVMKJhEAAAs7wGXw==');
{finbow = finished bow, but this dtm is not correct!} FinBowDTM := DTMFromString('mggAAAHicY2NgYOBgYWDgBWIhIBYB4r/MDAxsQNqKkYHBBYi9gDgAiM2A2AaIt83sB+pixMD8DNgBpkoIhgAAvT0E5A==');
end;
'yew':
begin
LogXP := 75;
KnifeDTM := DTMFromString('mlwAAAHicY2dgYHjAzMBwA4gfA/FzIH4ExLeA+DoQOzEyMAQCsSMQmwOxBRC7AbEPEOelpQF1M2LF/Ay4AXYdEAwFAIDWCWQ=');
LogDTM := DTMFromString('mlwAAAHicY2dgYKhkZGCoAeJWIM4E4hIgbgPiHCCeA5RfAsSzgHgeEC8H4oVAPBOI/W04gCQjVszFgBtg1wHBUAAAzqcIWw==');
BowUDTM := DTMFromString('mlwAAAHicY2dgYHBlYmCwAWJHIPYEYl8o7QTEj4DyN4D4ARC/AuKPQPwMiG8D8b5lYkCSESvmYsANsOuAYCgAAC0gCcA=');
BowStringDTM := DTMFromString('mWAAAAHicY2FgYHgJxJ+B+B4Q3wbiYCAOgdKxQNxcHgkkGeFYhAEVMKJhEAAAs7wGXw==');
FinBowDTM := DTMFromString('mlwAAAHicY2dgYHjGzMDwAog/APFHIH4M5b8C4itA+etA/ACIn0LZd4D4GhCXZfACSUasmJsBN8CuA4KhAABF5g19');
end;
end;
addonterminate('cleartheDTMs');
end;
procedure ClearTheDTMs;
begin
FreeDTM(KnifeDTM);
FreeDTM(LogDTM);
FreeDTM(BowUDTM);
FreeDTM(BowStringDTM);
FreeDTM(FinBowDTM);
end;
function IsItemActivated: Boolean;
var
i: Integer;
begin
for i := 1 to 28 do
begin
Result := ItemActivated(i);
if Result then
Exit;
end;
end;
procedure WriteStatus(Status: string);
begin
GainedXp := Round(R_GetSkillExp(Skill_Fletching) - StartXp);
GainedXpHour := Round((GainedXp) / (GetTimeRunning / 3600000.0));
Catched := Round(GainedXp / LogXP);
CatchedHour := Round(Catched / (GetTimeRunning / 3600000.0));
ClearDebug;
Writeln('time running: ' + MsToTime(GetTimeRunning, 3));
Writeln('status: ' + Status);
Writeln('gained xp: ' + IntToStr(GainedXp));
Writeln('gained xp/hour: ' + IntToStr(GainedXpHour));
Writeln('fletched: ' + IntToStr(Catched));
Writeln('fletched/hour: ' + IntToStr(CatchedHour));
end;
procedure AntiBan;
begin
case random(2800) of
0..1:
begin
Al_hoverSkill(TRAININGSKILL, False);
Sleep(800 + Random(500));
Exit;
end;
4..10:
begin
MakeCompass(180 + Randomrange( - 8, 8));
Sleep(800 + Random(500));
Exit;
end;
11..26:
begin
Al_HumanRandomMouse;
Sleep(800 + random(500));
Exit;
end;
18:
begin
AdjustMouseSpeed(2, 10, 20);
Sleep(800 + Random(500));
Exit;
end;
19:
begin
RandomRClick;
Sleep(800 + Random(500));
Exit;
end;
20:
begin
HoverMovingObject;
Sleep(800 + Random(500));
Exit;
end;
21..24:
begin
MMouseOffClient('top');
Sleep(800 + Random(500));
Exit;
end;
25:
begin
MMouseOffClient('left');
Sleep(800 + Random(500));
Exit;
end;
26:
begin
MMouseOffClient('right');
Sleep(800 + Random(500));
Exit;
end;
27:
begin
MMouseOffClient('bottom');
Sleep(800 + Random(500));
Exit;
end;
end;
Exit;
end;
procedure Banking;
begin
MarkTime(BankTimer);
WriteStatus('banking');
if (not LoggedIn) then
begin
LogInPlayer;
exit;
end;
if (PinScreen) then
begin
InPin(BANKPIN);
Banking;
end
else
begin
if (not BankScreen) then
exit;
if MODE = 'cut' then
begin
if FindDTM(BowUDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
case random(25) of
0..22:
begin
Al_MissMouse(Point(x, y), Randomrange( - 10, 10), Randomrange( - 10, 10));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Right);
Sleep(100 + Random(150));
Al_ChooseOption('Deposit-All');
Sleep(900 + Random(150));
Banking;
Exit;
end;
23..24:
begin
Al_MissMouse(Point(x, y), Randomrange( - 10, 10), Randomrange( - 10, 10));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Right);
Sleep(100 + Random(150));
Al_ChooseOption('Deposit-X');
Sleep(900 + Random(150));
Banking;
Exit;
end;
end;
end;
if (FindDTM(LogDTM, x, y, MSX1, MSY1, MSX2, MSY2)) then
begin
case random(35) of
0..32:
begin
Al_MissMouse(Point(x, y), Randomrange( - 10, 10), Randomrange( - 10, 10));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Right);
Sleep(100 + Random(150));
Al_ChooseOption('Withdraw-All');
Sleep(100 + Random(150));
CloseBank;
Sleep(100 + Random(100));
Exit;
end;
33..34:
begin
Al_MissMouse(Point(x, y), Randomrange( - 10, 10), Randomrange( - 10, 10));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Right);
Sleep(100 + Random(150));
Al_ChooseOption('Withdraw-X');
Sleep(600 + Random(150));
Banking;
Sleep(100 + Random(100));
Exit;
end;
end;
end
else
begin
WriteStatus('Out of logs, logging off');
CloseBank;
Logout;
TerminateScript;
end;
end;
if MODE = 'string' then
begin
QuickDeposit('inv');
if (FindDTM(BowUDTM, x, y, MSX1, MSY1, MSX2, MSY2)) then
begin
case random(35) of
0..32:
begin
Al_MissMouse(Point(x, y), Randomrange( - 10, 10), Randomrange( - 10, 10));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Right);
Sleep(100 + Random(150));
if (not OptionsExist(['Withdraw-14'], False)) then
begin
Al_ChooseOption('Withdraw-X');
Sleep(1000 + Random(1000));
TypeSendEx('14', True);
Sleep(400 + Random(200));
end
else
begin
Al_ChooseOption('Withdraw-14');
Sleep(200 + Random(250));
end;
end;
33..34:
begin
Al_MissMouse(Point(x, y), Randomrange( - 10, 10), Randomrange( - 10, 10));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Right);
Sleep(100 + Random(150));
Al_ChooseOption('Withdraw-X');
Sleep(600 + Random(150));
Al_MissMouse(Point(x, y), Randomrange( - 10, 10), Randomrange( - 10, 10));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Right);
Sleep(100 + Random(150));
AL_ChooseOption('Withdraw-14');
Sleep(100 + Random(100));
end;
end;
if (FindDTM(BowStringDTM, x, y, MSX1, MSY1, MSX2, MSY2)) then
begin
case random(35) of
0..25:
begin
Al_MissMouse(Point(x, y), Randomrange( - 7, 8), Randomrange( - 1, 12));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Right);
Sleep(100 + Random(150));
Al_ChooseOption('Withdraw-14');
Sleep(100 + Random(150));
CloseBank;
Sleep(500 + Random(100));
Exit;
end;
26..34:
begin
Al_MissMouse(Point(x, y), Randomrange( - 7, 7), Randomrange( - 1, 12));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Right);
Sleep(100 + Random(150));
Al_ChooseOption('Withdraw-All');
Sleep(300 + Random(150));
CloseBank;
Sleep(500 + Random(100));
Exit;
end;
end;
end
else
begin
WriteStatus('Out of bow strings, logging off');
CloseBank;
LogOut;
TerminateScript;
end;
end
else
begin
WriteStatus('Out of (U) bows, logging off');
CloseBank;
LogOut;
TerminateScript;
end;
end;
end;
if TimeFromMark(BankTimer) > 20000 then
begin
MakeCompass(180 + Randomrange( - 8, 8));
Exit;
end;
end;
function Banker: boolean;
var
TPAA: T2DPointArray;
TPA: TPointArray;
CTS, I: Integer;
Mp: TPoint;
Box: TBox;
begin
if (IsItemActivated) then
begin
case random(2) of
0:
begin
Al_MouseBoxEx(520, 211, 555, 383, 5, Mouse_Left);
Sleep(30 + Random(50));
end;
1:
begin
Al_MouseBoxEx(524, 128, 568, 164, 5, Mouse_Left);
Sleep(30 + Random(50));
end;
end;
Banker;
end
else
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 0.06);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4743787, 238, 109, 270, 155, 17);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 25, 20);
SortATPASize(TPAA, True);
for I := 0 to High(TPAA) do
if GetArraylength(TPAA[i]) > 40 then
begin
Result := True;
MiddleTPAEx(TPAA[i], x, y);
Mp := MiddleTPA(TPAA[i]);
Box := IntToBox(Mp.x - 16, Mp.y - 16, Mp.x + 16, Mp.y + 16);
Al_MissMouse(Point(x, y), RandomRange( - 10, 10), RandomRange( - 10, 10));
Sleep(120 + Random(50));
if IsUpText('an') then
begin
case random(8) of
0:
begin
FindBankCounter := 0;
Al_FastClick(Mouse_Right);
WriteStatus('banker found!');
Sleep(200 + Random(200));
Al_Chooseoption('Bank');
Sleep(200 + Random(100));
Flag;
Sleep(500 + Random(30));
Banking;
end;
1..7:
begin
FindBankCounter := 0;
Al_FastClick(Mouse_Left);
WriteStatus('banker found!');
Sleep(1000 + Random(200));
Flag;
Banking;
end;
end;
end
else
begin
if (PinScreen) or (BankScreen) then
begin
Banking;
end
else
begin
MakeCompass(180 + Randomrange( - 8, 8));
Banker;
end;
end;
Exit;
end
else
begin
MakeCompass(180 + Randomrange( - 6, 6));
Banker;
end;
end;
end;
procedure RecoverKnife;
var
TPAA: T2DPointArray;
TPA: TPointArray;
CTS, I: Integer;
Mp: TPoint;
Box: TBox;
begin
if (IsItemActivated) then
begin
case random(2) of
0:
begin
Al_MouseBoxEx(520, 211, 555, 383, 5, Mouse_Left);
Sleep(30 + Random(50));
end;
1:
begin
Al_MouseBoxEx(524, 128, 568, 164, 5, Mouse_Left);
Sleep(30 + Random(50));
end;
end;
RecoverKnife;
end
else
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.02, 0.06);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4743787, 238, 109, 270, 155, 17);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 25, 20);
SortATPASize(TPAA, True);
for I := 0 to High(TPAA) do
if GetArraylength(TPAA[i]) > 40 then
begin
MiddleTPAEx(TPAA[i], x, y);
Mp := MiddleTPA(TPAA[i]);
Box := IntToBox(Mp.x - 16, Mp.y - 16, Mp.x + 16, Mp.y + 16);
Al_MissMouse(Point(x, y), RandomRange( - 10, 10), RandomRange( - 10, 10));
Sleep(120 + Random(50));
if IsUpText('an') then
begin
case random(8) of
0:
begin
FindBankCounter := 0;
Al_FastClick(Mouse_Right);
WriteStatus('banker found!');
Sleep(200 + Random(200));
Al_Chooseoption('Bank');
Sleep(200 + Random(100));
Flag;
Sleep(500 + Random(30));
QuickDeposit('inv');
Sleep(300 + Random(200));
if FindDTM(KnifeDTM, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
case random(2) of
0:
begin
Al_MissMouse(Point(x, y), Randomrange( - 6, 6), Randomrange( - 6, 6));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Right);
Sleep(100 + Random(150));
Al_ChooseOption('Withdraw-1');
Sleep(200 + Random(250));
Banking;
CloseBank;
exit;
end;
1:
begin
Al_MissMouse(Point(x, y), Randomrange( - 5, 5), Randomrange( - 5, 5));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Left);
Sleep(100 + Random(150));
Banking;
CloseBank;
exit;
end;
end;
end;
end;
1..7:
begin
FindBankCounter := 0;
Al_FastClick(Mouse_Left);
WriteStatus('banker found!');
Sleep(1000 + Random(200));
Flag;
QuickDeposit('inv');
Sleep(300 + Random(200));
if FindDTM(KnifeDTM, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
case random(2) of
0:
begin
Al_MissMouse(Point(x, y), Randomrange( - 6, 6), Randomrange( - 6, 6));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Right);
Sleep(100 + Random(150));
Al_ChooseOption('Withdraw-1');
Sleep(200 + Random(250));
Banking;
CloseBank;
exit;
end;
1:
begin
Al_MissMouse(Point(x, y), Randomrange( - 5, 5), Randomrange( - 5, 5));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Left);
Sleep(100 + Random(150));
Banking;
CloseBank;
exit;
end;
end;
end;
end;
end;
end
else
begin
if (PinScreen) or (BankScreen) then
begin
QuickDeposit('inv');
Sleep(200 + Random(200));
if FindDTM(KnifeDTM, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
case random(2) of
0:
begin
Al_MissMouse(Point(x, y), Randomrange( - 6, 6), Randomrange( - 6, 6));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Right);
Sleep(100 + Random(150));
Al_ChooseOption('Withdraw-1');
Sleep(200 + Random(250));
Banking;
CloseBank;
exit;
end;
1:
begin
Al_MissMouse(Point(x, y), Randomrange( - 5, 5), Randomrange( - 5, 5));
Sleep(100 + Random(76));
Al_FastClick(Mouse_Left);
Sleep(100 + Random(150));
Banking;
CloseBank;
exit;
end;
end;
end;
end
else
begin
MakeCompass(180 + Randomrange( - 8, 8));
RecoverKnife;
end;
end;
Exit;
end
else
begin
MakeCompass(180 + Randomrange( - 6, 6));
RecoverKnife;
end;
end;
end;
function FindLog: Boolean;
begin
if (BankScreen) then
begin
CloseBank;
FindLog;
Exit;
end
else
begin
if MODE = 'cut' then
begin
if FindDTM(LogDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Result := True;
Al_MissMouse(Point(x, y), Randomrange( - 5, 10), Randomrange( - 10, 10));
Sleep(120 + Random(50));
case Random(15) of
0:
begin
Al_FastClick(Mouse_Right);
Sleep(200 + Random(100));
Al_ChooseOption('Use');
end;
1..14: Al_FastClick(Mouse_Left);
end;
Sleep(250 + Random(200));
if FindDTM(KnifeDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Al_MissMouse(Point(x, y), Randomrange( - 10, 10), Randomrange( - 10, 10));
Sleep(120 + Random(50));
case Random(6) of
0:
begin
Al_FastClick(Mouse_Right);
Sleep(150 + Random(150));
Al_ChooseOption('Use');
end;
1..5: Al_FastClick(Mouse_left);
end;
WriteStatus('log found!');
Flag;
Sleep(200 + Random(90));
Al_MouseBoxEx(230, 392, 285, 447, Randomrange(- 5, 25), 3);
Sleep(500 + Random(120));
MarkTime(FletchTimer);
if (WaitUpText('ke', 300)) then
begin
Al_FastClick(Mouse_Right);
Sleep(200 + Random(90));
case random(32) of
0..2:
begin
Al_ChooseOption('Cancel');
Sleep(300 + Random(200));
Al_MouseBoxEx(230, 392, 285, 447, Randomrange(-5, 15), 3);
Al_FastClick(Mouse_Right);
Sleep(200 + Random(90));
Al_ChooseOption('Make X');
Sleep(800 + Random(200));
TypeSendEx(IntToStr(Randomrange(28, 99)), True);
Sleep(2200 + Random(200));
Exit;
end;
3..31:
begin
Al_ChooseOption('Make X');
Sleep(800 + Random(200));
TypeSendEx(IntToStr(Randomrange(28, 99)), True);
Sleep(2200 + Random(200));
Exit;
end;
end;
end;
end
else
begin
RecoverKnife;
Exit;
end;
if (TimeFromMark(FletchTimer) > 3000) then
Exit;
end
else
begin
Banker;
Sleep(100 + Random(100));
FindLog;
end;
end;
end;
if MODE = 'string' then
begin
if FindDTM(BowStringDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Result := True;
Al_MissMouse(Point(x, y), Randomrange( - 10, 10), Randomrange( - 10, 10));
Sleep(120 + Random(50));
case Random(15) of
0:
begin
Al_FastClick(Mouse_Right);
Sleep(200 + Random(100));
WriteStatus('Bowstring found');
Al_ChooseOption('Use');
end;
1..14: Al_FastClick(Mouse_Left);
end;
Sleep(250 + Random(200));
if FindDTM(BowUDTM, x, y, 604, 317, 641, 357) then
begin
Al_MissMouse(Point(x, y), Randomrange( - 10, 10), Randomrange( - 10, 10));
Sleep(120 + Random(50));
case Random(6) of
0:
begin
Al_FastClick(Mouse_Right);
Sleep(150 + Random(150));
Al_ChooseOption('Use');
end;
1..5: Al_FastClick(Mouse_left);
end;
WriteStatus('Bow (u) found!');
Smart_ClearCanvas;
Flag;
Sleep(200 + Random(90));
Al_MouseBoxEx(230, 392, 285, 447, Randomrange(-5, 25), 3);
Sleep(300 + Random(120));
MarkTime(FletchTimer);
if (WaitUpText('ke', 300)) then
begin
Al_FastClick(Mouse_Right);
Sleep(200 + Random(90));
case random(32) of
0..29:
begin
Sleep(60 + Random(90));
Al_ChooseOption('Make All');
Sleep(2200 + Random(200));
Exit;
end;
30..31:
begin
Al_ChooseOption('Make X');
Sleep(800 + Random(200));
TypeSendEx(IntToStr(Randomrange(28, 99)), True);
Sleep(2200 + Random(200));
Exit;
end;
end;
end;
end;
if (TimeFromMark(FletchTimer) > 3000) then
Exit;
end
else
begin
Banker;
Sleep(100 + Random(100));
FindLog;
end;
end;
end;
procedure GoFletching;
begin
if MODE = 'cut' then
begin
if (not FindDTM(LogDTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
banker;
if MODE = 'cut'then
begin
if (not FindDTM(KnifeDTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
RecoverKnife;
end;
end;
if MODE = 'string' then
begin
if (not FindDTM(BowUDTM, x, y, MIX1, MIY1, MIX2, MIY2)) or (not FindDTM(BowStringDTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
banker;
end;
if (not IsItemActivated) then
begin
FindLog;
end
else
begin
if MODE = 'cut' then
begin
if (FindDTM(LogDTM, x, y, MIX1, MIY1, MIX2, MIY2)) or (FindDTM(KnifeDTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
Sleep(100 + Random(200));
WriteStatus('going to Fletch');
FindLog;
end
else
begin
case random(2) of
0:
begin
Al_MouseBoxEx(520, 211, 555, 383, 5, Mouse_Left);
Sleep(30 + Random(50));
end;
1:
begin
Al_MouseBoxEx(524, 128, 568, 164, 5, Mouse_Left);
Sleep(30 + Random(50));
end;
end;
Banker;
end;
end;
if MODE = 'string' then
begin
if (FindDTM(BowUDTM, x, y, MIX1, MIY1, MIX2, MIY2)) and (FindDTM(BowStringDTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
Sleep(100 + Random(200));
WriteStatus('going to Fletch');
FindLog;
end
else
begin
case random(2) of
0:
begin
Al_MouseBoxEx(520, 211, 555, 383, 5, Mouse_Left);
Sleep(30 + Random(50));
end;
1:
begin
Al_MouseBoxEx(524, 128, 568, 164, 5, Mouse_Left);
Sleep(30 + Random(50));
end;
end;
Banker;
end;
end;
end;
end;
procedure MainLoop;
begin
if (not LoggedIn) then
begin
LogInPlayer;
SetAngle(0);
AL_gametab(tab_inv);
SetRun(True);
MakeCompass(180 + Randomrange(-5, 5));
end;
if (LoggedIn) then
begin
if MODE = 'cut' then
begin
if (WaitForAnimation(2050)) and (FindDTM(LogDTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
WriteStatus('Fletching (' + LOG + ')');
Sleep(150 + Random(25));
AntiBan;
Exit;
end
else
GoFletching;
end;
if MODE = 'string' then
begin
if (WaitForAnimation(2050)) and (FindDTM(BowStringDTM, x, y, MIX1, MIY1, MIX2, MIY2)) and (FindDTM(BowUDTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
WriteStatus('Fletching (' + LOG + ')');
Sleep(150 + Random(25));
AntiBan;
Exit;
end
else
GoFletching;
end;
end;
end;
begin
DeclarePlayers;
Smart_World := WORLD;
SetupUptext;
SetupReflection;
SetupSRL();
SRL_CombatRandoms := False;
SetupCustomRandoms;
LoadTheDTMs;
ActivateClient;
ClearDebug;
WriteStatus('HoodzFletcher, start the gains!');
repeat
if Count1 = 0 then
begin
Inc(Count1);
LogInPlayer;
SetAngle(0);
Al_GameTab(Tab_Inv);
StartXp := Round(R_GetSkillExp(TRAININGSKILL));
Writeln('start xp = ' + IntTostr(StartXp));
MakeCompass(180 + Randomrange( - 5, 5));
end
else
begin
MainLoop;
end;
until (False)
end.
It's from November 2013 :P