rj
2013-03-08 20:39:20
7 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
Break-down of language knowledge
Pascal(80%)
GML(15%)
Ti-basic(4%)
Java(1%)
Are you a member of any other communities?
Sythe,Moparscape
Tell us about yourself…
From: rjj95
I like to mess around with stuff on the computer. The first time I ever messed with botting was with a autoclicker, did not get banned, get tried SCAR, then here, got mad because I couldn't figure it out so I went to Powerbot and botted on a noob. Then I later came back here to script for private servers, it was very hard for me because all of the tutorials were designed for RS so I had to edit out all the SRL include stuff, but I learned eventually. I then learned how to use basic SRL stuff through DannyRS's 06 include which had many of the same features except they had P06_ before them, and now I currently script for Runescape 2007. My main goal when releasing a script is now:
1) Making it easy for the noob to use
2) No anti-leech, because I don't want to force somebody to learn something, if they don't want to learn it's their loss.
I would Also like to extent my Apology again to
@Le Jingle
@Gucci
@Justin
@Echo_
@Dynamite
@Sjoekeloe
@CRU1Z1N
@BMWxi
@The Killer
@i luffs yeww
@Wardancer
@Ollybest
@NKN
@xtrapsp
@Kyle Undefined
@Daniel
for child-like behaveir on last application
Please show us one (or multiple) of your scripts.
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/Debug.Simba}
{$I P07Include.Simba}
var
// I apologize for the obnoxious amount of Globals in this script
{Credits to, @DannyRs(Include), @Flight(Mouse Functions),
The people who helped me with TForm, CynicRus(TForm Designer)}
{*****************************************************************}
{***************************TFormJunk*****************************}
{*****************************************************************}
DsgnForm:TForm;
TLabel0,TLabel1,TLabel2,TLabel3,TLabel4,TLabel5,WithDLabel:TLabel;
ObjectLabel,AreaLabel,FletchLabel,FailsafeLabel,OtherLabel,CustomLabel,Slot1Label,Slot2Label:TLabel;
SpeedLabel,Objectaccurate,MakeLabel,{WithX,WithY,}StringLabel,StringXLabel,StringYLabel:TLabel;
WithXLabel,WithX2Label,WithY2Label,WithYLabel:TLabel;
Username,Password,WithDX1,WithDY1,WithDX2,WithDY2,StringX,StringY: TEdit;
LogCombo,CompassCombo,ObjectCombo,FailsafeCombo,SpeedCombo,MakeCombo:TComboBox;
MethodCombo,objectaccurateCombo,WithdrawCombo,StringCombo:TComboBox;
StartButton,UpdateButton: TButton;
{*****************************Integers****************************}
Col_Fail_1,Col_Fail_2,DTM_Log,Col_Count_1,Col_Count_2,Fletched:Integer;
Col_Fail_3,Col_Fail_4,Col_Count_3,Col_Count_4,Seconds,XpPerHour:Integer;
BankCol_1,BankTol_1,CompassDegree,FletchPerHour:Integer;
BankCol_2,BankTol_2,X,Y,DX1,DY1,DX2,DY2,XPGained:Integer;
DTM_Make,Knife,FSX1,FSY1,FSX2,FSY2,NFSX1,NFSY1,NFSX2,NFSY2,DTM_Made:Integer;
ClickCont,fx,fy,nfx,nfy,DTM_String,DTM_Close,StartTime,XPGet:Integer;
WithXInt,WithYInt,WithX2Int,WithY2Int,StringXInt,StringYInt:Integer;
{*****************************Extended****************************}
BankHue_1,BankSat_1,BankHue_2,BankSat_2:Extended;
{*****************************Strings****************************}
ClickMethod,BankUptext_1,BankUptext_2,BankUptext_3,StringWithDraw:String;
Method,Make,StoreMethod,LogUse,NameUse,ObjectLook,Reason:String;
WithXStr,WithYStr,WithX2Str,WithY2Str,StringXStr,StringYStr:String;
MethodStr,LocationStr,Status:String;
{*****************************************************************}
LocFail:Boolean;
const
default = 'Times New Roman';
Procedure FreeTheDTMs;
Begin
FreeDTM(DTM_Log);
FreeDTM(DTM_Close);
FreeDTM(Knife);
FreeBitmap(ClickCont);
Writeln('report any bugs, to the thread!');
End;
Procedure BrakeWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, targetArea: extended);
var
veloX,veloY,windX,windY,veloMag,dist,ranDomDist,lastDist,D: extended;
lastX,lastY,MSP,W,TDist,T: integer;
sqrt2,sqrt3,sqrt5,PDist,maxStep: extended;
Begin
MSP := MouseSpeed;
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
TDist := Distance(Round(xs), Round(ys), Round(xe), Round(ye));
if (TDist < 1) then
TDist := 1;
MarkTime(T);
repeat
if (TimeFromMark(T)>5000) then
break;
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
if (dist < 1) then
dist := 1;
PDist := (dist/TDist);
if (PDist < 0.01) then
PDist := 0.01;
if (PDist >= 0.15) then
Begin
D := (Round((Round(dist)*0.3))/5);
if (D < 20) then
D := 20;
end else if (PDist < 0.15) then
Begin
if ((PDist <= 0.15) and (PDist >= 0.10)) then
D := RanDomRange(8, 13)
else if (PDist < 0.10) then
D := RanDomRange(4, 7);
end;
if (D <= Round(dist)) then
maxStep := D
else
maxStep := Round(dist);
if dist >= targetArea then
Begin
windX:= windX / sqrt3 + (ranDom(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (ranDom(round(wind) * 2 + 1) - wind) / sqrt5;
end else
Begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
End;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if (hypot(veloX, veloY) > maxStep) then
Begin
ranDomDist:= maxStep / 2.0 + ranDom(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * ranDomDist;
veloY:= (veloY / veloMag) * ranDomDist;
End;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;
if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));
W := (RanDom((Round(100/MSP)))*6);
if (W < 5) then
W := 5;
W := Round(W*1.2);
wait(W);
lastdist:= dist;
until(hypot(xs - xe, ys - ye) < 1)
if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MMouse(Round(xe), Round(ye), 0, 0);
MouseSpeed := MSP;
End;
Procedure BrakeMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,MS: integer;
Begin
MS := MouseSpeed;
randSpeed := (ranDom(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
GetMousePos(X, Y);
BrakeWindMouse(X, Y, RanDomRange(eX-ranX, eX+ranX), RanDomRange(eY-ranY,eY+ranY), 8, 5, 10.0 / randSpeed, 15.0 / randSpeed, 10.0 * randSpeed);
MouseSpeed := MS;
End;
Procedure SuperWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
Var
veloX,veloY,windX,windY,veloMag,dist,ranDomDist,lastDist,step: extended;
lastX,lastY,MSP,W: integer;
sqrt2,sqrt3,sqrt5: extended;
Begin
MSP := MouseSpeed;
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
While hypot(xs - xe, ys - ye) > 1 Do
Begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
If dist >= targetArea Then
Begin
windX:= windX / sqrt3 + (ranDom(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (ranDom(round(wind) * 2 + 1) - wind) / sqrt5;
End Else
Begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
If (maxStep < 3) Then
Begin
maxStep:= ranDom(3) + 3.0;
End Else
Begin
maxStep:= maxStep / sqrt5;
End;
End;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if hypot(veloX, veloY) > maxStep then
Begin
ranDomDist:= maxStep / 2.0 + ranDom(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * ranDomDist;
veloY:= (veloY / veloMag) * ranDomDist;
End;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;
Case RanDom(50) Of
1..25: W := (MSP + (RanDom((MSP/4))));
26..50: W := (MSP - (RanDomRange((MSP/2), MSP-1)));
End;
If (W < 1) Then
W := 1;
If (lastX <> Round(xs)) Or (lastY <> Round(ys)) Then
MoveMouse(Round(xs), Round(ys));
step:= hypot(xs - lastX, ys - lastY);
wait(W);
lastdist:= dist;
End;
If (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) Then
MoveMouse(Round(xe), Round(ye));
MouseSpeed := MSP;
End;
Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
Var
randSpeed: extended;
X,Y,X2,Y2,j,Dist,MP: integer;
Begin
j := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
If MP < 0 Then
MP := 1;
randSpeed := (ranDom(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RanDomRange(eX-(j*MP), eX+(j*MP));
Y2 := RanDomRange(eY-(j*MP), eY+(j*MP));
SuperWindMouse(X, Y, X2, Y2, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := j;
End;
Procedure HumanMoveSlowFletchN;
Begin
Case ranDom(200) of
1..160: BrakeMMouse(RanDomRange(nfX - 9, nfX + 9), RanDomRange(nfy - 9, nfy + 9), 0, 0);
161..190: BrakeMMouse(RanDomRange(nfX - 12, nfX + 12), RanDomRange(nfy - 12, nfy + 12), 0, 0);
191..200: BrakeMMouse(RanDomRange(nfX - 15, nfX + 15), RanDomRange(nfy - 15, nfy + 15), 0, 0);
End;
End;
Procedure HumanMoveFletchN;
Begin
Case ranDom(200) of
1..160: HumanMMouse(RanDomRange(nfX - 9, nfX + 9), RanDomRange(nfy - 9, nfy + 9), 0, 0);
161..190: HumanMMouse(RanDomRange(nfX - 12, nfX + 12), RanDomRange(nfy - 12, nfy + 12), 0, 0);
191..200: HumanMMouse(RanDomRange(nfX - 15, nfX + 15), RanDomRange(nfy - 15, nfy + 15), 0, 0);
End;
End;
Procedure HumanMoveSlowFletch;
Begin
Case ranDom(200) of
1..160: BrakeMMouse(RanDomRange(fX - 9, fX + 9), RanDomRange(fy - 9, fy + 9), 0, 0);
161..190: BrakeMMouse(RanDomRange(fX - 12, fX + 12), RanDomRange(fy - 12, fy + 12), 0, 0);
191..200: BrakeMMouse(RanDomRange(fX - 15, fX + 15), RanDomRange(fy - 15, fy + 15), 0, 0);
End;
End;
Procedure HumanMoveFletch;
Begin
Case ranDom(200) of
1..160: HumanMMouse(RanDomRange(fX - 9, fX + 9), RanDomRange(fy - 9, fy + 9), 0, 0);
161..190: HumanMMouse(RanDomRange(fX - 12, fX + 12), RanDomRange(fy - 12, fy + 12), 0, 0);
191..200: HumanMMouse(RanDomRange(fX - 15, fX + 15), RanDomRange(fy - 15, fy + 15), 0, 0);
End;
End;
Procedure HumanMoveSlowOff;
Begin
Case ranDom(200) of
1..160: BrakeMMouse(RanDomRange(X - 8, X + 8), RanDomRange(y - 8, y + 8), 0, 0);
161..190: BrakeMMouse(RanDomRange(X - 10, X + 10), RanDomRange(y - 10, y + 10), 0, 0);
191..200: BrakeMMouse(RanDomRange(X - 12, X + 12), RanDomRange(y - 12, y + 12), 0, 0);
End;
End;
Procedure HumanMoveOff;
Begin
Case ranDom(200) of
1..160: HumanMMouse(RanDomRange(X - 8, X + 8), RanDomRange(y - 8, y + 8), 0, 0);
161..190: HumanMMouse(RanDomRange(X - 10, X + 10), RanDomRange(y - 10, y + 10), 0, 0);
191..200: HumanMMouse(RanDomRange(X - 12, X + 12), RanDomRange(y - 12, y + 12), 0, 0);
End;
End;
Procedure HumanMoveSlow;
Begin
Case ranDom(200) of
1..160: BrakeMMouse(RanDomRange(X - 6, X + 6), RanDomRange(y - 5, y + 5), 0, 0);
161..190: BrakeMMouse(RanDomRange(X - 8, X + 8), RanDomRange(y - 7, y + 7), 0, 0);
191..200: BrakeMMouse(RanDomRange(X - 10, X + 10), RanDomRange(y - 10, y + 10), 0, 0);
End;
End;
Procedure HumanMove;
Begin
Case ranDom(200) of
1..160: HumanMMouse(RanDomRange(X - 5, X + 5), RanDomRange(y - 5, y + 5), 0, 0);
161..190: HumanMMouse(RanDomRange(X - 7, X + 7), RanDomRange(y - 7, y + 7), 0, 0);
191..200: HumanMMouse(RanDomRange(X - 10, X + 10), RanDomRange(y - 10, y + 10), 0, 0);
End;
End;
Procedure SlowWait;
Begin
Case ranDom(1000) of
1..860: Wait(RanDomRange(500, 800));
861..975: Wait(RanDomRange(600, 900));
976..1000: Wait(RanDomRange(700, 1500));
End;
End;
Procedure FastWait;
Begin
Case ranDom(1000) of
1..860: Wait(RanDomRange(100, 400));
861..975: Wait(RanDomRange(300, 600));
976..1000: Wait(RanDomRange(100, 800));
End;
End;
Procedure RanDomBankWait;
Begin
Case ranDom(1000) of
1..700: Wait(RanDomRange(300, 1000));
701..900: Wait(RanDomRange(400, 1500));
901..1000: Wait(RanDomRange(500, 3000));
End;
End;
Procedure RanDomChooseWait;
Begin
Case ranDom(1000) of
1..860: Wait(RanDomRange(200, 500));
861..975: Wait(RanDomRange(300, 600));
976..1000: Wait(RanDomRange(400, 1000));
End;
End;
Procedure RanDomRightClick;
Begin
Case ranDom(150) of
1..2: clickmouse2(mouse_Right);
End;
End;
Procedure RanDomLeftClick;
Begin
Case ranDom(150) of
1..3: clickmouse2(mouse_Left);
End;
End;
Procedure RanDomMouseFletchN;
Begin
Case ranDom(101) of
1..95: HumanMoveSlowFletchN;
96..101: HumanMoveFletchN;
End;
End;
Procedure RanDomMouseFletch;
Begin
Case ranDom(101) of
1..95: HumanMoveSlowFletch;
96..101: HumanMoveFletch;
End;
End;
Procedure RanDomMouseOff;
Begin
Case ranDom(101) of
1..95: HumanMoveOff;
96..101: HumanMoveSlowOff;
End;
End;
Procedure RanDomMouse;
Begin
Case ranDom(101) of
1..95: HumanMove;
96..101: HumanMoveSlow;
End;
End;
Function P07_ChooseOptionMultiHuman(Text: TStringArray): Boolean;
Var
WhiteBoxT,BlueBoxT,YellowBoxT,OrangeBoxT,FoundText: String;
OptionTB:TBox;
OptionBoxTPA1: TPointArray;
NumberOfOptions,C,X,Y: Integer;
Begin
FindColors(OptionBoxTPA1, 4674653, P07_MSX1, P07_MSY1, P07_ClientWidth-1, P07_ClientHeight-1);
OptionTB:=getTPABounds(OptionBoxTPA1);
If (Length(OptionBoxTPA1) < 10) Then
Begin
Result:=False;
Exit;
End;
NumberOfOptions:=((OptionTB.Y2-2) - (OptionTB.Y1+21)) / 14;
For C:=0 To (NumberOfOptions-1) Do
Begin
If (OptionTB.Y1+21+(C*15)) > OptionTB.Y1+21+((C+1)*14) Then
Begin
Result:=False;
Break;
End;
WhiteBoxT:=GetTextAtExWrap(OptionTB.X1+2, OptionTB.Y1+21+(C*15), OptionTB.X2-2, OptionTB.Y1+21+((C+1)*14), 0, 5, 1, 16777215, 5, 'P07UpChars');
BlueBoxT:=GetTextAtExWrap(OptionTB.X1+2, OptionTB.Y1+21+(C*15), OptionTB.X2-2, OptionTB.Y1+21+((C+1)*14), 0, 5, 1, 16776960, 5, 'P07UpChars');
YellowBoxT:=GetTextAtExWrap(OptionTB.X1+2, OptionTB.Y1+21+(C*15), OptionTB.X2-2, OptionTB.Y1+21+((C+1)*14), 0, 5, 1, 65535, 5, 'P07UpChars');
OrangeBoxT:=GetTextAtExWrap(OptionTB.X1+2, OptionTB.Y1+21+(C*15), OptionTB.X2-2, OptionTB.Y1+21+((C+1)*14), 0, 5, 1, 4231423, 5, 'P07UpChars');
FoundText:=WhiteBoxT+' '+BlueBoxT+YellowBoxT+OrangeBoxT;
If (P07_ContainsText(FoundText,Text)) Then
Begin
HumanMMouse(RanDomRange(OptionTB.X1+2,OptionTB.X2-2),RanDomRange(OptionTB.Y1+21+(C*14),OptionTB.Y1+21+((C+1)*14)),0,0);
ClickMouse2(mouse_left);
Result:=True;
Exit;
End;
End;
GetMousePos(X,Y);
If Y > 21 Then
HumanMMouse(RanDomRange(OptionTB.X1+2,OptionTB.X2-2),RanDomRange(Y-10,Y-20),0,0)
Else
HumanMMouse(RanDomRange(5,535),RanDomRange(350,490),0,0);
Result:=False;
End;
Procedure PrintError;
Begin
Writeln('The script has stopped due to an error, if this is a bug then please report')
Writeln('it on the script thread, the script automatically logged you out for safety purposes')
Writeln('Error:' + Reason +'.')
End;
Procedure WriteProgress;
Begin
Seconds := (1 + ((Getsystemtime - StartTime) / 1000));
XpPerHour := (3600 * XPGained) / (Seconds);
FletchPerHour := (3600 * Fletched) / Seconds;
ClearDebug;
Writeln('*************************');
Writeln('Time Running:' + TimeRunning + '');
Writeln('Status:' + Status + '');
//Writeln('' + MethodStr + 'Fletched' + IntToStr(Fletched) + '' );
//WriteLn('' + MethodStr + 'Per Hour: ' + IntToStr(ItemsPerHour) + '');
//Writeln('XP Gained:' + IntToStr(XpGained) + '');
//writeLn('Fletching XP/H: ' + IntToStr(XpPerHour) + '');
Writeln('*************************');
End;
Procedure FailSafeLogOut;
Begin
if FindColorTolerance(X, Y, 3691124, 626, 468, 658, 500, 15) then
Begin
RanDomMouse;
clickmouse2(mouse_Left);
Wait(RanDomRange(700, 2000));
if FindColorTolerance(X, Y, 1974666, 572, 363, 708, 390, 15) then
Begin
RanDomMouse;
clickmouse2(mouse_Left);
Wait(RanDomRange(700, 2000));
End;
End;
End;
Function IsInArea(): boolean;
Var
Count_1,Count_2,Count_3,Count_4:Integer;
Begin
Result := false;
Count_1 := CountColorTolerance(Col_Fail_1, 542, 4, 754, 168, 15);
Count_2 := CountColorTolerance(Col_Fail_2, 542, 4, 754, 168, 15);
Count_3 := CountColorTolerance(Col_Fail_3, 542, 4, 754, 168, 15);
Count_4 := CountColorTolerance(Col_Fail_4, 542, 4, 754, 168, 15);
If ((Count_1>=Col_Count_1) and (Count_2>=Col_Count_2) and
(Count_3>=Col_Count_3) and (Count_4>=Col_Count_4)) Then
Begin
Result := true;
End;
End;
Procedure FailSave;
Begin
If LocFail = False Then
Begin
Exit;
End;
If LocFail = True Then
Begin
If Not IsInArea Then
Begin
FailSafeLogOut;
Reason := ('We were not in the correct area')
PrintError;
TerminateScript;
Exit;
End;
End;
End;
Procedure ToInventory;
Begin
X := 645;
Y := 184;
HumanMMouse(RanDomRange(X - 5, X + 5), RanDomRange(y - 5, y + 5), 0, 0);
FastWait;
clickmouse2(mouse_Left);
End;
Procedure CheckFreinds;
Begin
if FindColorTolerance(X, Y, 2341117, 563, 468, 592, 501, 10) then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Left);
Wait(RanDomRange(500, 2000));
End;
End;
Procedure CheckFletching;
Begin
if FindColorTolerance(X, Y, 4819266, 559, 169, 594, 199, 10) then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Left);
Wait(RanDomRange(200, 500));
if FindColorTolerance(X, Y, 605562, 612, 363, 671, 391, 10) then
Begin
RanDomMouse;
Wait(RanDomRange(1500, 3500));
ToInventory;
End;
End;
End;
function IsBankUp(): boolean;
var
Count: Integer;
Begin
Result := false;
Count := CountColorTolerance(2070783, 183, 34, 336, 48, 15);
If (Count>200) Then
Begin
Result := true;
End;
End;
Procedure CloseBankHuman;
Begin
if FindDTM(DTM_Close, x, y, 473, 30, 500, 53) Then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Left);
RanDomBankWait;
If IsBankUp Then
Begin
CloseBank;
Exit;
End;
End;
End;
Procedure WithDrawHumanString;
Begin
if P07_BankScreen then
Begin
Case LowerCase(StringWithDraw) of
'builtin':
Begin
if FindDTM(DTM_String, x, y, 22, 57, 464, 288) Then
Begin
FailSave;
RanDomMouse;
FastWait;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['ithdraw All','thdraw All']);
RanDomBankWait;
End;
End;
'firstsecond':
Begin
X:=93;
Y:=78;
FailSave;
RanDomMouse;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['ithdraw All','thdraw All']);
RanDomBankWait;
End;
'custom':
Begin
X:=WithXInt;
Y:=WithYInt;
FailSave;
RanDomMouse;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['ithdraw All','thdraw All']);
RanDomBankWait;
End;
End;
End;
End;
Procedure WithDrawHumanBow;
Begin
Case LowerCase(StringWithDraw) of
'builtin':
Begin
if FindDTM(DTM_Made, x, y, 47, 60, 462, 272) then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['ithdraw All','thdraw All']);
RanDomBankWait;
End;
End;
'firstsecond':
Begin
X:=144;
Y:=76;
RanDomMouse;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['ithdraw All','thdraw All']);
RanDomBankWait;
End;
'custom':
Begin
X:=WithX2Int;
Y:=WithY2Int;
RanDomMouse;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['ithdraw All','thdraw All']);
RanDomBankWait;
End;
End;
End;
Procedure WithDrawHuman;
Begin
if FindDTM(DTM_Log, x, y, 47, 60, 462, 272) then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['ithdraw All','thdraw All']);
RanDomBankWait;
End;
End;
Procedure MouseToRanDomBow;
Begin
RanDomMouseOff;
End;
Procedure Deposite;
Begin
Case LowerCase(StoreMethod) of
'all':
Begin
MouseToRanDomBow;
FastWait;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['tore Al','ore All']);
RanDomBankWait;
IncEx(XPGained, XPGet*27);
End;
'ranDom':
Begin
Case ranDom(100) of
1..90:
Begin
Wait(RanDomRange(0, 100));
End;
91..100:
Begin
if FindDTM(DTM_Made, x, y, 554, 209, 738, 468) then
Begin
Writeln('Starting storage method');
RanDomMouse;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['tore Al','ore All']);
RanDomBankWait;
IncEx(XPGained, XPGet*27);
End;
End;
End;
End;
End;
End;
Procedure SetDepositeInts;
Begin
Case ranDom(100) of
1..4:
Begin
X := 621;
Y := 227;
Exit;
End;
5..6:
Begin
X := 661;
Y := 225;
Exit;
End;
7..82:
Begin
X := 578;
Y := 263;
Exit;
End;
83..96:
Begin
X := 619;
Y := 261;
Exit;
End;
97..100:
Begin
X := 661;
Y := 262;
Exit;
End;
End;
End;
function Bank: Boolean;
var
i, CTS, Timeout: Integer;
TPA, TPA1, TPA2: TPointArray;
ATPA: T2DPointArray;
P: TPoint;
Begin
Result := False;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
Timeout := 5000 + RanDom(1000);
SetColorSpeed2Modifiers(BankHue_1, BankSat_1);
FindColorsTolerance(TPA1, BankCol_1, DX1, DY1, DX2, DY2, BankTol_1);
SetColorSpeed2Modifiers(BankHue_2, BankSat_2);
FindColorsTolerance(TPA2, BankCol_2, DX1, DY1, DX2, DY2, BankTol_2);
SetColorSpeed2Modifiers(0.2, 0.2);
ColorToleranceSpeed(CTS);
CombineTPAWrap(TPA1, TPA2, TPA);
SplitTPAWrap(TPA, 5, ATPA);
SortATPASize(ATPA, True);
if Length(TPA) < 1 then
Exit;
for i := 0 to High(ATPA) Do
if Length(ATPA[i]) > 30 then
Begin
P := MiddleTPA(ATPA[i]);
HumanMMouse(P.X, P.Y, RanDomRange( - 5, 5), RanDomRange( - 5, 5));
if (P07_IsUpTextMultiCustom(['Use', 'Bank', 'ooth'])) then
Begin
Case LowerCase(ClickMethod) of
'booth':
Begin
Status := 'Banking' + LogUse + '.';
WriteProgress;
RanDomLeftClick;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['Use-q']);
RanDomBankWait;
While (IsMoving) Do
FastWait;
If Not IsBankUp Then
Begin
Bank;
End;
Exit;
End;
'chest':
Begin
Status := 'Banking' + LogUse + '.';
WriteProgress;
RanDomRightClick;
clickmouse2(mouse_Left);
Wait(RanDomRange(100, 700));
RanDomBankWait;
While (IsMoving) Do
FastWait;
If Not IsBankUp Then
Begin
Bank;
End;
Exit;
End;
End;
Exit;
End;
End;
End;
function HasStrings(): boolean;
var
X, Y: Integer;
Begin
Result := false;
if FindDTM(DTM_String, x, y, 549, 202, 741, 467) then
Begin
Result := true;
End;
End;
function InputReady(): boolean;
var
Count: Integer;
Begin
Result := false;
Count := CountColorTolerance(0, 212, 393, 305, 409, 15);
If (Count>200) Then
Begin
Result := true;
End;
End;
function InterfaceReady(): boolean;
var
Count: Integer;
Begin
Result := false;
Count := CountColorTolerance(128, 134, 353, 373, 393, 15);
If (Count>200) Then
Begin
Result := true;
End;
End;
function StringReady(): boolean;
var
Count: Integer;
Begin
Result := false;
Count := CountColorTolerance(128, 137, 361, 381, 379, 15);
If (Count>200) Then
Begin
Result := true;
End;
End;
function HasLogs(): boolean;
var
X, Y: Integer;
Begin
Result := false;
if FindDTM(DTM_Log, x, y, 549, 202, 741, 467) then
Begin
Result := true;
End;
End;
function ContainsUpLevel(): boolean;
var
X, Y: Integer;
Begin
Result := false;
if FindBitMapToleranceIn(ClickCont, x, y, 190, 424, 378, 461,120) then
Begin
Result := true;
End;
End;
Procedure LoadDTMS;
Begin
Knife := DTMFromString('mQwAAAHicY2ZgYHBiYmCwA2JXIH4M5L8C4ntAXF1cxBBhw8lQWVjAIAjkwzAjEgYCACQIBwc=');
DTM_String := DTMFromString('mQwAAAHicY2ZgYMhiYmBIBOIiIC5lZGDIB+IGIG4uj2AoSPMBqmBk4AeSMMyIhIEAAOpZBVM=');
DTM_Close := DTMFromString('mbQAAAHicY2VgYHjKyMDwBoifAfFdKK3BAMFKQKwJxIYMIMDIkBLuyFCQ6MbQVp3BEOJpzsAPFEXHjFgwGAAA6SkJ8g==');
ClickCont := BitmapFromString(121, 5, 'meJyNlUFuwlAMRHP/RTcVUkVZ9B' +
'SRoAHBrqgFpb1Q6mTCZDLfiZAs5O/Yjv2+Hbqq2hy+u6rqBgWCI2T' +
'7+WMWuoXEU0h/bNoQi30/tpaTUfShonZaIkMIn27Pd/UZc85frRVq' +
'nW/1V9nOWLwYX+trHOPX3/JIZXatNjUy/4pCT9Nz2k1bevaoBwh6F' +
'0Z1d/kjTHv6cfqdIM9FKUW4QQMr/L7spygATBvUSdN5QB61T61JSJ' +
'kK4ZY2VRBo4enMKPb0pWl3BpatAXvP+XjjXqgPR87eOx5xs03Lo02' +
'Fklzhgy1Ir4CNGOoSIHUUnGJRILb+z6AGH8tpcAw1CadXYGLZtBFM' +
'OAhPXzYpUlGso14aS7VbI+tTrT0u7YIqXKhQQspLScN1qeHMrdfPM' +
'j2VA44Yckuu/wW6GijMxkADUUnZIPdFnQ17OQzPfIv+AfiVTIA=');
End;
Procedure WithDrawCorrect;
Begin
Bank;
RanDomChooseWait;
P07_Deposit(1,28,True);
RanDomChooseWait;
Case LowerCase(StringWithDraw) of
'builtin':
Begin
if FindDTM(DTM_Made, x, y, 16, 23, 502, 327) then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['Withdraw X','ithdraw X']);
RanDomChooseWait;
TypeSend('14');
RanDomChooseWait;
RanDomChooseWait;
if FindDTM(DTM_String, x, y, 16, 23, 502, 327) then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['Withdraw X','ithdraw X']);
RanDomChooseWait;
RanDomChooseWait;
TypeSend('14');
RanDomChooseWait;
RanDomChooseWait;
End;
End;
End;
'firstsecond':
Begin
X:=144;
Y:=76;
RanDomMouse;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['Withdraw X','ithdraw X']);
RanDomChooseWait;
RanDomChooseWait;
TypeSend('14');
RanDomChooseWait;
RanDomChooseWait;
X:=93;
Y:=78;
RanDomMouse;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['Withdraw X','ithdraw X']);
RanDomChooseWait;
RanDomChooseWait;
TypeSend('14');
RanDomChooseWait;
RanDomChooseWait;
End;
'custom':
Begin
X:=WithXInt;
Y:=WithYInt;
RanDomMouse;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['Withdraw X','ithdraw X']);
RanDomChooseWait;
RanDomChooseWait;
TypeSend('14');
RanDomChooseWait;
RanDomChooseWait;
X:=WithX2Int;
Y:=WithY2Int;
RanDomMouse;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['Withdraw X','ithdraw X']);
RanDomChooseWait;
RanDomChooseWait;
TypeSend('14');
RanDomChooseWait;
RanDomChooseWait;
End;
End;
End;
Procedure StringAll;
Begin
X := 257;
Y := 417;
RanDomMouse;
FastWait;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['Make Al','ake All']);
RanDomChooseWait;
End;
Procedure MouseToBow;
Begin
if Not FindDTM(DTM_String, x, y, 604, 316, 682, 354) Then
Begin
WithDrawCorrect;
CloseBankHuman;
RanDomChooseWait;
End;
if FindDTM(DTM_String, x, y, 604, 316, 682, 354) and
FindDTM(DTM_Made, x, y, 604, 316, 682, 354) Then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Left);
FastWait;
if FindDTM(DTM_String, x, y, 604, 316, 682, 354) Then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Left);
SlowWait;
End;
End;
End;
Procedure ChooseMethod;
Var
RandIHigh,RandILow:Integer;
HighR,LowR:String;
Begin
Case LowerCase(LogUse) of
'logs':
Begin
if InterfaceReady Then
Begin
RanDomMouseFletchN;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['ake x','Make X']);
SlowWait;
RandIHigh := RanDomRange(347,84372)
RandILow := RanDomRange(28,100)
HighR := IntToStr(RandIHigh)
LowR := IntToStr(RandILow)
If Not InputReady Then
Begin
FastWait;
If Not InputReady Then
Begin
Exit;
End;
End;
Case ranDom(100) of
1: TypeSend(''+HighR+'');
2: TypeSend(''+LowR);
3..98: TypeSend('27');
99..100: TypeSend('54');
End;
End;
Exit;
End;
// End;
'other':
Begin
if InterfaceReady Then
Begin
RanDomMouseFletch;
RanDomChooseWait;
clickmouse2(mouse_Right);
RanDomChooseWait;
P07_ChooseOptionMultiHuman(['ake x','Make X']);
SlowWait;
RandIHigh := RanDomRange(347,84372)
RandILow := RanDomRange(28,100)
HighR := IntToStr(RandIHigh)
LowR := IntToStr(RandILow)
If Not InputReady Then
Begin
FastWait;
If Not InputReady Then
Begin
Exit;
End;
End;
Case ranDom(100) of
1: TypeSend(''+HighR+'');
2: TypeSend(''+LowR);
3..98: TypeSend('27');
99..100: TypeSend('54');
End;
End;
Exit;
End;
End;
//End;
End;
Procedure SetChooseInts;
Begin
End;
Procedure RanDomFletch;
Begin
Case ranDom(50) of
1..3:
Begin
if FindDTM(DTM_Log, X, Y, 549, 202, 741, 467) then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Left);
FastWait;
if FindDTM(Knife, X, Y, 555, 205, 604, 249) then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Left);
FastWait;
End;
End;
End;
4..50:
Begin
if FindDTM(DTM_Log, X, Y, P07_MIX1, P07_MIY1, P07_MIX2, P07_MIY2) and
FindDTM(Knife, X, Y, P07_MIX1, P07_MIY1, P07_MIX2, P07_MIY2) then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Left);
FastWait;
if FindDTM(DTM_Log, x, y, P07_MIX1, P07_MIY1, P07_MIX2, P07_MIY2) then
Begin
RanDomMouse;
FastWait;
clickmouse2(mouse_Left);
FastWait;
End;
End;
End;
End;
End;
Procedure ConductBot;
Var
TimeOut:Integer;
Begin
If (Not P07_LoggedIn) Then
Begin
P07_LogInPlayer;
ConductBot;
Exit;
End;
TimeOut := 0;
Case LowerCase(Method) of
'shaft':
Begin
Status := 'Making ' + MethodStr + '.';
WriteProgress;
FailSave;
RanDomFletch;
FastWait;
ChooseMethod;
RanDomBankWait;
Wait(RanDomRange(3000, 4000));
if FindDTM(DTM_Log, x, y, 613, 219, 629, 233) then
Begin
ConductBot;
Exit;
End;
MarkTime(TimeOut)
Repeat
If (Not P07_LoggedIn) Then
Begin
P07_LogInPlayer;
ConductBot;
Exit;
End;
FailSave;
RanDomBankWait;
ContainsUpLevel;
if (ContainsUpLevel) then
Begin
P07_ClickToContinue;
ConductBot;
Exit;
End;
Until Not (HasLogs) or (TimeFromMark(TimeOut) > 45000)
Bank;
SetDepositeInts;
FastWait;
Deposite;
WithDrawHuman;
CloseBankHuman;
End;
'fletch':
Begin
Status := 'Making ' + MethodStr + '.';
WriteProgress;
FailSave;
RanDomFletch;
FastWait;
Wait(RanDomRange(30, 90));
ChooseMethod;
RanDomBankWait;
Wait(RanDomRange(2000, 3000));
MarkTime(TimeOut)
Repeat
If (Not P07_LoggedIn) Then
Begin
P07_LogInPlayer;
ConductBot;
Exit;
End;
FailSave;
RanDomBankWait;
ContainsUpLevel;
if (ContainsUpLevel) then
Begin
P07_ClickToContinue;
ConductBot;
Exit;
End;
Until Not HasLogs or (TimeFromMark(TimeOut) > 45000)
Bank;
SetDepositeInts;
Deposite;
WithDrawHuman;
CloseBankHuman;
End;
'string':
Begin
Status := 'Making ' + MethodStr + '.';
WriteProgress;
FailSave;
MouseToBow;
If Not StringReady Then
Begin
FastWait;
If Not StringReady Then
Begin
MouseToBow;
Exit;
End;
End;
StringAll;
RanDomBankWait;
MarkTime(TimeOut)
Repeat
If (Not P07_LoggedIn) Then
Begin
P07_LogInPlayer;
ConductBot;
Exit;
End;
RanDomBankWait;
ContainsUpLevel;
if (ContainsUpLevel) then
Begin
FailSave;
P07_ClickToContinue;
ConductBot;
Exit;
End;
Until Not HasStrings or (TimeFromMark(TimeOut) > 30000)
Bank;
WithDrawHumanString;
SetDepositeInts;
Deposite;
WithDrawHumanBow;
CloseBankHuman;
End;
End;
End;
Procedure ShowInfo;
var
Reply:Integer;
Begin
Reply := MessageBox('Method:' + MethodStr + ' Fletching:' + NameUse + ' Location:' + LocationStr + '', 'Are you sure you want to continue?',4);
if Reply = 6 then
Begin
ConductBot;
End;
if Reply = 7 then
Begin
Reason := 'User wanted to Terminate the script';
PrintError;
TerminateScript;
End;
End;
procedure SetWithdraw;
Begin
Case WithdrawCombo.ITEMINDEX of
0:
Begin
Writeln('Built In DTMs');
StringWithDraw := 'builtin';
End;
1:
Begin
Writeln('First and second Slot');
StringWithDraw := 'firstsecond';
End;
2:
Begin
Writeln('Custom');
StringWithDraw := 'custom';
End;
End;
End;
procedure SetSpeed;
Begin
Case CompassCombo.ITEMINDEX of
0:
Begin
Writeln('Fletching Speed:Slow');
MouseSpeed := RanDomRange(12,14);
End;
1:
Begin
Writeln('Fletching Speed:Medium');
MouseSpeed := RanDomRange(15,16);
End;
2:
Begin
Writeln('Fletching Speed:Fast');
MouseSpeed := RanDomRange(17,20);
End;
End;
End;
procedure SetFailSafeArea;
Begin
Case FailSafeCombo.ITEMINDEX of
0: LocFail := True;
1: LocFail := False;
End;
End;
procedure Setstring;
Begin
Case LowerCase(Make) of
'shorts': // NEED MAPLES
Begin
Case LowerCase(NameUse) of
'logs': DTM_Made := DTMFromString('mQwAAAHicY2ZgYBADYmkg5gNiESDmB2IJIO6vFWCY3AjB/FBxEGZEwkAAAJNPBBI=');
'oaks': DTM_Made := DTMFromString('mQwAAAHicY2ZgYDjAxMBwDIh3APFzIP8hEL8C4q4CQYYpFYIMM6oFGfiBfBhmRMJAAAB65gh2');
'willows': DTM_Made := DTMFromString('mQwAAAHicY2ZgYJAAYnkgFgBicSAWBGJpIG6p1WdIjlVm6GjUZ+AH8mGYEQkDAQCStgQJ');
'maples': DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4odAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'yews': DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4odAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'magics': DTM_Made := DTMFromString('mQwAAAHicY2ZgYBAFYkkg5gViISgtDsTcrnYMnLbmYJofyIdhRiQMBABShQI+');
End;
End;
'longs':
Begin
Case LowerCase(NameUse) of
'logs': DTM_Made := DTMFromString('mQwAAAHicY2ZgYJjJxMAwGYjnAvEjIP8WEL8G4hnpgkCSEYz5gSQMMyJhIAAAFZAFvA==');
'oaks': DTM_Made := DTMFromString('mQwAAAHicY2ZgYHBlYmBwBGIvIGZjBAoAMT8Q758jzrC8U4Rhdp0gAz9QGIYZkTAQAADBVgUC');
'willows': DTM_Made := DTMFromString('mQwAAAHicY2ZgYHACYlsg9gRiISDmBmIZIG6p1WeYNdGMobfNiIEfyIdhRiQMBADArwUL');
'maples': DTM_Made := DTMFromString('mQwAAAHicY2ZgYHAFYhsg9gViUSDmBWIlID6yegnDiv42hmkNFQz8QD4MMyJhIAAA+coGpA==');
'yews': DTM_Made := DTMFromString('mQwAAAHicY2ZgYJAAYiEgVgBiQSDmAmIZIO4sF2AoS+cFshgZ+IEkDDMiYSAAAGiGArA=');
'magics': DTM_Made := DTMFromString('mQwAAAHicY2ZgYBABYj4glgRiUShbDogF81MY+CICgCxGBn4gCcOMSBgIAFgUAks=');
End;
End;
End;
End;
procedure SetMake;
Begin
Case MakeCombo.ITEMINDEX of
0:
Begin
Writeln('We are going to Shaft');
Make := 'arrows';
StoreMethod := 'ranDom';
DTM_Make := DTMFromString('mWAAAAHicY2FgYPAFYjsgjgZibyCeyMjAsAKK1wDx7tXdDBsX1oLpdQuaGfiBapAxIxoGAQBXYwuJ');
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4odAHGbCCcf8QD4MMyJhIAAADAEF6g==');
NFSX1 := 56;
NFSY1 := 395;
NFSX2 := 104;
NFSY2 := 432;
fx := 73;
fy := 412;
MethodStr := 'Shafting';
End;
1:
Begin
Writeln('We are going to Fletch short bows');
Make := 'shorts';
StoreMethod := 'all';
DTM_Make := DTMFromString('mbQAAAHicY2VgYDgBxJeA+CgQHwbiM0A8hZGBYR4QLwLiyUDcB8QX9kxlOLN7FsPpXVPB+MLe2QwiQLXomBELBgMAx+gR9Q==');
NFSX1 := 174;
NFSY1 := 388;
NFSX2 := 220;
NFSY2 := 426;
nfx := 195;
nfy := 410;
FSX1 := 69;
FSY1 := 389;
FSX2 := 132;
FSY2 := 423;
fx := 100;
fy := 409;
MethodStr := 'Shortbows';
End;
2:
Begin
Writeln('We are going to fletch LongBows');
Make := 'longs';
StoreMethod := 'all';
DTM_Make := DTMFromString('mWAAAAHicY2FgYPAFYjsgjgZibyCeyMjAsAKK1wDx7tXdDBsX1oLpdQuaGfiBapAxIxoGAQBXYwuJ');
NFSX1 := 295;
NFSY1 := 393;
NFSX2 := 333;
NFSY2 := 424;
nfx := 316;
nfy := 408;
FSX1 := 243;
FSY1 := 398;
FSX2 := 281;
FSY2 := 422;
fx := 253;
fy := 407;
MethodStr := 'LongBows';
End;
End;
End;
procedure SetCompass;
Begin
Case CompassCombo.ITEMINDEX of
0:
Begin
Writeln('facing North');
CompassDegree := 90; //P07_MakeCompass(CompassDegree + RanDom(10));
Case LowerCase(ObjectLook) of
'specific':
Begin
DX1 := 237;
DY1 := 106;
DX2 := 292;
DY2 := 168;
End;
'broad':
Begin
DX1 := 166;
DY1 := 104;
DX2 := 513;
DY2 := 175;
End;
'wholescreen':
Begin
DX1 := 5;
DY1 := 5;
DX2 := 514;
DY2 := 335;
End;
End;
End;
1:
Begin
Writeln('facing East');
CompassDegree := 180;
Case LowerCase(ObjectLook) of
'specific':
Begin
DX1 := 264;
DY1 := 141;
DX2 := 323;
DY2 := 203;
End;
'broad':
Begin
DX1 := 265;
DY1 := 53;
DX2 := 323;
DY2 := 338;
End;
'wholescreen':
Begin
DX1 := 5;
DY1 := 5;
DX2 := 514;
DY2 := 335;
End;
End;
End;
2:
Begin
Writeln('facing South');
CompassDegree := 270;
Case LowerCase(ObjectLook) of
'specific':
Begin
DX1 := 218;
DY1 := 160;
DX2 := 273;
DY2 := 227;
End;
'broad':
Begin
DX1 := 10;
DY1 := 163;
DX2 := 363;
DY2 := 229;
End;
'wholescreen':
Begin
DX1 := 5;
DY1 := 5;
DX2 := 514;
DY2 := 335;
End;
End;
End;
3:
Begin
Writeln('facing West');
CompassDegree := 1;
Case LowerCase(ObjectLook) of
'specific':
Begin
DX1 := 209;
DY1 := 116;
DX2 := 267;
DY2 := 189;
End;
'broad':
Begin
DX1 := 218;
DY1 := 9;
DX2 := 258;
DY2 := 252;
End;
'wholescreen':
Begin
DX1 := 5;
DY1 := 5;
DX2 := 514;
DY2 := 335;
End;
End;
End;
End;
End;
procedure SetObjectDetection;
Begin
Case ObjectAccurateCombo.ITEMINDEX of
0:
Begin
ObjectLook := 'specific';
End;
1:
Begin
ObjectLook := 'broad';
End;
2:
Begin
ObjectLook := 'wholescreen';
End;
End;
End;
procedure SetObject;
Begin
Case ObjectCombo.ITEMINDEX of
0:
Begin
Writeln('Draynor Booth');
ClickMethod := 'booth';
BankCol_1 := 605006;
BankTol_1 := 2;
BankHue_1 := 0.13;
BankSat_1 := 0.91;
BankCol_2 := 5725538;
BankTol_2 := 6;
BankHue_2 := 0.65;
BankSat_2 := 0.52;
BankUpText_1 := 'Use';
BankUpText_2 := 'Bank';
BankUpText_3 := 'ooth';
Col_Fail_1 := 5197656;
Col_Fail_2 := 132919;
Col_Fail_3 := 1729887;
Col_Fail_4 := 1397803;
Col_Count_1 := 1000;
Col_Count_2 := 150;
Col_Count_3 := 500;
Col_Count_4 := 25;
LocationStr := 'Draynor';
End;
1:
Begin
Writeln('Varrock west booth');
ClickMethod := 'booth';
BankCol_1 := 1854555;
BankTol_1 := 6; // 4
BankHue_1 := 0.12;
BankSat_1 := 2.73;
BankCol_2 := 2839135;
BankTol_2 := 5; // 2
BankHue_2 := 0.33;
BankSat_2 := 0.84;
BankUpText_1 := 'Use';
BankUpText_2 := 'Bank';
BankUpText_3 := 'ooth';
Col_Fail_1 := 5197656;
Col_Fail_2 := 4417654;
Col_Fail_3 := 5339232;
Col_Fail_4 := 4685691;
Col_Count_1 := 300;
Col_Count_2 := 500;
Col_Count_3 := 300;
Col_Count_4 := 250;
LocationStr := 'Varrock West';
End;
2:
Begin
Writeln('Seers Bank booth');
ClickMethod := 'booth';
BankCol_1 := 3757412;
BankTol_1 := 2;
BankHue_1 := 0.00;
BankSat_1 := 0.00;
BankCol_2 := 4347489;
BankTol_2 := 5;
BankHue_2 := 0.07;
BankSat_2 := 0.26;
BankUpText_1 := 'Use';
BankUpText_2 := 'Bank';
BankUpText_3 := 'ooth';
Col_Fail_1 := 5855584;
Col_Fail_2 := 1533012;
Col_Fail_3 := 4024685;
Col_Fail_4 := 12095612;
Col_Count_1 := 1000;
Col_Count_2 := 2000;
Col_Count_3 := 120;
Col_Count_4 := 100;
LocationStr := 'Seers Village';
End;
3:
Begin
Writeln('CastleWars Chest');
ClickMethod := 'chest';
BankCol_1 := 3821419;
BankTol_1 := 8;
BankHue_1 := 0.05;
BankSat_1 := 0.09;
BankCol_2 := 4870246;
BankTol_2 := 7;
BankHue_2 := 0.54;
BankSat_2 := 1.95;
BankUpText_1 := 'k chest';
BankUpText_2 := 'Bank che';
BankUpText_3 := 'ank chest';
Col_Fail_1 := 12095613;
Col_Fail_2 := 2380644;
Col_Fail_3 := 1321290;
Col_Fail_4 := 6524563;
Col_Count_1 := 500;
Col_Count_2 := 600;
Col_Count_3 := 50;
Col_Count_4 := 300;
LocationStr := 'CastleWars';
End;
4:
Begin
Writeln('Pest Control');
ClickMethod := 'booth';
BankCol_1 := 5599869;
BankTol_1 := 2;
BankHue_1 := 0.00;
BankSat_1 := 0.00;
BankCol_2 := 6847372;
BankTol_2 := 12;
BankHue_2 := 0.06;
BankSat_2 := 0.27;
BankUpText_1 := 'Use';
BankUpText_2 := 'Bank';
BankUpText_3 := 'ooth';
Col_Fail_1 := 4881028;
Col_Fail_2 := 1321290;
Col_Fail_3 := 12095613;
Col_Fail_4 := 1931122;
Col_Count_1 := 250;
Col_Count_2 := 300;
Col_Count_3 := 1500;
Col_Count_4 := 500;
LocationStr := 'Pest Control';
End;
End;
End;
procedure SetLog;
Begin
Case LogCombo.ITEMINDEX of
0:
Begin
Writeln('Logs');
DTM_Log := DTMFromString('mbQAAAHicY2VgYMhjYmAoAeJUKC4F4iBGBgZPIPYB4nAgDgXionAThvxQY4amZGuG9X0BDC2pNgz8QP3omBELBgMAm6AJ3w==');
LogUse := 'logs';
NameUse := 'logs';
//FletchingStr := 'Normal Logs';
End;
1:
Begin
Writeln('Oaks');
DTM_Log := DTMFromString('mggAAAHicY2NgYMhhYmDIAOICIC6D0ulA/Bgo9wqIXwLxCyC+D8X9BS4Mk4tc4XRvnhNDV44jgyBQDhtmxIEhAAAvCw/6');
LogUse := 'other';
NameUse := 'oaks';
// FletchingStr := 'Oaks';
End;
2:
Begin
Writeln('Willows');
DTM_Log := DTMFromString('mbQAAAHicY2VgYGAHYj4gZgRiHgYIYANiLiDmhfKZgNjXRZIh1EeOISfZGs4WBIqjY0YsGAwA/rwEfQ==');
LogUse := 'other';
NameUse := 'willows';
End;
3:
Begin
Writeln('Maples');
DTM_Log := DTMFromString('mbQAAAHicY2VgYAgH4mAgjgfiaCD2B+LfQMzICMHfGCA4yZGDIc+LB4yz3SFYECiOjhmxYDAAAGDmCK0=');
LogUse := 'other';
NameUse := 'maples';
End;
4:
Begin
Writeln('Yews');
DTM_Log := DTMFromString('mbQAAAHicY2VgYBAFYnEg5gZifiCWAWIBIOYCYh6ovDAQ+1tzMEQ6cjB46XAwxLpBsCBQHB0zYsFgAAD1wAQY');
LogUse := 'other';
NameUse := 'yews';
End;
5:
Begin
Writeln('Magics');
DTM_Log := DTMFromString('mbQAAAHicY2VgYBACYlEg5gBibiCWAmJBIOYEYl6oHAiH+aozZCfbM4h11TBEB2mD2YJQtciYEQsGAwBVUQXd');
LogUse := 'other';
NameUse := 'magics';
End;
End;
End;
procedure SetMethod;
Begin
Case MethodCombo.ITEMINDEX of
0:
Begin
Writeln('We are going to Shaft');
Method := 'shaft';
End;
1:
Begin
Writeln('We are going to string');
Method := 'string';
End;
2:
Begin
Writeln('We are going to fletch');
Method := 'fletch';
End;
End;
End;
procedure UpdateScript(Sender: TObject);
Begin
ShowMessage('This feature is not added yet');
End;
procedure SaveFormInfo(Sender: TObject);
Begin
DsgnForm.ModalResult := mrOk;
P07_PlayerName := Username.TEXT
P07_PlayerPass := Password.TEXT
WithXStr := WithDX1.TEXT
WithYStr := WithDY1.TEXT
WithX2Str := WithDX2.TEXT
WithY2Str := WithDY2.TEXT
StringXStr := StringX.TEXT
StringYStr := StringY.TEXT
WithXInt := StrToInt(WithXStr)
WithYInt := StrToInt(WithYStr)
WithX2Int := StrToInt(WithX2Str)
WithY2Int := StrToInt(WithY2Str)
StringXInt := StrToInt(StringXStr)
StringYInt := StrToInt(StringYStr)
SetMake;
Setstring;
DsgnForm.CLOSE;
End;
procedure InitForm;
Begin
DsgnForm:=TForm.Create(nil);
with DsgnForm Do
Begin
Caption:='Fast Fletcher 1.0';
Left:=377;
Top:=380;
Width:=360;
Height:=610;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=0;
End;
TLabel0:=TLabel.Create(DsgnForm);
With TLabel0 Do
Begin
Parent:=DsgnForm;
Caption:='Fast 2007 Fletcher';
Left:=110;
Top:=15;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=15;
End;
FletchLabel:=TLabel.Create(DsgnForm);
With FletchLabel Do
Begin
Parent:=DsgnForm;
Caption:='Fletching settings';
Left:=130;
Top:=110;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=11;
End;
ObjectAccurateCombo:=TComboBox.Create(DsgnForm);
With ObjectAccurateCombo Do
Begin
Parent:=DsgnForm;
Left:=230;
Top:=363;
Width:=120;
Height:=15;
Items.Add('Specific');
Items.Add('Broad');
Items.Add('Whole Screen');
Text := Items[0];
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
End;
ObjectAccurate:=TLabel.Create(DsgnForm);
With ObjectAccurate Do
Begin
Parent:=DsgnForm;
Caption:='Object searching:';
Left:=145;
Top:=365;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
MakeLabel:=TLabel.Create(DsgnForm);
With MakeLabel Do
Begin
Parent:=DsgnForm;
Caption:='Make';
Left:=90;
Top:=180;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
MakeCombo:=TComboBox.Create(DsgnForm);
With MakeCombo Do
Begin
Parent:=DsgnForm;
Left:=130;
Top:=178;
Width:=120;
Height:=15;
Items.Add('Shafts');
Items.Add('Short Bows');
Items.Add('Long Bows');
Text := Items[0];
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
End;
TLabel1:=TLabel.Create(DsgnForm);
With TLabel1 Do
Begin
Parent:=DsgnForm;
Caption:='Username';
Left:=33;
Top:=65;
Width:=49;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
TLabel2:=TLabel.Create(DsgnForm);
With TLabel2 Do
Begin
Parent:=DsgnForm;
Caption:='Password';
Left:=170;
Top:=65;
Width:=47;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
TLabel3:=TLabel.Create(DsgnForm);
With TLabel3 Do
Begin
Parent:=DsgnForm;
Caption:='Method';
Left:=35;
Top:=140;
Width:=37;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
TLabel4:=TLabel.Create(DsgnForm);
With TLabel4 Do
Begin
Parent:=DsgnForm;
Caption:='Logs to use';
Left:=165;
Top:=140;
Width:=18;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
AreaLabel:=TLabel.Create(DsgnForm);
With AreaLabel Do
Begin
Parent:=DsgnForm;
Caption:='Location settings';
Left:=130;
Top:=225;
Width:=18;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=11;
End;
FailsafeLabel:=TLabel.Create(DsgnForm);
With FailsafeLabel Do
Begin
Parent:=DsgnForm;
Caption:='Use Location Failsafe';
Left:=80;
Top:=295;
Width:=18;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
FailsafeCombo:=TComboBox.Create(DsgnForm);
With FailSafeCombo Do
Begin
Parent:=DsgnForm;
Left:=190;
Top:=293;
Width:=70;
Height:=15;
Items.Add('Yes');
Items.Add('No');
Text := Items[0];
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
End;
TLabel5:=TLabel.Create(DsgnForm);
With TLabel5 Do
Begin
Parent:=DsgnForm;
Caption:='Direction';
Left:=205;
Top:=260;
Width:=43;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
Username:=TEdit.Create(DsgnForm);
With Username Do
Begin
Parent:=DsgnForm;
Text:='Username';
Left:=83;
Top:=63;
Width:=80;
Height:=21;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
Password:=TEdit.Create(DsgnForm);
With Password Do
Begin
Parent:=DsgnForm;
Text:='Password';
Left:=220;
Top:=63;
Width:=80;
Height:=21;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
Password.MaxLength:=21;
Password.PasswordChar:=#;
End;
OtherLabel:=TLabel.Create(DsgnForm);
With OtherLabel Do
Begin
Parent:=DsgnForm;
Caption:='Other Settings';
Left:=150;
Top:=335;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=11;
End;
SpeedLabel:=TLabel.Create(DsgnForm);
With SpeedLabel Do
Begin
Parent:=DsgnForm;
Caption:='Fletching Speed';
Left:=1;
Top:=365;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
SpeedCombo:=TComboBox.Create(DsgnForm);
With SpeedCombo Do
Begin
Parent:=DsgnForm;
Left:=80;
Top:=363;
Width:=60;
Height:=15;
Items.Add('Slow');
Items.Add('Normal');
Items.Add('Fast');
Text := Items[0];
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
End;
MethodCombo:=TComboBox.Create(DsgnForm);
With MethodCombo Do
Begin
Parent:=DsgnForm;
Left:=77;
Top:=138;
Width:=80;
Height:=15;
Items.Add('Shaft');
Items.Add('String');
Items.Add('Fletch');
Text := Items[0];
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
End;
CustomLabel:=TLabel.Create(DsgnForm);
With CustomLabel Do
Begin
Parent:=DsgnForm;
Caption:='Custom Settings';
Left:=145;
Top:=395;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=11;
End;
StringLabel:=TLabel.Create(DsgnForm);
With StringLabel Do
Begin
Parent:=DsgnForm;
Caption:='Stringing';
Left:=5;
Top:=425;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
StringXLabel:=TLabel.Create(DsgnForm);
With StringXLabel Do
Begin
Parent:=DsgnForm;
Caption:='X:';
Left:=10;
Top:=455;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
StringYLabel:=TLabel.Create(DsgnForm);
With StringYLabel Do
Begin
Parent:=DsgnForm;
Caption:='Y:';
Left:=80;
Top:=455;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
WithDX1:=TEdit.Create(DsgnForm);
With WithDX1 Do
Begin
Parent:=DsgnForm;
Text:='0';
Left:=175;
Top:=470;
Width:=40;
Height:=21;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
WithDY1:=TEdit.Create(DsgnForm);
With WithDY1 Do
Begin
Parent:=DsgnForm;
Text:='0';
Left:=270;
Top:=470;
Width:=40;
Height:=21;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
Password.MaxLength:=21;
End;
WithDX2:=TEdit.Create(DsgnForm);
With WithDX2 Do
Begin
Parent:=DsgnForm;
Text:='0';
Left:=270;
Top:=520;
Width:=40;
Height:=21;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
WithDY2:=TEdit.Create(DsgnForm);
With WithDY2 Do
Begin
Parent:=DsgnForm;
Text:='0';
Left:=175;
Top:=520;
Width:=40;
Height:=21;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
Password.MaxLength:=21;
End;
StringX:=TEdit.Create(DsgnForm);
With StringX Do
Begin
Parent:=DsgnForm;
Text:='0';
Left:=30;
Top:=450;
Width:=40;
Height:=21;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
StringY:=TEdit.Create(DsgnForm);
With StringY Do
Begin
Parent:=DsgnForm;
Text:='0';
Left:=100;
Top:=450;
Width:=40;
Height:=21;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
Password.MaxLength:=21;
End;
StringCombo:=TComboBox.Create(DsgnForm);
With StringCombo Do
Begin
Parent:=DsgnForm;
Left:=50;
Top:=422;
Width:=115;
Height:=15;
Items.Add('Use Built-in DTMs');
Items.Add('Use slot 14 & 15');
Items.Add('Custom Coords');
Text := Items[0];
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
End;
WithDLabel:=TLabel.Create(DsgnForm);
With WithDLabel Do
Begin
Parent:=DsgnForm;
Caption:='WithDrawing';
Left:=165;
Top:=425;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
WithXLabel:=TLabel.Create(DsgnForm);
With WithXLabel Do
Begin
Parent:=DsgnForm;
Caption:='X:';
Left:=160;
Top:=473;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
WithX2Label:=TLabel.Create(DsgnForm);
With WithX2Label Do
Begin
Parent:=DsgnForm;
Caption:='X:';
Left:=160;
Top:=523;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
WithYLabel:=TLabel.Create(DsgnForm);
With WithYLabel Do
Begin
Parent:=DsgnForm;
Caption:='Y:';
Left:=250;
Top:=473;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
WithY2Label:=TLabel.Create(DsgnForm);
With WithY2Label Do
Begin
Parent:=DsgnForm;
Caption:='Y:';
Left:=250;
Top:=523;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
Slot1Label:=TLabel.Create(DsgnForm);
With Slot1Label Do
Begin
Parent:=DsgnForm;
Caption:='Slot 1';
Left:=225;
Top:=450;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
Slot2Label:=TLabel.Create(DsgnForm);
With Slot2Label Do
Begin
Parent:=DsgnForm;
Caption:='Slot 2';
Left:=225;
Top:=500;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
WithdrawCombo:=TComboBox.Create(DsgnForm);
With WithDrawCombo Do
Begin
Parent:=DsgnForm;
Left:=235;
Top:=423;
Width:=120;
Height:=15;
Items.Add('Use Built-in DTMs');
Items.Add('First & Second Bank slot');
Items.Add('Custom Coords');
Text := Items[0];
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
End;
ObjectLabel:=TLabel.Create(DsgnForm);
With ObjectLabel Do
Begin
Parent:=DsgnForm;
Caption:='Object';
Left:=30;
Top:=260;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
ObjectCombo:=TComboBox.Create(DsgnForm);
With ObjectCombo Do
Begin
Parent:=DsgnForm;
Left:=65;
Top:=258;
Width:=130;
Height:=15;
Items.Add('Draynor Booth');
Items.Add('Varrock West Booth');
Items.Add('Cammy Bank Booth');
Items.Add('Chest(CastleWars)');
Items.Add('Pest Control');
Text := Items[0];
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
End;
LogCombo:=TComboBox.Create(DsgnForm);
With LogCombo Do
Begin
Parent:=DsgnForm;
Left:=225;
Top:=138;
Width:=80;
Height:=15;
Items.Add('Logs');
Items.Add('Oak');
Items.Add('Willow');
Items.Add('Maple');
Items.Add('Yew');
Items.Add('Magic');
Text := Items[0];
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
StartButton:=TButton.Create(DsgnForm);
With StartButton Do
Begin
Parent:=DsgnForm;
Caption:='Start';
Left:=60;
Top:=560;
Width:=240; //75
Height:=25;
OnClick:=@SaveFormInfo
Font.Size:=8;
End;
UpdateButton:=TButton.Create(DsgnForm);
With UpdateButton Do
Begin
Parent:=DsgnForm;
Caption:='Update';
Left:=60;
Top:=585;
Width:=240; //75
Height:=25;
Font.Size:=8;
OnClick:=@UpdateScript
End;
CompassCombo:=TComboBox.Create(DsgnForm);
With CompassCombo Do
Begin
Parent:=DsgnForm;
Left:=255;
Top:=258;
Width:=70;
Height:=21;
Items.Add('North');
Items.Add('East');
Items.Add('South');
Items.Add('West');
Text := Items[0];
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
End;
End;
procedure SafeInitForm;
var
v: TVariantArray;
Begin
setarraylength(V, 0);
ThreadSafeCall('InitForm', v);
End;
procedure ShowFormModal;
Begin
DsgnForm.ShowModal;
End;
procedure SafeShowFormModal;
var
v: TVariantArray;
Begin
SetArrayLength(V, 0);
ThreadSafeCall('ShowFormModal', v);
End;
Procedure CleanMainLoop;
Begin
SetMethod;
SetLog;
SetObject;
SetObjectDetection;
SetCompass;
SetMake;
Setstring;
SetFailSafeArea;
SetSpeed;
SetWithdraw;
//MouseSpeed := MouseSpeed_Fix;
ShowInfo;
ActivateClient;
Wait(1000);
LoadDTMS;
CheckFreinds;
CheckFletching;
End;
Begin
SetupP07Include;
SafeInitForm;
SafeShowFormModal;
CleanMainLoop;
StartTime := GetSystemTime;
ConductBot;
AddOnTerminate('FreeTheDTMs');
Repeat
ConductBot;
AddOnTerminate('FreeTheDTMs');
Until False;
AddOnTerminate('FreeTheDTMs');
END.Outputs this Cute little GUI:

And the user gets this warning before starting to confirm: