Jump to content

Selecting ALL npcs or ground items.


Recommended Posts

Posted

How would I go about selecting all of the nearby same npcs or geounditems , specifically - I want to drawmodel of all of the al-Kharid warriors && arrows on the ground 

 currently I’m using npcs.closest(“al-Kharid warrior”) and the same for the ground items and it works great and all but it only selects (obviously) the closest to me. When two are the same distance away it just jumps between both. 

Posted
8 hours ago, sonda said:

More specifically

npcs.getAll(“al-kharid warrior”);

does not work the same as closest, what am I doing wrong ?

It's because getall will scan the whole area and check for npcs of that name. It'll then add it to a list which is far different from just using npc.closest(). 

If you want to highlight all the monsters/ground items you simply have to loop through the list in onPaint and draw their models/tiles and what not. 

Just make sure to null check! Else you'll be in for a treat :3

  • Like 1
Posted
4 hours ago, Satire said:

It's because getall will scan the whole area and check for npcs of that name. It'll then add it to a list which is far different from just using npc.closest(). 

If you want to highlight all the monsters/ground items you simply have to loop through the list in onPaint and draw their models/tiles and what not. 

Just make sure to null check! Else you'll be in for a treat :3

not null checking is the best feeling ever, don't you just love when the game freezes?

Posted
13 hours ago, sonda said:

How would I go about selecting all of the nearby same npcs or geounditems , specifically - I want to drawmodel of all of the al-Kharid warriors && arrows on the ground 

 currently I’m using npcs.closest(“al-Kharid warrior”) and the same for the ground items and it works great and all but it only selects (obviously) the closest to me. When two are the same distance away it just jumps between both. 

 

12 hours ago, dreameo said:

Try this:


List<NPC> t = getNpcs().getAll().stream().filter((n) -> n.getName().equals("al-kharid warrior")).collect(Collectors.toList());

I suggest tho doing it out long way before doing this one ^.

 

Simplest way would be:

List<NPC> warriors = getNpcs().filter(new NameFilter<>("Al-Kharid warrior"));

 

  • Like 3

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...