Simba Code:
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/Debug.Simba}
{$I P07Include.Simba}
var
DsgnForm:TForm;
TLabel0,TLabel1,TLabel2,TLabel3,TLabel4,TLabel5: TLabel;
InfoLabel,ObjectLabel,AreaLabel,FletchLabel,FailsafeLabel,OtherLabel: TLabel;
SpeedLabel:TLabel;
Username,Password: TEdit;
LogCombo,CompassCombo,ObjectCombo,FailsafeCombo,SpeedCombo: TComboBox;
MethodCombo:TComboBox;
StartButton,UpdateButton: TButton;
DTM_Fail,Col_Fail_1,Col_Fail_2,DTM_Log,Col_Count_1,Col_Count_2:Integer;
ClickMethod,BankUptext_1,BankUptext_2,BankUptext_3:String;
BankCol_1,BankTol_1,CompassDegree,MouseSpeed_Fix:Integer;
BankHue_1,BankSat_1:Extended;
BankCol_2,BankTol_2:Integer;
BankHue_2,BankSat_2:Extended;
X,Y:Integer;
Method,Make:String;
DX1,DY1,DX2,DY2:Integer;
MakeLabel:Tlabel;
MakeCombo:TComboBox;
DTM_Make,Knife:Integer;
const
default = 'Times New Roman';
Procedure FreeTheDTMs;
Begin
FreeDTM(DTM_Fail);
FreeDTM(DTM_Log);
FreeDTM(Knife);
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 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(200, 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, 450));
861..975: Wait(RandomRange(300, 550));
976..1000: Wait(RandomRange(400, 1000));
End;
End;
Procedure RandomRightClick;
Begin
case random(150) of
1: clickmouse2(mouse_Right);
End;
End;
Procedure RandomLeftClick;
Begin
case random(150) of
1: clickmouse2(mouse_Left);
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;
function Bank: Boolean;
var
i, CTS, c, 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, MSX1, MSY1, MSX2, MSY2, BankTol_1);
SetColorSpeed2Modifiers(BankHue_2, BankSat_2);
FindColorsTolerance(TPA2, BankCol_2, MSX1, MSY1, MSX2, MSY2, 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
RandomLeftClick;
clickmouse2(mouse_Right);
RandomChooseWait;
P07_ChooseOptionMultiHuman(['Use-q']);
RandomBankWait;
If Not P07_BankScreen Then
Begin
Bank;
End;
Exit;
End;
'chest':
Begin
RandomRightClick;
clickmouse2(mouse_Left);
Wait(RandomRange(100, 700));
RandomBankWait;
If Not P07_BankScreen Then
Begin
Bank;
End;
Exit;
End;
End;
Exit;
End;
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;
Procedure LoadDTMS;
Begin
Knife := DTMFromString('mQwAAAHicY2ZgYHBiYmBwA2JbIH4K5N8B4ldAnJ+ezlCUlcUQasnBIAjkwzAjEgYCAB5EBsk=');
End;
Procedure ChooseMethod;
Var
RandIHigh,RandILow:Integer;
HighR,LowR:String;
Begin
case LowerCase(Make) of
'arrows':
Begin
if FindDTM(DTM_Make, x, y, 17, 364, 134, 456) then
Begin
RandomMouseOff;
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)
case random(100) of
1: TypeSend(''+HighR+'');
2: TypeSend(''+LowR);
3..98: TypeSend('27');
99..100: TypeSend('54');
End;
End;
End;
'shorts':
Begin
if FindDTM(DTM_Make, x, y, 151, 373, 235, 454) then
Begin
RandomMouseOff;
clickmouse2(mouse_Right);
RandomChooseWait;
P07_ChooseOptionMultiHuman(['ake x','Make']);
SlowWait;
RandIHigh := RandomRange(347,84372)
RandILow := RandomRange(28,100)
HighR := IntToStr(RandIHigh)
LowR := IntToStr(RandILow)
case random(100) of
1: TypeSend(''+HighR+'');
2: TypeSend(''+LowR);
3..98: TypeSend('27');
99..100: TypeSend('54');
End;
End;
End;
'longs':
Begin
if FindDTM(DTM_Make, x, y, 274, 372, 352, 455) then
Begin
RandomMouseOff;
clickmouse2(mouse_Right);
RandomChooseWait;
P07_ChooseOptionMultiHuman(['ake x','Make']);
SlowWait;
RandIHigh := RandomRange(347,84372)
RandILow := RandomRange(28,100)
HighR := IntToStr(RandIHigh)
LowR := IntToStr(RandILow)
case random(100) of
1: TypeSend(''+HighR+'');
2: TypeSend(''+LowR);
3..98: TypeSend('27');
99..100: TypeSend('54');
End;
End;
End;
End;
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, 549, 202, 741, 467) then
Begin
RandomMouse;
FastWait;
clickmouse2(mouse_Left);
FastWait;
End;
End;
End;
4..50:
Begin
if 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
case LowerCase(Method) of
'shaft':
Begin
RandomFletch;
FastWait;
ChooseMethod;
RandomBankWait;
Wait(RandomRange(500, 2000));
if FindDTM(DTM_Log, x, y, 557, 206, 684, 249) then
Begin
ConductBot;
Exit;
End;
MarkTime(TimeOut)
Repeat
RandomBankWait;
Until Not HasLogs or (TimeFromMark(TimeOut) > 90000)
Bank;
End;
'fletch':
Begin
End;
'string':
Begin
End;
End;
End;
procedure SetSpeed;
begin
case CompassCombo.ITEMINDEX of
0:
Begin
Writeln('Fletching Speed:Slow');
MouseSpeed_Fix := RandomRange(12,14);
End;
1:
Begin
Writeln('Fletching Speed:Medium');
MouseSpeed_Fix := RandomRange(15,16);
End;
2:
Begin
Writeln('Fletching Speed:Fast');
MouseSpeed_Fix := RandomRange(17,20);
End;
End;
End;
procedure SetFailSafeArea;
begin
case FailSafeCombo.ITEMINDEX of
0:
Begin
Writeln('and failsafing at Lumberidge Bank');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
1:
Begin
Writeln('and failsafing at Lumberidge Cellar');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
2:
Begin
Writeln('and failsafing at Draynor Bank');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
3:
Begin
Writeln('and failsafing at Varrock East Bank');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
4:
Begin
Writeln('and failsafing at Varrock West Bank');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
5:
Begin
Writeln('and failsafing at Edgeville Bank');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
6:
Begin
Writeln('and failsafing at Duel Arena');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
7:
Begin
Writeln('and failsafing at Castle Wars');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
8:
Begin
Writeln('and failsafing at Falador East');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
9:
Begin
Writeln('and failsafing at Falador West');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
10:
Begin
Writeln('and failsafing at Catherby Bank');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
11:
Begin
Writeln('and failsafing at Seers Village Bank');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
12:
Begin
Writeln('and failsafing at Nowere');
DTM_Fail := DTMFromString('');
Col_Fail_1 := 0;
Col_Fail_2 := 0;
Col_Count_1 := 0;
Col_Count_2 := 0;
End;
End;
End;
procedure SetMake;
begin
case MakeCombo.ITEMINDEX of
0:
Begin
Writeln('We are going to Shaft');
Make := 'Arrows';
DTM_Make := DTMFromString('mWAAAAHicY2FgYAgEYkcgjgfiCCCewMjAsByIVwJxAxCHGHEwbFrcwrBtRSuYLQJUg4wZ0TAIAADeogje');
End;
1:
Begin
Writeln('We are going to Fletch short bows');
Make := 'Shorts';
DTM_Make := DTMFromString('mWAAAAHicY2FgYDgDxAeB+AoQ3wTiGYwMDMuBeBkQtwFxtjsvw+ldUxnO7J7FEGfPwSACVIOMGdEwCAAAnI8LoQ==');
End;
2:
Begin
Writeln('We are going to fletch LongBows');
Make := 'Longs';
DTM_Make := DTMFromString('mQwAAAHicY2ZgYLBlZGDwZITQ04F4ChC3AfGFvbMZrNQZGEIsORgkgepgmBEJAwEA9tkF6g==');
End;
End;
End;
procedure SetCompass;
begin
case CompassCombo.ITEMINDEX of
0:
Begin
Writeln('facing North');
CompassDegree := 90; //P07_MakeCompass(CompassDegree + Random(10));
DX1 := 193;
DY1 := 92;
DX2 := 361;
DY2 := 142;
End;
1:
Begin
Writeln('facing East');
CompassDegree := 180;
DX1 := 265;
DY1 := 107;
DX2 := 316;
DY2 := 262;
End;
2:
Begin
Writeln('facing South');
CompassDegree := 270;
DX1 := 290;
DY1 := 114;
DX2 := 331;
DY2 := 240;
End;
3:
Begin
Writeln('facing West');
CompassDegree := 1;
DX1 := 170;
DY1 := 75;
DX2 := 248;
DY2 := 214;
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';
End;
1:
Begin
Writeln('at Light Brown Booth');
ClickMethod := 'booth';
BankCol_1 := 0;
BankTol_1 := 0;
BankHue_1 := 0.00;
BankSat_1 := 0.00;
BankCol_2 := 0;
BankTol_2 := 0;
BankHue_2 := 0.00;
BankSat_2 := 0.00;
BankUpText_1 := '';
BankUpText_2 := '';
BankUpText_3 := '';
End;
2:
Begin
Writeln('at Lumberidge Chest');
ClickMethod := 'chest';
BankCol_1 := 0;
BankTol_1 := 0;
BankHue_1 := 0.00;
BankSat_1 := 0.00;
BankCol_2 := 0;
BankTol_2 := 0;
BankHue_2 := 0.00;
BankSat_2 := 0.00;
BankUpText_1 := '';
BankUpText_2 := '';
BankUpText_3 := '';
End;
3:
Begin
Writeln('at CastleWars Chest');
ClickMethod := 'chest';
BankCol_1 := 0;
BankTol_1 := 0;
BankHue_1 := 0.00;
BankSat_1 := 0.00;
BankCol_2 := 0;
BankTol_2 := 0;
BankHue_2 := 0.00;
BankSat_2 := 0.00;
BankUpText_1 := '';
BankUpText_2 := '';
BankUpText_3 := '';
End;
End;
End;
procedure SetLog;
begin
case LogCombo.ITEMINDEX of
0:
Begin
Writeln('Logs');
DTM_Log := DTMFromString('mbQAAAHicY2VgYMhjYmAoAeJUKC4F4iBGBgZPIPYB4nAgDgXionAThvxQY4amZGuG9X0BDC2pNgz8QP3omBELBgMAm6AJ3w==');
End;
1:
Begin
Writeln('Oaks');
DTM_Log := DTMFromString('');
End;
2:
Begin
Writeln('Willows');
DTM_Log := DTMFromString('');
End;
3:
Begin
Writeln('Maples');
DTM_Log := DTMFromString('');
End;
4:
Begin
Writeln('Yews');
DTM_Log := DTMFromString('');
End;
5:
Begin
Writeln('Magics');
DTM_Log := DTMFromString('');
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 Fletch');
Method := 'fletch';
End;
2:
Begin
Writeln('We are going to String');
Method := 'string';
End;
End;
End;
procedure YourClickProcedure(Sender: TObject);
begin
//ShowMessage('click');
end;
procedure SaveFormInfo(Sender: TObject);
begin
DsgnForm.ModalResult := mrOk;
P07_PlayerName := Username.TEXT
P07_PlayerPass := Password.TEXT
SetMethod;
SetLog;
SetObject;
SetCompass;
SetMake;
SetFailSafeArea;
SetSpeed;
DsgnForm.CLOSE;
//Bank;
end;
procedure InitForm;
begin
//DsgnForm\\
DsgnForm:=TForm.Create(nil);
with DsgnForm do
begin
Caption:='Fast Fletcher 1.0';
Left:=377;
Top:=380;
Width:=280;
Height:=480;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=0;
end;
//TLabel0\\
TLabel0:=TLabel.Create(DsgnForm);
with TLabel0 do
begin
Parent:=DsgnForm;
Caption:='RJJ95 2007 Fletcher';
Left:=90;
Top:=15;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
end;
FletchLabel:=TLabel.Create(DsgnForm);
with FletchLabel do
begin
Parent:=DsgnForm;
Caption:='Fletching settings';
Left:=100;
Top:=110;
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:=55;
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:=95;
Top:=178;
Width:=120;
Height:=15;
Items.Add('Shafts');
Items.Add('Short Bows');
Items.Add('Long Bows');
Text := Items[0];
OnClick:=@YourClickProcedure;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
end;
//TLabel1\\
TLabel1:=TLabel.Create(DsgnForm);
with TLabel1 do
begin
Parent:=DsgnForm;
Caption:='Username';
Left:=3;
Top:=65;
Width:=49;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
end;
//TLabel2\\
TLabel2:=TLabel.Create(DsgnForm);
with TLabel2 do
begin
Parent:=DsgnForm;
Caption:='Password';
Left:=140;
Top:=65;
Width:=47;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
end;
//TLabel3\\
TLabel3:=TLabel.Create(DsgnForm);
with TLabel3 do
begin
Parent:=DsgnForm;
Caption:='Method';
Left:=5;
Top:=140;
Width:=37;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
end;
//TLabel4\\
TLabel4:=TLabel.Create(DsgnForm);
with TLabel4 do
begin
Parent:=DsgnForm;
Caption:='Logs to use';
Left:=135;
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:=100;
Top:=225;
Width:=18;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
end;
FailsafeLabel:=TLabel.Create(DsgnForm);
with FailsafeLabel do
begin
Parent:=DsgnForm;
Caption:='Location failsafe';
Left:=25;
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:=110;
Top:=293;
Width:=150;
Height:=15;
//add your items here
Items.Add('Lumberidge Bank');
Items.Add('Lumberidge Cellar');
Items.Add('Draynor Bank');
Items.Add('Varrock East Bank');
Items.Add('Varrock West Bank');
Items.Add('Edgeville Bank');
Items.Add('Duel Arena');
Items.Add('Castle Wars');
Items.Add('Falador East');
Items.Add('Falador West');
Items.Add('Catherby Bank');
Items.Add('Seers Village Bank');
Items.Add('None');
Text := Items[0];
//End items
OnClick:=@YourClickProcedure;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
end;
//TLabel5\\
TLabel5:=TLabel.Create(DsgnForm);
with TLabel5 do
begin
Parent:=DsgnForm;
Caption:='Direction';
Left:=155;
Top:=260;
Width:=43;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
end;
//TEdit7\\
Username:=TEdit.Create(DsgnForm);
with Username do
begin
Parent:=DsgnForm;
Text:='Username';
Left:=53;
Top:=63;
Width:=80;
Height:=21;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
end;
//TEdit8\\
Password:=TEdit.Create(DsgnForm);
with Password do
begin
Parent:=DsgnForm;
Text:='Password';
Left:=190;
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:=100;
Top:=335;
Width:=99;
Height:=14;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
end;
SpeedLabel:=TLabel.Create(DsgnForm);
with SpeedLabel do
begin
Parent:=DsgnForm;
Caption:='Fletching Speed';
Left:=70;
Top:=360;
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:=150;
Top:=358;
Width:=60;
Height:=15;
//add your items here
Items.Add('Slow');
Items.Add('Normal');
Items.Add('Fast');
Text := Items[0];
//End items
OnClick:=@YourClickProcedure;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
end;
//Method\\
MethodCombo:=TComboBox.Create(DsgnForm);
with MethodCombo do
begin
Parent:=DsgnForm;
Left:=47;
Top:=138;
Width:=80;
Height:=15;
//add your items here
Items.Add('Shaft');
Items.Add('String');
Items.Add('Fletch');
Text := Items[0];
//End items
OnClick:=@YourClickProcedure;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
end;
ObjectLabel:=TLabel.Create(DsgnForm);
with ObjectLabel do
begin
Parent:=DsgnForm;
Caption:='Object';
Left:=0;
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:=35;
Top:=258;
Width:=115;
Height:=15;
Items.Add('Booth(DarkBrown)');
Items.Add('Booth(LightBrown)');
Items.Add('Chest(Lumberidge)');
Items.Add('Chest(CastleWars)');
Text := Items[0];
OnClick:=@YourClickProcedure;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
end;
//Log\\
LogCombo:=TComboBox.Create(DsgnForm);
with LogCombo do
begin
Parent:=DsgnForm;
Left:=195;
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];
OnClick:=@YourClickProcedure;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=9;
end;
StartButton:=TButton.Create(DsgnForm);
with StartButton do
begin
Parent:=DsgnForm;
Caption:='Start';
Left:=45;
Top:=400;
Width:=200; //75
Height:=20;
OnClick:=@SaveFormInfo
Font.Size:=8;
end;
UpdateButton:=TButton.Create(DsgnForm);
with UpdateButton do
begin
Parent:=DsgnForm;
Caption:='Update';
Left:=45;
Top:=420;
Width:=200; //75
Height:=20;
Font.Size:=8;
//OnClick:=@SaveFormInfo
end;
//TComboBox12\\
CompassCombo:=TComboBox.Create(DsgnForm);
with CompassCombo do
begin
Parent:=DsgnForm;
Left:=205;
Top:=258;
Width:=70;
Height:=21;
Items.Add('North');
Items.Add('East');
Items.Add('South');
Items.Add('West');
Text := Items[0];
OnClick:=@YourClickProcedure;
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;
begin
MouseSpeed :=5;
SetupP07Include;
SafeInitForm;
SafeShowFormModal;
MouseSpeed := MouseSpeed_Fix;
ActivateClient;
Wait(1000);
//P07_MakeCameraAngleHigh;
//P07_MakeCompassDegree(CompassDegree + Random(10));
LoadDTMS;
ConductBot;
AddOnTerminate('FreeTheDTMs');
Repeat
ConductBot;
Until False;
end.