[v9.0] RunStatsPlugin menu

User Tag List

Page 1 of 8 12345 ... LastLast
Results 1 to 15 of 108
  1. #1
    Razorfish's Avatar Contributor
    Reputation
    188
    Join Date
    Apr 2019
    Posts
    178
    Thanks G/R
    19/158
    Trade Feedback
    0 (0%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    [v9.0] RunStatsPlugin

    I was working on this one for https://www.ownedcore.com/forums/dia...ult-theme.html (CONTEST : Replace ui_default_labels_run_stats.xml with a Plugin in Default theme). I kinda got carried away with a bunch of ideas, and it turned into writing 6 plugins instead of 1. The idea of this plugin set is to show stats that are relevant to your gaming session in a variety ways. I don't know if that contest is going to have a resolution, but here is my entry for you to test out and use if you want.

    RunStatsPlugin.cs
    This is the main plugin. It draws a menu bar across the bottom right corner of the screen. When you hover your mouse over a stat on the bar, it may expand to show additional stats and there will be a grey pin icon to the right of it. If you hover over the pin icon for a second until it turns red, it will "pin" open the expanded stat display to the right side of your screen. Hover over the pin again for a moment to unpin it.



    Any other plugin can "hook" into the menu bar by adding its own TopLabelDecorator through the menu bar's RunStatsPluing.Add(TopLabelDecorator) function (which optionally takes a positional priority/order number). Any plugin can also dynamically set any of their added TopLabelDecorators to be hidden by setting the instance of TopLabelDecorator.Enabled = false (this also applies to its expandup menu labels) on the fly. This means that the menu bar stats can show or hide data based on whether or not it is relevant to the player's hero. For example, I wrote a code sample that tracks Hexing Pants buff uptime while in combat in a rift, and the menu label for it hides itself if my character is not wearing Hexing Pants.

    So every menu bar option you see in the first screenshot is its own plugin that can be simple or complex, but is self-contained/separate from the menu bar plugin. That means that there is a quick and simple way to turn off each feature you see in the picture, and new menu options can be added easily without disturbing any of the existing installed plugins.

    RunStats_XPHelper.cs
    This adds some xp stats to the menu bar.


    RunStats_DamageHelper.cs
    This records the values of some damage stats made available by TH and adds them to the menu bar, visualizing the data with a 30 second line graph. You can hover over the graph when it is pinned open to see exact recorded damage values. Press the Down key to save a snapshot of the current "live" data, and the Up key lets you toggle between Live and Saved data graphs.


    Note: TH's damage dealt tracker stats don't update while Conduit is active, but you will see the Monster HP Loss rate stat still active during that time.

    RunStats_KeystoneHelper.cs
    This tracks your Greater Rift Keystone usage and gains. (An example of a custom tracker for material count changes.)


    RunStats_DropsHelper.cs
    This tracks your legendary drops, shows a loot list of recently dropped items with some configuration options, such as list size, highlight duration for the most recent drops, whether or not older loot disappears from the list, and even defining your own loot list filtering to only show the items you care about. It also draws name labels and map markers for ancients on the minimap and (Tab) world map that you've seen nearby and remembers their positions even if you move out of range (approximately 2 screens).


    RunStats_UptimeHelper.cs
    This tracks your in-combat uptime for a few different effects, and it will only appear if it is relevant to your character. (An example of a custom state tracker with configurable requirements and dynamic showing and hiding of menu labels based on relevance to the current hero.) The currently implemented uptime trackers you might see are:
    - Dayntee's Binding (if you have it equipped or in the cube)
    - Hexing Pants of Mr Yan (if you have it equipped or in the cube)
    - Ignore Pain (if anyone in the party has this skill equipped)
    - Simulacrum (if you have this skill equipped)
    - Oculus Ring (if anyone in the party (or follower) has the equipped buff - warning: the uptime of this tends to be very low due to the uptime tracking requirements I set for the default - the oculus circle itself has to be in range (configurable) of a non-minion elite monster...you can change/remove this requirement entirely if you choose)



    Installation
    To install, all the *.cs files go into --> TurboHUD \ plugins \ Razor \ RunStats

    Because this plugin package was designed to be modular, it is easy to disable any of the menu options that you don't need/want. For example, if you don't care about loot tracking, you just uninstall/delete/disable the RunStats_DropsHelper.cs file OR put in the Customize function of your config file (plugins \ User \ PluginEnablerOrDisablerPlugin.cs): Hud.TogglePlugin<RunStats_DropsHelper>(false);
    Last edited by Razorfish; 03-30-2021 at 10:10 PM. Reason: removed attachment

    [v9.0] RunStatsPlugin
  2. Thanks s4000, SeaDragon, Vern1701, JackCeparou, evan6944, mois, TehIso, RNN, CarrierKing, thetest1, FoxPox, imnotabotuser, Escus9, popoiill, johnbl, (Sarge), hakache (17 members gave Thanks to Razorfish for this useful post)
  3. #2
    s4000's Avatar Contributor
    Reputation
    284
    Join Date
    Oct 2018
    Posts
    489
    Thanks G/R
    18/271
    Trade Feedback
    0 (0%)
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    how can I add the up time for flying dragon & the healing amount for zmonk?

  4. #3
    Vern1701's Avatar Active Member
    Reputation
    52
    Join Date
    Mar 2017
    Posts
    316
    Thanks G/R
    12/49
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Razor,

    I will be testing this extensively over the rest of the season and may tweak it a bit to meet my needs.

  5. #4
    s4000's Avatar Contributor
    Reputation
    284
    Join Date
    Oct 2018
    Posts
    489
    Thanks G/R
    18/271
    Trade Feedback
    0 (0%)
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    Code for Flying Dragon's buff uptime

    //track Flying Dragon's buff uptime
    Watching.Add(new UptimeRule()
    {
    IsRelevant = () => (Hud.Game.Me.CubeSnoItem1.Sno == Hud.Sno.SnoItems.Unique_CombatStaff_2H_009_x1.Sno), //flyingdragon's is cubed
    IsUp = () => IsInRift() && Hud.Game.Me.InCombat && Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.FlyingDragon.Sno, 1),
    IsWatching = () => IsInRift() && Hud.Game.Me.InCombat,
    Description = "Flying Dragon " + TextUptime,
    Uptime = Hud.Time.CreateWatch(),
    TotalTime = Hud.Time.CreateWatch(),
    //BgBrush = Hud.Render.CreateBrush(200, 81, 78, 72, 0),
    Font = Hud.Render.CreateFont("tahoma", 7, 255, 255, 251, 209, false, false, true),
    });

  6. #5
    Saico's Avatar Active Member
    Reputation
    21
    Join Date
    Apr 2019
    Posts
    379
    Thanks G/R
    35/20
    Trade Feedback
    0 (0%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Nice plugin, testing and it seems very helpful.

    Trying to add some uptimebuffs of my interest but dont know why shows text but does not count uptime.

    Both below tried for Ahavarion, and LotD

    //track Ahavarion's buff uptime
    Watching.Add(new UptimeRule()
    {
    IsRelevant = () => (Hud.Game.Me.CubeSnoItem1.Sno == Hud.Sno.SnoItems.Unique_Staff_101_x1.Sno), //Ahavarion's is cubed
    IsUp = () => IsInRift() && Hud.Game.Me.InCombat && Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.AhavarionSpearOfLycander.Sno, 1),
    IsWatching = () => IsInRift() && Hud.Game.Me.InCombat,
    Description = "Ahavarion " + TextUptime,
    Uptime = Hud.Time.CreateWatch(),
    TotalTime = Hud.Time.CreateWatch(),
    //BgBrush = Hud.Render.CreateBrush(200, 81, 78, 72, 0),
    Font = Hud.Render.CreateFont("tahoma", 7, 255, 190, 251, 209, false, false, true),
    });

    //track Land of the Dead uptime
    Watching.Add(new UptimeRule()
    {
    IsRelevant = () => Hud.Game.Me.Powers.UsedSkills.Any(s => s.SnoPower.Sno == Hud.Sno.SnoPowers.Necromancer_LandOfTheDead.Sno),
    IsUp = () => IsInRift() && Hud.Game.Me.InCombat && Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.Necromancer_LandOfTheDead.Sno, 1),
    IsWatching = () => IsInRift() && Hud.Game.Me.InCombat,
    Description = Hud.Sno.SnoPowers.Necromancer_LandOfTheDead.NameLocalized + " " + TextUptime,
    Uptime = Hud.Time.CreateWatch(),
    TotalTime = Hud.Time.CreateWatch(),
    //BgBrush = Hud.Render.CreateBrush(200, 107, 3, 3, 0),
    Font = Hud.Render.CreateFont("tahoma", 7, 255, 255, 60, 60, false, false, true),
    });
    btw, tried Flying Dragon code from s4 and it is running great

  7. #6
    knight84's Avatar Active Member
    Reputation
    19
    Join Date
    Mar 2017
    Posts
    270
    Thanks G/R
    24/18
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    First I want to thank you for this great plugin, very good work.

    Nevertheless I have a question / request:

    Can you move the bar from bottom to top?

  8. #7
    Razorfish's Avatar Contributor
    Reputation
    188
    Join Date
    Apr 2019
    Posts
    178
    Thanks G/R
    19/158
    Trade Feedback
    0 (0%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Saico View Post
    Trying to add some uptimebuffs of my interest but dont know why shows text but does not count uptime.

    Both below tried for Ahavarion, and LotD
    Make sure that the index # is correct for the buff you're looking to track. For example, to track LotD, you should be say Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.Necromancer_LandOfTheDead.Sno) without the index 1 specified. Not sure right now, since I'm not in-game to test, but I think the LotD index is supposed to be 0 for that skill, not 1, but you can just omit the index because the buff is only flagged as active when Land is active.

    Item buffs tend to be different, because they're flagged as active when they're equipped, and then one of their buff indices changes value when its proc effect is up. In the case of Ahavarion, the proc triggers different shrine buffs, so there is (probably) nothing specific to the item to track. You would want to check for each shrine buff (Empowered, Frenzy, Fleeting, etc) instead.

  9. #8
    Saico's Avatar Active Member
    Reputation
    21
    Join Date
    Apr 2019
    Posts
    379
    Thanks G/R
    35/20
    Trade Feedback
    0 (0%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Razorfish View Post
    Make sure that the index # is correct for the buff you're looking to track. For example, to track LotD, you should be say Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.Necromancer_LandOfTheDead.Sno) without the index 1 specified. Not sure right now, since I'm not in-game to test, but I think the LotD index is supposed to be 0 for that skill, not 1, but you can just omit the index because the buff is only flagged as active when Land is active.

    Item buffs tend to be different, because they're flagged as active when they're equipped, and then one of their buff indices changes value when its proc effect is up. In the case of Ahavarion, the proc triggers different shrine buffs, so there is (probably) nothing specific to the item to track. You would want to check for each shrine buff (Empowered, Frenzy, Fleeting, etc) instead.
    Oh thank you, got it, I supposed I forgot to add shrines info to track since Ahavarion uses each of them randomly, as I dont know how to insert them into code atm, I gonna test this later.
    Gonna try LotD without Index1.

    and I have a question about RunStats_DropsHelper, where can I change the green background color of dropped itens ?
    BG Green Color is the recent dropped itens right ?

    Screenshot_4.png

    Screenshot_5.png

    Green BG kind of does not have nice contrast with Orange Text, I would like to change rgb to some other color, maybe black to visualize better. =)

    edit: Found it !

    var plugin = Hud.GetPlugin<RunStatsPlugin>();
    BgBrush = plugin.BgBrush;
    BgBrushAlt = plugin.BgBrushAlt;
    HighlightBrush = Hud.Render.CreateBrush(200, 40, 71, 162, 0); //200, 72, 132, 84, 0
    Last edited by Saico; 06-06-2019 at 11:43 AM.

  10. #9
    Razorfish's Avatar Contributor
    Reputation
    188
    Join Date
    Apr 2019
    Posts
    178
    Thanks G/R
    19/158
    Trade Feedback
    0 (0%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by knight84 View Post
    Can you move the bar from bottom to top?
    Currently, no. This is because I specifically coded everything to work with ExpandUpLabels in TopLabelDecorator, but it could be a feature idea for a future update.

  11. #10
    knight84's Avatar Active Member
    Reputation
    19
    Join Date
    Mar 2017
    Posts
    270
    Thanks G/R
    24/18
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ok thx for the quick response i wos wondering i dont find x,y coordinates like on other plugins.

  12. #11
    Razorfish's Avatar Contributor
    Reputation
    188
    Join Date
    Apr 2019
    Posts
    178
    Thanks G/R
    19/158
    Trade Feedback
    0 (0%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by s4000 View Post
    Code for Flying Dragon's buff uptime
    Glad you got the Uptime coding figured out I am thinking of ways to add new UptimeRules to the plugin from a config file, but that is a feature to add later.

    I saw that your original post also asked about tracking zmonk heals. I didn't have time to test whether or not Hud.Tracker.Session.Healing returns anything or anything related to that yet - some of the built-in tracker stats (such as DamageTaken) do not return a value, so I'm not sure that one would either. In general to add a new graph line (for a new stat to track), this would be the code:
    Code:
    				new GraphLine("Healing")
    				{ 
    					DataFunc = () => (decimal)Hud.Tracker.Session.HealingPerSecond, //DataFunc should be a function that returns the value of the stat to track, it is called every time DamageHelper wants to record a graph point
    					Brush = Hud.Render.CreateBrush(255, 66, 244, 238, 1), //change this to the IBrush line color you want
    					Font = Hud.Render.CreateFont("tahoma", 7, 255, 66, 244, 238, false, false, true) //change this to the IFont text color you want
    				},
    ...to the list of other GraphLines being created for LiveData in the plugin's Load() function.

    Note:
    (1) The values are recorded in decimal rather than double, this is mainly because Diablo's damage inflation makes huge numbers, and then doing division with them might cause issues. Healing might not suffer from the same issue though.
    (2) Hud.Tracker.Session.HealingPerSecond would be less accurate than Hud.Tracker.Session.Healing (remembering the last seen value and recording the difference at every tick interval), but for code simplicity, that is the idea of how a new graph line is added.

  13. #12
    Razorfish's Avatar Contributor
    Reputation
    188
    Join Date
    Apr 2019
    Posts
    178
    Thanks G/R
    19/158
    Trade Feedback
    0 (0%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by knight84 View Post
    ok thx for the quick response i wos wondering i dont find x,y coordinates like on other plugins.
    It was just because I wanted to keep the code simple to start. If you move it to the top, are pinned menus near the top going to block the minimap? If the pins still go on the bottom, which would be far away from the top menu position, does that make it harder to see both the stats on the menu bar and the pinned stats at the same time? (You would then have to look at both the top and the bottom of the screen to see tracker stats.) These are the kind of questions that I think about from a design perspective.

  14. Thanks knight84 (1 members gave Thanks to Razorfish for this useful post)
  15. #13
    knight84's Avatar Active Member
    Reputation
    19
    Join Date
    Mar 2017
    Posts
    270
    Thanks G/R
    24/18
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    for me it would be easier at the top, i mean the bar isnt that long, that it goes in the minimap ( i think) i would like to have it in the center of screen ( like where the exp to paragon is- sry i dont know the plugin name)

  16. #14
    Razorfish's Avatar Contributor
    Reputation
    188
    Join Date
    Apr 2019
    Posts
    178
    Thanks G/R
    19/158
    Trade Feedback
    0 (0%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Saico View Post
    I have a question about RunStats_DropsHelper, where can I change the green background color of dropped itens ?
    edit: Found it !
    Cool, that's the same line I was going to point you to, HighlightBrush color is the value to change. You can also reduce the duration for which it highlights new drops (LootHistoryHighlight) to 0 or -1 if you don't want any highlighting at all.

  17. #15
    Saico's Avatar Active Member
    Reputation
    21
    Join Date
    Apr 2019
    Posts
    379
    Thanks G/R
    35/20
    Trade Feedback
    0 (0%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Razorfish View Post
    Cool, that's the same line I was going to point you to, HighlightBrush color is the value to change. You can also reduce the duration for which it highlights new drops (LootHistoryHighlight) to 0 or -1 if you don't want any highlighting at all.
    Actually I find the highlight timer great, and I changed it for a blue one w more opacity, fits me good.

    HighlightBrush = Hud.Render.CreateBrush(200, 40, 71, 162, 0); //200, 72, 132, 84, 0
    I noticed the last value above, 0 in the case, changes the whole content with outline when I change to 1+, is there a chance to change outline color and thickness and still have a brush for background ? I am asking cause when I change it I modify whole rgb to outline changes. (Dont know if I you got what I mean, not native english speaker).

    What I mean is when code is:
    (200, 255, 0, 0, 0); Background is red
    (200, 255, 0, 0, 2); Outline is red, but I do not have brush for BG.

Page 1 of 8 12345 ... LastLast

Similar Threads

  1. [Selling] v9 NA Love Nikki account
    By Lorielein in forum Mobile Buy Sell Trade
    Replies: 0
    Last Post: 12-20-2018, 01:09 PM
  2. Stinkyjoints v9 update. - overjoint
    By TheLordJesusHimself in forum Overwatch Exploits|Hacks
    Replies: 437
    Last Post: 04-14-2017, 07:39 AM
  3. Necrobot v9.0 seting (transferring low lv pokemon with high IV)
    By stormgoing in forum Pokemon GO Hacks|Cheats
    Replies: 0
    Last Post: 09-11-2016, 12:30 PM
  4. [How-To] Need Necro v9 config to snipe and xp "safely"
    By ganjagab in forum Pokemon GO Hacks|Cheats
    Replies: 5
    Last Post: 08-20-2016, 09:40 AM
All times are GMT -5. The time now is 12:59 PM. 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