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;