Log in

View Full Version : Script working but colours no good?



Syntax
05-30-2012, 04:13 AM
Hi guys i used ACA on iron rocks and selected their colour. In ACA it looked good it only selected the colours on the rocks.
In my script however

program FindObject;
{$DEFINE SMART}
{.include SRL\SRL.simba}


const
SRLStats_User = ''; // Your SRL Stats Username
SRLStats_Password = ''; // Your SRL Stats Password
SERVER = 35; // Enter "0" to pick a random server.
MEMBERS = True;
Version ='1.4';

Procedure DeclarePlayers;
begin;
HowManyPlayers:=1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:=0;

Players[0].Name:='blakenic2012@yahoo.com';
Players[0].Pass:='Henderson';
Players[0].Nick:='';
Players[0].Active:=True;
end;
procedure AntiBan;
begin
if(not(LoggedIn))then
Exit;
FindNormalRandoms;
case Random(160) of
0:
begin
WriteLn('AntiBan Is Being Performed');
GameTab(Tab_Stats);
HoverSkill('Mining', false);
wait(2500 + Random(1000));
Mouse(659, 189, 0, 0, True);
end;
1:
begin
WriteLn('Bored')
BoredHuman;
end;
end;
end;

var
x, y: Integer;

function FindObject(var fx, fy: Integer): Boolean;
var
arP, arAP: TPointArray;
arC, arUC: TIntegerArray;
ararP: T2DPointArray;
tmpCTS, i, j, arL, arL2: Integer;
P: TPoint;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.03, 0.52);

if not(FindColorsTolerance(arP, 2436940, MSX1, MSY1, MSX2, MSY2, 12)) then
begin
Writeln('Failed to find the color, no object found.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
arUC := arC;
ClearSameIntegers(arUC);
arL := High(arUC);
arL2 := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 1.17) and (X <= 10.58) and (Y >= 1.01) and (Y <= 8.64) and (Z >= 0.65) and (Z <= 4.38) then
begin
for j := 0 to arL2 do
begin
if (arUC[i] = arC[j]) then
begin
SetLength(arAP, Length(arAP) + 1);
arAP[High(arAP)] := arP[j];
end;
end;
end;
end;

SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 10, 10);
arL := High(ararP);

for i := 0 to arL do
begin
if (Length(ararP[i]) < 10) then Continue;
P := MiddleTPA(ararP[i]);
MMouse(P.x, P.y, 5, 5);
Wait(100 + Random(100));
if (IsUpText('Take')) then
begin;
Result := True;
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
begin
Writeln('FindObject could not find object.');
Exit;
end;

GetMousePos(fx, fy);
end;
Procedure MineOre;
var x, y, PlusOne, MineCounter : integer;
begin
{if not FindNormalRandoms then
if not LoggedIn then
TerminateScript};
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH);
wait(200+random(400));
begin
GetMousePos(x, y);
case random(2) of
0: Mouse(x, y, 5, 5, True);
1: begin
Mouse(x, y, 5, 5, False);
WaitOption('Mine', 500);
if (invfull) then DropAll
end;
end;
repeat
MarkTime(MineCounter);
Antiban;
Wait(100);
if InvCount=Plusone Then
writeln('We Mined an ore');
Until (InvCount=PlusOne) or (TimeFromMark (MineCounter) > 6500)
end;
end;
begin
Smart_Signed := TRUE;
Smart_Members := MEMBERS;
Smart_SuperDetail := FALSE;
Smart_Server := 35;
ActivateClient;
SetupSRL;
DeclarePlayers;
LoginPlayer;
wait(4000+random(400));
repeat
MineOre;
Antiban;
FindObject(x, y);
until(false)
end.


It does find the rocks but misclicks on scorpions or other things. The colours between the iron and the scorpions are very close if not identical how do i fix this? Is their anything else i can use that is more accurate?
Thanks

Runaway
05-30-2012, 04:16 AM
[snip] Pm'd you.

As for more accuracy, you should try out the functions in my signature! I know I said it before, but you can input multiple colors and it sorts the results by proximity from each other.

If you want to simply improve the function you're already using, give this a shot:


SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 10, 10);
SortATPASize(ararP, True); // adding this here will sort the ATPA from largest -> smallest, which will probably help
arL := High(ararP);

Syntax
05-30-2012, 04:30 AM
[snip] Pm'd you.

As for more accuracy, you should try out the functions in my signature! I know I said it before, but you can input multiple colors and it sorts the results by proximity from each other.

If you want to simply improve the function you're already using, give this a shot:


SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 10, 10);
SortATPASize(ararP, True); // adding this here will sort the ATPA from largest -> smallest, which will probably help
arL := High(ararP);


I did try, tpa it is a bit better not by much tho

Syntax
05-30-2012, 05:10 AM
I did try, tpa it is a bit better not by much tho

Any suggestions? Any way i can improve the ACA? Iron ore is hard, but i need it since i need to cover every ore.

Abu
05-30-2012, 07:37 PM
I did try, tpa it is a bit better not by much tho

If you use Runaway's functions you should be able to stop this problem.