Zei circle shown only when beam is active, can i change it?
Zei circle shown only when beam is active, can i change it?
I have some exceptions showing up in my log due to this mod. Please take a look:
2017.08.19 23:31:59.108 overlay paint error (System.NullReferenceException: Object reference not set to an instance of an object.
at Turbo.Plugins.RuneB.ArchonWizPlugin.DrawWarnings(IPlayer me)
at Turbo.Plugins.RuneB.ArchonWizPlugin.PaintTopInGame(ClipState clipState)
at ********.********** **.********()
at ********.******** *(IPlugin , String , Action )
at ********.******* *(Object , EventArgs )
at Turbo.Basic.Overlay.********())
2017.08.19 23:31:59.150 overlay paint error (System.NullReferenceException: Object reference not set to an instance of an object.
at Turbo.Plugins.RuneB.ArchonWizPlugin.DrawWarnings(IPlayer me)
at Turbo.Plugins.RuneB.ArchonWizPlugin.PaintTopInGame(ClipState clipState)
at ********.********** **.********()
at ********.******** *(IPlugin , String , Action )
at ********.******* *(Object , EventArgs )
at Turbo.Basic.Overlay.********())
2017.08.19 23:31:59.163 overlay paint error (System.NullReferenceException: Object reference not set to an instance of an object.
at Turbo.Plugins.RuneB.ArchonWizPlugin.DrawWarnings(IPlayer me)
at Turbo.Plugins.RuneB.ArchonWizPlugin.PaintTopInGame(ClipState clipState)
at ********.********** **.********()
at ********.******** *(IPlugin , String , Action )
at ********.******* *(Object , EventArgs )
at Turbo.Basic.Overlay.********())
2017.08.19 23:31:59.181 overlay paint error (System.NullReferenceException: Object reference not set to an instance of an object.
at Turbo.Plugins.RuneB.ArchonWizPlugin.DrawWarnings(IPlayer me)
at Turbo.Plugins.RuneB.ArchonWizPlugin.PaintTopInGame(ClipState clipState)
at ********.********** **.********()
at ********.******** *(IPlugin , String , Action )
at ********.******* *(Object , EventArgs )
at Turbo.Basic.Overlay.********())
2017.08.19 23:31:59.199 overlay paint error (System.NullReferenceException: Object reference not set to an instance of an object.
at Turbo.Plugins.RuneB.ArchonWizPlugin.DrawWarnings(IPlayer me)
at Turbo.Plugins.RuneB.ArchonWizPlugin.PaintTopInGame(ClipState clipState)
at ********.********** **.********()
at ********.******** *(IPlugin , String , Action )
at ********.******* *(Object , EventArgs )
at Turbo.Basic.Overlay.********())
2017.08.19 23:31:59.231 overlay paint notification (SharpDX.SharpDXException: HRESULT: [0x88990001], Module: [SharpDX.Direct2D1], ApiCode: [D2DERR_WRONG_STATE/WrongState], Message: The object was not in the correct state to process the method.
at SharpDX.Result.CheckError()
at Turbo.Basic.Overlay.********())
Not sure if this has always been in hud or not but in your section on remaining cooldown there is an IBuff function for buff timeleft.
So we can use something simpler than calculating time remaining based on game ticks.Code:public interface IBuff { IPlayer Player { get; } ISnoPower SnoPower { get; } IWatch FirstActive { get; } IWatch LastActive { get; } bool Active { get; } int[] IconCounts { get; } double[] TimeElapsedSeconds { get; } double[] TimeLeftSeconds { get; } double TimeLeft(); }
Code:
private void ArchonRemaining(IPlayer me) { if (me.Powers.BuffIsActive(134872, 2)) { var r = me.Powers.GetBuff(134872).TimeLeft(); 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)); } }
The plugin still works nice, but it was just missing warnings for other armors and familiar if you run with them.
If you don't want to do work just download the modded file and rename/overwrite the file "ArchonWizPlugin.cs" in the folder 'plugins\RuneB\ArchonWiz'
[C#] ArchonWizPlugin - Pastebin.com
If you want to do it manually these are the instructions for the 'ArchonWizPlugin.cs' file (Will let you toggle the skills in customizer)
1----search for "private IPlayerSkill _energyArmorSkill" and add these lines below the line
2----search for "if (_energyArmorSkill != null)" and add these functions after that function (they follow the same pattern)Code:private IPlayerSkill _stormArmorSkill; private IPlayerSkill _iceArmorSkill; private IPlayerSkill _familiarSkill; public bool ShowStormArmor = false; public bool ShowIceArmor = false; public bool ShowFamiliar = false;
3----search for "_energyArmorSkill = null" and add these lines below that lineCode:if (_stormArmorSkill != null && ShowStormArmor == true) { var layout = WarningFont.GetTextLayout("\u22EF\u2995 " + Hud.Sno.SnoPowers.Wizard_StormArmor.NameLocalized + " \u2996\u22EF"); if (!me.Powers.BuffIsActive(74499, 0) && !me.Powers.BuffIsActive(74499, 1) && !me.Powers.BuffIsActive(74499, 2) && !me.Powers.BuffIsActive(74499, 3) && !me.Powers.BuffIsActive(74499, 4) && !me.Powers.BuffIsActive(74499, 5)) WarningFont.DrawText(layout, HudWidth * 0.5f - (layout.Metrics.Width * 0.5f), HudHeight * (WarningYPos+WarningYPosIncr)); } if (_iceArmorSkill != null && ShowIceArmor == true) { var layout = WarningFont.GetTextLayout("\u22EF\u2995 " + Hud.Sno.SnoPowers.Wizard_IceArmor.NameLocalized + " \u2996\u22EF"); if (!me.Powers.BuffIsActive(73223, 0) && !me.Powers.BuffIsActive(73223, 1) && !me.Powers.BuffIsActive(73223, 2) && !me.Powers.BuffIsActive(73223, 3) && !me.Powers.BuffIsActive(73223, 4) && !me.Powers.BuffIsActive(73223, 5)) WarningFont.DrawText(layout, HudWidth * 0.5f - (layout.Metrics.Width * 0.5f), HudHeight * (WarningYPos+WarningYPosIncr)); } if (_familiarSkill != null && ShowFamiliar == true) { var layout = WarningFont.GetTextLayout("\u22EF\u2995 " + Hud.Sno.SnoPowers.Wizard_Familiar.NameLocalized + " \u2996\u22EF"); if (!me.Powers.BuffIsActive(99120, 0) && !me.Powers.BuffIsActive(99120, 1) && !me.Powers.BuffIsActive(99120, 2) && !me.Powers.BuffIsActive(99120, 3) && !me.Powers.BuffIsActive(99120, 4) && !me.Powers.BuffIsActive(99120, 5)) WarningFont.DrawText(layout, HudWidth * 0.5f - (layout.Metrics.Width * 0.5f), HudHeight * WarningYPos); }
4----search for "_energyArmorSkill = skill" and add these lines below that lineCode:_stormArmorSkill = null; _iceArmorSkill = null; _familiarSkill = null;
Code:if (skill.SnoPower.Sno == 74499) _stormArmorSkill = skill; if (skill.SnoPower.Sno == 73223) _iceArmorSkill = skill; if (skill.SnoPower.Sno == 99120) _familiarSkill = skill;
5----now you can add the toggle to the plugin customization in 'PluginEnablerOrDisablerPlugin.cs'
Code:plugin.ShowStormArmor = true; //false= no warning for buff plugin.ShowIceArmor = true; //false= no warning for buff plugin.ShowFamiliar = true; //false= no warning for buff
Last edited by rambo99jose; 01-21-2019 at 10:45 PM.
How do I modify it to see the Archon cooldown in the Archon transformation?
any chance to make this work to see the cooldown of an archon member in the group?
Hey RuneB, I want to make it so ArchonCooldownLabel is only shown when outside of Archon (wheel chair icons with CD text in between). As it stand whenever I spam my 1 ability "Blast" during Archon it puts Archon on a 0.5sec CD. This is shown behind the Remaining timer of Archon overlapping which makes it harder to read the Remaining time. Cheers
Edit: I found a solution by changing the IconIndex from 2 to 6. Line 140: But it only shows when Swami is active :/
//Draw Archon cooldown
if (me.Powers.BuffIsActive(134872, 6))
Last edited by Jembo; 08-23-2019 at 09:27 AM.
Hi all! Tell me how to fix a bug in version 9.1
...ArchonWizPlugin.cs(52,71) : warning CS0169: The field 'ArchonWizPlugin._arcCDRemain' is never used
thx in advance
Hello.
Not working after last TH update.
Please, fix it.
2020.07.01 14:43:50.434 20.6.28.1 D:\Games\ess64\Plugins\RuneB\ArchonWiz\ArchonWizConfig.cs(21,35) : error CS0234: The type or namespace name 'ArchonWizPlugin' does not exist in the namespace 'Turbo.Plugins.RuneB' (are you missing an assembly reference?)
Probably the problem is with ArchonWizPlugin. It contains Unicode character, and its use is being blocked by the current version of TH.
One solution is to replace the codes with the respective symbols.
I advise you to review all your plugins that appear with exceptions, looking for "\ u ..." (Unicode).
I found many symbols.
I don’t know what to do with it ...String 148: s = string.Format("\u267F {0:N1} \u267F", c);
String 170-173: 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);
String 209: var layout = WarningFont.GetTextLayout("\u22EF\u2995 " + /*me.Powers.GetBuff(135663).SnoPower.NameLocalized*/"Bubble Up" + " \u2996\u22EF"); // UsedWizardPowers returns "Archon" instead of "Slow Time" so i used GetBuff() instead
String 217: var layout = WarningFont.GetTextLayout("\u22EF\u2995 " + Hud.Sno.SnoPowers.Wizard_MagicWeapon.NameLocalized + " \u2996\u22EF");
String 224: var layout = WarningFont.GetTextLayout("\u22EF\u2995 " + Hud.Sno.SnoPowers.Wizard_EnergyArmor.NameLocalized + " \u2996\u22EF");
You have to go to this website Search - Unicode Character Table
then you need to type each \u in there hit copy and past in the plugin
Ok, I'l try it. Tnx.