1-70 experience tracking menu

User Tag List

Results 1 to 6 of 6
  1. #1
    Vern1701's Avatar Active Member
    Reputation
    52
    Join Date
    Mar 2017
    Posts
    316
    Thanks G/R
    12/49
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    1-70 experience tracking

    I have the experience data for both 1-70 and Paragon. The question is: Would it be possible to code the 1-70 part of the experience table? Brainstorning begins...

    1-70 experience tracking
  2. #2
    User5981's Avatar First Dev On The Internet
    Reputation
    379
    Join Date
    Aug 2017
    Posts
    765
    Thanks G/R
    30/358
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Vern1701 View Post
    I have the experience data for both 1-70 and Paragon. The question is: Would it be possible to code the 1-70 part of the experience table? Brainstorning begins...
    Iplayer only contains :
    long ParagonTotalExp { get; }
    I'm curious to know why we can't have long PreParagonTotalExp { get; }
    Supported version for all Resu plugins

  3. #3
    Vern1701's Avatar Active Member
    Reputation
    52
    Join Date
    Mar 2017
    Posts
    316
    Thanks G/R
    12/49
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    That's a good question... I wonder if KJ can shed some light on this. I could send the exp table to your GitHub account, if you want it...

  4. #4
    iThinkiWin's Avatar Active Member
    Reputation
    28
    Join Date
    Oct 2018
    Posts
    104
    Thanks G/R
    25/25
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    wasn't sure if there was already a way to pull the low and high exp pre 70 at all already, but

    if under level 70 and mouse over exp bar



    ExpNormal[3] = current exp String
    ExpNormal[5] = exp to next level String

    Code:
    using System.Globalization;
    using Turbo.Plugins.Default;
    using System;
    using System.Text;
    using System.Text.RegularExpressions;
    
    namespace Turbo.Plugins.iWin
    {
        public class iWin_ExperienceOverBarPlugin : BasePlugin, IInGameTopPainter, ICustomizer
        {
            public TopLabelDecorator BlueThisLevelValueDecorator { get; set; }
            public TopLabelDecorator OrangeThisLevelValueDecorator { get; set; }
            public TopLabelDecorator BlueNextLevelValueDecorator { get; set; }
            public TopLabelDecorator OrangeNextLevelValueDecorator { get; set; }
            public TopLabelDecorator BonusValueDecorator { get; set; }
            public TopLabelDecorator NormalLevelDecorator { get; set; }
    
            private string NormalLevel;
            private bool uiRegister;
    
            public iWin_ExperienceOverBarPlugin()
            {
                Enabled = true;
            }
    
            public override void Load(IController hud)
            {
                base.Load(hud);
    
                BlueThisLevelValueDecorator = new TopLabelDecorator(Hud)
                {
                    TextFont = Hud.Render.CreateFont("tahoma", 5.5f, 255, 140, 140, 180, false, false, 160, 0, 0, 0, true),
                    TextFunc = () => Hud.Game.Me.ParagonExpInThisLevel.ToString("#,0", CultureInfo.InvariantCulture),
                    HintFunc = () => "experience gained in this level",
                };
    
                OrangeThisLevelValueDecorator = new TopLabelDecorator(Hud)
                {
                    TextFont = Hud.Render.CreateFont("tahoma", 5.5f, 255, 200, 160, 140, false, false, 160, 0, 0, 0, true),
                    TextFunc = () => Hud.Game.Me.ParagonExpInThisLevel.ToString("#,0", CultureInfo.InvariantCulture),
                    HintFunc = () => "experience gained in this level",
                };
    
                BlueNextLevelValueDecorator = new TopLabelDecorator(Hud)
                {
                    TextFont = Hud.Render.CreateFont("tahoma", 5.5f, 255, 140, 140, 180, false, false, 160, 0, 0, 0, true),
                    TextFunc = () => Hud.Game.Me.ParagonExpToNextLevel.ToString("#,0", CultureInfo.InvariantCulture),
                    HintFunc = () => "experience to reach next level",
                };
    
                OrangeNextLevelValueDecorator = new TopLabelDecorator(Hud)
                {
                    TextFont = Hud.Render.CreateFont("tahoma", 5.5f, 255, 200, 160, 140, false, false, 160, 0, 0, 0, true),
                    TextFunc = () => Hud.Game.Me.ParagonExpToNextLevel.ToString("#,0", CultureInfo.InvariantCulture),
                    HintFunc = () => "experience to reach next level",
                };
    
                BonusValueDecorator = new TopLabelDecorator(Hud)
                {
                    TextFont = Hud.Render.CreateFont("tahoma", 5.5f, 255, 200, 160, 140, false, false, 160, 0, 0, 0, true),
                    TextFunc = () => (Hud.Game.Me.BonusPoolRemaining * 5).ToString("#,0", CultureInfo.InvariantCulture),
                    HintFunc = () => "bonus pool * 5",
                };
    
                NormalLevelDecorator = new TopLabelDecorator(Hud)
                {
                    TextFont = Hud.Render.CreateFont("tahoma", 5.5f, 255, 200, 160, 140, false, false, 160, 0, 0, 0, true),
                    TextFunc = () => NormalLevel,
                    HintFunc = () => "temp",
                };
            }
    
            public void Customize()
            {
                Hud.TogglePlugin<ExperienceOverBarPlugin>(false);
            }
    
            public void PaintTopInGame(ClipState clipState)
            {
                if (Hud.Render.UiHidden)
                    return;
                if (clipState != ClipState.BeforeClip)
                    return;
                if ((Hud.Game.MapMode == MapMode.WaypointMap) || (Hud.Game.MapMode == MapMode.ActMap) || (Hud.Game.MapMode == MapMode.Map))
                    return;
    
                var uiRect = Hud.Render.InGameBottomHudUiElement.Rectangle;
    
                var bonusRemaining = Hud.Game.Me.BonusPoolRemaining;
    
                if (Hud.Game.Me.CurrentLevelNormal < Hud.Game.Me.CurrentLevelNormalCap)
                {
                    var builder = new StringBuilder();
                    var expBuilder = new StringBuilder();
                    IUiElement ui = Hud.Render.GetUiElement("Root.TopLayer.tooltip_dialog_background.tooltip_2.tooltip");
                    if (ui == null)
                    {
                        builder.Append("null");
                        if (!uiRegister)
                        {
                            uiRegister = true;
                            Hud.Render.RegisterUiElement("Root.TopLayer.tooltip_dialog_background.tooltip_2.tooltip", ui, null);
                        }
                    }
                    else if (!ui.Visible)
                    {
                        builder.Append("!visible");
                    }
                    else
                    {
                        try
                        {
                            builder.Append(ui.ReadText(Encoding.Default, removeColors: true));
                            string[] ExpNormal = Regex.Split(builder.ToString(), @"\{.*?\}+", RegexOptions.IgnoreCase);
                            expBuilder.Clear();
                            expBuilder.Append(ExpNormal[3] + " / " + Regex.Replace(ExpNormal[5], @"\,+", ""));
                        }
                        catch (Exception)
                        {
                            expBuilder.Clear();
                        }
                        
                    }
                    NormalLevel = expBuilder.ToString();
                    NormalLevelDecorator.Paint(uiRect.Left + (uiRect.Width * 0.651f), uiRect.Top + (uiRect.Height * 0.470f), uiRect.Width * 0.075f, uiRect.Height * 0.07f, HorizontalAlign.Right);
                }
                else
                {
                    (bonusRemaining > 0 ? OrangeThisLevelValueDecorator : BlueThisLevelValueDecorator).Paint(uiRect.Left + (uiRect.Width * 0.42f), uiRect.Top + (uiRect.Height * 0.470f), uiRect.Width * 0.075f, uiRect.Height * 0.07f, HorizontalAlign.Right);
                    (bonusRemaining > 0 ? OrangeNextLevelValueDecorator : BlueNextLevelValueDecorator).Paint(uiRect.Left + (uiRect.Width * 0.505f), uiRect.Top + (uiRect.Height * 0.470f), uiRect.Width * 0.075f, uiRect.Height * 0.07f, HorizontalAlign.Left);
                }
    
                if (bonusRemaining > 0)
                {
                    BonusValueDecorator.Paint(uiRect.Left + (uiRect.Width * 0.651f), uiRect.Top + (uiRect.Height * 0.470f), uiRect.Width * 0.075f, uiRect.Height * 0.07f, HorizontalAlign.Right);
                }
            }
        }
    }
    jarjar helped me with regui earlier so was a chance to test it again. using try/catch because if mouse moved off too fast it throws exceptions.

  5. #5
    Vern1701's Avatar Active Member
    Reputation
    52
    Join Date
    Mar 2017
    Posts
    316
    Thanks G/R
    12/49
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Oh, it works, but now to do two things. Percent of current non-paragon level and that hover is a bit off putting for me. Any way to make it show up without the hover? For the first one, reference User's Paragon Percentage plugin...

  6. #6
    iThinkiWin's Avatar Active Member
    Reputation
    28
    Join Date
    Oct 2018
    Posts
    104
    Thanks G/R
    25/25
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    It can be displayed without hover but only a static text, updating requires mousing over it sadly,
    collectOnlyWhenThisIsInvisible will only display from initial load and still requires mouse over for refresh.

    would be better if we had

    long NormalTotalExp { get; }
    long NormalExpInThisLevel { get; }
    long NormalExpToNextLevel { get; }

    like resu mentioned

    I'm kind of curious if these actually were originally in thud, and later removed when deemed a waste of time.
    Last edited by iThinkiWin; 09-19-2019 at 04:28 AM.

Similar Threads

  1. DatWoW TBC - Instant 70, BlizzLike raiding & PvP experience.
    By Jonett in forum WoW Emulator Server Listings
    Replies: 0
    Last Post: 09-02-2010, 10:12 AM
  2. Sunfury WoW 2.4.3 ~ Instant 70 ~ Experience a whole new sort of server here.
    By freakolivier in forum WoW Emulator Server Listings
    Replies: 0
    Last Post: 09-23-2008, 03:09 PM
  3. Get experience at level 70?
    By Marshallke in forum World of Warcraft Exploits
    Replies: 29
    Last Post: 08-24-2008, 09:04 PM
  4. Sunfury WoW 2.4.3 ~ Instant 70 ~ Experience a whole new sort of server here.
    By freakolivier in forum WoW Emulator Server Listings
    Replies: 0
    Last Post: 07-26-2008, 08:16 AM
  5. Easy experience 65-70 w/Video
    By Kiloboban in forum World of Warcraft Guides
    Replies: 9
    Last Post: 12-07-2007, 10:38 PM
All times are GMT -5. The time now is 10:06 PM. 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