TurboHUD

Теория и практика Diablo 3, техническая информация и ПО

Сообщение polysster » 22 янв 2017, 16:05

DmitryOlenin, не уверен правильно ли формулирую вопрос, но какая платформа с# используеться в ТХ - Winforms, WPF, ASP? :dumb:


-- Добавлено позже --

DmitryOlenin писал(а):Не должен. Топ - это поверх других слоёв, скорее всего.
Расположение чего угодно на экране - это координаты + слои. Всё.

И, кстати, никакого GetTopLevel я в коде не вижу.


возможно можно применить
Код: Выделить всё
Label.Location = new Point(0,0);
Аватара пользователя
polysster
В первых рядах Танец с пушками Девять с половиной стеклопушек Семь раз отмерь, один раз стеклопушка Восьмое чудо Санктуария
Сообщения: 52
Откуда: Киев
Репутация: 27
Статус: Не в сети

  • 1

Сообщение DmitryOlenin » 22 янв 2017, 16:13

Ну да, я знаю, как меняется позиция лейбла на форме, спасибо :)
Тут всё несколько сложнее. Как минимум, есть третья координата (X, Y, Z).
Я не очень понимаю, как ей пользоваться.

В принципе, язык C# один и тот же. Нет разницы, форму вы делаете или игру.
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Аватара пользователя
DmitryOlenin
В первых рядах В центре внимания (II-го уровня) Девять с половиной стеклопушек
Сообщения: 1606
Откуда: Москва
Репутация: 1184
Статус: Не в сети

Сообщение polysster » 22 янв 2017, 17:03

Нашел на форуме ТХ разъяснение по поводу новой системы координат на примере другого плагина

// Unlike the old XML system where it draws x,y,w,h in terms of percentage of screen size, the new plugin uses actual pixel coordinates
// To convert x,y,w,h sizes from the XML system to the new plugin system, multiply the screensize with percentage. ie. XML size of 2 => 0.02f * screensize


код плагина
Код: Выделить всё
using System.Collections.Generic;
using System.Linq;
 
namespace Turbo.Plugins.Custom
{
    public class BuffSideBarPlugin : BasePlugin
    {
        public class IBuffBarsList
        {
            public string Shorthand, Description;
            public uint SNO;
            public int IconIndex;
            public IBuffBarsList(string inpShorthand, string inpDescription, uint inpSNO, int inpIconIndex)
            {
                this.Shorthand = inpShorthand;
                this.Description = inpDescription;
                this.SNO = inpSNO;
                this.IconIndex = inpIconIndex;
            }
        }
 
        public List<IBuffBarsList> BuffBarsList { get; set; }
 
        public FixTopLabelDecorator BuffBar_Active_Label { get; set; }
        public FixTopLabelDecorator BuffBar_Inactive_Label { get; set; }
 
        private ITexture buttonTextureGray, buttonTextureBlue, buttonTextureOrange;
        private ITexture bgTextureOrange, bgTextureGreen, bgTextureYellow, bgTextureBlue;
 
        public BuffSideBarPlugin()
        {
            Enabled = true;           
            BuffBarsList = new List<IBuffBarsList>();
        }
 
        public override void Load(IController hud)
        {
            base.Load(hud);
 
            buttonTextureGray = hud.Render.GetTexture(3253023435);
            buttonTextureBlue = hud.Render.GetTexture(3834792285);
            buttonTextureOrange = hud.Render.GetTexture(1227300027);
            bgTextureOrange = hud.Render.GetTexture(2823360744);
            bgTextureGreen = hud.Render.GetTexture(64720473);
            bgTextureYellow = hud.Render.GetTexture(2135735351);
            bgTextureBlue = hud.Render.GetTexture(1753848494);
 
            BuffBar_Active_Label = new FixTopLabelDecorator(Hud)
            {
                TextFont = Hud.Render.CreateFont("tahoma", 7, 120, 255, 240, 0, true, false, false),
                BgTexture1 = buttonTextureOrange,
                BgTexture2 = bgTextureOrange,
                BgTexture2Opacity = 0.5f
            };
            BuffBar_Inactive_Label = new FixTopLabelDecorator(Hud)
            {
                TextFont = Hud.Render.CreateFont("tahoma", 7, 100, 192, 192, 192, false, false, false),
                BgTexture1 = buttonTextureGray,
                BgTexture2 = bgTextureOrange,
                BgTexture2Opacity = 0.5f
            };
 
            BuffBarsList.Add(new IBuffBarsList("NB", "Nemesis Bracers", 318820, -1));
            BuffBarsList.Add(new IBuffBarsList("GW", "Goldwrap", 318875, 1));
            BuffBarsList.Add(new IBuffBarsList("OR", "Oculus Ring", 402461, 2));
            BuffBarsList.Add(new IBuffBarsList("IS", "Inner Sanctuary", 317076, -1));           
            BuffBarsList.Add(new IBuffBarsList("FD", "Flying Dragon", 246562, 1));
            BuffBarsList.Add(new IBuffBarsList("SM", "Swiftmount", 359537, -1));
            //BuffBarsList.Add(new IBuffBarsList("BP", "Broken Promises", 402462, 2));           
            //BuffBarsList.Add(new IBuffBarsList("CE", "Convention of Elements", 430674, 5)); //1 Arcane, 2 Cold, 3 Fire, 4 Holy, 5 Lightning, 6 Physical, 7 Poison
 
        }
 
        public override void PaintTopInGame(ClipState clipState)
        {
            if (clipState == ClipState.BeforeClip)
            {
                // Unlike the old XML system where it draws x,y,w,h in terms of percentage of screen size, the new plugin uses actual pixel coordinates
                // To convert x,y,w,h sizes from the XML system to the new plugin system, multiply the screensize with percentage. ie. XML size of 2 => 0.02f * screensize
                // Below is equivalent to x=98, y=40, w=2, h=2 in old XML system
 
                var barW = Hud.Render.ScreenSize.Width * 0.02f;
                var barH = Hud.Render.ScreenSize.Height * 0.02f;
 
                var barX = Hud.Render.ScreenSize.Width - barW;
                var barY = Hud.Render.ScreenSize.Height * 0.4f;
 
                var loopCtr = 0;
                foreach (var ctrBuffBar in BuffBarsList)
                {
                    if (Hud.Collections.Me.BuffIsActive(ctrBuffBar.SNO, ctrBuffBar.IconIndex))
                    {
                        BuffBar_Active_Label.Paint(barX, barY + (loopCtr * barH), barW, barH, ctrBuffBar.Shorthand, ctrBuffBar.Description);
                    }
                    else
                    {
                        BuffBar_Inactive_Label.Paint(barX, barY + (loopCtr * barH), barW, barH, ctrBuffBar.Shorthand, ctrBuffBar.Description);
                    };
                    loopCtr++;
                };
            }
        }
    }
}



-- Добавлено позже --

DmitryOlenin, на форуме ТХ подсказали

GroundLabel NamePlate Offset Change
Код: Выделить всё
FloorCoordinate.Offset(-4f, -4f, 0)


подскажи куда это прописать? и я отстану наконец то)


-- Добавлено позже --

все, разобрался, большое спасибо!
Код: Выделить всё
public override void PaintWorld(WorldLayer layer)
        {
            var players = Hud.Collections.GetPlayers().Where(x => !x.IsMe);
            foreach (var player in players)
            {
                if (player.CoordinateKnown && (player.HeadStone == null))
                {
                    OtherPlayerDecorator.Paint(layer, player.FloorCoordinate.Offset(-4f, -4f, 0), player.BattleTagAbovePortrait);
                }
            }
Аватара пользователя
polysster
В первых рядах Танец с пушками Девять с половиной стеклопушек Семь раз отмерь, один раз стеклопушка Восьмое чудо Санктуария
Сообщения: 52
Откуда: Киев
Репутация: 27
Статус: Не в сети

  • 3

Сообщение DmitryOlenin » 22 янв 2017, 18:06

Доработал свой сниппет с созданием кругов возле персонажей.
Добавил круги на карте. Сделал настройки в файле более удобными.

Код: Выделить всё
   //Enable or disable snippet features
//--------------------------------------------------------------------------------------------------
   public bool MapCircleEnabled = true;       //Enable or disable Map Circles feature
   public bool GroundCircleEnabled = true;      //Enable or disable Ground Circles feature
   public bool CircleSelfEnabled = true;      //Enable or disable Self Circles feature
   public bool CircleDemonHunterEnabled = true;   //Enable or disable DemonHunter mark
   public bool CircleBarbarianEnabled = true;   //Enable or disable Barbarian mark
   public bool CircleWizardEnabled = true;      //Enable or disable Wizard mark
   public bool CircleWitchDoctorEnabled = true;   //Enable or disable WitchDoctor mark
   public bool CircleMonkEnabled = true;      //Enable or disable Monk mark
   public bool CircleCrusaderEnabled = true;   //Enable or disable Crusader mark
//--------------------------------------------------------------------------------------------------


Изображение

Cкачать.

PlayerColorCirclesPlugin.cs
Код: Выделить всё
//using System.Linq;

namespace Turbo.Plugins.Custom
{

    public class PlayerColorCirclesPlugin : BasePlugin
    {

        public PlayerColorCirclesPlugin()
        {
            Enabled = true;
        }

        public override void Load(IController hud)
        {
            base.Load(hud);
        }

   //Enable or disable snippet features
//--------------------------------------------------------------------------------------------------
   public bool MapCircleEnabled = true;       //Enable or disable Map Circles feature
   public bool GroundCircleEnabled = true;      //Enable or disable Ground Circles feature
   public bool CircleSelfEnabled = true;      //Enable or disable Self Circles feature
   public bool CircleDemonHunterEnabled = true;   //Enable or disable DemonHunter mark
   public bool CircleBarbarianEnabled = true;   //Enable or disable Barbarian mark
   public bool CircleWizardEnabled = true;      //Enable or disable Wizard mark
   public bool CircleWitchDoctorEnabled = true;   //Enable or disable WitchDoctor mark
   public bool CircleMonkEnabled = true;      //Enable or disable Monk mark
   public bool CircleCrusaderEnabled = true;   //Enable or disable Crusader mark
//--------------------------------------------------------------------------------------------------

   public bool PlayerPaint; //Need to draw?

        public void ColorsForClasses (int R, int G, int B, int radius)
   {
            var OtherPlayerDecorator = Hud.GetPlugin<OtherPlayerPlugin>().OtherPlayerDecorator;

       if (GroundCircleEnabled && MapCircleEnabled)
            {
               if (OtherPlayerDecorator.Decorators.Count > 3)
             OtherPlayerDecorator.Decorators.RemoveAt(3); //remove MapCircleDecorator
               if (OtherPlayerDecorator.Decorators.Count > 2)
             OtherPlayerDecorator.Decorators.RemoveAt(2); //remove GroundCircleDecorator
            }
            else if (GroundCircleEnabled && OtherPlayerDecorator.Decorators.Count > 2)
               OtherPlayerDecorator.Decorators.RemoveAt(2); //remove GroundCircleDecorator
            else if (MapCircleEnabled && OtherPlayerDecorator.Decorators.Count > 2)
               OtherPlayerDecorator.Decorators.RemoveAt(2); //remove MapCircleDecorator           

       if (GroundCircleEnabled)
       OtherPlayerDecorator.Decorators.Add //add GroundCircleDecorator
         (new GroundCircleDecorator(Hud)
                   {
                       Brush = Hud.Render.CreateBrush(180, R, G, B, 6),
                       Radius = radius,
                   });

       if (MapCircleEnabled)
       OtherPlayerDecorator.Decorators.Add //add MapCircleDecorator
         (new MapShapeDecorator(Hud)
                   {
                       Brush = Hud.Render.CreateBrush(255, R, G, B, 2),
                       ShadowBrush = Hud.Render.CreateBrush(96, 0, 0, 0, 1),
                       Radius = 8.0f,
                       ShapePainter = new CircleShapePainter(Hud),
                   });

       PlayerPaint = true;
   }

   public override void PaintWorld(WorldLayer layer)
   {
            var OtherPlayerDecorator = Hud.GetPlugin<OtherPlayerPlugin>().OtherPlayerDecorator;
            var players = Hud.Collections.GetPlayers();//.Where(x => !x.IsMe);//.Where(x => x.IsMe);
            foreach (var player in players)
            {
                if (player.CoordinateKnown && (GroundCircleEnabled || MapCircleEnabled))
      {
         PlayerPaint = false;
         if (CircleSelfEnabled && player.IsMe)
            ColorsForClasses (255, 0, 51, 2);  //If Me
         else if (!player.IsMe)
         switch (player.HeroClassRules.HeroClass)
                  {
                      case HeroClass.Wizard:
                          if (CircleWizardEnabled)
                          ColorsForClasses (0, 200, 200, 3);  //Wizard - blue
                          break;
   
                      case HeroClass.WitchDoctor:
                          if (CircleWitchDoctorEnabled)
                          ColorsForClasses (250, 100, 100, 3);  //WitchDoctor - pink
                          break;
   
                      case HeroClass.Barbarian:
                          if (CircleBarbarianEnabled)
                          ColorsForClasses (51, 0, 0, 3);  //Barbarian - dark red
                          break;
   
                      case HeroClass.DemonHunter:
                          if (CircleDemonHunterEnabled)
                          ColorsForClasses (250, 250, 0, 3);  //DemonHunter - yellow
                          break;
   
                      case HeroClass.Crusader:
                          if (CircleCrusaderEnabled)
                          ColorsForClasses (200, 0, 200, 3); //Crusader - violet
                          break;
   
                      case HeroClass.Monk:
                          if (CircleMonkEnabled)
                          ColorsForClasses (150, 200, 0, 3); //Monk - green
                          break;
                  }
         if (PlayerPaint) OtherPlayerDecorator.Paint(layer, player.FloorCoordinate, null);
      }
            }
   }
 
    } //End of class PlayerColorCirclesPlugin

} //End of namespace Turbo.Plugins.Custom
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Аватара пользователя
DmitryOlenin
В первых рядах В центре внимания (II-го уровня) Девять с половиной стеклопушек
Сообщения: 1606
Откуда: Москва
Репутация: 1184
Статус: Не в сети

  • 1

Сообщение DmitryOlenin » 31 янв 2017, 01:22

Поправил небольшой глюк с задвоением красного круга вокруг себя и другого игрока.

Cкачать.

PlayerColorCirclesPlugin.cs
Код: Выделить всё
using System.Linq;

namespace Turbo.Plugins.Custom
{

    public class PlayerColorCirclesPlugin : BasePlugin
    {

        public PlayerColorCirclesPlugin()
        {
            Enabled = true;
        }

        public override void Load(IController hud)
        {
            base.Load(hud);
        }

   //Enable or disable snippet features
//--------------------------------------------------------------------------------------------------
   public bool MapCircleEnabled = true;       //Enable or disable Map Circles feature
   public bool GroundCircleEnabled = true;      //Enable or disable Ground Circles feature
   public bool CircleSelfEnabled = true;      //Enable or disable Self Circles feature
   public bool CircleDemonHunterEnabled = true;   //Enable or disable DemonHunter mark
   public bool CircleBarbarianEnabled = true;   //Enable or disable Barbarian mark
   public bool CircleWizardEnabled = true;      //Enable or disable Wizard mark
   public bool CircleWitchDoctorEnabled = true;   //Enable or disable WitchDoctor mark
   public bool CircleMonkEnabled = true;      //Enable or disable Monk mark
   public bool CircleCrusaderEnabled = true;   //Enable or disable Crusader mark
//--------------------------------------------------------------------------------------------------

        public bool ColorsForClasses (int R, int G, int B, int radius)
   {
            bool result = false;
           
            try
       {
               var OtherPlayerDecorator = Hud.GetPlugin<OtherPlayerPlugin>().OtherPlayerDecorator;
   
          if (GroundCircleEnabled && MapCircleEnabled)
               {
                  if (OtherPlayerDecorator.Decorators.Count > 3)
                OtherPlayerDecorator.Decorators.RemoveAt(3); //remove MapCircleDecorator
                  if (OtherPlayerDecorator.Decorators.Count > 2)
                OtherPlayerDecorator.Decorators.RemoveAt(2); //remove GroundCircleDecorator
               }
               else if (GroundCircleEnabled && OtherPlayerDecorator.Decorators.Count > 2)
                  OtherPlayerDecorator.Decorators.RemoveAt(2); //remove GroundCircleDecorator
               else if (MapCircleEnabled && OtherPlayerDecorator.Decorators.Count > 2)
                  OtherPlayerDecorator.Decorators.RemoveAt(2); //remove MapCircleDecorator           
   
          if (GroundCircleEnabled)
          OtherPlayerDecorator.Decorators.Add //add GroundCircleDecorator
            (new GroundCircleDecorator(Hud)
                      {
                          Brush = Hud.Render.CreateBrush(180, R, G, B, 6),
                          Radius = radius,
                      });
   
          if (MapCircleEnabled)
          OtherPlayerDecorator.Decorators.Add //add MapCircleDecorator
            (new MapShapeDecorator(Hud)
                      {
                          Brush = Hud.Render.CreateBrush(255, R, G, B, 2),
                          ShadowBrush = Hud.Render.CreateBrush(96, 0, 0, 0, 1),
                          Radius = 8.0f,
                          ShapePainter = new CircleShapePainter(Hud),
                      });
   
          result = true;
       }
            catch
       {
      //ignore
            }
            return result;
   }

   public override void PaintWorld(WorldLayer layer)
   {
            var OtherPlayerDecorator = Hud.GetPlugin<OtherPlayerPlugin>().OtherPlayerDecorator;
            var players = Hud.Collections.GetPlayers().Where(x => !x.IsMe);
            var playerMe = Hud.Collections.Me;

            if (CircleSelfEnabled && ColorsForClasses (255, 0, 51, 2))
      OtherPlayerDecorator.Paint(layer, playerMe.FloorCoordinate, null);

            foreach (var player in players)
            {
                var result = false;
                if (player.CoordinateKnown && (GroundCircleEnabled || MapCircleEnabled))
      {
         switch (player.HeroClassRules.HeroClass)
                  {
                      case HeroClass.Wizard:
                          if (CircleWizardEnabled)
                          result = ColorsForClasses (0, 200, 200, 3);  //Wizard - blue
                          break;
   
                      case HeroClass.WitchDoctor:
                          if (CircleWitchDoctorEnabled)
                          result = ColorsForClasses (250, 100, 100, 3);  //WitchDoctor - pink
                          break;
   
                      case HeroClass.Barbarian:
                          if (CircleBarbarianEnabled)
                          result = ColorsForClasses (51, 0, 0, 3);  //Barbarian - dark red
                          break;
   
                      case HeroClass.DemonHunter:
                          if (CircleDemonHunterEnabled)
                          result = ColorsForClasses (250, 250, 0, 3);  //DemonHunter - yellow
                          break;
   
                      case HeroClass.Crusader:
                          if (CircleCrusaderEnabled)
                          result = ColorsForClasses (200, 0, 200, 3); //Crusader - violet
                          break;
   
                      case HeroClass.Monk:
                          if (CircleMonkEnabled)
                          result = ColorsForClasses (150, 200, 0, 3); //Monk - green
                          break;
                  }

         if (result) OtherPlayerDecorator.Paint(layer, player.FloorCoordinate, null);
      }
            }
   }
 
    } //End of class PlayerColorCirclesPlugin

} //End of namespace Turbo.Plugins.Custom
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Аватара пользователя
DmitryOlenin
В первых рядах В центре внимания (II-го уровня) Девять с половиной стеклопушек
Сообщения: 1606
Откуда: Москва
Репутация: 1184
Статус: Не в сети

Сообщение krot » 03 фев 2017, 22:40

Дмитрий, в твоих настройках все нравится, но как вернуть дальность прорисовки карты, какой параметр править
Аватара пользователя
krot
Два года стекла и пушек
Сообщения: 5
Репутация: 0
Статус: Не в сети

Сообщение DmitryOlenin » 04 фев 2017, 03:43

ui_user_snippet_disable_my.xml
Убрать этот блок (или поставить <o1 path="map_reveal.enabled" value="1" />):
Код: Выделить всё
      <map_reveal enabled="1" file="ui_default_main">
         <o1 path="map_reveal.enabled" value="0" />
      </map_reveal>
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Аватара пользователя
DmitryOlenin
В первых рядах В центре внимания (II-го уровня) Девять с половиной стеклопушек
Сообщения: 1606
Откуда: Москва
Репутация: 1184
Статус: Не в сети

Сообщение chizsork » 07 фев 2017, 11:37

Ребят как сделать так, что бы отображалась только карта с мобами? ) есть у кого нить такой конфиг?
Аватара пользователя
chizsork
В первых рядах Девять с половиной стеклопушек
Сообщения: 94
Откуда: Ульяновск
Репутация: 94
Статус: Не в сети

Сообщение polysster » 08 фев 2017, 11:02

Скоро смена системы плагинов в ТХ, интересно знать, кто то из русскоязычного сегмента пользователей имеет доступ к бете ТХ, особенно DmitryOlenin? Как там обстоят дела? На сколько сложно будет адаптировать плагины от беты v.7? :cute:
Аватара пользователя
polysster
В первых рядах Танец с пушками Девять с половиной стеклопушек Семь раз отмерь, один раз стеклопушка Восьмое чудо Санктуария
Сообщения: 52
Откуда: Киев
Репутация: 27
Статус: Не в сети

Сообщение Alexzz » 08 фев 2017, 20:02

DmitryOlenin писал(а):Поправил небольшой глюк с задвоением красного круга вокруг себя и другого игрока.

Cкачать.

PlayerColorCirclesPlugin.cs
Код: Выделить всё
using System.Linq;

namespace Turbo.Plugins.Custom
{

    public class PlayerColorCirclesPlugin : BasePlugin
    {

        public PlayerColorCirclesPlugin()
        {
            Enabled = true;
        }

        public override void Load(IController hud)
        {
            base.Load(hud);
        }

   //Enable or disable snippet features
//--------------------------------------------------------------------------------------------------
   public bool MapCircleEnabled = true;       //Enable or disable Map Circles feature
   public bool GroundCircleEnabled = true;      //Enable or disable Ground Circles feature
   public bool CircleSelfEnabled = true;      //Enable or disable Self Circles feature
   public bool CircleDemonHunterEnabled = true;   //Enable or disable DemonHunter mark
   public bool CircleBarbarianEnabled = true;   //Enable or disable Barbarian mark
   public bool CircleWizardEnabled = true;      //Enable or disable Wizard mark
   public bool CircleWitchDoctorEnabled = true;   //Enable or disable WitchDoctor mark
   public bool CircleMonkEnabled = true;      //Enable or disable Monk mark
   public bool CircleCrusaderEnabled = true;   //Enable or disable Crusader mark
//--------------------------------------------------------------------------------------------------

        public bool ColorsForClasses (int R, int G, int B, int radius)
   {
            bool result = false;
           
            try
       {
               var OtherPlayerDecorator = Hud.GetPlugin<OtherPlayerPlugin>().OtherPlayerDecorator;
   
          if (GroundCircleEnabled && MapCircleEnabled)
               {
                  if (OtherPlayerDecorator.Decorators.Count > 3)
                OtherPlayerDecorator.Decorators.RemoveAt(3); //remove MapCircleDecorator
                  if (OtherPlayerDecorator.Decorators.Count > 2)
                OtherPlayerDecorator.Decorators.RemoveAt(2); //remove GroundCircleDecorator
               }
               else if (GroundCircleEnabled && OtherPlayerDecorator.Decorators.Count > 2)
                  OtherPlayerDecorator.Decorators.RemoveAt(2); //remove GroundCircleDecorator
               else if (MapCircleEnabled && OtherPlayerDecorator.Decorators.Count > 2)
                  OtherPlayerDecorator.Decorators.RemoveAt(2); //remove MapCircleDecorator           
   
          if (GroundCircleEnabled)
          OtherPlayerDecorator.Decorators.Add //add GroundCircleDecorator
            (new GroundCircleDecorator(Hud)
                      {
                          Brush = Hud.Render.CreateBrush(180, R, G, B, 6),
                          Radius = radius,
                      });
   
          if (MapCircleEnabled)
          OtherPlayerDecorator.Decorators.Add //add MapCircleDecorator
            (new MapShapeDecorator(Hud)
                      {
                          Brush = Hud.Render.CreateBrush(255, R, G, B, 2),
                          ShadowBrush = Hud.Render.CreateBrush(96, 0, 0, 0, 1),
                          Radius = 8.0f,
                          ShapePainter = new CircleShapePainter(Hud),
                      });
   
          result = true;
       }
            catch
       {
      //ignore
            }
            return result;
   }

   public override void PaintWorld(WorldLayer layer)
   {
            var OtherPlayerDecorator = Hud.GetPlugin<OtherPlayerPlugin>().OtherPlayerDecorator;
            var players = Hud.Collections.GetPlayers().Where(x => !x.IsMe);
            var playerMe = Hud.Collections.Me;

            if (CircleSelfEnabled && ColorsForClasses (255, 0, 51, 2))
      OtherPlayerDecorator.Paint(layer, playerMe.FloorCoordinate, null);

            foreach (var player in players)
            {
                var result = false;
                if (player.CoordinateKnown && (GroundCircleEnabled || MapCircleEnabled))
      {
         switch (player.HeroClassRules.HeroClass)
                  {
                      case HeroClass.Wizard:
                          if (CircleWizardEnabled)
                          result = ColorsForClasses (0, 200, 200, 3);  //Wizard - blue
                          break;
   
                      case HeroClass.WitchDoctor:
                          if (CircleWitchDoctorEnabled)
                          result = ColorsForClasses (250, 100, 100, 3);  //WitchDoctor - pink
                          break;
   
                      case HeroClass.Barbarian:
                          if (CircleBarbarianEnabled)
                          result = ColorsForClasses (51, 0, 0, 3);  //Barbarian - dark red
                          break;
   
                      case HeroClass.DemonHunter:
                          if (CircleDemonHunterEnabled)
                          result = ColorsForClasses (250, 250, 0, 3);  //DemonHunter - yellow
                          break;
   
                      case HeroClass.Crusader:
                          if (CircleCrusaderEnabled)
                          result = ColorsForClasses (200, 0, 200, 3); //Crusader - violet
                          break;
   
                      case HeroClass.Monk:
                          if (CircleMonkEnabled)
                          result = ColorsForClasses (150, 200, 0, 3); //Monk - green
                          break;
                  }

         if (result) OtherPlayerDecorator.Paint(layer, player.FloorCoordinate, null);
      }
            }
   }
 
    } //End of class PlayerColorCirclesPlugin

} //End of namespace Turbo.Plugins.Custom
Спасибо за Ваше решение. Только иногда начинаются глюки, своего рода тормоза, довольно сильные и приходится перегружать турбину. Убираешь Ваш файл и ничего подобного никогда не происходит. Видимо эти кружки как-то негативно влияют на игровой процесс. Но проблема проявляется не сразу, а спустя некоторое время, всегда разное. Может так какой-то буфер перегружается или что-то подобное?
Аватара пользователя
Alexzz
Семь раз отмерь, один раз стеклопушка
Сообщения: 242
Репутация: 166
Статус: Не в сети

Сообщение emax » 09 фев 2017, 04:03

В новом тх нету папки ui_user, создал ее в конфиге но все равно ваши настройки Дмитрий не работают. Biblethump
Теперь прийдется каждый файлик редактировать чтобы все ненужное поубирать?
Аватара пользователя
emax
Не прошло и года
Сообщения: 11
Репутация: 2
Статус: Не в сети

Сообщение Yamaxus » 09 фев 2017, 09:55

DmitryOlenin, Не подскажешь как убрать стаки кольца стихий со своего портрета, вернуть буковку А на древноту. А также желательно круги под чаров. Чет в последнем релизе все поломалось.
No brain, no pain!
Аватара пользователя
Yamaxus
Девять с половиной стеклопушек
Сообщения: 506
Репутация: 621
Статус: Не в сети

  • 2

Сообщение DmitryOlenin » 09 фев 2017, 10:20

polysster,
Ночью новый релиз выложил KillerJohn.
Я пока не видел, но changed: EVERYTHING немного пугает :)

emax,
Я секунд за 5 нашёл новое расположение каталога пользовательских настроек. \plugins\User\

Alexzz,
Возможно такое. В игре вообще круги какие-то статичны, в основном.
То есть не двигаются по экрану и по карте. Возможно, турбохуд клинит от постоянных отрисовок.

Yamaxus,
Подскажу, как только поковыряюсь. Или это сделает кто-нибудь ещё на форуме :)
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Аватара пользователя
DmitryOlenin
В первых рядах В центре внимания (II-го уровня) Девять с половиной стеклопушек
Сообщения: 1606
Откуда: Москва
Репутация: 1184
Статус: Не в сети

Сообщение doubleday » 09 фев 2017, 17:05

переименовал файл как написано, в файле поставил Ru по примеру, но как был английский так и остался.
Аватара пользователя
doubleday
Не прошло и года
Сообщения: 6
Репутация: 0
Статус: Не в сети

Сообщение DmitryOlenin » 09 фев 2017, 17:55

Речь идёт о \data\selected_language.txt?

В файле оставлена только одна строка (не считая комментариев)?
ruRU
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Аватара пользователя
DmitryOlenin
В первых рядах В центре внимания (II-го уровня) Девять с половиной стеклопушек
Сообщения: 1606
Откуда: Москва
Репутация: 1184
Статус: Не в сети

Сообщение doubleday » 09 фев 2017, 18:16

короче понятно, там переведено не все, я смотрел на название статов и таблицы всякие со статистикой, они как раз и остались на английском
Аватара пользователя
doubleday
Не прошло и года
Сообщения: 6
Репутация: 0
Статус: Не в сети

Сообщение DmitryOlenin » 09 фев 2017, 19:17

Я полагаю, там вообще ничего не "переведено", используются понятия из игры.
Те данные, что в самом турбохуде, никто не трогал, думаю.
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Аватара пользователя
DmitryOlenin
В первых рядах В центре внимания (II-го уровня) Девять с половиной стеклопушек
Сообщения: 1606
Откуда: Москва
Репутация: 1184
Статус: Не в сети

Сообщение DmitryOlenin » 09 фев 2017, 23:23

Новая версия. Вот это - моих рук дело :lol: :lol: :lol:
BREAKING CHANGE: UiHiddenPlayerSkillBarPlugin class is renamed to UiHiddenPortraitSkillBarPlugin (to match the file name)



Новая версия моего "очищающего" конфига.
Картинка с отображением в игре (кликабельна):
Картинка из игры
Изображение

TurboHUD\plugins\User\myDisablerPlugin.cs текст:
myDisablerPlugin.cs
Код: Выделить всё
using Turbo.Plugins.Default;

namespace Turbo.Plugins.User
{

    public class myDisablerPlugin : BasePlugin
    {

        public myDisablerPlugin()
        {
            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 override void Customize()
        {
      Hud.GetPlugin<InventoryAndStashPlugin>().NotGoodDisplayEnabled = false; //Убираем пометку вещей для продажи серым // turn off sell darkening
      Hud.TogglePlugin<DamageBonusPlugin>(false); //Убираем полоску с типами урона под сферой жизней
      Hud.TogglePlugin<OtherPlayersPlugin>(false); //Убираем отображение имён других игроков
      Hud.TogglePlugin<TopMonsterHealthBarPlugin>(false); //disable big green line at top ?
      Hud.TogglePlugin<AttributeLabelListPlugin>(false); //убираем полосу над скиллами
      Hud.GetPlugin<OriginalSkillBarPlugin>().SkillPainter.EnableSkillDpsBar = false; // disable dps on skill bar
      Hud.TogglePlugin<ConventionOfElementsBuffListPlugin>(false); //убираем отображение кольца стихий
           
            Hud.TogglePlugin<MultiplayerExperienceRangePlugin>(true); // if you want to enable this plugin then change 'false' to 'true' or just comment out the entire line, because all plugins are enabled by default
            Hud.GetPlugin<InventoryAndStashPlugin>().CanCubedEnabled = false; //Убираем отметку о возможности поместить в куб
       Hud.TogglePlugin<StashPreviewPlugin>(false); //Убираем предпросмотр в сундуке
       Hud.TogglePlugin<ResourceOverGlobePlugin>(false); //Убираем значения на сферах ресурсов
       Hud.TogglePlugin<SkillRangeHelperPlugin>(false); //Убираем отображение радиуса скиллов
       Hud.TogglePlugin<GameInfoPlugin>(false); //Убираем отображение времени и ip сервера
       Hud.TogglePlugin<NetworkLatencyPlugin>(false); //Убираем цифровое отображение качества сетевого соединения
       Hud.TogglePlugin<NotifyAtRiftPercentagePlugin>(false); //Убираем отображение процентов рифта по центру экрана
       Hud.TogglePlugin<ExperienceOverBarPlugin>(false); //Убираем отображение опыта на полоске
       Hud.TogglePlugin<PortraitBottomStatsPlugin>(false); //Убираем отображение числа под портретами
       Hud.TogglePlugin<EliteMonsterAffixPlugin>(false); //Убираем описание уникальных монстров
       Hud.TogglePlugin<DangerousMonsterPlugin>(false); //Убираем описание опасных монстров
       Hud.GetPlugin<ShrinePlugin>().HealingWellDecorator.Enabled = false; //Убираем отображение колодцев жизней
       Hud.GetPlugin<ItemsPlugin>().NormalKeepDecorator.Enabled = false; //Gray items decorator disable (on the map?)
       Hud.GetPlugin<ItemsPlugin>().MagicKeepDecorator.Enabled = false; //Blue items decorator disable (on the map?)
       Hud.GetPlugin<ItemsPlugin>().RareKeepDecorator.Enabled = false; //Yellow items decorator disable (on the map?)
       Hud.GetPlugin<ItemsPlugin>().BookDecorator.Enabled = false; //Bookdecorator disable
       Hud.TogglePlugin<PickupRangePlugin>(false); //disable pickup range
        }

    } //End of class

} //End of namespace


Скачать


P.S.
Быстро переделать конфиг с кругами не получается.
Тратить несколько часов на это у меня пока нет желания.
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Аватара пользователя
DmitryOlenin
В первых рядах В центре внимания (II-го уровня) Девять с половиной стеклопушек
Сообщения: 1606
Откуда: Москва
Репутация: 1184
Статус: Не в сети

Сообщение emax » 10 фев 2017, 00:59

спасибо большое! только вместо буквы а на древних у меня i
Аватара пользователя
emax
Не прошло и года
Сообщения: 11
Репутация: 2
Статус: Не в сети

Сообщение DmitryOlenin » 10 фев 2017, 01:12

Так создатель задумал, я не менял.
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Аватара пользователя
DmitryOlenin
В первых рядах В центре внимания (II-го уровня) Девять с половиной стеклопушек
Сообщения: 1606
Откуда: Москва
Репутация: 1184
Статус: Не в сети

Сообщение Yamaxus » 10 фев 2017, 10:44

DmitryOlenin, а на картинках буковка А есть, мистика... Воу, в последнем релизе мои хотелки исправили. :)
Последний раз редактировалось Yamaxus 10 фев 2017, 11:11, всего редактировалось 2 раз(а).
No brain, no pain!
Аватара пользователя
Yamaxus
Девять с половиной стеклопушек
Сообщения: 506
Репутация: 621
Статус: Не в сети

Сообщение d2alex » 10 фев 2017, 11:07

Кто о чем, а голый о ... бане )
Подскажите как теперь, в обновленной системе настроек ТХ, сделать отображение прока Летящего дракона для монка?
Заранее спасибо!
Аватара пользователя
d2alex
Два года стекла и пушек Четыре года на стекле
Сообщения: 2
Репутация: 0
Статус: Не в сети

Сообщение doubleday » 10 фев 2017, 14:35

чото после ночной обновы, ruRU точно не работает вообще нигде у меня.
Аватара пользователя
doubleday
Не прошло и года
Сообщения: 6
Репутация: 0
Статус: Не в сети

  • 1

Сообщение DmitryOlenin » 10 фев 2017, 15:13

Человек выложил плагин: ClassMarkersPlugin.
Качайте, используйте, любители кругов :)
Программа для автоматического нажатия клавиш Diablo 3 Hotkeys
Школьники ушли в школы, больше за 10 минут никто калькуляторы не пишет...
Программа для расчёта DPS - Diablo 3
Аватара пользователя
DmitryOlenin
В первых рядах В центре внимания (II-го уровня) Девять с половиной стеклопушек
Сообщения: 1606
Откуда: Москва
Репутация: 1184
Статус: Не в сети

Сообщение Yamaxus » 10 фев 2017, 16:00

DmitryOlenin писал(а):Человек выложил плагин: ClassMarkersPlugin.
Качайте, используйте, любители кругов :)

За ссылку спасибо конечно, но работает лишь в соло режиме. В пати тх крашится, и вся ценность кружков пропадает.
No brain, no pain!
Аватара пользователя
Yamaxus
Девять с половиной стеклопушек
Сообщения: 506
Репутация: 621
Статус: Не в сети

Пред.След.

Вернуться в Игровая механика



Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 14