• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

Question - Achievements TLO? (1 Viewer)

freeferli

Well-known member
Joined
Apr 3, 2019
RedCents
831¢
Is there a TLO for achievements? Or another way to access it programmatically?
There is a Task TLO but I think that is only for quests, not achievements.
this did not work
/echo ${Task["The Artisan's Wares"].Title}

Specifically I thought it would be helpful for the "Artisan Wares" quest, also for finding which collectables you are missing.
 
Is there a TLO for achievements? Or another way to access it programmatically?
There is a Task TLO but I think that is only for quests, not achievements.
this did not work
/echo ${Task["The Artisan's Wares"].Title}

Specifically I thought it would be helpful for the "Artisan Wares" quest, also for finding which collectables you are missing.
nah, no achievement tlo - currently you have to scan through the windows
 
@freeferli you are raising an interesting question.

This is something I looked into not that long ago.
I was interested in both Factions and Achievements.

Factions; if the window is opened during the game session the characters faction information is available to query quickly in a macro.

Achievements; whilst it looks similar, is alas not. Opening the window is not enough to get it there.
The menu bar on the left side must be clicked on to open a subsection of achievements, started by clicking the category title and then click one of the subordinate categories to it. E.g. Tradeskill; Quests, Baking, Blacksmithing. Heros Journey; Progression, Advancement, Special. etc.

The Achievements that can then be scraped, are limited to those loaded from that section only.

To make matters worse, and it does get worse.

Macro code can open / close the windows, thats not a problem.
It can send a click event to the Achievement window, and click in that category panel.
But, from what I have seen so far - I am not able to specifically target that click, where i want it.
There is one category "object" it has not children objects, its sibling is not a category to navigate over.

The click opens a top level category, about half way down the dozen categories listed on the window.
Manually scroll down, and use the same "click" code, it opens whatever is visible "half way" down the window at the new scroll position.
i.e. it doesnt know where to click, so just clicks middle of that large vertical rectangle.

The structure of the achievement categories is in a TreeView, and i havent seen any method to process it.
 
Pictures give the idea better than words.

With regards this command, entered into chat window:
/invoke ${Window[Achievementswnd].Child[ACH_Main_Layout].FirstChild.LeftMouseUp}

achieve invoke click.png

The intial view of categories is on left; and the right hand side is that "half way down" that is visible, being "clicked".
Repeat the click, it collapses the category "everquest" back up again.
 
Some more investigation inputs and outputs.


/echo ${Window[Achievementswnd].Child[ACH_Main_Layout].FirstChild.Name}
- ACH_Categories

/echo ${Window[Achievementswnd].Child[ACH_Main_Layout].FirstChild.Type}
- TreeView

/echo ${Window[Achievementswnd].Child[ACH_Main_Layout].FirstChild.Children}
-false

/echo ${Window[Achievementswnd].Child[ACH_Main_Layout].FirstChild.Siblings}
-true

/echo ${Window[Achievementswnd].Child[ACH_Main_Layout].Child[ACH_Categories].Name}
- ACH_Categories

/echo ${Window[Achievementswnd].Child[ACH_Main_Layout].Child[ACH_Categories].Type}
- TreeView

/echo ${Window[Achievementswnd].Child[ACH_Main_Layout].Child[ACH_Categories].Children}
-false

/echo ${Window[Achievementswnd].Child[ACH_Main_Layout].Child[ACH_Categories].Siblings}
-true

/echo ${Window[Achievementswnd].Child[ACH_Main_Layout].Child[ACH_Categories].Next.Name}
- ACH_AchievementLayout



If you use MQ2HUD, you can wave your cursor over the screen items and it can tell you the name of the object the cursor passes over.
The other source, is reading the XML documents and can see the structure of the windows.
 
EQUI_AchievementsWnd.xml

From that xml documents, the following pictures help explain the nested layout, and why the various /echo where done in the previous listing.

AchievementsWnd
EQUI_AchievementsWnd - AchievementsWnd.png

ACH_Main_Layout
EQUI_AchievementsWnd - ACH_Main_Layout.png

ACH_Categories
EQUI_AchievementsWnd - ACH_Categories.png


You can see the parent have subordinate "pieces" that are like children structures to access.
That is until get to the bottom, and find ACH_Categories does nto have any.

That is where I hoped there would be several of them, but there arent.

other structures in windows, that appear like lists can be walked, or accessed by an array index.
As it stands, i see no way or information for poking these TreeViews.


That about sums up what I have found with regards Achievements information available via MQ2.
 
It's still referenced as a list but we have no way yet to move though a treeview. I was messing with it last week but stuck trying to select things in it

Oh I know that pain.

I got stuck, and head banging off the keyboard / desk trying to figure it out.


For anyone interested, the post I made also on these forums to discuss this same topic is here.
In there Id also looked at the MQ2 source.

From the source, MQ2Main/EQClasses.h:
  • class CTreeView : public CListWnd
  • class CListWnd//ok Look... this SHOULD inherit CXWnd but doing so... calls the constructor, and we dont want that... so... : public CXWnd
.. as I tried to find what properties it would have that could try output.
 
Question - Achievements TLO?

Users who are viewing this thread

Back
Top