-
Member
Originally Posted by
RNN
Open file PluginEnablerOrDisablerPlugin.cs and Add
Hud.RunOnPlugin<Gigi.EliteBarPlugin>(plugin => {
plugin.DisplayAffix.Add(MonsterAffix.Frozen, "Frozen");
plugin.DisplayAffix.Add(MonsterAffix.Wormhole, "WormHole");
plugin.DisplayAffix.Add(MonsterAffix.Illusionist, "Illusion");
plugin.DisplayAffix.Add(MonsterAffix.Juggernaut, "Jugger");
plugin.DisplayAffix.Add(MonsterAffix.Waller, "Waller");
plugin.DisplayAffix.Add(MonsterAffix.Arcane, "Arcane");
plugin.DisplayAffix.Add(MonsterAffix.HealthLink, "HealthLink");
plugin.DisplayAffix.Add(MonsterAffix.Desecrator, "Desec");
plugin.DisplayAffix.Add(MonsterAffix.Shielding, "Shield");
plugin.DisplayAffix.Add(MonsterAffix.Molten, "Molten");
plugin.DisplayAffix.Add(MonsterAffix.FrozenPulse, "Pulse");
plugin.DisplayAffix.Add(MonsterAffix.Thunderstorm, "Thunder");
plugin.DisplayAffix.Add(MonsterAffix.FireChains, "Chains");
plugin.DisplayAffix.Add(MonsterAffix.Teleporter, "Teleport");
plugin.DisplayAffix.Add(MonsterAffix.Mortar, "Mortar");
plugin.DisplayAffix.Add(MonsterAffix.Horde, "Horde");
} );
Change the "text"
I don't know why only the wormhole affix appears to me. Includes all affixes as indicated.
-
Legendary
You must have an error in PluginEnablerOrDisablerPlugin.cs or EliteBarPlugin.cs. Works perfectly in a clean installation
-
Member
Originally Posted by
RNN
You must have an error in PluginEnablerOrDisablerPlugin.cs or EliteBarPlugin.cs. Works perfectly in a clean installation

I'm sorry, but I really am a fool.
Look what I found "lost" in my PluginEnabler ...
Code:
// turn off Affix
Hud.RunOnPlugin<Gigi.EliteBarPlugin>(plugin =>
{
plugin.DisplayAffix.Clear();
// plugin.DisplayAffix.Add(MonsterAffix.Arcane, "Arcane");
// plugin.DisplayAffix.Add(MonsterAffix.Frozen, "Frozen");
// plugin.DisplayAffix.Add(MonsterAffix.FrozenPulse, "Frozen Pulse");
// plugin.DisplayAffix.Add(MonsterAffix.Plagued, "Plagued");
// plugin.DisplayAffix.Add(MonsterAffix.Waller, "Waller");
// plugin.DisplayAffix.Add(MonsterAffix.Reflect, "Reflect");
// plugin.DisplayAffix.Add(MonsterAffix.Vortex, "Vortex");
plugin.DisplayAffix.Add(MonsterAffix.Wormhole, "Wormhole");
// plugin.DisplayAffix.Add(MonsterAffix.Electrified, "Electrified");
// plugin.DisplayAffix.Add(MonsterAffix.Vampiric, "Vampiric");
// plugin.DisplayAffix.Add(MonsterAffix.ExtraHealth, "Extra Health");
// plugin.DisplayAffix.Add(MonsterAffix.HealthLink, "Health Link");
// plugin.DisplayAffix.Add(MonsterAffix.Knockback, "Knockback");
// plugin.DisplayAffix.Add(MonsterAffix.Fast, "Fast");
// plugin.DisplayAffix.Add(MonsterAffix.Desecrator, "Desecrator");
// plugin.DisplayAffix.Add(MonsterAffix.Molten, "Molten");
// plugin.DisplayAffix.Add(MonsterAffix.Teleporter, "Teleporter");
// plugin.DisplayAffix.Add(MonsterAffix.Jailer, "Jailer");
// plugin.DisplayAffix.Add(MonsterAffix.Shielding, "Shielding");
// plugin.DisplayAffix.Add(MonsterAffix.FireChains, "Fire Chains");
// plugin.DisplayAffix.Add(MonsterAffix.Nightmarish, "Nightmarish");
// plugin.DisplayAffix.Add(MonsterAffix.Illusionist, "Illusionist");
// plugin.DisplayAffix.Add(MonsterAffix.Poison, "Poison");
// plugin.DisplayAffix.Add(MonsterAffix.Mortar, "Mortar");
// plugin.DisplayAffix.Add(MonsterAffix.Orbiter, "Orbiter");
// plugin.DisplayAffix.Add(MonsterAffix.Thunderstorm, "Thunderstorm");
// plugin.DisplayAffix.Add(MonsterAffix.Avenger, "Avenger");
// plugin.DisplayAffix.Add(MonsterAffix.Horde, "Horde");
// plugin.DisplayAffix.Add(MonsterAffix.MissileDampening, "Missile Dampening");
// plugin.DisplayAffix.Add(MonsterAffix.Juggernaut, "Juggernaut");
});
-
Contributor
Originally Posted by
LittleDez13
I'm sorry, but I really am a fool.
Look what I found "lost" in my PluginEnabler ...
Code:
// turn off Affix
Hud.RunOnPlugin<Gigi.EliteBarPlugin>(plugin =>
{
plugin.DisplayAffix.Clear();
// plugin.DisplayAffix.Add(MonsterAffix.Arcane, "Arcane");
// plugin.DisplayAffix.Add(MonsterAffix.Frozen, "Frozen");
// plugin.DisplayAffix.Add(MonsterAffix.FrozenPulse, "Frozen Pulse");
// plugin.DisplayAffix.Add(MonsterAffix.Plagued, "Plagued");
// plugin.DisplayAffix.Add(MonsterAffix.Waller, "Waller");
// plugin.DisplayAffix.Add(MonsterAffix.Reflect, "Reflect");
// plugin.DisplayAffix.Add(MonsterAffix.Vortex, "Vortex");
plugin.DisplayAffix.Add(MonsterAffix.Wormhole, "Wormhole");
// plugin.DisplayAffix.Add(MonsterAffix.Electrified, "Electrified");
// plugin.DisplayAffix.Add(MonsterAffix.Vampiric, "Vampiric");
// plugin.DisplayAffix.Add(MonsterAffix.ExtraHealth, "Extra Health");
// plugin.DisplayAffix.Add(MonsterAffix.HealthLink, "Health Link");
// plugin.DisplayAffix.Add(MonsterAffix.Knockback, "Knockback");
// plugin.DisplayAffix.Add(MonsterAffix.Fast, "Fast");
// plugin.DisplayAffix.Add(MonsterAffix.Desecrator, "Desecrator");
// plugin.DisplayAffix.Add(MonsterAffix.Molten, "Molten");
// plugin.DisplayAffix.Add(MonsterAffix.Teleporter, "Teleporter");
// plugin.DisplayAffix.Add(MonsterAffix.Jailer, "Jailer");
// plugin.DisplayAffix.Add(MonsterAffix.Shielding, "Shielding");
// plugin.DisplayAffix.Add(MonsterAffix.FireChains, "Fire Chains");
// plugin.DisplayAffix.Add(MonsterAffix.Nightmarish, "Nightmarish");
// plugin.DisplayAffix.Add(MonsterAffix.Illusionist, "Illusionist");
// plugin.DisplayAffix.Add(MonsterAffix.Poison, "Poison");
// plugin.DisplayAffix.Add(MonsterAffix.Mortar, "Mortar");
// plugin.DisplayAffix.Add(MonsterAffix.Orbiter, "Orbiter");
// plugin.DisplayAffix.Add(MonsterAffix.Thunderstorm, "Thunderstorm");
// plugin.DisplayAffix.Add(MonsterAffix.Avenger, "Avenger");
// plugin.DisplayAffix.Add(MonsterAffix.Horde, "Horde");
// plugin.DisplayAffix.Add(MonsterAffix.MissileDampening, "Missile Dampening");
// plugin.DisplayAffix.Add(MonsterAffix.Juggernaut, "Juggernaut");
});
delete the // in the front
-
Member
Hello! I would like to know if any recent changes have been added to the original file of the first post. If not, would it be possible for the author to correct the original file? Thanks for the help!
-
Member
Hi, I made the Gigi Folder in the Plugins Folder and copied the EliteBarPlugin.cs file
Do I have to alter the PluginEnablerOrDisablerPlugin.txt or anything else?
The plugin doesn't work the only change, that I got 3 Exceptions...
The Thud version: turbohud-20.6.26.0-v9.1-stable-for-diablo-iii-2.6.9.68722-64-bit
Thanks for the help in advance.
-
Active Member
u can try this:
Elitebar . GitHub
put it into plugins/DAVMonster
-
Post Thanks / Like - 1 Thanks
bAR7O (1 members gave Thanks to knight84 for this useful post)
-
Member
Originally Posted by
knight84
Thank you, it works! 
Another question, in the past the HuD showed me Stricken stack, how can I get that?
I had some old config files and directories, I always copied into the HuD, but it doesn't work anymore.
I found the stricken plugin, but probably they changed the directory system, in the past, I copied into the plugin/User folder, I have to change it probably,
// [v7.3] [ENGLISH] [glq] BaneOfTheStrickenPlugin
using Turbo.Plugins.Default;
using System;
using System.Linq;
using System.Drawing;
using System.Collections.Generic;
namespace Turbo.Plugins.User
{
public class BaneOfTheStrickenPlugin : BasePlugin, IInGameTopPainter, INewAreaHandler
{
public bool DrawClassOnIcons { get; set; } //Draw ClassNames per Dafault on every Stricken Icon
public IFont TextFont { get; set; }
private int[] StackCount { get; set; }
private bool[] cooling { get; set; }
public TopLabelDecorator StackCountDecorator { get; set; }
public float xPos { get; set; }
public float XWidth { get; set; }
public float YHeight { get; set; }
private IBrush StackBrush;
private Dictionary<HeroClass, string> classShorts;
public IFont ClassFont { get; set; }
public bool IsGuardianAlive
{
get
{
return riftQuest != null && (riftQuest.QuestStepId == 3 || riftQuest.QuestStepId == 16);
}
}
private IQuest riftQuest
{
get
{
return Hud.Game.Quests.FirstOrDefault(q => q.SnoQuest.Sno == 337492) ?? // rift
Hud.Game.Quests.FirstOrDefault(q => q.SnoQuest.Sno == 382695); // gr
}
}
public BaneOfTheStrickenPlugin()
{
Enabled = true;
DrawClassOnIcons = false;
}
public override void Load(IController hud)
{
base.Load(hud);
StackCountDecorator = new TopLabelDecorator(Hud)
{
TextFont = Hud.Render.CreateFont("tahoma", 7, 255, 255, 255, 255, false, false, 250, 0, 0, 0, true),
HintFunc = () => "Bane Of The Stricken Count of trigger times(The monomeric BOSS is accurate)"
};
StackCount = new int[4];
cooling = new bool[4];
StackBrush = Hud.Render.CreateBrush(255, 0, 0, 0, 0);
classShorts = new Dictionary<HeroClass, string>();
classShorts.Add(HeroClass.Barbarian, "Barb");
classShorts.Add(HeroClass.Monk, "Monk");
classShorts.Add(HeroClass.Necromancer, "Necro");
classShorts.Add(HeroClass.Wizard, "Wiz");
classShorts.Add(HeroClass.WitchDoctor, "WD");
classShorts.Add(HeroClass.Crusader, "Sader");
classShorts.Add(HeroClass.DemonHunter, "DH");
ClassFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, 255, 0, 0, 0, true);
}
public void OnNewArea(bool newGame, ISnoArea area)
{
if (newGame)
{
for (int i = 0; i < 4; i++)
{
StackCount[i] = 0;
}
}
}
public void DrawStackCount(IPlayer player)
{
if (!player.Powers.BuffIsActive(Hud.Sno.SnoPowers.BaneOfTheStrickenPrimary.Sno, 0)) return;
int count = Hud.Game.AliveMonsters.Count(m => m.SnoMonster.Priority == MonsterPriority.boss);
if (count == 0) return;
var uiBar = Hud.Render.MonsterHpBarUiElement;
var monster = Hud.Game.SelectedMonster2 ?? Hud.Game.SelectedMonster1;
if ((monster == null) || (uiBar == null) || (monster.SnoMonster.Priority != MonsterPriority.boss)) return;
int HitnRng = 1;
int _count = 0;
_count = Hud.Game.AliveMonsters.Count(m => (player.FloorCoordinate.XYZDistanceTo(m.FloorCoordinate)) <= 10);
if (_count < 1) _count = 1;
Random rng;
rng = new Random(Hud.Game.CurrentGameTick);
HitnRng = rng.Next(1, _count);
var w = uiBar.Rectangle.Height * 2;
var h = uiBar.Rectangle.Height;
var x = uiBar.Rectangle.Right + uiBar.Rectangle.Height * 5;
var y = uiBar.Rectangle.Y + uiBar.Rectangle.Height * 0.3f;
var bgTex = Hud.Texture.GetTexture(3166997520);
var tex = Hud.Texture.GetItemTexture(Hud.Sno.SnoItems.Unique_Gem_018_x1);
var rect = new RectangleF(uiBar.Rectangle.Right + uiBar.Rectangle.Height * 5f + xPos, uiBar.Rectangle.Y - uiBar.Rectangle.Height * 1.5f / 6, uiBar.Rectangle.Height * 1.5f, uiBar.Rectangle.Height * 1.5f);
var index = player.PortraitIndex;
if (player.Powers.BuffIsActive(Hud.Sno.SnoPowers.BaneOfTheStrickenPrimary.Sno, 2))
{
if (!cooling[index])
{
cooling[index] = true;
if(HitnRng == 1) StackCount[index]++;
}
}
else
{
cooling[index] = false;
}
StackCountDecorator.TextFunc = () => StackCount[index].ToString();
StackBrush.DrawRectangle(rect);
bgTex.Draw(rect.Left, rect.Top, rect.Width, rect.Height);
tex.Draw(rect.Left, rect.Top, rect.Width, rect.Height);
var layout = ClassFont.GetTextLayout(player.BattleTagAbovePortrait + "\n(" + classShorts[player.HeroClassDefinition.HeroClass] + ")");
if (DrawClassOnIcons || Hud.Window.CursorInsideRect(rect.X, rect.Y, rect.Width, rect.Height))
{
ClassFont.DrawText(layout, x - (layout.Metrics.Width * 0.1f) + xPos, y - h * 3);
}
StackCountDecorator.Paint(x + xPos, y, w, h, HorizontalAlign.Center);
xPos += rect.Width + h;
}
public void PaintTopInGame(ClipState clipState)
{
if (clipState != ClipState.BeforeClip) return;
if (!IsGuardianAlive)
{
for (int i = 0; i < 4; i++)
{
StackCount[i] = 0;
}
return;
}
foreach (IPlayer player in Hud.Game.Players)
{
DrawStackCount(player);
}
xPos = 0;
}
}
}
-
Active Member
-
Post Thanks / Like - 1 Thanks
bAR7O (1 members gave Thanks to knight84 for this useful post)
-
Member
Originally Posted by
knight84
Thanks a lot, again, I have one more plugin, I miss:
COEBuffListPlugin.cs
-
Active Member
namespace Turbo.Plugins.BM
{
using System.Collections.Generic;
using System.Linq;
using System;
using Turbo.Plugins.Default;
public class COEBuffListPlugin : BasePlugin, IInGameWorldPainter
{
public bool HideWhenUiIsHidden { get; set; }
public BuffPainter BuffPainter { get; set; }
private BuffRuleCalculator _ruleCalculator;
public COEBuffListPlugin()
{
Enabled = true;
}
public override void Load(IController hud)
{
base.Load(hud);
HideWhenUiIsHidden = false;
BuffPainter = new BuffPainter(Hud, true)
{
Opacity = 1.0f,
TimeLeftFont = Hud.Render.CreateFont("tahoma", 8, 255, 255, 255, 255, true, false, 255, 0, 0, 0, true),
};
_ruleCalculator = new BuffRuleCalculator(Hud);
_ruleCalculator.SizeMultiplier = 0.7f;
_ruleCalculator.Rules.Add(new BuffRule(430674) { IconIndex = 1, MinimumIconCount = 0, DisableName = true }); // Arcane
_ruleCalculator.Rules.Add(new BuffRule(430674) { IconIndex = 2, MinimumIconCount = 0, DisableName = true }); // Cold
_ruleCalculator.Rules.Add(new BuffRule(430674) { IconIndex = 3, MinimumIconCount = 0, DisableName = true }); // Fire
_ruleCalculator.Rules.Add(new BuffRule(430674) { IconIndex = 4, MinimumIconCount = 0, DisableName = true }); // Holy
_ruleCalculator.Rules.Add(new BuffRule(430674) { IconIndex = 5, MinimumIconCount = 0, DisableName = true }); // Lightning
_ruleCalculator.Rules.Add(new BuffRule(430674) { IconIndex = 6, MinimumIconCount = 0, DisableName = true }); // Physical
_ruleCalculator.Rules.Add(new BuffRule(430674) { IconIndex = 7, MinimumIconCount = 0, DisableName = true }); // Poison
}
private IEnumerable<BuffRule> GetCurrentRules(HeroClass heroClass)
{
for (int i = 1; i <= 7; i++)
{
switch (heroClass)
{
case HeroClass.Barbarian: if (i == 1 || i == 4 || i == 7) continue; break;
case HeroClass.Crusader: if (i == 1 || i == 2 || i == 7) continue; break;
case HeroClass.DemonHunter: if (i == 1 || i == 4 || i == 7) continue; break;
case HeroClass.Monk: if (i == 1 || i == 7) continue; break;
case HeroClass.Necromancer: if (i == 1 || i == 3 || i == 4 || i == 5) continue; break;
case HeroClass.WitchDoctor: if (i == 1 || i == 4 || i == 5) continue; break;
case HeroClass.Wizard: if (i == 4 || i == 6 || i == 7) continue; break;
}
yield return _ruleCalculator.Rules[i - 1];
}
}
public void PaintWorld(WorldLayer layer)
{
// if (clipState != ClipState.BeforeClip) return;
if (HideWhenUiIsHidden && Hud.Render.UiHidden) return;
foreach (var player in Hud.Game.Players)
{
if (player.IsMe)
{
var buff = player.Powers.GetBuff(430674);
if ((buff == null) || (buff.IconCounts[0] <= 0)) break;
var classSpecificRules = GetCurrentRules(player.HeroClassDefinition.HeroClass);
_ruleCalculator.CalculatePaintInfo(player, classSpecificRules);
if (_ruleCalculator.PaintInfoList.Count == 0) return;
if (!_ruleCalculator.PaintInfoList.Any(info => info.TimeLeft > 0)) return;
var highestElementalBonus = player.Offense.HighestElementalDamageBonus;
for (int i = 0; i < _ruleCalculator.PaintInfoList.Count; i++)
{
var info = _ruleCalculator.PaintInfoList[0];
if (info.TimeLeft <= 0)
{
_ruleCalculator.PaintInfoList.RemoveAt(0);
_ruleCalculator.PaintInfoList.Add(info);
}
else break;
}
for (int orderIndex = 0; orderIndex < _ruleCalculator.PaintInfoList.Count; orderIndex++)
{
var info = _ruleCalculator.PaintInfoList[orderIndex];
var best = false;
switch (info.Rule.IconIndex)
{
case 1: best = player.Offense.BonusToArcane == highestElementalBonus; break;
case 2: best = player.Offense.BonusToCold == highestElementalBonus; break;
case 3: best = player.Offense.BonusToFire == highestElementalBonus; break;
case 4: best = player.Offense.BonusToHoly == highestElementalBonus; break;
case 5: best = player.Offense.BonusToLightning == highestElementalBonus; break;
case 6: best = player.Offense.BonusToPhysical == highestElementalBonus; break;
case 7: best = player.Offense.BonusToPoison == highestElementalBonus; break;
}
if (best) info.Size *= 1.35f;
if (best && orderIndex > 0)
{
info.TimeLeft = (orderIndex - 1) * 4 + _ruleCalculator.PaintInfoList[0].TimeLeft;
}
else info.TimeLeftNumbersOverride = false;
}
var portraitRect = player.PortraitUiElement.Rectangle;
var x = portraitRect.Right * 8.05f;
var y = portraitRect.Top + portraitRect.Height - 33f;
BuffPainter.PaintHorizontal(_ruleCalculator.PaintInfoList, x, y, _ruleCalculator.StandardIconSize, 0);
break;
}
} // end foreach
} // end PaintTopInGame
} // end class
}
not sure if this is working bcs i use an other one
-
Member
I named it as COEBuffListPlugin.cs and copied into the plugin/glq folder didn't work
But thanks for trying!
-
Active Member
-
Active Member
-
Member
So I have tried to install this plugin, and I get one expection. I have gone through the comments on this thread to find help but still with no luck.
I have made a Gigi folder in Plugins and made sure the it says: namespace "Turbo.Plugins.Gigi" and I have tried to add "using System;"
I also tried a clean installation, getting the newest version of TH, but still 1 exception.
In the log it states: "suspicious code in plugin file: 'C:\Users\Bryde\Documents\TurboHUD\TurboHUD 2\Plugins\Gigi\EliteBarPlugin.cs': possibly trying to hide behaviour with unicode characters."
Anyone that can help me with this?