• 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

Problem - /removeaug command issue

Joined
Sep 6, 2022
RedCents
6,636¢
Having a problem with /removeaug command. Discord chat wasnt able to resolve so putting here to document.

If run from console, crashes client to desktop. If run from Lua, terminates Lua script with error "Abnormal exception thrown from coroutine!"

Same issue with either item/aug names or IDs

Edit2: Tried with the different settings for the new 'augment prompts' options (always, never, perfected only)


Seems to be getting hung up in the mq function in MQCommands.cpp (starts at line 5686)
Code:
void RemoveAugCmd(PlayerClient* pChar, const char* szLine)

Ran through some conditions that result in chat window prints to try and isolate the issue:
  • If i hold something on cursor, the call appears to progress to check/chat output line 5695
    • --> "You cannot remove the augment while you are holding something."
  • If i dont have the augment distiller, it seems to progress to check/chat output at line 5782
    • --> "The augment cannot be removed because your inventory does not contain the required solvent."
  • If i pass a bad name for the augment ('blah' in this case), then it will progress to the check/chat output at line 5789
    • --> "Could NOT remove the blah from the Crypt-Hunter's Soulrender Vambraces"
  • If i have the correct distiller, pass the correct augment name, and correct item, it fails
    • In Lua script: "Abnormal exception thrown from coroutine!" and terminates script
    • Crash to desktop if run from console in game
Appears that something in check for the solvent/distiller is broken
MQCommands.cpp, lines 5760 to 5778
C++:
auto itemDis = pItemDisplayManager->GetWindow(index);

            itemDis->SetItem(pTargetItem, 0);

            if (pAugItem)
            {
                ItemPtr pItemSolvent = FindAugmentSolvent(pAugItem);

                if (!pItemSolvent)
                {
                    // Universal Augment Solvent... aka perfect distiller...
                    pItemSolvent = pLocalPC->GetItemByItemClass(ItemClass_PerfectedDistiller);
                }

                if (pItemSolvent)
                {
                    // we shouldnt do the solvent thing for removals, people who macro this can click the ok button on the confirmation window...
                    itemDis->RemoveAugmentRequest(foundAugment.GetDeepestSlot());
                }


Not sure where to go from here

Edit: It looks like it might actually be this call that is failing
C++:
// we shouldnt do the solvent thing for removals, people who macro this can click the ok button on the confirmation window...
                    itemDis->RemoveAugmentRequest(foundAugment.GetDeepestSlot());

Edit3: This also does not seem to work to be able to find the Perfected Augmentation Distiller in my inventory (line 5771)
C++:
// Universal Augment Solvent... aka perfect distiller...
                    pItemSolvent = pLocalPC->GetItemByItemClass(ItemClass_PerfectedDistiller);
 
Last edited:
Problem - /removeaug command issue

Users who are viewing this thread

Back
Top
Cart