Rematch filter question

Discuss your favorite pet addons and macros.
Post Reply
User avatar
Caliban
Top Rater
Posts:46
Joined:August 7th, 2014
Pet Score:14067
Realm:Anachronos-eu
Contact:
Rematch filter question

Post by Caliban » July 19th, 2022, 7:15 am

I'm trying to get a filter going which only shows me pets which are level 25 and of which I have a minimum of 2 copies.

So in practice, let's say I have three copies of Zangar Spore, a level 10, a level 20, and a level 25. Then a Voodoo Figurine, a lv 3, a level 25, and another level 25. I also have three Iron Starlettes, all three level 25's. And I have three Bonebiters, all level 24's.

Now, if I'd set the filter I'd mentioned above, the result would be that I would see the following:

- Zangar Spore would not show up because I only have one level 25 of it.
- Voodoo Figurine I would see two copies of because I have 2 level 25s of it.
- Iron Starlette would show all three because I have 3 level 25s.
- Bonebiter would not show up because there's no level 25s.

I've tried simply filtering at 'max level 25' and then 'two+ copies', but then the results, taking the above pets as an example, would show all pets but the Bonebiter because I indeed do have 3 copies of those. Also, of those pets it still only shows one level 25 each, and not the actual copies of level 25s per the specific pet.

Anyone know if there's some way I can get a filter going which does show all the +2 level 25s?

Thanks in advance.

Kris

Gello
Posts:579
Joined:January 23rd, 2014
Pet Score:9171
Realm:Hyjal-us
Contact:

Re: Rematch filter question

Post by Gello » July 22nd, 2022, 2:49 pm

If I'm understanding it correctly: you want to list all level 25 pets for which you have more than one level 25 version of the pet?

If so this script filter should achieve that:

Code: Select all

if not speciesAt25 then
  speciesAt25 = {}
  local oldPetID = petInfo.petID
  for petID in AllPetIDs() do
    local petInfo = petInfo:Fetch(petID)
    if petInfo.level==25 then
      local speciesID = petInfo.speciesID
      speciesAt25[speciesID] = (speciesAt25[speciesID] or 0)+1
    end
  end
  petInfo:Fetch(oldPetID)
end

return speciesAt25[petInfo.speciesID] and speciesAt25[petInfo.speciesID]>=2 and petInfo.level==25

User avatar
Caliban
Top Rater
Posts:46
Joined:August 7th, 2014
Pet Score:14067
Realm:Anachronos-eu
Contact:

Re: Rematch filter question

Post by Caliban » July 24th, 2022, 5:50 am

Wow. This is EXACTLY what I wanted. Thanks a ton, Gello! :)

Kris

Post Reply