PDA

View Full Version : Help with finding NPC's with no uptext



Spotify
04-12-2016, 06:38 PM
So PkHonor removed the uptext for certain NPC's to prevent botting, if an NPC is the same color as the environment and has no uptext, what's the best way to go about efficiently clicking on them?

Citrus
04-12-2016, 06:58 PM
I assume you can still right click?

Also which NPCs specifically?

Spotify
04-12-2016, 07:17 PM
I assume you can still right click?

Also which NPCs specifically?

You can still right click, but the uptext is simply "Walk here"

It's the poh banker

Turpinator
04-12-2016, 07:23 PM
If the NPC is the same color as the environment, how do you see it?

Spotify
04-12-2016, 07:29 PM
If the NPC is the same color as the environment, how do you see it?

What I mean by that is his shirt is the same color as the flooring and his pants are a solid black, meaning he has no unique colors to him.

Another problem I've run into is PkHonor has also made the empty furniture slots lacking uptext as well. An empty bench slot is just a see through white color, which unfortunately also matches a lot of colors in the room.

Lipcot
04-12-2016, 08:47 PM
have you tried using DTM and trying some nice ATPA and TPA grouping ??

Spotify
04-12-2016, 09:52 PM
have you tried using DTM and trying some nice ATPA and TPA grouping ??

Well I never use DTM for objects that move, just for inventory stuff.

As far as ATPA and TPA goes I've never really bothered learning how to use those effectively. I'll try learning it now though.

Turpinator
04-12-2016, 10:04 PM
Well I never use DTM for objects that move, just for inventory stuff.

As far as ATPA and TPA goes I've never really bothered learning how to use those effectively. I'll try learning it now though.

tpas are the best around, and nothings ever gonna keep them down.
post a pic of the gamescreen with the npc there. then we can really see if its as hard as you make it sound.

KeepBotting
04-12-2016, 10:23 PM
That's the worst anti-bot technique I've ever heard of... it'll only end up affecting legitimate players.

In the absence of UpText, you've got to find an alternative second method for verifying that a given object is indeed the object that you want to click.

Since this is a private server, I'd advocate a somewhat brute-force method: refine your colors very well, then right-click on everything and read the chooseOption menu. If the correct option exists, click it. If not, move onto the next object.

Lucidity
04-12-2016, 10:24 PM
Well, click the yellow dot on the minimap and then right click where your character is since it's a rsps shouldn't matter lol

jstemper
04-12-2016, 10:25 PM
right click them lol
Use a mmtoms formula (if it still shows as a yellow dot on minimap), then right click it and search for a bitmap of the attack option, then click it
p.s. your alotic thiever was dank back in the day

Spotify
04-12-2016, 10:33 PM
tpas are the best around, and nothings ever gonna keep them down.
post a pic of the gamescreen with the npc there. then we can really see if its as hard as you make it sound.

Well it may not be difficult to you fellas, but I'm not that great at scripting, I just stick to color finding really.

No object in this room has uptext, only "walk here"
But here it is;
http://i.imgur.com/Y30MjGh.png?1

jstemper
04-12-2016, 10:48 PM
program script;
{$I SRL-6/SRL.Simba}

var
rsps_mainscreen: tbox;
position: Tpoint;

function FindObject(Color, Tol, pixels: integer; Hue, Sat: Extended): boolean;
var
Tpa: TpointArray;
ATPA: T2DPointArray;
I: Integer;
begin
rsps_mainscreen := intToBox(7, 7, 626, 266);
if findcolorstolerance(Tpa, Color, rsps_mainscreen, 3, colorsetting(2, Hue, Sat)) then
begin
ATPA := ClusterTPA(Tpa, 10);
atpa.sortfromMidpoint(rsps_mainscreen.getmiddle);
if (length(ATPA) <= 0) then
begin
result := False;
exit;
end;
for I := 0 to high(ATPA) do
begin
if (length(ATPA[I]) >= PIXELS) then
begin
position := MiddleTPA(ATPA[I]);
result := True;
exit;
end;
end;
end
else
result := False;
end;

begin
if FindObject(331099, 7, 25, 0.08, 0.69) then
begin
mouse(position);
fastClick(mouse_right);
wait(5000)
end;
end; right clicks him here everytime perfectly
http://i.imgur.com/0vSpJ4u.png

and btw the numbers are different because I accidentally refreshed it so started over. Also change the mainscreen tbox bounds

Spotify
04-12-2016, 10:55 PM
program script;
{$I SRL-6/SRL.Simba}

var
rsps_mainscreen: tbox;
position: Tpoint;

function FindObject(Color, Tol, pixels: integer; Hue, Sat: Extended): boolean;
var
Tpa: TpointArray;
ATPA: T2DPointArray;
I: Integer;
begin
rsps_mainscreen := intToBox(7, 7, 626, 266);
if findcolorstolerance(Tpa, Color, rsps_mainscreen, 3, colorsetting(2, Hue, Sat)) then
begin
ATPA := ClusterTPA(Tpa, 10);
atpa.sortfromMidpoint(rsps_mainscreen.getmiddle);
if (length(ATPA) <= 0) then
begin
result := False;
exit;
end;
for I := 0 to high(ATPA) do
begin
if (length(ATPA[I]) >= PIXELS) then
begin
position := MiddleTPA(ATPA[I]);
result := True;
exit;
end;
end;
end
else
result := False;
end;

begin
if FindObject(331099, 7, 25, 0.08, 0.69) then
begin
mouse(position);
fastClick(mouse_right);
wait(5000)
end;
end; right clicks him here everytime perfectly

and btw the numbers are different because I accidentally refreshed it so started over. Also change the mainscreen tbox bounds

Can you link me a tutorial on how to use that tool? I'm not using SRL-6 nor Lape. Still stuck in the SRL-5 Pascal days.

jstemper
04-12-2016, 10:58 PM
Can you link me a tutorial on how to use that tool? I'm not using SRL-6 nor Lape. Still stuck in the SRL-5 Pascal days.

https://villavu.com/forum/showthread.php?t=26944, nothing wrong with good old srl-5

Spotify
04-12-2016, 11:09 PM
right click them lol
Use a mmtoms formula (if it still shows as a yellow dot on minimap), then right click it and search for a bitmap of the attack option, then click it
p.s. your alotic thiever was dank back in the day

I'd rather avoid using the minimap and extra clicking, I'm trying to make this script as fast as possible.

And thanks! It was a lot of work though to upkeep with Alotic's continuous updates to get rid of thieving bots. Feel free to fix it up though and get thief botting alive again in Alotic XD

https://villavu.com/forum/showthread.php?t=26944, nothing wrong with good old srl-5

Cheers, I'll get reading.

jstemper
04-12-2016, 11:12 PM
I'd rather avoid using the minimap and extra clicking, I'm trying to make this script as fast as possible.

And thanks! It was a lot of work though to upkeep with Alotic's continuous updates to get rid of thieving bots. Feel free to fix it up though and get thief botting alive again in Alotic XD


Cheers, I'll get reading.

sadly alotic (best rsps imo) was shut down along with soulsplit, btw here is a video tut https://www.youtube.com/watch?v=HLfSFesd9-Q

kristi
04-13-2016, 12:19 AM
This one should find it perfectly every time, it combines the black color of his pants and the red of his shirt. It also filters out too low or too high TPA:s, so it shouldn't click on the floor or other things with similar colors. You'll have to replace MSX1, MSY1, MSX2, MSY2 and MSCP with the coordinates of your servers (if you use an include this should be included, such as Aerolib). Also, you'll need the and_tpa (https://villavu.com/forum/showthread.php?t=83795&highlight=) plugin for this, download and put in your plugin folder (just put the dll file there, that's it).


program new;
{$I Aerolib/aerolib.simba} // if you don't want to use aerolib replace this with:
//{$loadlib AND_TPA}

Function findNPC(var foundPNT : TPoint) : boolean;
var
UpperBodyTPA : TPointArray;
LowerBodyTPA : TPointArray;
ATPA : T2DPointArray;
begin
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.05, 0.35);
FindColorsTolerance(UpperBodyTPA, 462430, 3, 10, 303, 325, 10);

SetToleranceSpeed2Modifiers(0.93, 2.54);
FindColorsTolerance(LowerBodyTPA, 1447437, 3, 10, 303, 325, 10);

FilterTPADistTPAEx(UpperBodyTPA, 10, 6, LowerBodyTPA);
FilterTPADistTPAEx(LowerBodyTPA, 10, 6, UpperBodyTPA);

AppendTPA(UpperBodyTPA, LowerBodyTPA);
DebugTPA(upperbodyTPA, '');
if Length(UpperBodyTPA) > 50 then
begin
ATPA := ClusterTPAEx(UpperBodyTPA, 5, 10);
FilterTPAsBetween(0, 50);
FilterTPAsBetween(500, 10000);
if ATPA = [] then Exit;
SortATPAFromMidPoint(ATPA, MSCP);
FoundPNT := MiddleTPA(ATPA[0]);
Result := True;
end;
end;

begin
findnpc;
end;


It will return the midpoint of the NPC, which you can use with your mouse procedures. Let me know if you have any questions :)

/Kristi