[7.6] [INTL] Item Info Plugin - RFC menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 17
  1. #1
    JarJarD3's Avatar Contributor
    Reputation
    106
    Join Date
    Oct 2017
    Posts
    395
    Thanks G/R
    41/101
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)

    [7.6] [INTL] Item Info Plugin - RFC

    Request For Comments

    I created a plugin to compare "similar items" "side-by-side" in hovered item dialog.
    Part of the game is acquiring new and better items and it is sometimes difficult (at least for me) to decide if item is worth keeping it.
    Comparing current hovered item against similar items you already have by attribute level can help decision making - I hope and it is the purpose of this plugin.

    Current implementation is just a "proof of concept" and technological feasibility study to see that this kind of UI is doable and usable.
    Final implementation should have "build selector" and predefined templates for items you want to have and option to apply these templates over existing items to evaluate their worthiness of keeping or salvaging. Not an easy task, but I have made very promising test implementations. Most difficult part is how to configure these settings easily for non-programmers to be able to use them.

    Unidentified items are excluded - obviously!
    Yellow/blue/white items are excluded as they would require more filtering in the code - IMHO nobody needs this info anyway.

    Use Up/Down keys to navigate inside item list if you have more than one similar item.
    Note that last item in the list is the same item that is currently hovered - it allows you to see attributes for the hovered item only without any comparison.
    Press Ctrl to hide this plugin UI while hovering an item.

    "Similar items" means that their sno item "NameEnglish" is the same. This matches all items that share the same base name but does not consider item rank or legacy item (older) versions etc. what ever there can be.

    Currently item list is not sorted, I just grab it.
    Future version will sort items based on "build template", current hero class, hero class main stat (DEX, INT or STR) and corresponding data from hovered item.

    The UI should be intuitive and fields shown should not need much clarification.
    Item line contains location, keep decision from THUD, ancient rank, perfection(%) from THUD and sum/count of "important attributes" by me.
    Stash location contains stash tab number, (stash grid) line and column number. Other location are just pointers where the item is.
    Attribute lines contain attribute abbreviation (by me), left and right side perfection value and comparison mark between them.
    Attributes are selected from hovered item first and then missing attributes from comparable are added to end of list (grayed).

    Images how items look side by side:
    Kridershot and Yang's Recurve
    [7.6] [INTL] Item Info Plugin - RFC-clipboard01-gif [7.6] [INTL] Item Info Plugin - RFC-clipboard02b-gif [7.6] [INTL] Item Info Plugin - RFC-clipboard03-gif [7.6] [INTL] Item Info Plugin - RFC-clipboard04-gif

    I understand that there are other plugins that may use the same hovered item UI element to display other information related to other stuff so it is on end user discretion to decide which plugins are allowed to be Enabled at a time.

    Download Attached .TXT file and rename it to regular .ZIP file.
    Install it by unzipping it into plugins folder in your THUD installation.
    Move it under your plugins folder and extract it there so that you can see folder JarJar under plugins.

    As this "plugin" is a part of a larger "system" it is contained in several files and folders under JarJar folder.
    All files are necessary in order the plugin can be loaded correctly.

    Tested to work without any other plugins installed.
    Read carefully this small printed text!
    If you are not a programmer and can not install (it does not work for you) please check other numerous post how to THUD install plugins first. It is common knowledge found in this same forum!
    If you post "it does not work" without any proof (like log files or screen shots) it might be possible that you will not be answered.

    But please post you comments if you liked or hated this!
    Attached Files Attached Files

    [7.6] [INTL] Item Info Plugin - RFC
  2. Thanks ADV2015, SeaDragon, johnbl, DJS, mk11 (5 members gave Thanks to JarJarD3 for this useful post)
  3. #2
    rambo99jose's Avatar Member
    Reputation
    4
    Join Date
    Nov 2007
    Posts
    26
    Thanks G/R
    20/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I recently started getting these errors

    2019.01.20 17:04:54.398 19.1.20.8 C:\Users\axyd\Desktop\desktopy\D3 Apps\D3 THUD x64\Plugins\JarJar\Core.cs(24,80) : error CS0117: 'ItemLocation' does not contain a definition for 'Unknown3'
    2019.01.20 17:04:54.398 19.1.20.8 C:\Users\axyd\Desktop\desktopy\D3 Apps\D3 THUD x64\Plugins\JarJar\Core.cs(48,90) : error CS0117: 'ItemLocation' does not contain a definition for 'Unknown3'

    The "duct tape fix" was to disable the condition check in "Core.cs"

    (location >= ItemLocation.Unknown1 && location <= ItemLocation.Unknown3)

    It seems Unknown3 no longer exists

  4. #3
    JarJarD3's Avatar Contributor
    Reputation
    106
    Join Date
    Oct 2017
    Posts
    395
    Thanks G/R
    41/101
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)
    The "ItemLocation" has changed in recent THUD releses so that Unknown3 was removed.
    You can replace that with Unknown2. Code might still work most of the time as Unknown1, Unknown2 and Unknown3 were for follower items (3 of 4 available).
    I haven't checked new values for them.

  5. #4
    JarJarD3's Avatar Contributor
    Reputation
    106
    Join Date
    Oct 2017
    Posts
    395
    Thanks G/R
    41/101
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)
    For the records:

    Originally Posted by JarJarD3 View Post
    The "ItemLocation" has changed in recent THUD releses so that Unknown3 was removed.
    ItemLocation.Unknown1 is Follower main hand.
    ItemLocation.Unknown2 is Follower off hand.

    Follower relic, amulet and rings do not trigger Hud.Inventory.HoveredItem and they can not be tracked :-(

  6. #5
    Saah's Avatar Member
    Reputation
    4
    Join Date
    Sep 2013
    Posts
    62
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Just inspected first 2 screenshots - primal ancient Kridershot vs ancient Kridershot. Noticed first issue, if you have not fixed it already, Primal Krydershot has the "wpn-DMG" (100% perfection), but ancient Kridershot (from 2nd screenshot) does not have it, and instead it has the "ELEM DMG" (81% perfection). Obviously, there is no reason to display them as separate affixes, just call it "DMG-affix" or something and treat them as the same affix for both, wpn-DMG and ELEM DMG. so they will have the same name and will compare against each other.

    if frost elem dmg has lower dmg value (it was the case before RoS expansion, at least), then comparing it's perfection against other element types would not be good, and in that case frost would need a perfection multiplier (coefficient to be lower, than 1.0), so it can be directly compared to other elements by perfection %.

    Plugin idea is awesome, but does it remember all items? between sesstions? or it has to cache it every time on entering a new game? does it require to open all stash tabs?
    Last edited by Saah; 02-01-2019 at 05:03 AM.

  7. #6
    JarJarD3's Avatar Contributor
    Reputation
    106
    Join Date
    Oct 2017
    Posts
    395
    Thanks G/R
    41/101
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)
    This is indispensable for me when I have done (too many) rift runs and have one or two stash tabs full of items that has been marked to keep.
    During 4-man runs you do not have time to check what to keep and what to salvage.
    I just keep everything that is not marked by an other plugin that just knows the item names I want to keep and marks them.
    Then later when I have time I can check every item whether it is worth to keep or not.

    About damage, this is not a damage calculation plugin but attribute (perfection) comparison plugin.
    Weapon damage and elemental damage are totally different attributes and sometimes you want them both but sometimes not at all.
    I can not combine them because that would not allow attribute specific configuration.

    The configuration idea is similar than in THUD build in pickit.ini file but it contains one additional dimension: hierarchical build name.
    The configuration must be in a C# file as plugins can not do any I/O at all (for safety).

    Latest pic is here: D3 Inventory - Album on Imgur

    And "Important Items" plugin: D3 Stash tab - Album on Imgur

    Example configuration.
    I plan to remove attribute values as I do not use them atm and see no added value in them, as this is not a pickit (or loot filter).
    Code:
    With(HeroClass.DemonHunter, () =>
    {
        With("Unhallowed Essence", () =>
        {
            // Elemental is FIRE_.
            Add("Accursed Visage", 4, SOCKET(1), PRI_DEX(897), CHC(0.055), MULTISHOT_DMG_BONUS(0.15));
            Add("Unsanctified Shoulders", 4, PRI_DEX(592), RES_ALL(0), AREA_DAMAGE(0.14), CDR(0));
            Add("Fiendish Grips", 4, PRI_DEX(850), CHD(0), CHC(0), CDR(0));
            Add("Cage of the Hellborn", 5, SOCKET(3), PRI_DEX(551), VIT(648), RES_ALL(0), RES_MAX(0));
            Add("Unholy Plates", 4, SOCKET(2), PRI_DEX(595), VIT(620), RES_ALL(122));
            Add("Hell Walkers", 4, PRI_DEX(567), VIT(629), RES_ALL(0), MULTISHOT_DMG_BONUS(0.15));
            With("Multishot", () =>
            {
                Add("Wraps of Clarity", 4, FIRE_DMG_BONUS(0.18), PRI_DEX(649), CHC(0.055), VIT(0));
                Add("The Witching Hour", 4, PRI_DEX(643), CHD(0), ASI(0), VIT(0), RES_ALL(0));
                Add("Yang's Recurve", 6, WEAPON_DAMAGE_ELEM(1480), WEAPON_DAMAGE_PERCENT(0.09), IAS(0), AREA_DAMAGE(0), RCR(0), MAX_DISCIPLINE(0));
                Add("Dead Man's Legacy", 6, PRI_DEX(924), ASI(0.18), CHC(0.09), HATRED_REGEN(0), MULTISHOT_DMG_BONUS(0.11), MAX_DISCIPLINE(0));
                With("Cindercoat", () =>
                {
                    Add("The Compass Rose", 4, DAMAGE(0), CHC(), CHD(0), LIFE_PER_HIT(0), SOCKET(1));
                    Add("The Traveler's Pledge", 4, FIRE_DMG_BONUS(0), CHD(0), CHC(0), SOCKET(1));
    
                    Add("Wraps of Clarity", 4, FIRE_DMG_BONUS(0.18), PRI_DEX(649), CHC(0.055), LIFE_PER_HIT(0));
                    Add("The Witching Hour", 4, PRI_DEX(643), RES_ALL(0), ASI(0), CHD(0));
                });
            });
            With("Grenades", () =>
            {
                Add("Hellcat Waistguard", PRI_DEX(), GRENADES_DMG_BONUS(), VIT(), RES_ALL());
                Add("Depth Diggers", SOCKET(), PRI_DEX(), VIT(), GRENADES_DMG_BONUS(), RES_ALL());
                Add("Fortress Ballista", WEAPON_DAMAGE_ELEM(), WEAPON_DAMAGE_PERCENT(), MAX_DISCIPLINE(), CDR(), AREA_DAMAGE());
                Add("Dawn", WEAPON_DAMAGE(), WEAPON_DAMAGE_PERCENT(), MAX_DISCIPLINE(), CDR(), AREA_DAMAGE());
            });
        });
    Last edited by JarJarD3; 02-01-2019 at 06:17 AM. Reason: added "Important Items" pic

  8. #7
    Saah's Avatar Member
    Reputation
    4
    Join Date
    Sep 2013
    Posts
    62
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by JarJarD3 View Post
    About damage, this is not a damage calculation plugin but attribute (perfection) comparison plugin.
    Weapon damage and elemental damage are totally different attributes and sometimes you want them both but sometimes not at all.
    I can not combine them because that would not allow attribute specific configuration.
    i was just saying, that damage roll of physical element should be compared to damage roll of any other elements. On the first 2 screenshots the "physical damage roll" affix on the Primal Kridershot is not compared directly to the "elemental damage roll" affix from the second kridershot.

    AFAIK, There is no in-game mechanics, that would care which element is on the weapon damage roll (Tal Rasha's set does not use it, right?), so we only care about that roll's perfection. In other words, that "wpn-DMG" (from first screenshot) should be the "ELEM DMG", like it is on the second kridershot's screenshot, and they should compare their perfections against each other, rather than "100 vs ." and "81 vs ." .
    I agree, that they are technically "different affixes", but in-practice - they are the same affix - the damage range roll affix. No one cares, that they are different elements, because they serve exactly the same purpose. At least for the UI displaying purposes (for better readability), they could be combined, for that comparison UI. Anyway, that's just on my "To Do" do list on how i would enchance it in the future.
    Last edited by Saah; 02-01-2019 at 10:42 AM.

  9. #8
    gandalf12's Avatar Member
    Reputation
    2
    Join Date
    Nov 2018
    Posts
    22
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    @JarJar
    what plugin(s) do you use to manage your armory sets in your stash.
    In your example picture it seems that you are not using your own [8.0] ArmorySetInfo plugin.
    The set Items numbers are in circles and the colour is pink.
    So what do you use instead?

  10. #9
    JarJarD3's Avatar Contributor
    Reputation
    106
    Join Date
    Oct 2017
    Posts
    395
    Thanks G/R
    41/101
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)
    Originally Posted by gandalf12 View Post
    @JarJar
    what plugin(s) do you use to manage your armory sets in your stash.
    In your example picture it seems that you are not using your own [8.0] ArmorySetInfo plugin.
    The set Items numbers are in circles and the colour is pink.
    So what do you use instead?
    I use this: dia...pick-list.html

    I'm a bit reluctant to publish as more published plugins means more support.
    Hopefully this has some uses even though it needs C# skills to edit items list for your needs.
    And I have to publish yet an other plugin to kind of support this one, as you need to know the exact item names for it to work.

    And then I see the need to include Ancient/Primal filter there, as for end game you are interested only in very few select items...

    Edit:
    This is the other plugin you might need: https://www.ownedcore.com/forums/dia...diteminfo.html
    Last edited by JarJarD3; 02-02-2019 at 03:54 AM. Reason: Added HoveredItemInfo plugin

  11. #10
    JarJarD3's Avatar Contributor
    Reputation
    106
    Join Date
    Oct 2017
    Posts
    395
    Thanks G/R
    41/101
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)
    Originally Posted by Saah View Post
    AFAIK, There is no in-game mechanics, that would care which element is on the weapon damage roll (Tal Rasha's set does not use it, right?), so we only care about that roll's perfection. In other words, that "wpn-DMG" (from first screenshot) should be the "ELEM DMG", like it is on the second kridershot's screenshot, and they should compare their perfections against each other, rather than "100 vs ." and "81 vs ." .
    I agree, that they are technically "different affixes", but in-practice - they are the same affix - the damage range roll affix. No one cares, that they are different elements, because they serve exactly the same purpose. At least for the UI displaying purposes (for better readability), they could be combined, for that comparison UI.
    You are on the right track but I have two slight problems to tackle first.

    Damage as a whole is difficult concept to handle right with my limited knowledge how it is calculated from different attributes...

    Elemental and powers damage percent modifiers are now partially configurable but not implemented properly as comparison part sees only these generically not specifically as it should.
    What I mean is that for example Lightning damage should be compared to Lightning damage only, as it does not make sense to compare it to Physical damage (unless build uses both elementals which is rare).
    Same applies to powers, build typically uses few powers that are required by the build and only these matters and they can be found on few select gear pieces.

    The attributes are at least:
    Damage_Weapon_Min
    Damage_Weapon_Delta
    Damage_Dealt_Percent_Bonus
    Power_Damage_Percent_Bonus

    I have ported my almost an year old code to 8.0 and tried to strip down to essentials.
    I hardly remember how it works as it is quite complex piece of code.
    If I have time I try to make it better and more easily maintained...

    My long time vision is that given two items have "same" attributes I can show which is more "perfect" (in given context) and even in some cases if one is better than an other.
    The context is the build configuration that gives required attributes and their preferred importance (like any build guide does).

    Now I have learned how to make proper dialogs in THUD, I might create new UI code to show compared items and theirs attributes in separate dialog that would allow better layout and data to be seen.

  12. #11
    Saah's Avatar Member
    Reputation
    4
    Join Date
    Sep 2013
    Posts
    62
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Another wish for future improvement of the plugin:
    we want it to not display the % of perfection, but instead just display absolute values, because comparing perfection is misleading, because when you want to directly compare "this traveller's pledge amulet has 9% crit, and how much it differes from another amulet in my stash... and instead of being able to compare absolute values, we just see those hard to understand "% of perfection", that we have to manually "convert to absolute values in our heads". For easier comparison perfection values do not help, they just distract, only absolute values are needed for proper comparison. A setting maybe? Or if you gonna make a new UI popep-window, you could add suppor for the "perfection %" column in that UI window. Personally i would never be interested to know % of perfection, so that setting would be forever disabled (if only there was a choice). Again, when you get an amulet with CHD and CHC, you want to compare how much CHD or CHC you trade by replacing that amulet, and instead you just see those distracting % of perfection values. This is even more absurd, knowing, that in D3 different affixes have unproportional differences between min and max values. For example gloves have min 8 CHC and max is 10 CHC (pretty small difference, which covers 0-100% of perfection), but for CHD min is 25%, and max is 50% and comparing by perfection values is just a headacke.

  13. #12
    JarJarD3's Avatar Contributor
    Reputation
    106
    Join Date
    Oct 2017
    Posts
    395
    Thanks G/R
    41/101
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)
    Good to have feedback feature requests.
    Current plugin was modeled using the item perfection %-value as design principle that lead to what it is now.
    It is overly complex by internal design and I am not satisfied with it at all.

    I am planning to write a new one, step by step this time and trying to keep as simple as possible.
    Maybe modular so that data gathering, data processing and UI could be different modules for different purposes.

    Now as I have technology to display "proper" dialogues, I will use separate dialog to show item comparison data.

    First version could be such that is enables comparison of equipped items against items in inventory (or Stash) without any kind of configuration.
    This is the simplest scenario that does not require external configuration.

    External configuration is only achievable using C# classes and this makes it inconvenient for non-programmers without proper code editors for syntax highlighting.

    I will try to modify HoveredItemInfo plugin so that it colors lines based on how perfect attribute is.
    This is good starting point for the UI.

  14. #13
    astisbc's Avatar Member
    Reputation
    1
    Join Date
    Sep 2017
    Posts
    23
    Thanks G/R
    7/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hello , i cant get this work. I allready tryd a clean & new Install of TH - with only this plugin. But got no result. Do i have to change something in the TH Settings, Configs or elsewehre ? --- Just simple DL, Rename in ZIP File , put the JarJar Folder into the Plugin Folder from TH Instalation --- and run?

  15. #14
    JarJarD3's Avatar Contributor
    Reputation
    106
    Join Date
    Oct 2017
    Posts
    395
    Thanks G/R
    41/101
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)
    Originally Posted by astisbc View Post
    Hello , i cant get this work. I allready tryd a clean & new Install of TH - with only this plugin. But got no result. Do i have to change something in the TH Settings, Configs or elsewehre ? --- Just simple DL, Rename in ZIP File , put the JarJar Folder into the Plugin Folder from TH Instalation --- and run?
    Downloaded and renamed to .zip and extracted to my plugins folder.
    Got these two compilation errors (as expected):
    Code:
    2019.02.05 21.18.28.075	19.2.4.0	error while initializing plugins
    2019.02.05 21.18.28.077	19.2.4.0		C:\games\HurboTUD\TurboHUD 19.2.4.# test\Plugins\JarJar\Core.cs(24,80) : error CS0117: 'ItemLocation' does not contain a definition for 'Unknown3'
    2019.02.05 21.18.28.078	19.2.4.0		C:\games\HurboTUD\TurboHUD 19.2.4.# test\Plugins\JarJar\Core.cs(48,90) : error CS0117: 'ItemLocation' does not contain a definition for 'Unknown3'
    Renamed these two occurrences of Unknown3 to Unknown2 and THUD starts without problems and Item Info UI seems to work for me.

    My instructions are a bit overlapping but they are adequate to get this going:
    Code:
    Download Attached .TXT file and rename it to regular .ZIP file.
    Install it by unzipping it into plugins folder in your THUD installation.
    Move it under your plugins folder and extract it there so that you can see folder JarJar under plugins.
    The point is that JarJar folder must be under plugins folder!

  16. #15
    rambo99jose's Avatar Member
    Reputation
    4
    Join Date
    Nov 2007
    Posts
    26
    Thanks G/R
    20/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    getting some new errors after last TurboHUD update:


    Code:
    2019.05.17 22:19:50.867    19.5.16.3    suspicious plugins behavior in plugin file: 'C:\Users\xxx\Desktop\desktopy\D3 Apps\D3 THUD x64\Plugins\JarJar\CoreAttributes.cs': possibly trying to use System.Reflection.
    2019.05.17 22:19:52.661    19.5.16.3    error while initializing plugins
    2019.05.17 22:19:52.661    19.5.16.3        C:\Users\xxx\Desktop\desktopy\D3 Apps\D3 THUD x64\Plugins\JarJar\Core.cs(125,23) : error CS0246: The type or namespace name 'CoreAttribute' could not be found (are you missing a using directive or an assembly reference?)
    2019.05.17 22:19:52.661    19.5.16.3        C:\Users\xxx\Desktop\desktopy\D3 Apps\D3 THUD x64\Plugins\JarJar\ItemInfo\SideBySideItemInfo.cs(270,76) : error CS0246: The type or namespace name 'CoreAttribute' could not be found (are you missing a using directive or an assembly reference?)
    2019.05.17 22:19:52.661    19.5.16.3        C:\Users\xxx\Desktop\desktopy\D3 Apps\D3 THUD x64\Plugins\JarJar\ItemInfo\SideBySideItemInfo.cs(267,29) : error CS0246: The type or namespace name 'CoreAttribute' could not be found (are you missing a using directive or an assembly reference?)
    Deleting "System.Reflection" from "CoreAttributes.cs" fixed it
    Last edited by rambo99jose; 05-17-2019 at 11:11 PM.

Page 1 of 2 12 LastLast

Similar Threads

  1. [REQUEST] Item pickup plugin.
    By keith009 in forum PoE Bots and Programs
    Replies: 0
    Last Post: 10-07-2017, 07:37 AM
  2. Item info (stats)
    By MooniMooni in forum Wildstar Memory Editing
    Replies: 3
    Last Post: 06-03-2014, 12:36 AM
  3. [Help Request] a hint on where i can get an items info
    By boomingranny in forum WoW Memory Editing
    Replies: 4
    Last Post: 04-14-2009, 05:43 AM
  4. PVP Items Infos
    By stjames666 in forum World of Warcraft Emulator Servers
    Replies: 1
    Last Post: 05-12-2008, 07:46 PM
  5. [INFO] Succy's Big Item Pack - Coming Soon
    By Succy in forum World of Warcraft Emulator Servers
    Replies: 2
    Last Post: 11-27-2007, 01:48 AM
All times are GMT -5. The time now is 12:42 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search