[v9.0?] [INT] PainEnhancerHelper menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 23
  1. #1
    Roast's Avatar Established Member
    Reputation
    87
    Join Date
    Apr 2017
    Posts
    126
    Thanks G/R
    7/83
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [v9.0?] [INT] PainEnhancerHelper

    I wanted to get the title right, I developed this against the latest public release, so I think it should be 9.0. Sorry if I've fucked up.

    Got sick of not being able to see how much value I'm getting from pain enhancer in my rifts, or seeing who's bleeding.



    Pain enhancer is one of the main staples of my build for the attack speed, so I wanted something super eye catching with bright green. Feel free to change the colours yourself.

    • Draws green dots on enemies that don't have pain enhancer bleed on them
    • Draws label under player showing how many enemies have dot dps applied and how much attack speed you gain from this
    • Doesn't draw if in town
    • Doesn't draw if pain enhancer not equipped


    Code:
    using System.Linq;
    
    using Turbo.Plugins;
    using Turbo.Plugins.Default;
    
    namespace Turbo.plugins.Roast
    {
        public sealed class PainEnhancerHelper : BasePlugin, IInGameWorldPainter
        {
            private WorldDecoratorCollection PlayerLabel { get; set; }
    
            private WorldDecoratorCollection BleedRadiusDecorator { get; set; }
    
            private WorldDecoratorCollection NoBleedDecorator { get; set; }
    
            private IAttribute m_PowerBuff1;
            private uint m_PainEnhancerPrimarySno;
    
            public PainEnhancerHelper()
            {
                Enabled = true;
            }
    
            public override void Load(IController hud)
            {
                base.Load(hud);
    
                m_PowerBuff1 = Hud.Sno.Attributes.Power_Buff_1_Visual_Effect_None;
                m_PainEnhancerPrimarySno = Hud.Sno.SnoPowers.PainEnhancerPrimary.Sno;
    
                NoBleedDecorator = new WorldDecoratorCollection(
                    new GroundCircleDecorator(Hud)
                    {
                        Brush = Hud.Render.CreateBrush(255, 0, 255, 0, 20)
                    });
    
                PlayerLabel = new WorldDecoratorCollection(
                    new GroundLabelDecorator(Hud)
                    {
                        TextFont = Hud.Render.CreateFont("tahoma", 6.5f, 255, 0, 255, 0, false, false, false),
                        BackgroundBrush = Hud.Render.CreateBrush(255, 0, 0,0, 0)
                    });
    
                BleedRadiusDecorator = new WorldDecoratorCollection(new GroundCircleDecorator(Hud)
                {
                    Brush = Hud.Render.CreateBrush(155, 255, 0, 0, 2.0f),
                    Radius = 20,
                    Enabled = true
                });
            }
    
            public void PaintWorld(WorldLayer layer)
            {
                var player = Hud.Game.Me;
    
                if (player.IsInTown)
                    return;
    
                if (player.Powers.UsedLegendaryGems.PainEnhancerPrimary?.Active != true)
                    return;
    
                var monsters = Hud.Game.AliveMonsters.ToList();
                var noBleedMonsters = monsters.Where(m => m.GetAttributeValueAsInt(m_PowerBuff1, m_PainEnhancerPrimarySno) != 1).ToList();
                var bleedCount = monsters.Except(noBleedMonsters).Count(m => m.NormalizedXyDistanceToMe <= 20);
                foreach (var m in noBleedMonsters)
                {
                    NoBleedDecorator.Paint(layer, m, m.FloorCoordinate, string.Empty);
                }
    
                PlayerLabel.Paint(layer, player, player.FloorCoordinate, $"Bleeding: {bleedCount}\nAttack Speed: {bleedCount * 3}%");
                BleedRadiusDecorator.Paint(layer, player, player.FloorCoordinate, string.Empty);
            }
        }
    }
    Attached Thumbnails Attached Thumbnails [v9.0?] [INT] PainEnhancerHelper-peh1-png   [v9.0?] [INT] PainEnhancerHelper-peh2-jpg  
    Last edited by Roast; 03-03-2019 at 02:31 PM.
    Developer of RoastBot https://www.ownedcore.com/forums/fps/overwatch-exploits-hacks/619893-roastbot-continuation-of-serenity.html

    [v9.0?] [INT] PainEnhancerHelper
  2. Thanks johnbl, icheck (2 members gave Thanks to Roast for this useful post)
  3. #2
    jaeheung09's Avatar Active Member
    Reputation
    23
    Join Date
    Nov 2017
    Posts
    109
    Thanks G/R
    8/21
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Good idea! It works with pain enhancer equipped.

    Will you check that there are lots of exceptions if pain enhancer gem not equipped and you get into a rift?

  4. #3
    KillerJohn's Avatar TurboHUD HUDmaster CoreCoins Purchaser Authenticator enabled
    Reputation
    3693
    Join Date
    Jul 2012
    Posts
    2,532
    Thanks G/R
    46/3335
    Trade Feedback
    0 (0%)
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)
    this

    if (!player.Powers.UsedLegendaryGems.PainEnhancerPrimary.Active)
    return;

    should be

    if (player.Powers.UsedLegendaryGems.PainEnhancerPrimary?.Active != true)
    return;
    Do not send me private messages unless it is absolutely necessary or the content is sensitive or when I ask you to do that...

  5. #4
    jaeheung09's Avatar Active Member
    Reputation
    23
    Join Date
    Nov 2017
    Posts
    109
    Thanks G/R
    8/21
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Wow. It works great as intended.
    Thanks KJ.

  6. #5
    SeaDragon's Avatar Contributor
    Reputation
    321
    Join Date
    Aug 2016
    Posts
    1,041
    Thanks G/R
    140/299
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by KillerJohn View Post
    this

    if (!player.Powers.UsedLegendaryGems.PainEnhancerPrimary.Active)
    return;

    should be

    if (player.Powers.UsedLegendaryGems.PainEnhancerPrimary?.Active != true)
    return;
    It would be better if you could support bleeding debuff directly.
    monsters.Where(m => m.DotDpsApplied <= 0).ToList() This is not accurate.

  7. #6
    KillerJohn's Avatar TurboHUD HUDmaster CoreCoins Purchaser Authenticator enabled
    Reputation
    3693
    Join Date
    Jul 2012
    Posts
    2,532
    Thanks G/R
    46/3335
    Trade Feedback
    0 (0%)
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by SeaDragon View Post
    It would be better if you could support bleeding debuff directly.
    monsters.Where(m => m.DotDpsApplied <= 0).ToList() This is not accurate.
    Well, it is up to the plugin author to find out the (de)buff's SNO...
    Do not send me private messages unless it is absolutely necessary or the content is sensitive or when I ask you to do that...

  8. #7
    odaru7788's Avatar Member
    Reputation
    3
    Join Date
    Mar 2017
    Posts
    108
    Thanks G/R
    45/2
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    @SeaDragon
    I can't find an article about "GreaterRiftPylonMarkerPlugin"
    I can only ask you here, can it support 9.0?
    tks~

  9. #8
    SeaDragon's Avatar Contributor
    Reputation
    321
    Join Date
    Aug 2016
    Posts
    1,041
    Thanks G/R
    140/299
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by odaru7788 View Post
    @SeaDragon
    I can't find an article about "GreaterRiftPylonMarkerPlugin"
    I can only ask you here, can it support 9.0?
    tks~
    https://www.ownedcore.com/forums/dia...ck-plugin.html (Pylon Check Plugin)
    You should find it in the original thread
    I've updated pastebin.com

  10. Thanks odaru7788 (1 members gave Thanks to SeaDragon for this useful post)
  11. #9
    RNN's Avatar Legendary
    Reputation
    810
    Join Date
    Sep 2018
    Posts
    1,051
    Thanks G/R
    103/773
    Trade Feedback
    0 (0%)
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)
    - I see that they already wrote you a link to download it, I delete this-

  12. #10
    jaeheung09's Avatar Active Member
    Reputation
    23
    Join Date
    Nov 2017
    Posts
    109
    Thanks G/R
    8/21
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    FYI, this is what I use.

    if (player.Powers.UsedLegendaryGems.PainEnhancerPrimary?.Active != true)
    return;

    var monsters = Hud.Game.AliveMonsters.Where(m => m.NormalizedXyDistanceToMe <= 20f && m.Attackable).ToList();
    var noBleedMonsters = monsters.Where(m => m.DotDpsApplied <= 0 && m.NormalizedXyDistanceToMe <= 20f).ToList();
    var bleedCount = monsters.Count - noBleedMonsters.Count;
    int ASUp = bleedCount * 3; // Pain Enhancer increases attack speed 3% for each enemy bleeding within 20 yards

    foreach (var m in noBleedMonsters)
    {
    NoBleedDecorator.Paint(layer, m, m.FloorCoordinate, string.Empty);
    }

    PlayerLabel.Paint(layer, player, player.FloorCoordinate, $"ASUp : {ASUp} %");

    Any better idea?

  13. #11
    Roast's Avatar Established Member
    Reputation
    87
    Join Date
    Apr 2017
    Posts
    126
    Thanks G/R
    7/83
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by KillerJohn View Post
    this

    if (!player.Powers.UsedLegendaryGems.PainEnhancerPrimary.Active)
    return;

    should be

    if (player.Powers.UsedLegendaryGems.PainEnhancerPrimary?.Active != true)
    return;
    Looking at the design of the API, I expected it to guarantee that these references are not null. I'll change the script in a bit. I couldn't find any documentation and most of the interfaces don't have summaries or remarks on them, is there a link to some in depth docs anywhere?

    Also, any advice on finding the SNO for bleed(s) or is it just going to be a case of dump active debuffs during a session to try and find it that way?

    EDIT: Nevermind, I think I found what I'm looking for, but can't see anywhere on IMonster/IActor/ISnoMonster/ISnoActor to get the list of debuffs.
    Last edited by Roast; 02-27-2019 at 03:17 PM.
    Developer of RoastBot https://www.ownedcore.com/forums/fps/overwatch-exploits-hacks/619893-roastbot-continuation-of-serenity.html

  14. #12
    Roast's Avatar Established Member
    Reputation
    87
    Join Date
    Apr 2017
    Posts
    126
    Thanks G/R
    7/83
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Update:
    I did some reading and this script is now accurate, it will show only bleeds applied by Pain Enhancer.
    Developer of RoastBot https://www.ownedcore.com/forums/fps/overwatch-exploits-hacks/619893-roastbot-continuation-of-serenity.html

  15. #13
    jaeheung09's Avatar Active Member
    Reputation
    23
    Join Date
    Nov 2017
    Posts
    109
    Thanks G/R
    8/21
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I looked into both the numbers of yours and mine. They are identical.
    Yours feels more professional. Good job!

  16. #14
    Roast's Avatar Established Member
    Reputation
    87
    Join Date
    Apr 2017
    Posts
    126
    Thanks G/R
    7/83
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Realised my logic was wrong
    • Bleed count now only calculated based on monsters which are within 20 yards of you, as per the gem effect
    • To help with keeping mobs within your bleed radius, added a circle drawer
    Developer of RoastBot https://www.ownedcore.com/forums/fps/overwatch-exploits-hacks/619893-roastbot-continuation-of-serenity.html

  17. #15
    jaeheung09's Avatar Active Member
    Reputation
    23
    Join Date
    Nov 2017
    Posts
    109
    Thanks G/R
    8/21
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    For the sake of accuracy, this is what I tested to check the difference between yours and mine.
    They are identical. I defined it within 20 yards.

    if (player.Powers.UsedLegendaryGems.PainEnhancerPrimary?.Active != true)
    return;

    var monsters = Hud.Game.AliveMonsters.Where(m => m.NormalizedXyDistanceToMe <= 20f && m.Attackable).ToList();
    // var monsters = Hud.Game.AliveMonsters.ToList();
    var noBleedMonsters2 = monsters.Where(m => m.DotDpsApplied <= 0 && m.NormalizedXyDistanceToMe <= 20f).ToList();
    var noBleedMonsters = monsters.Where(m => m.GetAttributeValueAsInt(m_PowerBuff1, m_PainEnhancerPrimarySno) != 1).ToList();
    var bleedCount2 = monsters.Count - noBleedMonsters2.Count;
    var bleedCount = monsters.Count - noBleedMonsters.Count;

    foreach (var m in noBleedMonsters)
    {
    NoBleedDecorator.Paint(layer, m, m.FloorCoordinate, string.Empty);
    }

    PlayerLabel.Paint(layer, player, player.FloorCoordinate.Offset(-20f, -20f, 0), $"ASUp2 : {bleedCount2 * 3} %");
    PlayerLabel.Paint(layer, player, player.FloorCoordinate.Offset(-18f, -18f, 0), $"ASUp1 : {bleedCount * 3} %");

Page 1 of 2 12 LastLast

Similar Threads

  1. Mage 3 intellect buffs total 180 int!
    By Medzii in forum WoW EMU Exploits & Bugs
    Replies: 6
    Last Post: 02-03-2009, 04:06 AM
  2. Final Fantasy X [Int/JPN] Problem!
    By Remahlól in forum Gaming Chat
    Replies: 0
    Last Post: 05-05-2008, 08:22 AM
All times are GMT -5. The time now is 04:38 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