• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver
Resource icon

Release Scribe.mac 7-3-2021

No permission to download
Thank you, I can't see my nose either :-)

- - - Updated - - -

Ok, I am missing something. The version in the zip file (0618) and in my macro folder is from 12/16/12. It does not have a version number and it does not buy anything. Any suggestions on what I am missing?

Thanks
 
I'm having an issue with the macro after it performs the purchases, it tried to scribe them to the spellbook, but picks up the wrong items. It basically goes through and picks up my backpacks and whatever else fodder I have. Is there a dependency I'm missing or something?
 
Use shift b to open all your bags and /mac scribe see if that works.
 
Are your spells inside the containers? I vaguely recall spells don't get scribed if they are in top level and must be inside bags. Haven't looked at macro to verify the behavior though.
 
Are your spells inside the containers? I vaguely recall spells don't get scribed if they are in top level and must be inside bags. Haven't looked at macro to verify the behavior though.

This is true. It also goofs up if you have another spell in your bag that you can't mem because of class or level.
 
Ahh that must be it, I normally don't run with full bags. I'll give it a shot. Thanks!
 
yeah this macro seems pretty borked atm, 2 big things I noticed, 1 is if you have any other classes spells in your inventory or spells you cant scribe it stops and 2 it does not get all your spells 1st time, I am having to run it 2 or even 3 times when I level a new toon and go purchase ALL the spells, it just grabs a bunch, scibes them, may grab a few more and scribe them then stop, but there are still plenty of spells left on that vendor to buy so I re-run scribemac
 
I haven't had any issues with it.

It'll purchase all spells until you either run out of money or your bags are full then scribe them. I usually buy all spells for the next couple levels and haven't had it stop if it wasn't able to scribe it. Every time I level up the first thing I do is /mac scribe to make some room in the bags.

This is quite possibly one of the most useful macros in existence other than KA.
 
oh don't get me wrong, it is by far the most useful macro ever! I just have found it acting up lately...

- - - Updated - - -

I just am in the habit of running it twice or more now just to "be sure" but today I discovered my warrior was main looter and had spells not his class in inventory and it did completely screw up, emptied his bags, it works.... but still have to run it more then once to get all the spells
 
This plugin is amazing. Fire and forget once on each box, as long as you have the bag space to hold the spells.
I have noticed there are a handful of spells that it will purchase, even if they are unusable. My cleric for example purchased a few imbue spells that it didn't have the deity for, even though it chose not to buy most of them.
 
Last edited:
I've been using this no problems. Not buying spells it shouldnt or spells I already have. Also buying them all not missing any. Love it!
 
This macro since 3/17 patch cause eq to crash everytime. Doesnt even get to the buying part. Fix?

On progression server btw if matters.

Worked before absolutely fine.
 
I've been in the habit of running scribe twice to make sure no spell or tomes got missed. Ran this last night for my bard and it bought all the spells again so I have bags full of spells that I already mem'd. I have not yet looked thru the code to see if something needs to be updated...
 
I've been in the habit of running scribe twice to make sure no spell or tomes got missed. Ran this last night for my bard and it bought all the spells again so I have bags full of spells that I already mem'd. I have not yet looked thru the code to see if something needs to be updated...

Haven't had a chance to look, but maybe it's something in the mq2 patch notes


Rich (BB code):
Maintenance release PART I: I highly recommend everyone update to this release.
NEW STUFF:
Added ${Me.ItemReady[xxx]} it returns a bool true or false, it was 10 years overdue, and yes i know we can check it with Item Timer but
I like the consistency of having SpellReady, AltAbilityReady, CombatAbilityReady and now ItemReady
it also makes it easier to remember to macro writers. -Idea cred: Maskoi
Usage: /echo ${Me.ItemReady[=worn totem]}
will look for an item name that exactly matches "worn totem" and return true if its ready to click/cast/use and false if not.
Usage: /echo ${Me.ItemReady[drunkard]}
will look for an item name that has the word "drunkard" in it and return true if its ready to click/cast/use and false if not.
the item name is not case sensitive.

CHANGES:
MacroQuest2.exe should once again be winxp compatible.
${Me.AltAbilityTimer[xxxx]} does NOT return a pTickType anymore, its NOW a pTimeStampType, so update your macros.
Changed the name of __bCommandEnabled_x to g_eqCommandStates_x (cause thats what it is)

FIXES:
Created a wrapper for ExecuteCmd cause it has 4 paramters now, and i didnt want to break plugins.
This should fix multiple crashes as well as the "mash hotkeys too quickly crash". (yes that was likely us)
Fixed the offset for EQ_PC__GetCombatAbilityTimer_x
Corrected the _ZONEINFO struct(s)
Corrected the function declaration for CSidlScreenWnd::GetChildItem note that it takes 2 arguments now.
Corrected the function declaration for CXWnd::GetChildWndAt note that it takes 3 arguments now.
Corrected the function declaration for CXWnd::Move (for the CXWnd__Move1_x offset).
Corrected the function declaration for EQPlayer__DoAttack_x on EMU builds.
 
Yeah read thru the latest change notes and wondered what might break heh. I will have to look thru the scribe code. I wasn't running the latest compile at the time (am now), and I'm afraid to run scribe again fearing I might end up with 3 sets... doubt they will sell on my trader lol.
 
I was having issues with scribe ending because of not counting slots with spells in them correctly. This is my fix if you are having the same problems
 

Attachments

the only issues I ever have is it does not always buy all the available spells and you must have something in every top level slot (bag or item) or it stops when the top level is full....

- - - Updated - - -

I quite often run it twice as it does not buy them all the 1st time ran

- - - Updated - - -

that being said, I would die without scribe.mac!
 
As I am anil about keeping my spells in level order, I am curious as to how this Mac orders the scribing? Is it alpha, level, random?
 
As I am anil about keeping my spells in level order, I am curious as to how this Mac orders the scribing? Is it alpha, level, random?

Pretty sure it wont reorganise your spell book ... just mem spells that are missing in the order they are presented.
 
I've noticed a couple of the cleric imbue spells don't recognize the race or religion correctly and buys the spells then cannot mem them. I forgot which it was now but will try to follow up post with them maybe tonight. Started a mage tank and cleric based group and noticed it doing PL'n over the weekend.
 
Imbue Emerald and Mass Imbue Emerald for clerics are not usable for a dark elf however buys and tries to scribe. Not a biggie but sharing.
 
Tried to use it on a level 68 SHD to buy level 70 spells

Opened buy window

/mac scribe 70

It says it will buy 70 to 68 but does not buy the spells

It did buy all the <=68 when I did just /mac scribe
 
Tried to use it on a level 68 SHD to buy level 70 spells

Opened buy window

/mac scribe 70

It says it will buy 70 to 68 but does not buy the spells

It did buy all the <=68 when I did just /mac scribe
I don't believe you can purchase spells higher level than you are.
Rich (BB code):
/declare MaxLevel int outer ${Me.Level}
 
LamahHerder
Re: Scribe.mac

Tried to use it on a level 68 SHD to buy level 70 spells

Opened buy window

/mac scribe 70

It says it will buy 70 to 68 but does not buy the spells

It did buy all the <=68 when I did just /mac scribe

I don't believe you can purchase spells higher level than you are.
Rich (BB code):
/declare MaxLevel int outer ${Me.Level}



Could you;
Rich (BB code):
/declare MaxLevel int outer 70

as a workaround?

As always,
Playbetter
 
Could you;
Rich (BB code):
/declare MaxLevel int outer 70

as a workaround?

As always,
Playbetter

I assume that would work if you put max level to what ever level of spells you wanted to purchase above your current level. However I think it would error out when trying to mem them to the spell book.


Sent from my iPhone using Tapatalk
 
using this it will buy the spells but wont scribe them

message I get is
Rich (BB code):
 SLOT IS NULL: Could not send notification to in pack1
 
Rich (BB code):
Sub Main
    /declare HasVoA int outer 0
    /declare InvScribeSlot int outer 1


    /declare MyDeity string outer ${Me.Deity}
    /declare MaxInvSlots int outer 10
    /declare MinLevel int outer 1
    /declare MaxLevel int outer ${Me.Level}
    /declare DoLoop int outer 0
    /declare mName string outer
    /if (${Param0}) /varset MinLevel ${Param0}
    /if (${Param1}) /varset MaxLevel ${Param1}
    /if (${Me.HaveExpansion[Veil of Alaris]}) /varset HasVoA 1

I will freely say I don't work with macros started with parameters, but it seems to me the way the code reads.... it first sets the MaxLevel to the toons level.... but then resets it to the second number when starting the macro (as the instruction indicate)

Doing a quick search and find on the macro I don't see where else there is something resetting the variable... and it looks like the scribe routine works off the toon level. Should not need to edit the macro to get it to buy spells of a higher level....looks like just " /macro scribe 1 105 " ought to buy every spell on a merchant. I think you just needed 2 number variables in order to change the max level one... the first variable of course being the minimum level.

I do not currently have a toon set up to test that ought but it looks like that ought to work, and headed to bed. Can someone give it a try and report back?
 
I just tested this on a level 87 Wizard that has not bought any spells before (Heroic Character).

- I went to the PoK Wizard vendor "Channeler Larkord (Wizard Spells 81+)" in the Library and opened the merchant window.
- I have open bag space, but no open top level spaces.
- I then typed "/mac scribe 87 88" in the MQ window.
- The MQ window relayed "[MQ2] Buying all Wizard spells/times for levels 87 to 88"
- The following 14 lines named the spells the macro bought (Brainfreeze, Cloudburst Storm, Glacial Pillar, Leap of Corposantum, Ring of Fire, Soothing Harvest, Beam of Permafrost, Dermis of the Crystalwing, Flamelure, Freezing Snap, Lightning Helix, Lightning Surge, Mana Vortex, and Murkmist Guard).
- The next line in the MQ window was in white text instead of orange: "SLOT IS NULL: Could not send notification to in pack1"
- This was followed buy: "The current macro has ended."
- I then opened my bags and looked at what was left: one of the level 87 spells "Brainfreeze" was still in my first bag and all eight of the level 88 spells where in two other bags. The rest of the level 87 spells were scribed to my spellbook.
- I then ran the very same command in the MQ window: "/mac scribe 87 88"
- Just like before the MQ window relayed "[MQ2] Buying all Wizard spells/times for levels 87 to 88"
- This time, when the macro ended, the one remaining spell from the first time, Brainfreeze, was scribed like it was supposed to be.
- Then, to get all of the level 86 spells I had not bought yet I typed "/mac scribe" in the MQ window.
- The MQ window relayed "[MQ2] Buying all Wizard spells/times for levels 1 to 87"
- The next seven MQ lines displayed the spells purchased (Shield of Dreams, Aegis of Lithara, Corona Beam, Fire Vortex, Glacial Lure, Tears of Flame, and Wildmana Barrage).
- Again, the next line in the MQ window was in white text instead of orange: "SLOT IS NULL: Could not send notification to in pack1"
- This was followed by the line in white: "SLOT IS NULL: Could not send notification to in pack7"
- And again this was followed by "The current macro has ended."
- This left the spell Shield of Dreams in my first bag and the spell Wildmana Barrage in my seventh bag.
- I then ran the same macro one more time: "/mac scribe"
- This did not find any more spells to buy, scribed the two level 86 ones it had missed last time, and ended the macro.

This was posted as an answer to Warl0ck45's request above and is for informational purposes only, I'm not complaining. I just used this for the first time and am thrilled to have this macro, thank you!
 
Sounds like it is working as intended then, good deal.

Just need to remember to put in 2 numbers if you want to go beyond your max level, IE "/macro scribe 1 105" ought to buy every spell the vendor has that your toon can use.
 
Any chance this can be modified to search merchants for Trade skills books that you can scribe? Or a whole other macro made for that? As far as I can tell, getting from 300 to 350 tradeskill by EoK AA's involves running around scribing tradeskill books or learning new recipes.
 
I was wanting to read through this Mac. I noticed a bug that if you have the fellowship item in the root inventory and run this macro it will click your item and port you to your fellow ship if it's up. Just a heads up if anyone else hasn't run into this.


Sent from my iPhone using Tapatalk
 
Rich (BB code):
/if (${InvSlot[pack${Bag}].Item.Container})
May not be working as intended

Was awesome gate potting my toons back to nexus after running to FV before buying any spells lol.
 
Updated!

Now scribes scrolls in top level inventory slots.
Scribing from first slot was incorrectly using /itemnotify ${InvSlot[pack${Bag}]} rightmouseup
when it should have been /itemnotify pack${Bag} rightmouseup

Corrected usage of multiple /next var in /for statement to use /continue. This was in both the tome and spell purchasing routines and likely caused some check issues.

Added opening all bags prior to entering the loop, and a delay in the event the bag requires opening to give the bag time to populate before issuing a /itemnotify.
This solves the "Could not notify" issue with the first slot in a bag.

No longer uses your Fellowship Registration Insignia if it's in the top level inventory slot.

Added some pointless comments to the code and reformatted the code indention a bit because I wanted to.

Posting on original thread for use until it's merged into the VV compile.

Note: As mentioned in a previous post. Sometimes it purchases spells it isn't supposed to purchase. IE: Imbue Emerald and Mass Imbue Emerald. I ran this on a cleric myself during my fixes and found that it ignore all other incorrect "Imbue" type spells because of deity. However, Imbue Emerald specifically is reporting no .Deities} and .Deity[1]} is NULL. The spell itself obligates it to Tunare only worshipers. If the Item Member isn't reporting the correct information it cannot be accurately checked for. @eqmule I'm not sure if this is something to do with the way it was done in Everquest itself as most other spells work. This is a big issue with low level imbues for shamans as it buys a lot of them incorrectly due to this issue with the item member reporting Deity information incorrectly. This is not something that can be avoided via macro coding.

Below is the code for Deities and the list of Deity's array. But I don't know what I'm looking at, just how to find it :-)
Rich (BB code):
case Deities:
        Dest.DWord = 0;
        // count bits
        cmp = GetItemFromContents(pItem)->Diety;
        for (N = 0; N < 15; N++)
        {
            if (cmp&(1 << N))
                Dest.DWord++;
        }
        Dest.Type = pIntType;
        return true;
    case Deity:
        if (ISINDEX())
        {
            if (ISNUMBER())
            {
                DWORD Count = GETNUMBER();
                if (!Count)
                    return false;
                cmp = GetItemFromContents(pItem)->Diety;
                for (N = 0; N < 15; N++)
                {
                    if (cmp&(1 << N))
                    {
                        Count--;
                        if (Count == 0)
                        {
                            Dest.DWord = N + 200;
                            Dest.Type = pDeityType;
                            return true;
                        }
                    }
                }
            }
            else
            {
                // by name
                cmp = GetItemFromContents(pItem)->Diety;
                for (N = 0; N < 16; N++) {
                    if (cmp&(1 << N)) {
                        if (!_stricmp(GETFIRST(), pEverQuest->GetDeityDesc(N + 200))) {
                            Dest.DWord = N + 200;
                            Dest.Type = pDeityType;
                            return true;
                        }
                    }
                }
                return false;
            }
        }
        return false;
 

Attachments

Last edited:
Truely awesome mac, that has certainly proven to be a time saver.

And I would rather it buy a few extra spells then not enough, as far as that goes.
 
@Warl0ck45 I just checked with my shaman again on the same group of spells that it was previously purchasing. It's not reporting incorrect deity and not purchasing them. So the corrections to the for loop apparently allowed it to get to that check and is now reporting correctly for those spells. Spell like Imbue Emerald appear to be special case.
 
I got @plure to look at the issue with Deities, Turns out I was correct that it was something in the main compile. There are 16 deities and the check was only doing 15. The fix has been sent up the chain and should come out on next release.

Plure said:
Plure-Today at 12:52 AM
swiftymuse sent eqmule the merge request for the fixes to deities, hopefully will be included with the next patch

 
Release Scribe.mac

Users who are viewing this thread

Back
Top
Cart