Originally Posted by
masterBB
A lot of functions that requires a box to search in need the following parameters; xs, ys ,xe and ye(x start, y start, x end and y end). For some reason it starts to look 5 pixels above the client, but I don't see you use any function that requires a search box, like FindColors or such. Maybe it is a mistake in FindObjectCustom?
These lines can be removed as they aren't used: x:=MSX1;
y:=MSY1;
edit:
Could you replace FindObjectEx in Srl/srl/Object.simba with the following code, and post here if the debug tells you something new?
Simba Code:
function FindObjEx(var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray;
Tol, Step, xs, ys, xe, ye: Integer): Boolean;
var
CurX, CurY, a, b, c, i: Integer;
Start: Boolean;
begin
for b := 0 to (GetArrayLength(Color)-1) do
begin
if (FindColorSpiralTolerance(cx, cy, color[b], xs, ys, xe, ye, Tol)) then
begin
Start := True;
Break;
end;
end;
if (Start) then
begin
CurX := Round((xs + xe) div 2);
CurY := Round((ys + ye) div 2) - Step;
i := 1;
repeat
for c := 1 to i do
begin
case a of
0: begin //To allow for beginning offset and loop
a := a + 1;
i := 0;
CurY := CurY + Step;
end;
1: CurX := CurX + Step;
2: CurY := CurY - Step;
3: CurX := CurX - Step;
4: CurY := CurY + Step;
end;
if (CurX >= xs) and (CurX <= xe) and (CurY >= ys) and (CurY <= ye) then
begin
try
for b := 0 to (GetArrayLength(Color)-1) do
begin
if (CurY-(Step div 2) < 0)then
writeln('Fast tell everyone the FindObjectCustom function is bad');
if (FindColorTolerance(cx, cy, Color[b], CurX-(Step div 2), CurY-(Step div 2), CurX+(Step div 2), CurY+(Step div 2), Tol)) then
begin
MMouse(cx, cy, 3, 3);
If (WaitUptextMulti(Text, 300)) then
begin
GetMousePos(cx, cy);
Result := True;
Exit;
end;
end;
end;
except
end;
end;
end;
a := a + 1;
if a mod 5 = 0 then a := 1;
if (a = 1) or (a = 3) then i := i + 1;
until (Result) or ((CurX > xe) and (CurY > ye))
end;
end;
I am getting another error, I replaced the FindObjEx file as stated above.
It was working for a few minutes, I didn't even edit it. Also I am not using DTMs or Bitmap.
if FindObjEx(x, y, ['ake', 'hide'], [LootColors], 15, 50, 1, 5, 689, 390) then
is hightlighted
DebugBox
Code:
SRL Compiled in 16 msec
SMART Initialized.
Loaded: Server 14, Members: True, Signed: True, Super Detail: False.
Error: Exception: Type Mismatch at line 69
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap]
Simba Code:
program Tester; //Warning: This is only for testing
{$DEFINE SMART} //Very Little Antibans
{$i SRL/srl.simba}
{.include SRL/SRL/Skill/Fighting.simba}
var
LootCount : Integer;
LootColors :TIntegerArray;
procedure SetUpScript;
begin
LootColors := [15001839, 15330547, 15725050, 15658745, 15790587,15921917];
ClearDebug;
Smart_Server := 14;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
activateclient;
SetupSRL;
end;
Procedure Looter;
var
x, y:Integer;
begin
//If FindObjCustom(x,y,['ake', 'hide'],[LootColors],3) then
if FindObjEx(x, y, ['ake', 'hide'], [LootColors], 15, 50, 1, 5, 689, 390) then
GetMousePos(x, y);
Mouse(x, y, 5, 5, false);
if WaitOptionMulti(['Take Cowhide', 'ake C'], 200) then
begin
LootCount := LootCount + 1;
wait(200);
end;
end;
begin
SetUpScript;
Looter;
end.
Hope its easy to read and I tried to make it nice and neat.
Thanks