Okay I've sort of redid the whole procedure. One is better for antiban, and the other is better for just getting the job done. Which one Would you think would be better for the script overall.
Here's the first version. It looks kinda funky, but its just to see if the dtm's work, and if both do, randomly pick one. I really just sort of threw it together... but oh well...
SCAR Code:
Procedure WalkToFurnace;
var x,y,XPush, YPush,WalkMethod,RX,RY:integer;
Begin
if Bankscreen then
Begin
Closebank;
end;
MakeCompass('n');
Wait(500+Random(500));
SetAngle(true);
Wait(2000+Random(500));
IF Not DTMCheck then
Begin
//Only happens once. To Save time
SW1Work := DTMRotated(ShopWalk1,x,y, MMX1, MMY1, MMX2, MMY2); //Makes Sure that DTM Works
SW2Work := DTMRotated(ShopWalk2,x,y, MMX1, MMY1, MMX2, MMY2); //Makes Sure that DTM Works
DTMCheck :=True;
End;
//Ends Script If none of The DTM's Work, it Terminates the Script
IF (Not(SW1Work)) And (Not(SW2Work)) then
Begin
Writeln('NO Shop DTMS Are Working');
LogOut;
//Report;
TerminateScript;
End;
//If Both DTMS Work, Sets them up, with some ANTIBAN involved
IF SW2Work and SW1Work then
begin
WriteLn('Using Random ShopDTM Finding');
Case Random(1) of
0:Begin
WalkMethod :=ShopWalk1;
XPush :=3;
YPush :=6;
End;
1:Begin
WAlkMethod :=ShopWalk2;
XPush :=4;
YPush :=7;
End;
End;
end;
//If only one DTM Works, Uses Workable one
IF SW1Works xor SW2Works then
Begin
IF SW1Works then
Begin
WalkMethod := ShopWalk1;
End Else
WalkMethod := ShopWalk2;
End;
End;
IF (DTMRotated(WalkMethod,x,y, MMX1, MMY1, MMX2, MMY2)) then
Begin
WriteLn('Walking Toward Furnace Half Way Done!!')
Mouse((X+XPush), (Y+YPush), 3,3, True);
FFlag(8);
SymbolAccuracy: 5;
FindSymbol(rx, ry, 'furnace');
Mouse(rx, ry+8, 3, 4, true);
Flag;
AntiBan;
//Probally Needs Another Failsafe for after the symbol finding. just incase
End;
Here's the second version. I got pretty much the whole idea of it from YoHoJo (just for credit i guess). This doesn't have a whole lot of randomness, and some of the (X,Y) locations haven't been completely adjusted (notice the ?'s), so ignore that part.
SCAR Code:
Function WAlktoFurnace: Boolean;
var x,y,x2,y2,FurX,FurY,YVal:Integer;
Begin
If DTMRotated(ShopWalk1,x,y,MMX1,MMY1,MMX2,MMY2) Then
Begin
Mouse((x-?),(y+?),4,5, true);
FFlag(8);
End Else
Begin
If DTMRotated(ShopWalk2,X,Y, MMX1,MMY1,MMX2,MMY2) Then
Begin
Mouse((x-?),(y-?),3,4,True);
FFlag(5);
End Else
Begin
WriteLn('Shop DTMs dont Work!');
LogOut;
Report;
TerminateScript;
End;
End;
//End of First Step of the Walking
If FindSymbol('furnace',X2,Y2 Then
Begin
Result := True;
Mouse(X2,(Y2-?),3,3,True);
If FlagPresent Then
Begin
Flag(0);
WriteLn('Succesfully Made Trip to Furnace');
Wait(0+random(2000);
Exit;
End Else
Begin
MouseFlagEx(X2, Y2, 3 , 3, 1, 1, 0);
WriteLn('Finally Found Symbol');
End;
End Else
Begin
WriteLn('Could Not Find Furnace Symbol');
LogOut;
Report;
TerminateScript;
End;
End;