EQ2Interface

EQ2Interface (https://www.eq2interface.com/forums/index.php)
-   ProfitUI (https://www.eq2interface.com/forums/forumdisplay.php?f=41)
-   -   Beta: ProfitUI Quick Macro Button Configurator (https://www.eq2interface.com/forums/showthread.php?t=10242)

gm9 01-24-2008 09:39 PM

Beta: ProfitUI Quick Macro Button Configurator
 
-- This is now available from the download area --.


So I'm sitting in a hotel room on a business trip, can't sleep and felt like doing some coding.

Attached is a modified version of Ornathian's great All Spell Guide table that can be used to automatically configure your ProfitUI quick macro buttons with level detecting code for entire spell lines.

Operation is very simple (I hope):
  • You must have Microsoft Excel running on Windows. Should be compatible with most if not all Excel versions out there as far as I can tell. Might convert this to something more portable one day, but for now that's all you get. Also, you must enable macros to run in this table.
  • You will see a huge table listing all spells/abilities in the game (or so Ornathian claims, but I haven't found anything missing so far). Select any one of them (click anywhere on the line containing it).
  • Now click the huge red button, select your eq2 path and the macro button you want to configure (1 to 5).
  • When you hit "Save", level detecting macro code for the entire spell line will automatically be written to _ProfitUI_QuickRaidButtons.txt in your ProfitUI folder. Do me a favor and make a backup of that file first!
  • Rinse and repeat for any other spell for any other subclass you want to configure
  • The eq2 path will be stored if you save the worksheet when you close it.
Feedback and bug reports are appreciated. It seems to work fine, but then again it's past 3 a.m. in the morning here, who know's how reliable I'm coding at this time. ;) Error handling is pretty minimal at this point.

Should be a very useful tool if it's working though I hope. Thanks for testing.

Version history:
beta 8 - hopefully works with Excel 2000 now
beta 7 - uses ProfitUI 4.5 level detection code based on non-mentored level. Also tooltips now comprise the entire spell line including the level for each spell.
beta 6 - added possibility to add /raidsay, /groupsay, /say and /tell text
beta 5 - colors for calain80
beta 4 -
  • Fixed a bug where a spell line would always be saved to button 1 regardless of your selection in certain circumstances
  • Added complete error handling for eq2 path selection and detecting of an existing ProfitUI installation.
  • Your settings of the table (filters, selected cell) will now be restored after saving a spell line
  • Spell lines with only 1 spell no longer have "line" in the tooltip and the spell name is no longer enclosed in apostrophs
beta 3 - fix for level detection that always tried to use the next higher instead of the current spell (bug introduced with beta 2 I think)
beta 2 - fix for spells with apostrophs
beta 1 - initial release

ShadowProwler420 01-25-2008 09:20 AM

Quote:

Originally Posted by gm9 (Post 68892)
So I'm sitting in a hotel room on a business trip, can't sleep and felt like doing some coding.

Man, I'm not sure if you should be commended (for possibly trying to use code-writing as a sleep agent) or committed for this (I can just picture you sitting in your dark hotel room with only the light source coming from your laptop :p)!!

gm9 01-26-2008 06:57 AM

Quote:

Originally Posted by ShadowProwler420 (Post 68900)
(I can just picture you sitting in your dark hotel room with only the light source coming from your laptop :p)!!

lol, you are right, that was pretty much it. ;)

gm9 01-26-2008 09:55 AM

OP updated with Beta 2 download, fixing a bug with the eq2 macros for spell lines containing apostrophs.

(it would write
'"spell'name"'
but the outer apostrophs don't work apparently)


Also fixing a bug happening when the save window was closed via the [x].

Any feedback is appreciated, even if you just tell me that it works and is the greatest thing since sliced bread. :p

sorinth 01-27-2008 07:55 AM

While you are in tinker mode, you may want to think about implementing the ability to add chat to the button. For raid wide info on rezzes and such. However, you dont need to make the text, just give us the ability to add it (without having to edit multiple files multiple times). If it can be done through the configurator, that would be great. also, not sure if there would be a common point in each button casting tree to add this or if it would need to appear multiple times in the tree. Just a thought and thanx for the excellent work!

Fritos 01-28-2008 09:41 AM

This unfortunately is not working for me, all the macros that it is assigning to the buttons state that 'I no longer have this ability' or some error to that sorts when I click Buttons 1-4, the only one that does work is the 5th button, which is my REZ button. This is my code that it spit out.

Code:

<Page Name="Inquisitor">
                <Data Name="Button1" Macro="SpellForMyLevel='Ministration'
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 57)
SpellForMyLevel=COND ? 'Devoted Ministration' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 43)
SpellForMyLevel=COND ? 'Faithful Ministration' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 29)
SpellForMyLevel=COND ? 'Minister Wounds' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 22)
SpellForMyLevel=COND ? 'Treat Wounds' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 15)
SpellForMyLevel=COND ? 'Combat Healing' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 7)
SpellForMyLevel=COND ? 'Combat Treatment' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 1)
SpellForMyLevel=COND ? 'Treatment' : SpellForMyLevel
useabilityonplayer Parent.Target SpellForMyLevel" Tooltip="Treatment Line"/>
                <Data Name="Button2" Macro="SpellForMyLevel='Arch Recovery'
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 60)
SpellForMyLevel=COND ? 'Fanatical Healing' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 46)
SpellForMyLevel=COND ? 'Intolerant Healing' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 32)
SpellForMyLevel=COND ? 'Dogmatic Healing' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 18)
SpellForMyLevel=COND ? 'Greater Recovery' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 10)
SpellForMyLevel=COND ? 'Recovery' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 3)
SpellForMyLevel=COND ? 'Minor Recovery' : SpellForMyLevel
useabilityonplayer Parent.Target SpellForMyLevel" Tooltip="Minor Recovery Line"/>
                <Data Name="Button3" Macro="SpellForMyLevel='Penance'
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 68)
SpellForMyLevel=COND ? 'Suffering Penance' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 54)
SpellForMyLevel=COND ? 'Woeful Penance' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 40)
SpellForMyLevel=COND ? 'Stinging Penance' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 26)
SpellForMyLevel=COND ? 'Favor of the Repentant' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 19)
SpellForMyLevel=COND ? 'Bestowal of Vitality' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 12)
SpellForMyLevel=COND ? 'Bestowal of Vitae' : SpellForMyLevel
useabilityonplayer Parent.Target SpellForMyLevel" Tooltip="Bestowal of Vitae Line"/>
                <Data Name="Button4" Macro="SpellForMyLevel='Alleviation'
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 70)
SpellForMyLevel=COND ? 'Reproachful Alleviation' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 56)
SpellForMyLevel=COND ? 'Derisive Alleviation' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 42)
SpellForMyLevel=COND ? 'Scolding Alleviation' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 28)
SpellForMyLevel=COND ? '&quot;Penitent&apos;s Sermon&quot;' : SpellForMyLevel
COND=(Parent.Parent.Parent.GroupMembers.GroupMember0.MemberInfoPage.Level.Text < 14)
SpellForMyLevel=COND ? '&quot;Penitent&apos;s Alleviation&quot;' : SpellForMyLevel
useabilityonplayer Parent.Target SpellForMyLevel" Tooltip="&quot;Penitent&apos;s Alleviation&quot; Line"/>
                <Data Name="Button5" Macro="useabilityonplayer Parent.Target Conversion of the Soul" Tooltip="Conversion of the Soul Line"/>
        </Page>

Not sure if it matters, but I set it up to spit out for all 80 levels (don't want to have to do this every time I get a new spell) even though by toon is max at 67? I guess what I'm not understanding how it's looking for the spells. Like For my 'Penance' spell for button 3. If I'm reading that correctly, If I'm lower than 68 it's trying to cast 'Suffering Penance', which wouldn't be correct cause I haven't obtained that spell yet. It should be trying to cast 'Woeful Penance' being I don't get 'Suffering Penance' till 68?

gm9 01-28-2008 09:53 AM

Thanks for testing this. Looking at what it did for you it seems like it set the wrong levels for the spells. I'll take a look and get you a version that addresses this soon.

EDIT: Fix added to first post now, typo in the code...

Quote:

Not sure if it matters, but I set it up to spit out for all 80 levels (don't want to have to do this every time I get a new spell) even though by toon is max at 67?
No that's fine, it's supposed to write the entire spell line up to max level, that works.

gm9 01-28-2008 10:35 AM

Quote:

Originally Posted by sorinth (Post 68950)
While you are in tinker mode, you may want to think about implementing the ability to add chat to the button.

Yes, I already thought about that, but I'll actually have to do some tests first with respect to all the special characters people may want to put in there and how I can encode them such that it works in game, in particular if people start inputing encoded characters (never mind the details, but whatever can go wrong, someone will find it. :p).

Apart from that it's easy to add.

gm9 01-29-2008 02:59 PM

Hmm, and I thought this would be popular... :(

Calain80 01-30-2008 04:11 AM

Quote:

Originally Posted by gm9 (Post 69017)
Hmm, and I thought this would be popular... :(

I think it will be popular. But most people don't know it exists by now (most only visit the forum if they have a problem) or are waiting to see the first final version. ;)

I think you will only see a rising number of downloads, if you add it as a tool to the normal download area.

I'll try to test it out a bit. But I don't know if I will be able to try it out before the weekend. :(

ShadowProwler420 01-30-2008 02:14 PM

Quote:

Originally Posted by gm9 (Post 69017)
Hmm, and I thought this would be popular... :(

If I could be playing the game, I'd be more than happy to be testing this out for you. But being a full-time (16 credit load) unemployed student doesn't really give me much of an opportunity to do anything fun. :(

gm9 01-30-2008 02:41 PM

Quote:

Originally Posted by Calain80 (Post 69035)
I think you will only see a rising number of downloads, if you add it as a tool to the normal download area.

Yes, I will do that along with the next release of the interface after GU42 which will change the level detection code slightly (using the new Self.ActualLevel data to grab your unmentored level, which currently is impossible).

Quote:

Originally Posted by ShadowProwler420 (Post 69045)
But being a full-time (16 credit load) unemployed student doesn't really give me much of an opportunity to do anything fun. :(

Doesn't get better once you are working full time, 12+ hours days are bad for free time as well. ;)

sorinth 01-31-2008 06:52 AM

When trying to populate the spell list for my baby warden (only character I have tried this for), I get the following error box appearing in excel

run time error 448
named argument not found.

Then, after I click ok on the error box, the entire spell name column is selected (not just the one that I picked). I am using beta 3 of the program.

gm9 01-31-2008 12:55 PM

Quote:

Originally Posted by sorinth (Post 69057)
When trying to populate the spell list for my baby warden (only character I have tried this for), I get the following error box appearing in excel

I need some more info please.
  1. What spell did you select?
  2. What did you do right before you got the error message (eg. did you click on the button to change the EQ2 folder?)
  3. Which version of Excel do you have?
  4. Oh, and which Windows version?

Thanks.

chemical 01-31-2008 03:11 PM

Run-time Error '76'
 
Trying to run the configurator and get this error when trying to save:

Run-time Error '76'
Path not found

Using:

WinXP
Office 2003

At first I tried it in a directory named with spaces (c:\Stuff Here\test) and then with no spaces (c:\stuff) and both failed.

I also tried it with many random line numbers and they all failed so it's not related to any one line in the spreadsheet.

gm9 01-31-2008 03:20 PM

Quote:

Originally Posted by chemical (Post 69070)
At first I tried it in a directory named with spaces (c:\Stuff Here\test) and then with no spaces (c:\stuff) and both failed.

That's because you are supposed to select your EQ2 directory. In addition, ProfitUI must be installed in it. As I said there's not much error handling going on yet, I'll have to add better error messages I guess.

If you want to test it in a test folder, you can do it like this:
  1. Create c:\Stuff Here\test\UI\ProfitUI
  2. Copy your existing _ProfitUI_QuickRaidButtons.txt into that folder.
  3. Point the configurator to c:\Stuff Here\test as you did before

That's all it should need.

chemical 01-31-2008 04:26 PM

Actually I assumed since there isn't much error handling that it wasn't checking for the ProfitUI but rather just writing out to whatever dir I provided.

My bad!

I don't need to get all crazy so I'll just wait and run it as intended, with a usable EQ2 and ProfitUI dir in place :)

Thanks man

sorinth 01-31-2008 06:22 PM

Quote:

Originally Posted by gm9 (Post 69064)
I need some more info please.
  1. What spell did you select?
  2. What did you do right before you got the error message (eg. did you click on the button to change the EQ2 folder?)
  3. Which version of Excel do you have?
  4. Oh, and which Windows version?

Thanks.

1) this happens with most spells, not just warden (I just tried it again randomly selecting files).
2) the option to enter the directory does not come up. That only comes up once I find a spell that it will accept (on the same window that prompts me for slot location)
3) excel from office 2000
4) win2k pro

Okay, I just ran through it again. In the window that asks for current level, I enter 28

In the column for class, I select warden (first time I did this, previously I just scrolled to the bottom of the list)

Then I select the spell line I would like to modify. I selected Blessing of Earth (heal over time)

Then I click "click to save spell line...."

Error box appears,
"Runtime Error 448" Named argument not found (the window to ask for slot number and UI file path were not asked)

Hope this helps, but I bet I am doing something wrong :(

gm9 02-01-2008 04:16 AM

Quote:

Originally Posted by sorinth (Post 69075)
Hope this helps, but I bet I am doing something wrong :(

Thanks for the info, the steps you list sound ok, I don't think you are doing something wrong.

I'll have to get a hold of Excel 2000 and test it with that, I only checked it on Excel 2002 and 2003 so far on Windows 2000, XP and 2003 and had no problems on any combination of those. There is probably some incompatibility in the code with older versions although I don't really see what that would be right now.

sorinth 02-01-2008 07:58 AM

I can d/l the latest version of open office (openoffice.org) that is supposed to have full excel 2003 compatibility and see if that makes any difference.

sorinth 02-01-2008 08:24 AM

well strike that. It does not work in open office 2.3.1 at all. I enabled macros, and clicking the save button does nothing. I am late for work, so I will have to tinker with it more later.

Mareid 02-02-2008 09:16 AM

Will try it this weekend and report
 
Ive got toons of all classes, spell casters and potion users, and nary a one is over 40. I haven't had a ton of luck with the auto-drink or auto-cure-spell buttons, so this will give me a chance to test out what I'm doing wrong. Love the idea!

dxbmarine 02-02-2008 01:53 PM

Don't know if it helps at all, but I was going through this thread and thought of something which I encountered with another application....

If the code is written in XML or uses any XML at all, be aware that versions of Excel (prior to, I believe 2002) do not have XML handling enabled. Also, when using the "standard" version of Office (2003 and up) it is nice to know that it will ship with an Excel version which has (very) limited XML handling capabilities.....

As for general interest: Just another 40 minute wait to get my Lvl 53 Necromancer out of bed, after a 2 year and 4 months sleep.... Be happy to test this out, once I've gotten into the game again!

Greetz!

casperinmd 02-02-2008 02:28 PM

Quote:

Originally Posted by gm9 (Post 69017)
Hmm, and I thought this would be popular... :(


Well I play on Linux...so I can't try it, although I was excited til I read it needed Windows :(

Nonetheless, awesome job.

gm9 02-02-2008 07:55 PM

I guess this could eventually be converted into Java or something so it runs under Linux, but since the table from Ornathian was in Excel it was convenient to use that :)

gm9 02-03-2008 09:38 AM

Beta 4
 
OP updated with Beta 4

Changes:
  • Fixed a bug where a spell line would always be saved to button 1 regardless of your selection in certain circumstances
  • Added complete error handling added for eq2 path selection and detecting of an existing ProfitUI installation.
  • Your settings of the table (filters, selected cell) will now be restored after saving a spell line
  • Spell lines with only 1 spell no longer have "line" in the tooltip and the spell name is no longer enclosed in apostrophs

sorinth 02-03-2008 11:49 PM

Still getting the same error with beta 4. No additional information from the error handling code was given.

Runtime error 448
Named argument not found


I get this with any warden spell (only toon that I am attempting to do this with at the moment) except the ones that are italicized. I guess those are the ones that do NOT have any previous or future upgraded spells.

When I click on the italicized spell, the selection box pops up that asks for eq2 directory, and the slot location.

Calain80 02-05-2008 07:36 AM

1 Attachment(s)
If I try to use the Excel file, the dialog looks like this:



There is no way to read anything. :(

p.s. I'm using Excel 2002.

gm9 02-05-2008 07:58 AM

Hmm, maybe your color scheme? I uploaded Beta 5 that should be forcing the correct colors. Also it became more colorful. :p

Let me know if it works.

Calain80 02-05-2008 08:36 AM

Works now. :nana:

Now I just need to level fast enough to test that the right ability is used. ;)

gm9 02-05-2008 10:08 AM

Beta 6 - chat macros
 
Quote:

Originally Posted by sorinth (Post 68950)
While you are in tinker mode, you may want to think about implementing the ability to add chat to the button. For raid wide info on rezzes and such. However, you dont need to make the text, just give us the ability to add it (without having to edit multiple files multiple times). If it can be done through the configurator, that would be great. also, not sure if there would be a common point in each button casting tree to add this or if it would need to appear multiple times in the tree. Just a thought and thanx for the excellent work!

I just added Beta 6 to the OP that allows you to do that. You get the same text regardless of your level, anything else would be overkill I suppose.

sorinth 02-05-2008 06:26 PM

Thanx for the update with the ability to add chat text. However, i am still getting the 448 named argument not found error. If I select an italicized spell/ability it will work and bring me to the save menu (with the new colors and added chat text).

If you would like to ping me offline so we can work this out, I am willing.

gm9 02-06-2008 03:54 AM

Quote:

Originally Posted by sorinth (Post 69245)
Thanx for the update with the ability to add chat text. However, i am still getting the 448 named argument not found error. If I select an italicized spell/ability it will work and bring me to the save menu (with the new colors and added chat text).

If you would like to ping me offline so we can work this out, I am willing.

Yes sorry, I didn't yet look into your issue. I'll get back to you.

lecore 02-06-2008 04:57 AM

This sounds like a great little app to help with the quickraid buttons. But I get an error when I ckick save. I am using Office 2007 and I get this error:

Compile error in hidden module: Tabelle1

Lecore

gm9 02-07-2008 02:14 PM

Beta 7
 
Beta 7 added which is using ProfitUI 4.5 style level detection based on your unmentored level and which outputs tooltips comprising the entire spell line incl. spell levels.

The Office 2000/2007 problems have not been addressed (frankly so far I've got no clue why it won't work, I don't have much VBA experience). If you use this under Vista as always you might get problem with the security features I suppose.

sorinth 02-08-2008 07:29 AM

Same issue with named argument not found.
If I select a spell that is not upgraded (ie it is the only one in the spell line) it works. I work with excel all the time at work. If you ping me offline, maybe I can help with the debug.

Also, it would seem that open office has known issues running excel macros. So for now, I will stick with excel 2000, then maybe we can port it over to open office.

gm9 02-08-2008 08:25 AM

sorinth, try Beta 8 which I just added to the first post. I'm confident that it will fix your problem. :)

sorinth 02-08-2008 06:18 PM

Woot! You da Man!!!! It works now! What was wrong (or is that the little secret)?

Anyways, thanx for the excellent work as always! If there is anything I can ever do to assist you in your fine work, please do not hesitate to ask!

gm9 02-08-2008 10:12 PM

Quote:

Originally Posted by sorinth (Post 69413)
What was wrong (or is that the little secret)?

Heh, no secret at all, just didn't think anybody would be interested. For a spell line with more than one spell in it my code would then search the line in the table for the other spells of that line. The format for this search was apparently slightly amended from Excel 2000 to Excel 2002, so your Excel 2000 didn't understand the search parameters. I got a hold of Excel 2000 and ran it through the debugger. ;)

sorinth 02-09-2008 05:20 PM

After playing with it a bit, and the interaction within the game, (now this might have been coded on purpose) all the spell names within a spell line are shown on the tool tip of the qrb. Could the user, through the configurator, simply give that qbr a quick name? For instance, for my baby warden, instead of showing all the spells for his group hot in that line, I could just title the button "Group Hot".

(and then, if we could change from numbers to icons, that would be awesome, but if it is not possible, that is okay as well)


All times are GMT -5. The time now is 05:19 AM.

vBulletin® - Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
© MMOUI