+ Reply to Thread
Page 1 of 2 1 2 LastLast
Results 1 to 15 of 18

  Click here to go to the first Rift Team post in this thread.   Thread: API for the new artifact search

  1. #1
    Plane Walker Imhothar's Avatar
    Join Date
    Feb 2012
    Posts
    439

    Default API for the new artifact search

    So with 1.8 we can now put /a into the ctrl+f search field and it highlights all the artifacts.

    I have an item in my inventory with category "misc" but the search correctly highlights it as an artifact. Now I wonder how the native UI does this. Is the game keeping an additional flag which is currently not returned by Inspect.Item.Detail()?

  2. #2
    RIFT Community Ambassador the_real_seebs's Avatar
    Join Date
    Jan 2011
    Posts
    16,859

    Default

    That's interesting, what item?

    I had been using category == collectible, stack == 99, vendor price == 1.
    You can play WoW in any MMO. You don't have to play WoW in RIFT. Oh, and no, RIFT is not a WoW clone. Not having fun any more? Learn to play, noob! I don't speak for Riftui, but I moderate stuff there. Just came back? Welcome back! Here's what's changed. (Updated for 2.5!)

  3. #3
    Plane Walker Imhothar's Avatar
    Join Date
    Feb 2012
    Posts
    439

    Default

    There is no "collectible" category, only "misc collectible", but this one has just "misc".
    The item in question is http://rift.zam.com/en/item/CFF48DB50501010101.

    But the native UI somehow knows it's an artifact. I guess the game knows much more about items than what we get with Inspect.Item.Detail(). Just look at the item tooltips, it says "Artifact" below the item name.

  4. #4
    RIFT Community Ambassador the_real_seebs's Avatar
    Join Date
    Jan 2011
    Posts
    16,859

    Default

    "collectible" is a category. The category field is a space-separated list of categories.
    You can play WoW in any MMO. You don't have to play WoW in RIFT. Oh, and no, RIFT is not a WoW clone. Not having fun any more? Learn to play, noob! I don't speak for Riftui, but I moderate stuff there. Just came back? Welcome back! Here's what's changed. (Updated for 2.5!)

  5. #5
    Plane Walker Imhothar's Avatar
    Join Date
    Feb 2012
    Posts
    439

    Default

    Hm I thought it's a hierarchy of categories. Like "crafting material wood" is of the main category "crafting", sub-category 1 "material", sub-category 2 "wood". The same way as the categoriy tree is created in the auction house.

    "crafting recipe survival"
    "crafting material wood"
    "crafting material cloth"
    "armor leather chest"
    "armor leather hands"
    "armor cloth shoulders"
    and so on, you get the picture.
    It's never "material crafting wood" or some other order. So it looks like the order in which the categories appear does matter. All artifacts I encountered so far had "misc collectible" but never "collectible" or "collectible misc" and now I encoutnered one with just "misc" but the native UI doesn't seem to care about the category at all.

  6. #6
    RIFT Community Ambassador the_real_seebs's Avatar
    Join Date
    Jan 2011
    Posts
    16,859

    Default

    Zorba said it was just a list of categories. I just assumed it was an iteration through a bit field or something checking for which ones are present, thus the stable order.
    You can play WoW in any MMO. You don't have to play WoW in RIFT. Oh, and no, RIFT is not a WoW clone. Not having fun any more? Learn to play, noob! I don't speak for Riftui, but I moderate stuff there. Just came back? Welcome back! Here's what's changed. (Updated for 2.5!)

  7.   This is the last Rift Team post in this thread.   #7
    Rift Team
    Join Date
    Oct 2010
    Posts
    927

    Default

    Quote Originally Posted by the_real_seebs View Post
    Zorba said it was just a list of categories. I just assumed it was an iteration through a bit field or something checking for which ones are present, thus the stable order.
    I'll clear this up a bit

    In terms of what the API guarantees, it's a list of categories. In terms of its actual current behavior, it is a hierarchy - in fact, it's the exact same data used to place things in the Auction House.

    There's definitely a possibility that some items aren't being flagged properly, either in the AH, by the bag search interface, or thanks to a bug in the addon code. I'll check this out. There are also lots of weird ways items can theoretically end up without the appropriate AH flags. If so, then the item category may be augmented by a bunch of extra categories, which would be effectively iterating through a bitfield and exposing it.

    (actually that's a blatant lie it's far more complicated, but that's a good analogy)

  8. #8
    Plane Walker Imhothar's Avatar
    Join Date
    Feb 2012
    Posts
    439

    Default

    Quote Originally Posted by ZorbaTHut View Post
    I'll clear this up a bit

    In terms of what the API guarantees, it's a list of categories. In terms of its actual current behavior, it is a hierarchy - in fact, it's the exact same data used to place things in the Auction House.

    There's definitely a possibility that some items aren't being flagged properly, either in the AH, by the bag search interface, or thanks to a bug in the addon code. I'll check this out. There are also lots of weird ways items can theoretically end up without the appropriate AH flags. If so, then the item category may be augmented by a bunch of extra categories, which would be effectively iterating through a bitfield and exposing it.

    (actually that's a blatant lie it's far more complicated, but that's a good analogy)
    Thanks for the info. Now the thing is the bag search inteface does flag it correctly as an artifact when searching with /a, but the data we get from Inspect.Item.Detail() doesn't seem to give us the piece of information the bag search is using, or there's a bug somewhere and it's returning a wrong category.

  9. #9
    Plane Touched
    Join Date
    Feb 2012
    Posts
    228

    Default

    From my experience with the category field, there are a bunch of items with a wrong category. For example, all the carnival items had a nil category, and "Steel-Stitched Leather" has the "armor leather" category, when it actually is a crafting material.

    I guess until we have a Collectible API we won't be able to know if an item is an artifact or not, so the best you could do would be to wait until it's available.

    However, if I were in your situation and wanted to have this info right now, I'd generate a lookup of known artifacts extracting their item types from ArtifactCollections.xml & Items.xml (from the Discoveries zip file).

    If you want, I can try to do some ETL and upload the lookup table to pastebin.

  10. #10
    Plane Touched
    Join Date
    Feb 2012
    Posts
    228

    Default

    Quote Originally Posted by Baanano View Post
    However, if I were in your situation and wanted to have this info right now, I'd generate a lookup of known artifacts extracting their item types from ArtifactCollections.xml & Items.xml (from the Discoveries zip file).
    Here you have it: http://pastebin.com/0pHa3fk6

    Note, however, artifact collections which haven't been completed yet aren't in the ArtifactCollections file, so their artifacts won't be in the list.

  11. #11
    Plane Walker Imhothar's Avatar
    Join Date
    Feb 2012
    Posts
    439

    Default

    Quote Originally Posted by Baanano View Post
    Here you have it: http://pastebin.com/0pHa3fk6

    Note, however, artifact collections which haven't been completed yet aren't in the ArtifactCollections file, so their artifacts won't be in the list.
    I don't want a solution which requires a huge database eating up memory for working properly. So if some items aren't categorozied correctly I will just live with it.

    But again, this thread is less about the category of the item but rather how the native bag search identifies artifacts.

  12. #12
    RIFT Community Ambassador the_real_seebs's Avatar
    Join Date
    Jan 2011
    Posts
    16,859

    Default

    Yeah, I would love to know that too. I assume it's related to how the right-click on them decides to open the artifact window.

    Hmm. Back in the day, if you found the blue item [Mathos], right-clicking it did not show only sets containing it, but rather, sets containing any item with a name of which "Mathos" was a substring. That's been fixed. I would not be surprised if the mechanics of the fix were related to this behavior we cannot replicate.
    You can play WoW in any MMO. You don't have to play WoW in RIFT. Oh, and no, RIFT is not a WoW clone. Not having fun any more? Learn to play, noob! I don't speak for Riftui, but I moderate stuff there. Just came back? Welcome back! Here's what's changed. (Updated for 2.5!)

  13. #13
    Champion Lorandii's Avatar
    Join Date
    Jun 2011
    Posts
    516

    Default

    Quote Originally Posted by Imhothar View Post
    I don't want a solution which requires a huge database eating up memory for working properly.
    What about WoW's LibPeridicTable-3.1 library? Yes, WoW has the advantage of load on demand in their addon toc files, but what you want is exactly why this library was created. And if you were curious, LPT is larger on your hard drive than it is in memory because of how it is used in code.

    Rift has the advantage of the zLib package, so anyone porting LPT can compress the data easily. If ported, then the community has a way to override and specify what category any given item ought to be. You could have
    • LPT.crafting.mining.Gold = "itemNumber",
    • LPT.artifacts.artifactName = "artifactNumber"
    Etc. Because it returns the item number for everything in the game, you no longer have to worry about localization, and as I mentioned, use 1.8's shiny new zLib to compress the data. Only unpack when you need it and done.

  14. #14
    RIFT Community Ambassador the_real_seebs's Avatar
    Join Date
    Jan 2011
    Posts
    16,859

    Default

    And keep in mind, you only need to store exceptions which are known-to-be-buggy.
    You can play WoW in any MMO. You don't have to play WoW in RIFT. Oh, and no, RIFT is not a WoW clone. Not having fun any more? Learn to play, noob! I don't speak for Riftui, but I moderate stuff there. Just came back? Welcome back! Here's what's changed. (Updated for 2.5!)

  15. #15
    Plane Walker Imhothar's Avatar
    Join Date
    Feb 2012
    Posts
    439

    Default

    Ok, I repeat just to make it clear:

    The native bag search does know very well if something is an Artifact or not. Meaning artifacts already have some internal state that the bag search can check (note the text "Artifact" appearing in tooltips). My question is: can we get access to this info through Inspect.Item.Detail() or do we have to wait for an Artifact API?

    About the xml stuff:

    Importing the xml files to find out the exceptions won't really work, as for finding out which ones are broken I'd need to know what category is returned by Inspect.Item.Detail() for each item in ArtifactCollections.xml. That info is not present in Items.xml. Plus, some ItemKeys from ArtifactCollections.xml aren't even present in Items.xml. So much for that plan. I'm simply not going to pull in the whole xml files just to avoid a few collectibles to be grouped incorrectly. That is total overkill.

    Zorba stated that item categories may not always be correct, so obviously the native bag search does not rely on the item categories as we get them.

+ Reply to Thread
Page 1 of 2 1 2 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts