[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

    These ads disappear when you log in.

  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
    3148
    Join Date
    Jul 2012
    Posts
    2,704
    Thanks G/R
    10/2795
    Trade Feedback
    0 (0%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    this

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

    should be

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

  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
    308
    Join Date
    Aug 2016
    Posts
    1,048
    Thanks G/R
    127/286
    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
    3148
    Join Date
    Jul 2012
    Posts
    2,704
    Thanks G/R
    10/2795
    Trade Feedback
    0 (0%)
    Mentioned
    2 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...

  8. #7
    odaru7788's Avatar Member
    Reputation
    3
    Join Date
    Mar 2017
    Posts
    113
    Thanks G/R
    41/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
    308
    Join Date
    Aug 2016
    Posts
    1,048
    Thanks G/R
    127/286
    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 Elite User
    Reputation
    587
    Join Date
    Sep 2018
    Posts
    808
    Thanks G/R
    85/561
    Trade Feedback
    0 (0%)
    Mentioned
    6 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 11:20 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search