WD's Attack speed menu

User Tag List

Results 1 to 11 of 11
  1. #1
    Romanmas's Avatar Member
    Reputation
    11
    Join Date
    Mar 2017
    Posts
    187
    Thanks G/R
    9/9
    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.

    WD's Attack speed
  2. #2
    RNN's Avatar Legendary
    Reputation
    813
    Join Date
    Sep 2018
    Posts
    1,055
    Thanks G/R
    104/776
    Trade Feedback
    0 (0%)
    Mentioned
    15 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
    11
    Join Date
    Mar 2017
    Posts
    187
    Thanks G/R
    9/9
    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 Legendary
    Reputation
    813
    Join Date
    Sep 2018
    Posts
    1,055
    Thanks G/R
    104/776
    Trade Feedback
    0 (0%)
    Mentioned
    15 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
    11
    Join Date
    Mar 2017
    Posts
    187
    Thanks G/R
    9/9
    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
    11
    Join Date
    Mar 2017
    Posts
    187
    Thanks G/R
    9/9
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    THX a lot.

  8. #7
    Violet rain's Avatar Member
    Reputation
    2
    Join Date
    Jun 2018
    Posts
    36
    Thanks G/R
    0/1
    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. Thanks ljj16 (1 members gave Thanks to Violet rain for this useful post)
  10. #8
    RNN's Avatar Legendary
    Reputation
    813
    Join Date
    Sep 2018
    Posts
    1,055
    Thanks G/R
    104/776
    Trade Feedback
    0 (0%)
    Mentioned
    15 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) )

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

  12. #10
    takayo72's Avatar Active Member
    Reputation
    17
    Join Date
    Jan 2018
    Posts
    203
    Thanks G/R
    43/15
    Trade Feedback
    0 (0%)
    Mentioned
    1 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.

  13. #11
    takayo72's Avatar Active Member
    Reputation
    17
    Join Date
    Jan 2018
    Posts
    203
    Thanks G/R
    43/15
    Trade Feedback
    0 (0%)
    Mentioned
    1 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:05 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