PDA

View Full Version : Fletcher Request



fluffy22
03-02-2013, 06:45 PM
Fletching would be a simple and pretty awesome script to create.

Features:

- Cut
- String
- Bank

Or: Add this feature to a existing wc script and cut / drop perhaps.

rj
03-02-2013, 07:39 PM
Working on one atm, only stable with oak shorts,aok longs, shortbows, shafts, and shortbows, still has some bugs:

{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/Debug.Simba}
{$I P07Include.Simba}
var

{************************************************* ****************}
{***************************TFormJunk************* ****************}
{************************************************* ****************}

DsgnForm:TForm;
TLabel0,TLabel1,TLabel2,TLabel3,TLabel4,TLabel5:TL abel;
InfoLabel,ObjectLabel,AreaLabel,FletchLabel,Failsa feLabel,OtherLabel:TLabel;
SpeedLabel,Objectaccurate,MakeLabel:TLabel;
Username,Password: TEdit;
LogCombo,CompassCombo,ObjectCombo,FailsafeCombo,Sp eedCombo,MakeCombo:TComboBox;
MethodCombo,objectaccurateCombo:TComboBox;
StartButton,UpdateButton: TButton;

{*****************************Integers************ ****************}

DTM_Fail,Col_Fail_1,Col_Fail_2,DTM_Log,Col_Count_1 ,Col_Count_2:Integer;
BankCol_1,BankTol_1,CompassDegree,MouseSpeed_Fix:I nteger;
BankCol_2,BankTol_2,X,Y,DX1,DY1,DX2,DY2:Integer;
DTM_Make,Knife,FSX1,FSY1,FSX2,FSY2,NFSX1,NFSY1,NFS X2,NFSY2,DTM_Made:Integer;
ClickCont,OBLX,OBLY,OBLX2,OBLY2,fx,fy,nfx,nfy:Inte ger;

{*****************************Extended************ ****************}

BankHue_1,BankSat_1,BankHue_2,BankSat_2:Extended;

{*****************************Strings************* ***************}

ClickMethod,BankUptext_1,BankUptext_2,BankUptext_3 :String;
Method,Make,StoreMethod,LogUse,NameUse,ObjectLook: String;
{************************************************* ****************}

const
default = 'Times New Roman';
Procedure FreeTheDTMs;
Begin
FreeDTM(DTM_Fail);
FreeDTM(DTM_Log);
FreeDTM(Knife);
FreeBitmap(ClickCont);
End;
Procedure BrakeWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, targetArea: extended);
var
veloX,veloY,windX,windY,veloMag,dist,randomDist,la stDist,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,la stDist,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: clickmouse2(mouse_Right);
End;
End;
Procedure RandomLeftClick;
Begin
case random(150) of
1: 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: HumanMoveOff;
96..101: HumanMoveSlowOff;
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+2 1+((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 FailSafeLogOut;
Begin
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;
Procedure CloseBankHuman;
Begin
X := 485;
Y := 41;
Begin
HumanMMouse(RandomRange(X - 5, X + 5), RandomRange(y - 5, y + 5), 0, 0);
FastWait;
clickmouse2(mouse_Left);
RandomBankWait;
If BankScreen Then
Begin
CloseBank;
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
Writeln('Starting storage method');
MouseToRandomBow;
FastWait;
clickmouse2(mouse_Right);
RandomChooseWait;
P07_ChooseOptionMultiHuman(['tore Al','ore All']);
RandomBankWait;
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;
End;
End;
End;
End;
End;
End;
Procedure SetDepositeInts;
Begin
case random(100) of
1..4:
Begin
X := 621;
Y := 227;
End;
5..6:
Begin
X := 661;
Y := 225;
End;
7..82:
Begin
X := 578;
Y := 263;
End;
83..96:
Begin
X := 619;
Y := 261;
End;
97..100:
Begin
X := 661;
Y := 262;
End;
End;
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, 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
RandomLeftClick;
clickmouse2(mouse_Right);
RandomChooseWait;
P07_ChooseOptionMultiHuman(['Use-q']);
RandomBankWait;
While (IsMoving) Do
FastWait;
If Not P07_BankScreen Then
Begin
Bank;
End;
Exit;
End;
'chest':
Begin
RandomRightClick;
clickmouse2(mouse_Left);
Wait(RandomRange(100, 700));
RandomBankWait;
While (IsMoving) Do
FastWait;
If Not P07_BankScreen Then
Begin
Bank;
End;
Exit;
End;
End;
Exit;
End;
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, 128, 353, 383, 395, 15);
If (Count>350) 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('mQwAAAHicY2ZgYHBiYmCwA2JXIH4M5L8C4n tAXF1cxBBhw8lQWVjAIAjkwzAjEgYCACQIBwc=');
ClickCont := BitmapFromString(121, 5, 'meJyNlUFuwlAMRHP/RTcVUkVZ9B' +
'SRoAHBrqgFpb1Q6mTCZDLfiZAs5O/Yjv2+Hbqq2hy+u6rqBgWCI2T' +
'7+WMWuoXEU0h/bNoQi30/tpaTUfShonZaIkMIn27Pd/UZc85frRVq' +
'nW/1V9nOWLwYX+trHOPX3/JIZXatNjUy/4pCT9Nz2k1bevaoBwh6F' +
'0Z1d/kjTHv6cfqdIM9FKUW4QQMr/L7spygATBvUSdN5QB61T61JSJ' +
'kK4ZY2VRBo4enMKPb0pWl3BpatAXvP+XjjXqgPR87eOx5xs03 Lo02' +
'Fklzhgy1Ir4CNGOoSIHUUnGJRILb+z6AGH8tpcAw1CadXYGLZ tBFM' +
'OAhPXzYpUlGso14aS7VbI+tTrT0u7YIqXKhQQspLScN1qeHMr dfPM' +
'j2VA44Yckuu/wW6GijMxkADUUnZIPdFnQ17OQzPfIv+AfiVTIA=');
End;
Procedure ChooseMethod;
Var
RandIHigh,RandILow:Integer;
HighR,LowR:String;
Begin
case LowerCase(LogUse) of
'logs':
Begin
//if FindDTM(DTM_Make, x, y, NFSX1, NFSY1, NFSX2, NFSY2) then
//Begin
if InterfaceReady Then
Begin
Writeln('The Interface is ready, choosing option');
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 FindDTM(DTM_Make, x, y, FSX1, FSY1, FSX2, FSY2) then
Begin
if InterfaceReady Then
Begin
RandomMouseFletch;
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 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
TimeOut := 0;
case LowerCase(Method) of
'shaft':
Begin
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
RandomBankWait;
ContainsUpLevel;
if (ContainsUpLevel) then
Begin
P07_ClickToContinue;
ConductBot;
Exit;
end;
Until Not (HasLogs) or (TimeFromMark(TimeOut) > 60000)
Bank;
SetDepositeInts;
Deposite;
WithDrawHuman;
CloseBankHuman;
End;
'fletch':
Begin
RandomFletch;
FastWait;
ChooseMethod;
RandomBankWait;
Wait(RandomRange(2000, 3000));
{if FindDTM(DTM_Log, x, y, 669, 234, 715, 273) then
Begin
ConductBot;
Exit;
End; }
MarkTime(TimeOut)
Repeat
MarkTime(TimeOut)
RandomBankWait;
ContainsUpLevel;
if (ContainsUpLevel) then
Begin
P07_ClickToContinue;
ConductBot;
Exit;
end;
Until Not HasLogs or (TimeFromMark(TimeOut) > 60000)
Bank;
SetDepositeInts;
Deposite;
WithDrawHuman;
CloseBankHuman;
End;
'string':
Begin
{ MouseToRandom;
FastWait;
StringAll;
RandomBankWait;
Wait(RandomRange(2000, 3000));
if FindDTM(DTM_Log, x, y, 651, 337, 667, 342) then
Begin
ConductBot;
Exit;
End;
MarkTime(TimeOut)
Repeat
RandomBankWait;
ContainsUpLevel;
if (ContainsUpLevel) then
Begin
P07_ClickToContinue;
ConductBot;
Exit;
end;
Until Not HasStrings or (TimeFromMark(TimeOut) > 60000)
Bank;
WithDrawHumanString;
DepositeBow;
WithDrawHumanBow;
CloseBankHuman;}
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 SetWithDraw;
Begin
case LowerCase(Method) of
'shaft':
case LowerCase(Make) of
'arrows':
case LowerCase(nameuse) of
'logs':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYHBmYmBwA2IbIH4C5L8C4p dAHGrMAcf8QD4MMyJhIAAA7eMFZg==');
'oaks':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYHBmYmBwA2IbIH4C5L8C4p dAHGrMAcf8QD4MMyJhIAAA7eMFZg==');
'willows':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYHBmYmBwA2IbIH4C5L8C4p dAHGrMAcf8QD4MMyJhIAAA7eMFZg==');
'maples':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYHBmYmBwA2IbIH4C5L8C4p dAHGrMAcf8QD4MMyJhIAAA7eMFZg==');
'yews':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYHBmYmBwA2IbIH4C5L8C4p dAHGrMAcf8QD4MMyJhIAAA7eMFZg==');
'magics':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYHBmYmBwA2IbIH4C5L8C4p dAHGrMAcf8QD4MMyJhIAAA7eMFZg==');
End;
End;
'string': // none completed
case LowerCase(Make) of
'shorts':
case LowerCase(NameUse) of
'logs':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'oaks':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'willows':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'maples':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'yews':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'magics':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
End;
End;
'longs':
case LowerCase(NameUse) of
'logs':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYHBmYmCwBWIvIGZlZGD4Bx TjB9JFfrxgXBXMyyAEFINhRiQMBAC8wgSV');
'oaks':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'willows':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'maples':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'yews':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'magics':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
End;
'fletch':
case LowerCase(Make) of
'shorts':
case LowerCase(NameUse) of // Logs,
'logs':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChkYmDIBOISIH4M5L8E4v tAXOzHy5DnxcsQasnBIALkwzAjEgYCAB3FBms=');
'oaks':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'willows':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'maples':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'yews':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'magics':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
End;
End;
'longs':
case LowerCase(NameUse) of // logs
'logs':
DTM_Made:= DTMFromString('mQwAAAHicY2ZgYHBlYmCwBWIPIGZnZGD4Bx TjBtLZ7rwMRX68DP6mHAwCQDEYZkTCQAAAsJ0EMQ==');
'oaks':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'willows':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'maples':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'yews':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
'magics':
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
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('mWAAAAHicY2FgYPAFYjsgjgZibyCeyMjAsA KK1wDx7tXdDBsX1oLpdQuaGfiBapAxIxoGAQBXYwuJ');
DTM_Made := DTMFromString('mQwAAAHicY2ZgYChgYmDIAOJiIH4G5D8F4o dAHGbCCcf8QD4MMyJhIAAADAEF6g==');
NFSX1 := 56;
NFSY1 := 395;
NFSX2 := 104;
NFSY2 := 432;
fx := 73;
fy := 412;
End;
1:
Begin
Writeln('We are going to Fletch short bows');
Make := 'shorts';
StoreMethod := 'all';
DTM_Make := DTMFromString('mbQAAAHicY2VgYDgBxJeA+CgQHwbiM0A8hZ GBYR4QLwLiyUDcB8QX9kxlOLN7FsPpXVPB+MLe2QwiQLXomBEL BgMAx+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;
End;
2:
Begin
Writeln('We are going to fletch LongBows');
Make := 'longs';
StoreMethod := 'all';
DTM_Make := DTMFromString('mWAAAAHicY2FgYPAFYjsgjgZibyCeyMjAsA KK1wDx7tXdDBsX1oLpdQuaGfiBapAxIxoGAQBXYwuJ');
NFSX1 := 295;
NFSY1 := 393;
NFSX2 := 333;
NFSY2 := 424;
nfx := 316;
nfy := 408;

FSX1 := 243;
FSY1 := 398;
FSX2 := 281;
FSY2 := 422;
fx := 253;
fy := 407;
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';
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';
End;
2:
Begin
Writeln('Cammy 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';
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('mbQAAAHicY2VgYMhjYmAoAeJUKC4F4iBGBg ZPIPYB4nAgDgXionAThvxQY4amZGuG9X0BDC2pNgz8QP3omBEL BgMAm6AJ3w==');
LogUse := 'logs';
NameUse := 'logs';
End;
1:
Begin
Writeln('Oaks');
DTM_Log := DTMFromString('mggAAAHicY2NgYMhhYmDIAOICIC6D0ulA/Bgo9wqIXwLxCyC+D8X9BS4Mk4tc4XRvnhNDV44jgyBQDhtmxIE hAAAvCw/6');
LogUse := 'other';
NameUse := 'oaks';
End;
2:
Begin
Writeln('Willows');
DTM_Log := DTMFromString('');
LogUse := 'other';
NameUse := 'willows';
End;
3:
Begin
Writeln('Maples');
DTM_Log := DTMFromString('');
LogUse := 'other';
NameUse := 'maples';
End;
4:
Begin
Writeln('Yews');
DTM_Log := DTMFromString('');
LogUse := 'other';
NameUse := 'yews';
End;
5:
Begin
Writeln('Magics');
DTM_Log := DTMFromString('');
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 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;
SetWithDraw;}
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:=550;
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;
ObjectAccurateCombo:=TComboBox.Create(DsgnForm);
with ObjectAccurateCombo do
begin
Parent:=DsgnForm;
Left:=115;
Top:=388;
Width:=120;
Height:=15;
Items.Add('Specific');
Items.Add('Broad');
Items.Add('Whole Screen');
Text := Items[0];
OnClick:=@YourClickProcedure;
Font.Name:=default;
Font.Color:=clDefault;
Font.Size:=8;
end;
ObjectAccurate:=TLabel.Create(DsgnForm);
with ObjectAccurate do
begin
Parent:=DsgnForm;
Caption:='Object searching:';
Left:=30;
Top:=390;
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('draynor booth');
Items.Add('varrock west booth');
Items.Add('cammy bank booth');
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:=500;
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:=520;
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;
SetMethod;
SetLog;
SetObject;
SetObjectDetection;
SetCompass;
SetMake;
SetFailSafeArea;
SetSpeed;
SetWithDraw;
MouseSpeed := MouseSpeed_Fix;
ActivateClient;
Wait(1000);
//P07_MakeCameraAngleHigh;
//P07_MakeCompassDegree(CompassDegree + Random(10));
LoadDTMS;
//CheckFreinds;
//CheckFletching;
ConductBot;
AddOnTerminate('FreeTheDTMs');
Repeat
ConductBot;
Until False;
end.

fluffy22
03-02-2013, 08:33 PM
Nice!