WD's Attack speed menu

These ads disappear when you log in.

User Tag List

Results 1 to 11 of 11
  1. #1
    Romanmas's Avatar Member
    Reputation
    6
    Join Date
    Mar 2017
    Posts
    96
    Thanks G/R
    1/4
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    WD's Attack speed

    Is it possible to see the attack speed of members of the party, for example WD's AS? which plugin is responsible for this?
    I managed to find this topic https://www.ownedcore.com/forums/dia...nder-feet.html (Attack Speed Under Feet)
    but there's only myself AS

    ty
    Last edited by Romanmas; 03-27-2020 at 09:04 AM.

    These ads disappear when you log in.

  2. #2
    RNN's Avatar Elite User
    Reputation
    520
    Join Date
    Sep 2018
    Posts
    737
    Thanks G/R
    80/502
    Trade Feedback
    0 (0%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Code:
    using System.Globalization;
    using Turbo.Plugins.Default;
    
    namespace Turbo.Plugins.glq
    {
    	public class AttackSpeed : BasePlugin, IInGameTopPainter
    	{
    		public TopLabelWithTitleDecorator AttackSpeedDecorator { get; set; }
    		public AttackSpeed()
    		{
    			Enabled = true;
    		}
    
    		public override void Load(IController hud)
    		{
    			base.Load(hud);			
    			AttackSpeedDecorator = new TopLabelWithTitleDecorator(Hud)
    			{
    				BackgroundBrush = Hud.Render.CreateBrush(160, 255, 255, 255, 0),
    				BorderBrush = Hud.Render.CreateBrush(255, 0, 0, 0, -1),
    				TextFont = Hud.Render.CreateFont("tahoma", 8, 255, 0, 0, 0, true, false, false),
    			};
    		}
    
    		public void PaintTopInGame(ClipState clipState)
    		{
    			if (Hud.Render.UiHidden) return;
    
    			if (clipState == ClipState.BeforeClip)
    			{
    				var w = Hud.Window.Size.Width * 0.04f;
    				var h = Hud.Window.Size.Height * 0.02f;
    				var OffsetY = 50;
    							
    				foreach(var player in Hud.Game.Players)
    				{
    					var x = player.FloorCoordinate.ToScreenCoordinate().X - w/2;
    					var y = player.FloorCoordinate.ToScreenCoordinate().Y - h/2 + OffsetY;
    					AttackSpeedDecorator.Paint(x , y, w, h, player.Offense.AttackSpeed.ToString("F2", CultureInfo.InvariantCulture) + "/s");
    				}
    			}
    		}
    	}
    }

  3. #3
    Romanmas's Avatar Member
    Reputation
    6
    Join Date
    Mar 2017
    Posts
    96
    Thanks G/R
    1/4
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by RNN View Post
    Code:
    using System.Globalization;
    using Turbo.Plugins.Default;
    
    namespace Turbo.Plugins.glq
    {
    	public class AttackSpeed : BasePlugin, IInGameTopPainter
    	{
    		public TopLabelWithTitleDecorator AttackSpeedDecorator { get; set; }
    		public AttackSpeed()
    		{
    			Enabled = true;
    		}
    
    		public override void Load(IController hud)
    		{
    			base.Load(hud);			
    			AttackSpeedDecorator = new TopLabelWithTitleDecorator(Hud)
    			{
    				BackgroundBrush = Hud.Render.CreateBrush(160, 255, 255, 255, 0),
    				BorderBrush = Hud.Render.CreateBrush(255, 0, 0, 0, -1),
    				TextFont = Hud.Render.CreateFont("tahoma", 8, 255, 0, 0, 0, true, false, false),
    			};
    		}
    
    		public void PaintTopInGame(ClipState clipState)
    		{
    			if (Hud.Render.UiHidden) return;
    
    			if (clipState == ClipState.BeforeClip)
    			{
    				var w = Hud.Window.Size.Width * 0.04f;
    				var h = Hud.Window.Size.Height * 0.02f;
    				var OffsetY = 50;
    							
    				foreach(var player in Hud.Game.Players)
    				{
    					var x = player.FloorCoordinate.ToScreenCoordinate().X - w/2;
    					var y = player.FloorCoordinate.ToScreenCoordinate().Y - h/2 + OffsetY;
    					AttackSpeedDecorator.Paint(x , y, w, h, player.Offense.AttackSpeed.ToString("F2", CultureInfo.InvariantCulture) + "/s");
    				}
    			}
    		}
    	}
    }
    Thank you for the plugin. I have 2 questions:
    - how do I make only WD attack speed visible?
    - how do I make the attack speed next to the WD portrait or somewhere else, in the corner of the screen for example, not under hero feet?

  4. #4
    RNN's Avatar Elite User
    Reputation
    520
    Join Date
    Sep 2018
    Posts
    737
    Thanks G/R
    80/502
    Trade Feedback
    0 (0%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Code:
    using System.Globalization;
    using Turbo.Plugins.Default;
    
    namespace Turbo.Plugins.glq
    {
    	public class AttackSpeed : BasePlugin, IInGameTopPainter
    	{
    		public TopLabelWithTitleDecorator AttackSpeedDecorator { get; set; }
    		public AttackSpeed()
    		{
    			Enabled = true;
    		}
    
    		public override void Load(IController hud)
    		{
    			base.Load(hud);			
    			AttackSpeedDecorator = new TopLabelWithTitleDecorator(Hud)
    			{
    				BackgroundBrush = Hud.Render.CreateBrush(160, 255, 255, 255, 0),
    				BorderBrush = Hud.Render.CreateBrush(255, 0, 0, 0, -1),
    				TextFont = Hud.Render.CreateFont("tahoma", 8, 255, 0, 0, 0, true, false, false),
    			};
    		}
    
    		public void PaintTopInGame(ClipState clipState)
    		{
    			if (Hud.Render.UiHidden) return;
    
    			if (clipState == ClipState.BeforeClip)
    			{
    				var w = Hud.Window.Size.Width * 0.04f;
    				var h = Hud.Window.Size.Height * 0.02f;						
    				foreach(var player in Hud.Game.Players)
    				{
    					if (player.HeroClassDefinition.HeroClass == HeroClass.WitchDoctor)
    					{						
    						float x = player.PortraitUiElement.Rectangle.X + Hud.Window.Size.Width * 0.08f;
    						float y = player.PortraitUiElement.Rectangle.Y + Hud.Window.Size.Height * 0.04f;
    						AttackSpeedDecorator.Paint(x , y, w, h, player.Offense.AttackSpeed.ToString("F2", CultureInfo.InvariantCulture) + "/s");
    					}
    				}
    			}
    		}
    	}
    }
    Modify what is blue to change the position with respect to the portrait

  5. Thanks Romanmas, Wasted75 (2 members gave Thanks to RNN for this useful post)
  6. #5
    Romanmas's Avatar Member
    Reputation
    6
    Join Date
    Mar 2017
    Posts
    96
    Thanks G/R
    1/4
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    THX a lot.
    Last edited by Romanmas; 03-27-2020 at 03:54 PM.

  7. #6
    Romanmas's Avatar Member
    Reputation
    6
    Join Date
    Mar 2017
    Posts
    96
    Thanks G/R
    1/4
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    THX a lot.

  8. #7
    Violet rain's Avatar Member
    Reputation
    1
    Join Date
    Jun 2018
    Posts
    35
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by RNN View Post
    Code:
    using System.Globalization;
    using Turbo.Plugins.Default;
    
    namespace Turbo.Plugins.glq
    {
    	public class AttackSpeed : BasePlugin, IInGameTopPainter
    	{
    		public TopLabelWithTitleDecorator AttackSpeedDecorator { get; set; }
    		public AttackSpeed()
    		{
    			Enabled = true;
    		}
    
    		public override void Load(IController hud)
    		{
    			base.Load(hud);			
    			AttackSpeedDecorator = new TopLabelWithTitleDecorator(Hud)
    			{
    				BackgroundBrush = Hud.Render.CreateBrush(160, 255, 255, 255, 0),
    				BorderBrush = Hud.Render.CreateBrush(255, 0, 0, 0, -1),
    				TextFont = Hud.Render.CreateFont("tahoma", 8, 255, 0, 0, 0, true, false, false),
    			};
    		}
    
    		public void PaintTopInGame(ClipState clipState)
    		{
    			if (Hud.Render.UiHidden) return;
    
    			if (clipState == ClipState.BeforeClip)
    			{
    				var w = Hud.Window.Size.Width * 0.04f;
    				var h = Hud.Window.Size.Height * 0.02f;						
    				foreach(var player in Hud.Game.Players)
    				{
    					if (player.HeroClassDefinition.HeroClass == HeroClass.WitchDoctor)
    					{						
    						float x = player.PortraitUiElement.Rectangle.X + Hud.Window.Size.Width * 0.08f;
    						float y = player.PortraitUiElement.Rectangle.Y + Hud.Window.Size.Height * 0.04f;
    						AttackSpeedDecorator.Paint(x , y, w, h, player.Offense.AttackSpeed.ToString("F2", CultureInfo.InvariantCulture) + "/s");
    					}
    				}
    			}
    		}
    	}
    }
    Modify what is blue to change the position with respect to the portrait
    Very good plugin.
    I want to add crusader attack speed, How do I modify?

  9. #8
    RNN's Avatar Elite User
    Reputation
    520
    Join Date
    Sep 2018
    Posts
    737
    Thanks G/R
    80/502
    Trade Feedback
    0 (0%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Replace the line
    Code:
    if (player.HeroClassDefinition.HeroClass == HeroClass.WitchDoctor)
    with this one
    Code:
    if  ( (player.HeroClassDefinition.HeroClass == HeroClass.WitchDoctor) || (player.HeroClassDefinition.HeroClass == HeroClass.Crusader) )

  10. #9
    Violet rain's Avatar Member
    Reputation
    1
    Join Date
    Jun 2018
    Posts
    35
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thank you~

  11. #10
    takayo72's Avatar Member
    Reputation
    14
    Join Date
    Jan 2018
    Posts
    155
    Thanks G/R
    25/12
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    How to check in if follower is hired in solo play ?

    In group, follower has been dismissed next to the portrait which has much more empty space

    solo mine, right below follower



    in party, all memebers right below skill bar
    Last edited by takayo72; 04-02-2020 at 08:48 PM.

  12. #11
    takayo72's Avatar Member
    Reputation
    14
    Join Date
    Jan 2018
    Posts
    155
    Thanks G/R
    25/12
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I have referenced some code from other plugins and I have modified my own version of attackspeed
    The attack speed will be shown on vary position depending on where you are in party or solo with or without follower hired.
    The code might not be optimized. Im not a CSharp programmer.

    Code:
    using System.Linq;
    using System.Collections.Generic;
    using System.Globalization;
    using Turbo.Plugins.Default;
    
    namespace Turbo.Plugins.glq
    {
    	public class AttackSpeed : BasePlugin, IInGameTopPainter
    	{
    		public TopLabelWithTitleDecorator AttackSpeedDecorator { get; set; }
            private readonly ActorSnoEnum[] snoIds = new ActorSnoEnum[] {
                (ActorSnoEnum) 4482,
                (ActorSnoEnum) 52693,
                (ActorSnoEnum) 52694,
                (ActorSnoEnum) 453793,
                (ActorSnoEnum) 473420
            };
    		public AttackSpeed()
    		{
    			Enabled = true;
    		}
    
    		public override void Load(IController hud)
    		{
    			base.Load(hud);
    			AttackSpeedDecorator = new TopLabelWithTitleDecorator(Hud)
    			{
    				BackgroundBrush = Hud.Render.CreateBrush(160, 255, 255, 255, 0),
    				BorderBrush = Hud.Render.CreateBrush(255, 0, 0, 0, -1),
    				TextFont = Hud.Render.CreateFont("tahoma", 8, 255, 0, 0, 0, true, false, false),
    			};
    		}
    
    		public void PaintTopInGame(ClipState clipState)
    		{
    			if (Hud.Render.UiHidden) return;
    
    			if (clipState == ClipState.BeforeClip)
    			{
    				var w = Hud.Window.Size.Width * 0.04f;
    				var h = Hud.Window.Size.Height * 0.02f;
                    if (Hud.Game.NumberOfPlayersInGame > 1)
                    {
                        // in party group
                        foreach(var player in Hud.Game.Players)
                            {
                                if  ( (player.HeroClassDefinition.HeroClass == HeroClass.WitchDoctor) || (player.HeroClassDefinition.HeroClass == HeroClass.Crusader) )
                                {
                                    float x = player.PortraitUiElement.Rectangle.X + Hud.Window.Size.Width * 0.048f;
                                    float y = player.PortraitUiElement.Rectangle.Y + Hud.Window.Size.Height * 0.04f;
                                    AttackSpeedDecorator.Paint(x , y, w, h, player.Offense.AttackSpeed.ToString("F2", CultureInfo.InvariantCulture) + "/s");
                                }
                            }
                    }
                    else {
                        // in solo
                        var actors = Hud.Game.Actors.Where(x => snoIds.Contains(x.SnoActor.Sno));
                        if (actors.Any())
                        {
                            // follower hired
                            foreach(var player in Hud.Game.Players)
                            {
                                if  ( (player.HeroClassDefinition.HeroClass == HeroClass.WitchDoctor) || (player.HeroClassDefinition.HeroClass == HeroClass.Crusader) )
                                {
                                    float x = player.PortraitUiElement.Rectangle.X + Hud.Window.Size.Width * 0.052f;
                                    float y = player.PortraitUiElement.Rectangle.Y + Hud.Window.Size.Height * 0.09f;
                                    AttackSpeedDecorator.Paint(x , y, w, h, player.Offense.AttackSpeed.ToString("F2", CultureInfo.InvariantCulture) + "/s");
                                }
                            }
                        } else {
                            // no follower hired
                            foreach(var player in Hud.Game.Players)
                            {
                                if  ( (player.HeroClassDefinition.HeroClass == HeroClass.WitchDoctor) || (player.HeroClassDefinition.HeroClass == HeroClass.Crusader) )
                                {
                                    float x = player.PortraitUiElement.Rectangle.X + Hud.Window.Size.Width * 0.048f;
                                    float y = player.PortraitUiElement.Rectangle.Y + Hud.Window.Size.Height * 0.04f;
                                    AttackSpeedDecorator.Paint(x , y, w, h, player.Offense.AttackSpeed.ToString("F2", CultureInfo.InvariantCulture) + "/s");
                                }
                            }
                        }
                    }
    			}
    		}
    	}
    }
    optimized code
    Code:
    using System.Linq;
    // using System.Collections.Generic;
    using System.Globalization;
    using Turbo.Plugins.Default;
    
    namespace Turbo.Plugins.glq
    {
    	public class AttackSpeed : BasePlugin, IInGameTopPainter
    	{
    		public TopLabelWithTitleDecorator AttackSpeedDecorator { get; set; }
            private readonly ActorSnoEnum[] snoIds = new ActorSnoEnum[] {
                (ActorSnoEnum) 4482,
                (ActorSnoEnum) 52693,
                (ActorSnoEnum) 52694,
                (ActorSnoEnum) 453793,
                (ActorSnoEnum) 473420
            };
    
            public float follower_OffsetX  { get; set; }
    		public float follower_OffsetY  { get; set; }
            public float OffsetX  { get; set; }
    		public float OffsetY  { get; set; }
    
    		public AttackSpeed()
    		{
    			Enabled = true;
    		}
    
    		public override void Load(IController hud)
    		{
    			base.Load(hud);
                OffsetX = 0.048f;
                OffsetY = 0.04f;
                follower_OffsetX = 0.052f;
                follower_OffsetY = 0.09f;
    
                AttackSpeedDecorator = new TopLabelWithTitleDecorator(Hud)
    			{
    				BackgroundBrush = Hud.Render.CreateBrush(160, 255, 255, 255, 0),
    				BorderBrush = Hud.Render.CreateBrush(255, 0, 0, 0, -1),
    				TextFont = Hud.Render.CreateFont("tahoma", 8, 255, 0, 0, 0, true, false, false),
    			};
    		}
    
    		public void PaintTopInGame(ClipState clipState)
    		{
    			if (Hud.Render.UiHidden) return;
    
    			if (clipState == ClipState.BeforeClip)
    			{
    				var w = Hud.Window.Size.Width * 0.04f;
    				var h = Hud.Window.Size.Height * 0.02f;
                    var _x = OffsetX;
                    var _y = OffsetY;
    
                    if (Hud.Game.NumberOfPlayersInGame > 1)
                    {
                        // in party group
                        _x = OffsetX;
                        _y = OffsetY;
                    }
                    else {
                        // in solo
                        var actors = Hud.Game.Actors.Where(x => snoIds.Contains(x.SnoActor.Sno));
                        if (actors.Any())
                        {
                            // follower hired
                            _x = follower_OffsetX;
                            _y = follower_OffsetY;
                        }
                        else
                        {
                            // no follower hired
                            _x = OffsetX;
                            _y = OffsetY;
                        }
                    }
                    foreach(var player in Hud.Game.Players)
                    {
                        if  ( (player.HeroClassDefinition.HeroClass == HeroClass.WitchDoctor) || (player.HeroClassDefinition.HeroClass == HeroClass.Crusader) )
                        {
                            float x = player.PortraitUiElement.Rectangle.X + Hud.Window.Size.Width * _x;
                            float y = player.PortraitUiElement.Rectangle.Y + Hud.Window.Size.Height * _y;
                            AttackSpeedDecorator.Paint(x , y, w, h, player.Offense.AttackSpeed.ToString("F2", CultureInfo.InvariantCulture) + "/s");
                        }
                    }
    			}
    		}
    	}
    }
    Last edited by takayo72; 04-03-2020 at 12:52 AM.

Similar Threads

  1. [Exploit]Insane attack speed for every melee class!
    By Vig in forum World of Warcraft Exploits
    Replies: 34
    Last Post: 09-16-2008, 12:34 PM
  2. Get a +65% attack speed aura
    By Fwaky in forum World of Warcraft Exploits
    Replies: 38
    Last Post: 05-13-2008, 11:52 PM
  3. [Help request] Attack speed
    By Ellenor in forum World of Warcraft Emulator Servers
    Replies: 2
    Last Post: 01-21-2008, 06:31 PM
  4. Attack speed... bug?
    By Kykyske in forum World of Warcraft Exploits
    Replies: 4
    Last Post: 12-13-2007, 10:45 PM
  5. Attack Speed
    By sinfulanjel in forum World of Warcraft Emulator Servers
    Replies: 2
    Last Post: 11-10-2007, 07:43 AM
All times are GMT -5. The time now is 02:45 PM. 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