${Item.Stackable}

A forum for reporting bugs NOT related to custom plugins.

Moderator: MacroQuest Developers

Terramantian
a ghoul
a ghoul
Posts: 120
Joined: Thu May 13, 2004 6:20 pm

${Item.Stackable}

Post by Terramantian » Thu Jul 08, 2004 4:14 pm

Could not find any info about this, sorry if it's been reported before. ${Item.Stackable} doesn't seem to be working right. The following items returned TRUE:

Velium Weapons (various)
Soulscream Belt
Delightful Orb of Forgotten Magic
Emerald Cockatrice Plume
etc
etc

All stackable items I've been able to test do return TRUE too. Fewer items return FALSE, but most armor, containers, and nonstackable no drop items seem to. Maybe I misunderstood what this function does but it certainly looks like a bug to me.

User avatar
ieatacid
Developer
Developer
Posts: 2727
Joined: Wed Sep 03, 2003 7:44 pm

Post by ieatacid » Thu Jul 08, 2004 6:31 pm

So I looked at the struct, thinking maybe I fucked up somewhere when I posted it, but it's on.

Some findings:

Name: dword value (4 bytes of the dword) -- what MQ returns

Romar's Bracer of Visions (not stackable): -1 (FF FF FF FF) -- TRUE
Peridot: 1 (01 00 00 00) -- TRUE
Leatherfoot Haversack: 0 (00 00 00 00) -- FALSE
Spell: Karana's Renewal (not stackable): 1 (01 00 00 00) -- TRUE

MaxCharges is on too (part of that union).

User avatar
aChallenged1
a grimling bloodguard
a grimling bloodguard
Posts: 1804
Joined: Mon Jun 28, 2004 10:12 pm

Post by aChallenged1 » Thu Jul 08, 2004 7:40 pm

Name: dword value (4 bytes of the dword) -- what MQ returns

Romar's Bracer of Visions (not stackable): -1 (FF FF FF FF) -- TRUE
Peridot: 1 (01 00 00 00) -- TRUE
Leatherfoot Haversack: 0 (00 00 00 00) -- FALSE
Spell: Karana's Renewal (not stackable): 1 (01 00 00 00) -- TRUE
Ok, I'm no code monkey, I admit it. But something here does not add up when I read the above.

Priodot: 1 (01 00 00 00) is essentially the same as
Spell: Karana's Renewal: 1 (01 00 00 00)

One is not stackable, the other is, yet the return on both as I read it is the same.

Now, unless there is a bit/byte that I'm missing here, other than the (not stackable) in the latter of the two, it doesn't seem logical. I'd think there would be a tag to mark non stackables vs stackables. The above examples don't have such a tag/marker/byte/bit. Maybe it is in the actual code, I don't know. I even see conflict, in my mind, between the statements for the Romar's Bracer of Visions line vs the Spell: Karana's Renewal line. Both say (not stackable) yet one has a -1 and the other has a 1.

Is there something missing?

User avatar
ieatacid
Developer
Developer
Posts: 2727
Joined: Wed Sep 03, 2003 7:44 pm

Post by ieatacid » Thu Jul 08, 2004 8:52 pm

The "(not stackable)" is just me saying that in game the items are not stackable, even though the data doesn't say "0" as it should for non-stackable items.

The data shown is from the EQ client. Who knows why it's like that. The purpose of the post was just to show that MQ isn't interpreting the data wrong, just that the data being sent isn't as it should be (or used to be?).

User avatar
aChallenged1
a grimling bloodguard
a grimling bloodguard
Posts: 1804
Joined: Mon Jun 28, 2004 10:12 pm

Post by aChallenged1 » Thu Jul 08, 2004 9:33 pm

Ahh, ok. Now I understand.

Thank you for explaining.

El
a ghoul
a ghoul
Posts: 108
Joined: Mon Dec 29, 2003 12:34 pm

Post by El » Mon Aug 02, 2004 3:17 pm

As of the July 23 2004 13:33:23 zip, ${Item.Stackable} returns NULL on all items, whether stackable or not.

eqjoe
a grimling bloodguard
a grimling bloodguard
Posts: 984
Joined: Sat Sep 28, 2002 12:26 pm

Post by eqjoe » Wed Aug 04, 2004 11:06 am

Well guys, this is an open source project. Fix it yourself and share with the community or motivate DKAA, Amadeus (or one of the other devs) to look into it by contributing.

-j

User avatar
ieatacid
Developer
Developer
Posts: 2727
Joined: Wed Sep 03, 2003 7:44 pm

Post by ieatacid » Wed Aug 04, 2004 5:01 pm

Did some testing:

${FindItem[peridot].Stackable} TRUE
${FindItem[leatherfoot haversack].Stackable} FALSE

Still the same as my post above where some non-stackable items are returning TRUE, but again it's not MQ (see above post). It's reading the data right, the data just isn't... consistent with all items.

Try using FindItem.

mpmq
a lesser mummy
a lesser mummy
Posts: 30
Joined: Thu Mar 18, 2004 8:07 pm

Post by mpmq » Fri Aug 06, 2004 6:21 pm

Are the items with the wrong data LORE? That would make the item unstackable due to its LORE status, regardless of what the stack bit says.

Mimatas
a hill giant
a hill giant
Posts: 262
Joined: Wed Mar 10, 2004 4:22 pm

Post by Mimatas » Fri Aug 06, 2004 7:10 pm

Are we sure that this particular piece of information is actually stacking data and not something else? You'd think that if EQ had a flag for nonstackable, the client would be using it when determining where to add an inventory item... thus if it's flagged stackable, you could stack it.. unless there is another way to determine stackability.

Note:
Romar's Bracer of Visions (not stackable): -1 (FF FF FF FF) -- TRUE
Not Lore, is nodrop, not stackable, magic
Peridot: 1 (01 00 00 00) -- TRUE
Not Lore, not nodrop, is stackable, not magic
Leatherfoot Haversack: 0 (00 00 00 00) -- FALSE
Not lore, not nodrop, not stackable, not magic
Spell: Karana's Renewal (not stackable): 1 (01 00 00 00) -- TRUE
Not lore, Not nodrop, not stackable, magic

conclusion: I haven't the foggiest damn clue

dman
a hill giant
a hill giant
Posts: 181
Joined: Fri Dec 05, 2003 12:54 pm

Post by dman » Sat Aug 07, 2004 1:28 am

The EQ devs have stated several times that stackable items with effects aren't possible (although a few devs have gotten creative lately ie. berserker throwing axes with procs). The reason they have said this is stack quantity and charges share the same place in the item info. The -1 on the Romar's bracelet shows it has unlited charges/worn effect on it from the items I've compared. (note, it used to have a worn effect before the item changes and this field wasn't updated). Peridot had 1 in its stack, the haversack isn't stackable, and the scroll has 1 charge of the spell.

Being lazy I'm not going to open the source, but I'm guessing they are just looking at this field and if non-zero returning true.