Wizard plugin from old forum menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 20
  1. #1
    Gurbak's Avatar Member Super Awesome Sparke Cake CoreCoins Purchaser
    Reputation
    8
    Join Date
    Dec 2014
    Posts
    25
    Thanks G/R
    6/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Wizard plugin from old forum

    There was a neat plugin on the old forum made for Wizards showing cd of archon, tal rasha stacks etc in a nice little way in the middle of the screen. I was retarded and forgot i had made a backup of it and it got deleted.

    Anyone have it laying around or planning on making a new one?

    Wizard plugin from old forum
  2. #2
    JackCeparou's Avatar Savvy ? 🐒
    Reputation
    534
    Join Date
    Mar 2017
    Posts
    588
    Thanks G/R
    51/490
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    /plugins/RuneB/ArchonWizPlugin.cs
    /plugins/RuneB/ArchonWizConfig.cs

    I sent a message to him pointing here, hope he will see it soon ;p
    Hide the Rum! --> Default theme customization 101 <--

  3. Thanks Gurbak, dm450, johnbl (3 members gave Thanks to JackCeparou for this useful post)
  4. #3
    dm450's Avatar Member
    Reputation
    1
    Join Date
    Mar 2017
    Posts
    3
    Thanks G/R
    5/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Jack, I'm totally lost with this new format and plugins. I see the two .cs files but have no clue where they go, ie what folder, also does I have to change "PluginEnablerOrDisablerPlugin" to .cs? This might as well all be in Korean lol.

  5. #4
    PsychoPyro202's Avatar Active Member
    Reputation
    25
    Join Date
    Mar 2017
    Posts
    34
    Thanks G/R
    10/17
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by dm450 View Post
    Jack, I'm totally lost with this new format and plugins. I see the two .cs files but have no clue where they go, ie what folder, also does I have to change "PluginEnablerOrDisablerPlugin" to .cs? This might as well all be in Korean lol.
    The download links are written such as they ARE where the files go. In this case you would put them in /plugins/RuneB/ArchonWizPlugin.cs and /plugins/RuneB/ArchonWizConfig.cs

    so thudfolder>plugins folder> make the RuneB folder> then use the name of the file.cs

  6. #5
    Kirbles's Avatar Member
    Reputation
    1
    Join Date
    Mar 2017
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Doesn't seem to work with the current version of thud Hopefully RuneB will come around soon and update it.

  7. #6
    JackCeparou's Avatar Savvy ? 🐒
    Reputation
    534
    Join Date
    Mar 2017
    Posts
    588
    Thanks G/R
    51/490
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Kirbles View Post
    Doesn't seem to work with the current version of thud Hopefully RuneB will come around soon and update it.
    : /
    I should have tested it, but no archon here.. i hate this build so much..
    Hide the Rum! --> Default theme customization 101 <--

  8. #7
    dm450's Avatar Member
    Reputation
    1
    Join Date
    Mar 2017
    Posts
    3
    Thanks G/R
    5/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ok, ty for the replies. I'll wait for it to be updated.

  9. #8
    Gurbak's Avatar Member Super Awesome Sparke Cake CoreCoins Purchaser
    Reputation
    8
    Join Date
    Dec 2014
    Posts
    25
    Thanks G/R
    6/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The plugin works but it needs some bugfixing because it throws some paint errors

    Exceptions
    Last edited by Gurbak; 03-28-2017 at 11:50 AM.

  10. Thanks dm450 (1 members gave Thanks to Gurbak for this useful post)
  11. #9
    Kirbles's Avatar Member
    Reputation
    1
    Join Date
    Mar 2017
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Saw that RuneB is posting on the new forums. Just wondering if he plans on updating this plugin :3

  12. #10
    milctoast's Avatar Member
    Reputation
    1
    Join Date
    Sep 2007
    Posts
    6
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Gurbak View Post
    The plugin works but it needs some bugfixing because it throws some paint errors

    Exceptions
    If you disable the warnings then the plugin works perfectly fine.

    plugin.ShowWarnings = false;
    in ArchonWizConfig.cs

  13. #11
    Razzko's Avatar Active Member
    Reputation
    15
    Join Date
    Oct 2007
    Posts
    103
    Thanks G/R
    15/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Gonna bump this as I eagerly wait for a fix.

    I know I can just turn off warnings, but I've got so used to them that I'm not sure if my Slow Time in Archon is even up half the time. I keep them on and just deal with the Exceptions (it still functions, just ~150 Exceptions in the start).

    I also just want to say that this plugin is critical for my Wizard play, and I hope it continues being maintained for as long as this Manald Heal playstyle is in the meta. Don't abandon this
    Last edited by Razzko; 04-12-2017 at 02:19 AM.

  14. #12
    deadmarine's Avatar Contributor
    Reputation
    104
    Join Date
    Oct 2007
    Posts
    119
    Thanks G/R
    3/49
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    my fix was a lie

    edit2: possible new fix

    Looks like the issue may have to do with how he is trying to do localization. i haven't gotten errors yet by switching the drawwarnings function from
    PHP Code:
    var layout WarningFont.GetTextLayout("\u22EF\u2995 " me.Powers.GetBuff(135663).SnoPower.NameLocalized " \u2996\u22EF"); 
    to

    PHP Code:
    var layout WarningFont.GetTextLayout("\u22EF\u2995 Slow Time \u2996\u22EF"); 
    Last edited by deadmarine; 04-12-2017 at 09:23 AM. Reason: after more testing it didnt work

  15. Thanks Razzko (1 members gave Thanks to deadmarine for this useful post)
  16. #13
    Razzko's Avatar Active Member
    Reputation
    15
    Join Date
    Oct 2007
    Posts
    103
    Thanks G/R
    15/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by deadmarine View Post
    my fix was a lie

    edit2: possible new fix

    Looks like the issue may have to do with how he is trying to do localization. i haven't gotten errors yet by switching the drawwarnings function from
    PHP Code:
    var layout WarningFont.GetTextLayout("\u22EF\u2995 " me.Powers.GetBuff(135663).SnoPower.NameLocalized " \u2996\u22EF"); 
    to

    PHP Code:
    var layout WarningFont.GetTextLayout("\u22EF\u2995 Slow Time \u2996\u22EF"); 
    Same here, no more errors. I'll post if I get them again

  17. #14
    Gurbak's Avatar Member Super Awesome Sparke Cake CoreCoins Purchaser
    Reputation
    8
    Join Date
    Dec 2014
    Posts
    25
    Thanks G/R
    6/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Works for me aswell with this change, ill update if anything changes.

  18. #15
    fodalweb's Avatar Member
    Reputation
    7
    Join Date
    Mar 2017
    Posts
    6
    Thanks G/R
    21/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Both files with fixes mentioned above

    ArchonWizPlugin.cs should be

    Code:
    using System.Linq;
    using Turbo.Plugins.Default;
    
    namespace Turbo.Plugins.RuneB
    {
        public class ArchonWizPlugin : BasePlugin, IInGameTopPainter, ICustomizer
        {
            public bool ShowWarnings { get; set; }
            public bool ShowInTown { get; set; }
            public bool ShowZeiCircle { get; set; }
            public bool ShowRashaElements { get; set; }
            public bool ShowArchonCD { get; set; }
            public bool ShowArchonRemain { get; set; }
            public bool AlwaysShowElements { get; set; }
            public float WarningYPos { get; set; }
            public float WarningYPosIncr { get; set; }
            public float ArchonCDandRemainYPos { get; set; }
    
            public GroundCircleDecorator ZeiRanceIndicator { get; set; }
            public TopLabelDecorator ArchonCDLabel { get; set; }
            public TopLabelDecorator ArchonCooldownLabel { get; set; }
            public TopLabelDecorator ArchonRemainingLabel { get; set; }
    
            public IFont WarningFont { get; set; }
            public IFont ArchonCDFont { get; set; }
            public IFont ArchonRemainFont { get; set; }
            public IFont ArchonRemainSoonFont { get; set; }
    
            public IBrush RashaBackgroundBrush { get; set; }
            public IBrush FireBrush { get; set; }
            public IBrush ArcaneBrush { get; set; }
            public IBrush LightningBrush { get; set; }
            public IBrush ColdBrush { get; set; }
            public IBrush GreyBrush { get; set; }
    
            private IPlayerSkill archonSkill;
            private IPlayerSkill magicWeaponSkill;
            private IPlayerSkill energyArmorSkill;
    
            private float hudWidth { get { return Hud.Window.Size.Width; } }
            private float hudHeight { get { return Hud.Window.Size.Height; } }
    
            private float _lWidth, _lHeight, _lRashaSize, _lRashaYpos, _lRashaSizeMod, _arcCDRemain, _tick;
            private bool _timerRunning = false;
    
            public ArchonWizPlugin()
            {
                Enabled = true;
            }
    
            public void Customize()
            {
                Hud.RunOnPlugin<PlayerBottomBuffListPlugin>(plugin =>
                {
                    plugin.BuffPainter.ShowTimeLeftNumbers = true;
                    plugin.RuleCalculator.Rules.Add(new BuffRule(134872) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true, IconSizeMultiplier = 1.3f }); // Archon 
                    plugin.RuleCalculator.Rules.Add(new BuffRule(429855) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, IconSizeMultiplier = 1.3f }); // Tal Rasha
                });
            }
    
            public override void Load(IController hud)
            {
                base.Load(hud);
    
                // Public vars
                ShowWarnings = false;
                ShowInTown = true;
                ShowZeiCircle = true;
                ShowRashaElements = true;
                ShowArchonCD = true;
                ShowArchonRemain = true;
                AlwaysShowElements = false;
                WarningYPos = 0.27f;
                WarningYPosIncr = 0.022f; // Distance between warnings
                ArchonCDandRemainYPos = 0.5f; // Just below tal rasha icons = 0.605f;
    
                WarningFont = Hud.Render.CreateFont("tahoma", 13f, 200, 255, 0, 0, false, false, true);
                ArchonCDFont = Hud.Render.CreateFont("tahoma", 10f, 255, 140, 140, 180, false, false, true);
                ArchonRemainFont = Hud.Render.CreateFont("tahoma", 10f, 255, 80, 140, 210, false, false, true);
                ArchonRemainSoonFont = Hud.Render.CreateFont("tahoma", 14.5f, 255, 255, 0, 0, false, false, true);
    
                RashaBackgroundBrush = Hud.Render.CreateBrush(100, 30, 30, 30, 0);
                GreyBrush = Hud.Render.CreateBrush(255, 50, 50, 50, 0);
                FireBrush = Hud.Render.CreateBrush(255, 200, 130, 30, 0);
                ArcaneBrush = Hud.Render.CreateBrush(255, 180, 80, 180, 0);
                LightningBrush = Hud.Render.CreateBrush(255, 0, 65, 145, 0);
                ColdBrush = Hud.Render.CreateBrush(255, 80, 130, 180, 0);
                ZeiRanceIndicator = new GroundCircleDecorator(Hud)
                {
                    Brush = Hud.Render.CreateBrush(50, 14, 200, 245, 1.5f),
                    Radius = 50f
                };
                ArchonCooldownLabel = new TopLabelDecorator(Hud)
                {
                    TextFont = Hud.Render.CreateFont("tahoma", 10f, 255, 140, 140, 180, false, false, 160, 0, 0, 0, true),
                    TextFunc = () => ArchonCooldown(),
                };
    
                // Private vars
                _lWidth = 80;
                _lHeight = 15;
                _lRashaSize = 24f;
                _lRashaYpos = 0.585f;
                _lRashaSizeMod = 0.9f;
    
            }
    
            public void PaintTopInGame(ClipState clipState)
            {
                if (clipState != ClipState.BeforeClip) return;
    
                if (Hud.Game.IsInGame && Hud.Game.Me.HeroClassDefinition.HeroClass == HeroClass.Wizard && !(Hud.Game.Me.IsInTown && !ShowInTown))
                {
                    var me = Hud.Game.Me;
                    UpdateSkills(me);
    
                    //If Disentegration Wave is channelled, draw zei circle
                    if (me.Powers.BuffIsActive(392891, 4) && ShowZeiCircle)
                        ZeiRanceIndicator.Paint(me, me.FloorCoordinate, null);
    
                    //Draw missing buff warnings
                    if (ShowWarnings && !me.IsDead)
                        DrawWarnings(me);
    
                    //Draw indicators for each tal rasha element
                    if ((me.Powers.BuffIsActive(429855, 5) || AlwaysShowElements) && ShowRashaElements)
                        TalRashaElements(me);
    
                    //Draw Archon cooldown
                    if (archonSkill != null && ShowArchonCD)
                        ArchonCooldownLabel.Paint(hudWidth * 0.5f - _lWidth / 2, hudHeight * (ArchonCDandRemainYPos+0.015f), _lWidth, _lHeight, HorizontalAlign.Center);
    
                    //Draw Archon time remaining
                    if (archonSkill != null && ShowArchonRemain)
                        ArchonRemaining(me);
                }
            }
    
            public string ArchonCooldown()
            {
                string s = "";
                if (archonSkill.CooldownFinishTick > Hud.Game.CurrentGameTick)
                {
                    var c = (archonSkill.CooldownFinishTick - Hud.Game.CurrentGameTick) / 60.0d;
                    s = string.Format("\u267F {0:N1} \u267F", c);
                }
                return s;
            }
    
            private void ArchonRemaining(IPlayer me)
            {
                if (me.Powers.BuffIsActive(134872, 2))
                {
                    if (!_timerRunning)
                        _tick = Hud.Game.CurrentGameTick;
                    _timerRunning = true;
    
                    var r = 20f - ((Hud.Game.CurrentGameTick - _tick) / 60.0d);
                    if (r > 3f)
                    {
                        var layout = ArchonRemainFont.GetTextLayout(string.Format("{0:N1}", r));
                        ArchonRemainFont.DrawText(layout, hudWidth * 0.5f - (layout.Metrics.Width * 0.5f), hudHeight * (ArchonCDandRemainYPos + 0.015f));
                    }
                    else
                    {
                        string str = string.Format("{0:N1}", r);
                        if (r <= 3 && r > 2) str = string.Format("\u231A {0:N1} \u231A", r);
                        if (r <= 2 && r > 1) str = string.Format("\u231B {0:N1} \u231B", r);
                        if (r <= 1) str = string.Format("\u25B6 {0:N1} \u25C0", r);
                        var layout = ArchonRemainSoonFont.GetTextLayout(str);
                        ArchonRemainSoonFont.DrawText(layout, hudWidth * 0.5f - (layout.Metrics.Width * 0.5f), hudHeight * (ArchonCDandRemainYPos + 0.005f));
                    }
                }
                else _timerRunning = false;
            }
    
            private void TalRashaElements(IPlayer me)
            {
                RashaBackgroundBrush.DrawRectangle((hudWidth * 0.5f - _lRashaSize * .5f) - _lRashaSize * 1.6f, hudHeight * _lRashaYpos - _lRashaSize * 0.1f, _lRashaSize * 4.1f, _lRashaSize * 1.1f);
    
                if (me.Powers.BuffIsActive(429855, 1)) ArcaneBrush.DrawRectangle((hudWidth * 0.5f - _lRashaSize * .5f) - _lRashaSize * 1.5f, hudHeight * _lRashaYpos, _lRashaSize * _lRashaSizeMod, _lRashaSize * _lRashaSizeMod);
                else DrawGreyBrush(-_lRashaSize * 1.5f);
    
                if (me.Powers.BuffIsActive(429855, 2)) ColdBrush.DrawRectangle((hudWidth * 0.5f - _lRashaSize * .5f) - _lRashaSize / 2, hudHeight * _lRashaYpos, _lRashaSize * _lRashaSizeMod, _lRashaSize * _lRashaSizeMod);
                else DrawGreyBrush(-_lRashaSize / 2);
    
                if (me.Powers.BuffIsActive(429855, 3)) FireBrush.DrawRectangle((hudWidth * 0.5f - _lRashaSize * .5f) + _lRashaSize / 2, hudHeight * _lRashaYpos, _lRashaSize * _lRashaSizeMod, _lRashaSize * _lRashaSizeMod);
                else DrawGreyBrush(_lRashaSize / 2);
    
                if (me.Powers.BuffIsActive(429855, 4)) LightningBrush.DrawRectangle((hudWidth * 0.5f - _lRashaSize * .5f) + _lRashaSize * 1.5f, hudHeight * _lRashaYpos, _lRashaSize * _lRashaSizeMod, _lRashaSize * _lRashaSizeMod);
                else DrawGreyBrush(_lRashaSize * 1.5f);
            }
    
            private void DrawGreyBrush(float xPos)
            {
                GreyBrush.DrawRectangle((hudWidth * 0.5f - _lRashaSize * .5f) + xPos, hudHeight * _lRashaYpos, _lRashaSize * _lRashaSizeMod, _lRashaSize * _lRashaSizeMod);
            }
    
            private void DrawWarnings(IPlayer me)
            {
                //IN ARCHON
                if (me.Powers.BuffIsActive(134872, 2)) //Archon
                {
                    if (!me.Powers.BuffIsActive(135663, 0)) //Slow Time
                    {
                        var layout = WarningFont.GetTextLayout("\u22EF\u2995 Slow Time \u2996\u22EF");
     // UsedWizardPowers returns "Archon" instead of "Slow Time" so i user GetBuff() instead 
                        WarningFont.DrawText(layout, hudWidth * 0.5f - (layout.Metrics.Width * 0.5f), hudHeight * WarningYPos);
                    }
                }
                else
                {//NOT IN ARCHON
                    if (magicWeaponSkill != null)
                    {
                        var layout = WarningFont.GetTextLayout("\u22EF\u2995 " + me.Powers.UsedWizardPowers.MagicWeapon.SnoPower.NameLocalized + " \u2996\u22EF");
                        if (!me.Powers.BuffIsActive(76108, 0))
                            WarningFont.DrawText(layout, hudWidth * 0.5f - (layout.Metrics.Width * 0.5f), hudHeight * WarningYPos);
                    }
    
                    if (energyArmorSkill != null)
                    {
                        var layout = WarningFont.GetTextLayout("\u22EF\u2995 " + me.Powers.UsedWizardPowers.EnergyArmor.SnoPower.NameLocalized + " \u2996\u22EF");
                        if (!me.Powers.BuffIsActive(86991, 0))
                            WarningFont.DrawText(layout, hudWidth * 0.5f - (layout.Metrics.Width * 0.5f), hudHeight * (WarningYPos+WarningYPosIncr));
                    }
                }
            }
    
            private void UpdateSkills(IPlayer me)
            {
                me.Powers.UsedSkills.ForEach(skill =>
                {
                    if (skill.SnoPower.Sno == 134872) archonSkill = skill;
                    if (skill.SnoPower.Sno == 76108) magicWeaponSkill = skill;
                    if (skill.SnoPower.Sno == 86991) energyArmorSkill = skill;
                });
            }
        }
    }
    ArchonWizConfig.cs

    Code:
    using Turbo.Plugins.Default;
    
    namespace Turbo.Plugins.RuneB
    {
    
        public class ArchonWizConfig : BasePlugin, ICustomizer
        {
    
            public ArchonWizConfig()
            {
                Enabled = true;
            }
    
            public override void Load(IController hud)
            {
                base.Load(hud);
            }
    
            public void Customize()
            {
                Hud.RunOnPlugin<RuneB.ArchonWizPlugin>(plugin =>
                {
                    plugin.ShowWarnings = true;
                    plugin.ShowInTown = true;
                    plugin.ShowZeiCircle = true;
                    plugin.ShowRashaElements = true;
                    plugin.ShowArchonCD = true;
                    plugin.ShowArchonRemain = true;
                    plugin.AlwaysShowElements = false;
                    plugin.WarningYPos = 0.27f;
                    plugin.ArchonCDandRemainYPos = 0.5f; // Just below tal rasha icons = 0.605f;
                    plugin.WarningYPosIncr = 0.022f; // Distance between warnings
    
                });
            }
        }
    }
    This is just the code above with the fixes listed above compiled for ease of use of others.

  19. Thanks dm450, Gurbak, Tallia (3 members gave Thanks to fodalweb for this useful post)
Page 1 of 2 12 LastLast

Similar Threads

  1. [Guide] How to easy fix old sql and/or copy old content from old db,s
    By knaur in forum WoW EMU Guides & Tutorials
    Replies: 4
    Last Post: 12-31-2008, 10:07 AM
  2. avoid premades (from wow forum)
    By Khalan in forum World of Warcraft Exploits
    Replies: 11
    Last Post: 01-16-2008, 08:43 AM
  3. Extra XP from old Elites
    By niv3k77 in forum World of Warcraft Exploits
    Replies: 0
    Last Post: 01-11-2008, 04:58 PM
  4. Banned from Wow forums
    By jbrista in forum Community Chat
    Replies: 5
    Last Post: 12-10-2007, 08:36 PM
All times are GMT -5. The time now is 01:19 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