BuffStackTest (MQ2Main/MQ2Utilities.cpp)

A forum for reporting bugs NOT related to custom plugins.

Moderator: MacroQuest Developers

PeteSampras
a snow griffon
a snow griffon
Posts: 322
Joined: Sat Dec 15, 2007 8:56 pm

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by PeteSampras » Sun Mar 23, 2014 5:46 pm

.
Last edited by PeteSampras on Thu Mar 27, 2014 12:20 am, edited 1 time in total.

User avatar
Cr4zyb4rd
Plugins Czar
Posts: 1449
Joined: Tue Jul 20, 2004 11:46 am

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by Cr4zyb4rd » Sun Mar 23, 2014 6:22 pm

Casts but doesn't land is an important distinction to make. Not from the point of what we return (a good stack check will cover all cases) but as far as implementation we should be moving towards letting the client do whatever checking it can do for us. Of course that means fiddling about until we find the mechanism but the fact that there's a difference means that somewhere a boolean check is being made and all this work to duplicate it is superfluous. We want to trap the things it "would have let you try to cast".

PeteSampras
a snow griffon
a snow griffon
Posts: 322
Joined: Sat Dec 15, 2007 8:56 pm

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by PeteSampras » Sun Mar 23, 2014 6:52 pm

.
Last edited by PeteSampras on Thu Mar 27, 2014 12:20 am, edited 1 time in total.

User avatar
Cr4zyb4rd
Plugins Czar
Posts: 1449
Joined: Tue Jul 20, 2004 11:46 am

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by Cr4zyb4rd » Sun Mar 23, 2014 8:01 pm

We don't actually cast the spell. We use the same function that the client would have used. We're hackers, this is the point of our endeavor. Was this not in the FAQ? Finding an offset isn't casting a spell.

PeteSampras
a snow griffon
a snow griffon
Posts: 322
Joined: Sat Dec 15, 2007 8:56 pm

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by PeteSampras » Sun Mar 23, 2014 8:14 pm

.
Last edited by PeteSampras on Thu Mar 27, 2014 12:21 am, edited 1 time in total.

demonstar55
a snow griffon
a snow griffon
Posts: 314
Joined: Fri Nov 28, 2008 6:31 am

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by demonstar55 » Sun Mar 23, 2014 8:16 pm

I don't think there is anything client side that handles stacking, its most likely 100% server side. (If your remove the stacking code in EQEmu everything will land and the client will do all the math [HP, mana, ect] as if they stacked)

SwiftyMUSE
Developer
Developer
Posts: 1205
Joined: Tue Sep 23, 2003 10:52 pm

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by SwiftyMUSE » Sun Mar 23, 2014 8:58 pm

PeteSampras wrote:
Cr4zyb4rd wrote:We don't actually cast the spell. We use the same function that the client would have used. We're hackers, this is the point of our endeavor. Was this not in the FAQ? Finding an offset isn't casting a spell.
In what situation would you cast a buff spell that is already on you or that doesn't stack? Enlighten me.

Basically any buff that might be fading that you don't want to fade before you can cast again.
PayPal: Donate to SwiftyMUSE
Bitcoin: 1LuQ6YcEAWxF3fm9yWMiro4K582je7364V
Krono: PM me

dont_know_at_all wrote:Gee, if only there was a way to correctly report a crash...

PeteSampras
a snow griffon
a snow griffon
Posts: 322
Joined: Sat Dec 15, 2007 8:56 pm

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by PeteSampras » Sun Mar 23, 2014 9:10 pm

.
Last edited by PeteSampras on Thu Mar 27, 2014 12:21 am, edited 1 time in total.

demonstar55
a snow griffon
a snow griffon
Posts: 314
Joined: Fri Nov 28, 2008 6:31 am

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by demonstar55 » Sun Mar 23, 2014 9:30 pm

${Spell[spell].Stacks[ticks]} works too.

PeteSampras
a snow griffon
a snow griffon
Posts: 322
Joined: Sat Dec 15, 2007 8:56 pm

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by PeteSampras » Sun Mar 23, 2014 9:47 pm

.
Last edited by PeteSampras on Thu Mar 27, 2014 12:21 am, edited 1 time in total.

demonstar55
a snow griffon
a snow griffon
Posts: 314
Joined: Fri Nov 28, 2008 6:31 am

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by demonstar55 » Sun Mar 23, 2014 10:02 pm

Still getting an error with Pyromancy (23514) and Arcane Arietta (18066)

PeteSampras
a snow griffon
a snow griffon
Posts: 322
Joined: Sat Dec 15, 2007 8:56 pm

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by PeteSampras » Sun Mar 23, 2014 10:58 pm

.
Last edited by PeteSampras on Thu Mar 27, 2014 12:21 am, edited 1 time in total.

SwiftyMUSE
Developer
Developer
Posts: 1205
Joined: Tue Sep 23, 2003 10:52 pm

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by SwiftyMUSE » Mon Mar 24, 2014 1:17 am

demonstar55 wrote:Still getting an error with Pyromancy (23514) and Arcane Arietta (18066)

Code: Select all

		 || (aSpell->Attrib[i]==339 || bSpell->Attrib[i]==339)		// Trigger DoT on cast
		 || (aSpell->Attrib[i]==340 || bSpell->Attrib[i]==340)		// Trigger DD on cast
This needs to be added to SpellEffectTest. Both the AA and bard song trigger a DoT when cast, that does not effect stacking.
PayPal: Donate to SwiftyMUSE
Bitcoin: 1LuQ6YcEAWxF3fm9yWMiro4K582je7364V
Krono: PM me

dont_know_at_all wrote:Gee, if only there was a way to correctly report a crash...

demonstar55
a snow griffon
a snow griffon
Posts: 314
Joined: Fri Nov 28, 2008 6:31 am

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by demonstar55 » Mon Mar 24, 2014 3:12 pm

That doesn't work, they're stacking because one is a spell and the other is a song.

(All assumed rank 12, because that's what I have) Pyromancy, Cryomancy, and Arcomancy don't stack. Pyromancy is overwritten by Cryomancy and Arcomancy. Pyromancy can't overwrite either. Cryomancy and Arcomancy can overwrite each other. So looking into the data, Cryomancy and Arcomancy have a base1 of 20, Pyromancy has a base1 of 15, so this is standard stacking/overwriting rules.

I'm still convinced what I stated early is actually true, where if death bloom and zombieskin do not stack, it's an exception to the rule, which may or may not have an unknown field we can use to know if that's the case, otherwise it's something hidden from us.

SwiftyMUSE
Developer
Developer
Posts: 1205
Joined: Tue Sep 23, 2003 10:52 pm

Re: BuffStackTest (MQ2Main/MQ2Utilities.cpp)

Post by SwiftyMUSE » Mon Mar 24, 2014 10:50 pm

demonstar55 wrote:That doesn't work, they're stacking because one is a spell and the other is a song.

(All assumed rank 12, because that's what I have) Pyromancy, Cryomancy, and Arcomancy don't stack. Pyromancy is overwritten by Cryomancy and Arcomancy. Pyromancy can't overwrite either. Cryomancy and Arcomancy can overwrite each other. So looking into the data, Cryomancy and Arcomancy have a base1 of 20, Pyromancy has a base1 of 15, so this is standard stacking/overwriting rules.

I'm still convinced what I stated early is actually true, where if death bloom and zombieskin do not stack, it's an exception to the rule, which may or may not have an unknown field we can use to know if that's the case, otherwise it's something hidden from us.

Well, stacking never was really made to work with aas. Base1 does not have anything to do with stacking. I don't really want to go fully into details, but stacking is based on the effects (what we call attrib), base/base2/max all are affected by calc that tells you how much the spell does.
PayPal: Donate to SwiftyMUSE
Bitcoin: 1LuQ6YcEAWxF3fm9yWMiro4K582je7364V
Krono: PM me

dont_know_at_all wrote:Gee, if only there was a way to correctly report a crash...