-
Legendary
Originally Posted by
PR4Y
Your customization codes are still not working. I've tried all your suggestions like adding:
Code:
using SharpDX.DirectInput;
and the others, but every time I keep getting the same exceptions the other people are getting. I've used customizations in the PluginEnablerOrDisablerPlugin many times before and I've never had this issue with the namespace not being found.
I'm also having the same exact issue with your MonsterDensityPlugin not being able to customize, giving the same exact exceptions as this plugin and I have never had these issues before.
Please, could you fix this or at least give us some information about how to fix it?
Hud.GetPlugin<glq.MonstersCountPlugin>().XWidth = 0.85f;
Hud.GetPlugin<glq.MonstersCountPlugin>().YHeight = 0.69f;
and check that you have copied MonstersCountPlugin.cs to the glq folder, inside plugins
Last edited by RNN; 02-26-2019 at 11:06 AM.
-
Post Thanks / Like - 1 Thanks
PR4Y (1 members gave Thanks to RNN for this useful post)
-
Member
Originally Posted by
RNN
Hud.GetPlugin<glq.MonstersCountPlugin>().XWidth = 0.85f;
Hud.GetPlugin<glq.MonstersCountPlugin>().YHeight = 0.69f;
and check that you have copied MonstersCountPlugin.cs to the glq folder, inside plugins
Worked like a charm!
Can't believe I left out something so silly.
Thanks!
-
Member
Hello, how to make a circle to show not only on minimap, but also around the hero on the ground?, thanks.
-
Active Member
-
Member
knight84 sorry, but I don't need a circles around the monsters, I need one circle around the hero on the ground (as on minimap), , thanks.
Last edited by yuliaangel; 10-29-2019 at 05:56 AM.
-
Active Member
-
Member
knight84 sorry, but I don't need a circles around the monsters, I need one circle around the hero on the ground with RADIUS (15-50m.) (as on minimap), , thanks
-
Active Member
-
Legendary
The default setting is 40 and 120m. Have you changed distances to 15 and 50?
I guess you added to PluginEnablerOrDisablerPlugin.cs
Code:
Hud.RunOnPlugin<glq.MonstersCountPlugin>(plugin =>
{
plugin.BaseYard = 15;
plugin.MaxYard = 50;
} );
and you should change it to
Code:
Hud.RunOnPlugin<glq.MonstersCountPlugin>(plugin =>
{
plugin.BaseYard = 15;
plugin.MaxYard = 50;
plugin.StatisticalRangeDecorator.Add(
new GroundCircleDecorator(Hud)
{
Brush = Hud.Render.CreateBrush(150, 180, 147, 109, 1),
Radius = plugin.BaseYard
}
);
plugin.MaxStatisticalRangeDecorator.Add(
new GroundCircleDecorator(Hud)
{
Brush = Hud.Render.CreateBrush(150, 180, 147, 109, 1),
Radius = plugin.MaxYard
}
);
} );
-
Member
RNN, big tnx
-
Member
Can anyone assist me with moving where this plugin shows? I like where its at, however I would like to move it down on the y axis just a bit because it covers up one of my pylon tracker plugins that goes under the progression bar.
-
Member
Originally Posted by
SeaDragon
Using custom code
Code:
Hud.GetPlugin<MonstersCountPlugin>().XWidth = 0.84f;
Hud.GetPlugin<MonstersCountPlugin>().YHeight = 0.61f;
Found the answer to my question.. However, where do you place this text?
-
Legendary
Edit plugins\User\PluginEnablerOrDisablerPlugin.cs (if it does not exist, rename the file PluginEnablerOrDisablerPlugin.txt, change txt to cs)
Add those lines (custom code) in the "Customize section"
You must assign XWidth and YHeight values from 0 to 1, thus indicating the position on the screen. Coordinates in pixels are not used because each user has a different resolution
(XWidth,YHeight)
Last edited by RNN; 12-03-2019 at 07:42 AM.
-
Active Member
XWidth = 0.80f;
YHeight = 0.70f;
my coordinats
-
Member
Originally Posted by
RNN
Edit plugins\User\PluginEnablerOrDisablerPlugin.cs (if it does not exist, rename the file PluginEnablerOrDisablerPlugin.txt, change txt to cs)
Add those lines (custom code) in the "Customize section"
You must assign XWidth and YHeight values from 0 to 1, thus indicating the position on the screen. Coordinates in pixels are not used because each user has a different resolution
(XWidth,YHeight)
Originally Posted by
knight84
XWidth = 0.80f;
YHeight = 0.70f;
my coordinats
Sorry for being such a dumbass with this. However I am still not seeing where to place this code. I renamed the "pluginenablerordisablerplugin" from .txt to .cs. Not seeing any where in there that says "Customize section" I also went back into Monstercountplugin, but I'm not seeing anywhere in there that say "Customize section..
Here is what I see in the "Pluginenablerordisabler" cs file.
using Turbo.Plugins.Default;
namespace Turbo.Plugins.User
{
public class PluginEnablerOrDisablerPlugin : BasePlugin, ICustomizer
{
public PluginEnablerOrDisablerPlugin()
{
Enabled = true;
}
public override void Load(IController hud)
{
base.Load(hud);
}
// "Customize" methods are automatically executed after every plugin is loaded.
// So these methods can use Hud.GetPlugin<class> to access the plugin instances' public properties (like decorators, Enabled flag, parameters, etc)
// Make sure you test the return value against null!
public void Customize()
{
// basic examples
// turn on MultiplayerExperienceRangePlugin
Hud.TogglePlugin<MultiplayerExperienceRangePlugin>(true);
// turn off sell darkening
Hud.GetPlugin<InventoryAndStashPlugin>().NotGoodDisplayEnabled = false;
// disable arcane affix label
Hud.GetPlugin<EliteMonsterAffixPlugin>().AffixDecorators.Remove(MonsterAffix.Arc ane);
// override an elite affix's text
Hud.GetPlugin<EliteMonsterAffixPlugin>().CustomAffixNames.Add(MonsterAffix.Desec rator, "DES");
}
}
}
Then here is whats in the Monstercountplugin cs file
using SharpDX.DirectInput;
using System.Linq;
using System;
using System.Collections.Generic;
using Turbo.Plugins.Default;
namespace Turbo.Plugins.glq
{
using System.Text;
// by 我想静静 黑白灰 小米 Jack Céparou
public class MonstersCountPlugin : BasePlugin, IInGameTopPainter, IInGameWorldPainter, IKeyEventHandler
{
public IFont DefaultTextFont { get; set; }
public IFont OrangeTextFont { get; set; }
public IFont RedTextFont { get; set; }
public WorldDecoratorCollection StatisticalRangeDecorator { get; set; }
public WorldDecoratorCollection MaxStatisticalRangeDecorator { get; set; }
private float currentYard;
public float BaseYard
{
get { return baseMapShapeDecorator.Radius; }
set {
baseMapShapeDecorator.Radius = value;
currentYard = BaseYard;
}
}
public float MaxYard
{
get { return maxMapShapeDecorator.Radius; }
set { maxMapShapeDecorator.Radius = value; }
}
public bool ShowCircle { get; set; }
public IKeyEvent ToggleKeyEvent { get; set; }
public bool ShowMonstersCount { get; set; }
public bool ShowTotalProgression { get; set; }
public bool ShowTrashProgression { get; set; }
public bool ShowEliteProgression { get; set; }
public bool ShowRareMinionProgression { get; set; }
public bool ShowRiftGlobeProgression { get; set; }
public bool ShowLlocustCount { get; set; }
public bool ShowHauntedCount { get; set; }
public bool ShowPalmedCount { get; set; }
public bool ShowPhoenixedCount { get; set; }
public bool ShowStrongarmedCount { get; set; }
public bool ShowTime { get; set; }
public bool ToggleEnable { get; set; }
public float XWidth { get; set; }
public float YHeight { get; set; }
private IFont currentFont;
private bool TurnedOn;
private MapShapeDecorator baseMapShapeDecorator;
private MapShapeDecorator maxMapShapeDecorator;
private StringBuilder textBuilder;
public MonstersCountPlugin()
{
Enabled = true;
ShowCircle = true;
ToggleEnable = true;
}
public override void Load(IController hud)
{
base.Load(hud);
ToggleKeyEvent = Hud.Input.CreateKeyEvent(true, Key.LeftControl, true, false, false);
DefaultTextFont = Hud.Render.CreateFont("tahoma", 9, 255, 180, 147, 109, false, false, 250, 0, 0, 0, true);
OrangeTextFont = Hud.Render.CreateFont("tahoma", 9, 255, 255, 128, 0, false, false, 250, 0, 0, 0, true);
RedTextFont = Hud.Render.CreateFont("tahoma", 9, 255, 255, 0, 0, false, false, 250, 0, 0, 0, true);
TurnedOn = false;
ShowMonstersCount = true;
ShowTotalProgression = true;
ShowTrashProgression = true;
ShowEliteProgression = true;
ShowRareMinionProgression = true;
ShowRiftGlobeProgression = true;
ShowTime = true;
ShowLlocustCount = true;
ShowHauntedCount = true;
ShowPalmedCount = true;
ShowPhoenixedCount = false;
ShowStrongarmedCount = true;
XWidth = 0.84f;
YHeight = 0.61f;
textBuilder = new StringBuilder();
baseMapShapeDecorator = new MapShapeDecorator(Hud)
{
Brush = Hud.Render.CreateBrush(150, 180, 147, 109, 1),
ShapePainter = new CircleShapePainter(Hud),
Radius = 40,
};
StatisticalRangeDecorator = new WorldDecoratorCollection(baseMapShapeDecorator);
currentYard = BaseYard;
maxMapShapeDecorator = new MapShapeDecorator(Hud)
{
Brush = Hud.Render.CreateBrush(150, 180, 147, 109, 1),
ShapePainter = new CircleShapePainter(Hud),
Radius = 120,
};
MaxStatisticalRangeDecorator = new WorldDecoratorCollection(maxMapShapeDecorator);
}
public void OnKeyEvent(IKeyEvent keyEvent)
{
if (keyEvent.IsPressed && ToggleKeyEvent.Matches(keyEvent) && ToggleEnable)
{
TurnedOn = !TurnedOn;
currentYard = TurnedOn ? MaxYard : BaseYard;
}
}
public void PaintWorld(WorldLayer layer)
{
if (Hud.Game.IsInTown || !ShowCircle) return;
if (TurnedOn)
{
MaxStatisticalRangeDecorator.Paint(layer, null, Hud.Game.Me.FloorCoordinate, null);
}
else
{
StatisticalRangeDecorator.Paint(layer, null, Hud.Game.Me.FloorCoordinate, null);
}
}
public void PaintTopInGame(ClipState clipState)
{
if (clipState != ClipState.BeforeClip) return;
var inRift = Hud.Game.SpecialArea == SpecialArea.Rift || Hud.Game.SpecialArea == SpecialArea.GreaterRift;
var inGR = Hud.Game.SpecialArea == SpecialArea.GreaterRift;
if (DefaultTextFont == null)
{
return;
}
double totalMonsterRiftProgression = 0;
double TrashMonsterRiftProgression = 0;
double EliteProgression = 0;
double RareMinionProgression = 0;
double RiftGlobeProgression = 0;
int monstersCount = 0;
int EliteCount = 0;
int RareMinionCount = 0;
int ElitePackCount = 0;
// locust
int locustCount = 0;
int ElitelocustCount = 0;
// haunted
int hauntedCount = 0;
int ElitehauntedCount = 0;
//Palmed
int palmedCount = 0;
int ElitepalmedCount = 0;
//Phoenixed BUG? TOS Deletion - TurboHUD
int phoenixedCount = 0;
int ElitephoenixedCount = 0;
//Strongarmed Obsolete
int strongarmedCount = 0;
int ElitestrongarmedCount = 0;
float XPos = Hud.Window.Size.Width * XWidth;
float YPos = Hud.Window.Size.Height * YHeight;
var monsters = Hud.Game.AliveMonsters.Where(m => ((m.SummonerAcdDynamicId == 0 && m.IsElite) || !m.IsElite) && m.FloorCoordinate.XYDistanceTo(Hud.Game.Me.FloorCoordinate) <= currentYard);
Dictionary<IMonster, string> eliteGroup = new Dictionary<IMonster, string>();
foreach (var monster in monsters)
{
var Elite = monster.Rarity == ActorRarity.Rare || monster.Rarity == ActorRarity.Champion || monster.Rarity == ActorRarity.Unique || monster.Rarity == ActorRarity.Boss;
monstersCount++;
if (!monster.IsElite)
{
if (inRift) TrashMonsterRiftProgression += monster.SnoMonster.RiftProgression * 100.0d / this.Hud.Game.MaxQuestProgress;
}
else
{
if (monster.Rarity == ActorRarity.RareMinion)
{
RareMinionCount++;
if (inRift) RareMinionProgression += monster.SnoMonster.RiftProgression * 100.0d / this.Hud.Game.MaxQuestProgress;
}
else
{
if (monster.Rarity == ActorRarity.Unique || monster.Rarity == ActorRarity.Boss)
{
EliteCount++;
ElitePackCount++;
}
if (monster.Rarity == ActorRarity.Champion)
{
EliteCount++;
eliteGroup.Add(monster, String.Join(", ", monster.AffixSnoList));
if (inRift) EliteProgression += monster.SnoMonster.RiftProgression * 100.0d / this.Hud.Game.MaxQuestProgress;
}
if (monster.Rarity == ActorRarity.Rare)
{
EliteCount++;
ElitePackCount++;
if (inRift)
{
EliteProgression += 4 * 1.15d;
EliteProgression += monster.SnoMonster.RiftProgression * 100.0d / this.Hud.Game.MaxQuestProgress;
}
}
}
}
if (monster.Locust && ShowLlocustCount)
{
locustCount++;
if (Elite) ElitelocustCount++;
}
if (monster.Haunted && ShowHauntedCount)
{
hauntedCount++;
if (Elite) ElitehauntedCount++;
}
if (monster.Palmed && ShowPalmedCount)
{
palmedCount++;
if (Elite) ElitepalmedCount++;
}
if (monster.Phoenixed && ShowPhoenixedCount)
{
phoenixedCount++;
if (Elite) ElitephoenixedCount++;
}
if (monster.Strongarmed && ShowStrongarmedCount)
{
strongarmedCount++;
if (Elite) ElitestrongarmedCount++;
}
}
Dictionary<IMonster, string> eliteGroup1 = eliteGroup.OrderBy(p => p.Value).ToDictionary(p => p.Key, o => o.Value);
if (monstersCount == 0) return;
var actors = Hud.Game.Actors.Where(x => x.SnoActor.Kind == ActorKind.RiftOrb);
foreach (var actor in actors)
{
RiftGlobeProgression += 1.15d;
}
string preStr = null;
foreach (var elite in eliteGroup1)
{
if (elite.Key.Rarity == ActorRarity.Champion)
{
if (preStr != elite.Value)
{
EliteProgression += 3 * 1.15f;
ElitePackCount++;
}
preStr = elite.Value;
}
}
textBuilder.Clear();
if (ShowMonstersCount)
{
textBuilder.AppendFormat("{0} BaseYard Monster Count: {1}", currentYard, monstersCount);
textBuilder.AppendLine();
if (EliteCount > 0) textBuilder.AppendFormat("Elite: {0}(Pack: {1})", EliteCount, ElitePackCount);
if (RareMinionCount > 0) textBuilder.AppendFormat("Minion: {0}", RareMinionCount);
textBuilder.AppendLine();
textBuilder.AppendLine();
}
if (inRift)
{
totalMonsterRiftProgression = TrashMonsterRiftProgression + EliteProgression + RareMinionProgression + RiftGlobeProgression;
long totalTime = (long)totalMonsterRiftProgression * 90000000;
long TrashTime = (long)TrashMonsterRiftProgression * 90000000;
long EliteTime = (long)EliteProgression * 90000000;
long RareMinionTime = (long)RareMinionProgression * 90000000;
long RiftGlobeTime = (long)RiftGlobeProgression * 90000000;
if (totalMonsterRiftProgression > 0 && ShowTotalProgression)
{
if (ShowTime && inGR)
{
textBuilder.AppendFormat("TotalRP: {0}% = {1}", totalMonsterRiftProgression.ToString("f2"), ValueToString((long)totalTime, ValueFormat.LongTime));
}
else
{
textBuilder.AppendFormat("TotalRP: {0}%", totalMonsterRiftProgression.ToString("f2"));
}
textBuilder.AppendLine();
}
if (TrashMonsterRiftProgression > 0 && ShowTrashProgression)
{
if (ShowTime && inGR)
{
textBuilder.AppendFormat("TrashRP: {0}% = {1}", TrashMonsterRiftProgression.ToString("f2"), ValueToString((long)TrashTime, ValueFormat.LongTime));
}
else
{
textBuilder.AppendFormat("TrashRP: {0}%", TrashMonsterRiftProgression.ToString("f2"));
}
textBuilder.AppendLine();
}
if (EliteProgression > 0 && ShowEliteProgression)
{
if (ShowTime && inGR)
{
textBuilder.AppendFormat("EliteRP: {0}% = {1}", EliteProgression.ToString("f2"), ValueToString((long)EliteTime, ValueFormat.LongTime));
}
else
{
textBuilder.AppendFormat("EliteRP: {0}%", EliteProgression.ToString("f2"));
}
textBuilder.AppendLine();
}
if (RareMinionProgression > 0 && ShowRareMinionProgression)
{
if (ShowTime && inGR)
{
textBuilder.AppendFormat("MinionRP: {0}% = {1}", RareMinionProgression.ToString("f2"), ValueToString((long)RareMinionTime, ValueFormat.LongTime));
}
else
{
textBuilder.AppendFormat("MinionRP: {0}%", RareMinionProgression.ToString("f2"));
}
textBuilder.AppendLine();
}
if (RiftGlobeProgression > 0 && ShowRiftGlobeProgression)
{
if (ShowTime && inGR)
{
textBuilder.AppendFormat("GlobeRP: {0}% = {1}", RiftGlobeProgression.ToString("f2"), ValueToString((long)RiftGlobeTime, ValueFormat.LongTime));
}
else
{
textBuilder.AppendFormat("GlobeRP: {0}%", RiftGlobeProgression.ToString("f2"));
}
textBuilder.AppendLine();
}
textBuilder.AppendLine();
}
if (locustCount > 0 && ShowLlocustCount)
{
textBuilder.AppendFormat("Locust: {0}/{1}", locustCount, monstersCount);
if (ElitelocustCount > 0) textBuilder.AppendFormat(" (Elite: {0}/{1})", ElitelocustCount, EliteCount);
textBuilder.AppendLine();
}
if (hauntedCount > 0 && ShowHauntedCount)
{
textBuilder.AppendFormat("Haunted: {0}/{1}", hauntedCount, monstersCount);
if (ElitehauntedCount > 0) textBuilder.AppendFormat(" (Elite: {0}/{1})", ElitehauntedCount, EliteCount);
textBuilder.AppendLine();
}
if (palmedCount > 0 && ShowPalmedCount)
{
textBuilder.AppendFormat("Palmed: {0}/{1}", palmedCount, monstersCount);
if (ElitepalmedCount > 0) textBuilder.AppendFormat(" (Elite: {0}/{1})", ElitepalmedCount, EliteCount);
textBuilder.AppendLine();
}
if (phoenixedCount > 0 && ShowPhoenixedCount)
{
textBuilder.AppendFormat("Phoenixed: {0}/{1}", phoenixedCount, monstersCount);
if (ElitephoenixedCount > 0) textBuilder.AppendFormat(" (Elite: {0}/{1})", ElitephoenixedCount, EliteCount);
textBuilder.AppendLine();
}
if (strongarmedCount > 0 && ShowStrongarmedCount)
{
textBuilder.AppendFormat("Strongarmed: {0}/{1}", strongarmedCount, monstersCount);
if (ElitestrongarmedCount > 0) textBuilder.AppendFormat(" (Elite: {0}/{1})", ElitestrongarmedCount, EliteCount);
textBuilder.AppendLine();
}
if (totalMonsterRiftProgression >= 100d - Hud.Game.RiftPercentage && Hud.Game.RiftPercentage != 100 || TrashMonsterRiftProgression >= 100d - Hud.Game.RiftPercentage && Hud.Game.RiftPercentage != 100)
{
if (totalMonsterRiftProgression >= 100d - Hud.Game.RiftPercentage && Hud.Game.RiftPercentage != 100) currentFont = OrangeTextFont;
if (TrashMonsterRiftProgression >= 100d - Hud.Game.RiftPercentage && Hud.Game.RiftPercentage != 100) currentFont = RedTextFont;
}
else
{
currentFont = DefaultTextFont;
}
var layout = currentFont.GetTextLayout(textBuilder.ToString());
currentFont.DrawText(layout, XPos, YPos);
}
}
}