Jump to content

Dispel magic behavior (BG2)


Recommended Posts

I missed the part where we established that this was developer intent.
Yeah, I guess I did too. :)
Ok, well to expand on the last two rather terse comments, why would any sane person intend for an unsuccessful dispel to have successful dispel behaviour? I hate to argue about this sort of thing, but it seems rather asinine to me. I don't think some sort of "lack of intent" on this particular account constitutes grounds for dismissal of this topic to the "Not Bugs/No Action" archives. It's not like the Fixpack *does* have definitive intent proved for fixing all sorts of other things that are wrong (nor does it need to IMO, if the issues to be fixed are clearly wrong and/or buggy).
Link to comment
Ok, well to expand on the last two rather terse comments, why would any sane person intend for an unsuccessful dispel to have successful dispel behaviour?

Nothing can prevent dispel magic from destroying items in the magical weapon slot (you can read up on the results of our last attempt to thwart this). Even if we discover a new way around it, how do we then match the probability of retaining the magical weapon slot to that of the hardcoded handling of dispel?

Link to comment
Nothing can prevent dispel magic from destroying items in the magical weapon slot
It shouldn't be prevented, it just shouldn't always be successful, even when the spell fails.
Even if we discover a new way around it, how do we then match the probability of retaining the magical weapon slot to that of the hardcoded handling of dispel?
Just strip out the item removal effects, as per Nythrun's suggestion:
For the BG2 engine at least, my solution was to rip out all of the item removal effects (they're at best redundant, the dispel opcode does this already - at worst they dispel when the dispel should have failed).
I believe we both tested this pretty thoroughly in both engines (BG2/Tutu and BG1) with the same results - the item removal opcodes are unnecessary as Dispel Magic will remove anything in the magic item slot upon success of the spell.

 

I have code that does this and confirmation from an independent tester or two (including one with a BGT/megamod install) that it works. It's basically just a refinement of what I've already posted. Or if Nythrun pokes her head in again, use her version.

Link to comment
Nothing can prevent dispel magic from destroying items in the magical weapon slot
It shouldn't be prevented, it just shouldn't always be successful, even when the spell fails.

Dispel magic cast by a level one mage will destroy magic items from a level 50 ubermage, even if it fails to do anything else. Whether you wish to say 'it can not be prevented' or it shouldn't 'always be successful' is semantics, as we're talking about the exact same thing.

 

Listen. And understand. That Dispel Magic is out there. It can't be bargained with. It can't be reasoned with. It doesn't feel pity, or remorse, or fear. And it absolutely will not stop, ever, until you it destroys the item in the magical weapon slot.

 

(Bonus points for ID'ing that quote.)

 

Even if we discover a new way around it, how do we then match the probability of retaining the magical weapon slot to that of the hardcoded handling of dispel?
Just strip out the item removal effects, as per Nythrun's suggestion:

What will this fix, again?

 

We could add it to the modder pack, as it's a purely anal-retentive change for modders.

Link to comment

Yeah, deleting the redundant item removal effects is really only going to matter to installs where an immunity to the dispel opcode is available, and it isn't in unmodded BG2.

 

Conditional, level based dispelling needs a level to check against, and while that information is preserved in an attached v2 eff, it's not stored anywhere in an itm file.

 

My solution for dispels ended up requiring fifty level-dependent .eff calls on each of fifty headers (and is going to require additional real-world testing and tweaking to fight the defective staggered probability engine) - just removing the item removal effects alone is nearly pointless.

Link to comment
Dispel magic cast by a level one mage will destroy magic items from a level 50 ubermage, even if it fails to do anything else. Whether you wish to say 'it can not be prevented' or it shouldn't 'always be successful' is semantics, as we're talking about the exact same thing.
So... the hardcoded engine makes the spell do this regardless of the item removal effects?

 

That is so unbelievably lame, I can't even, eh, believe it.

Listen. And understand. That Dispel Magic is out there. It can't be bargained with. It can't be reasoned with. It doesn't feel pity, or remorse, or fear. And it absolutely will not stop, ever, until you it destroys the item in the magical weapon slot.
I'll be bahck. With an .exe patch to fix this (heh, right).
My solution for dispels ended up requiring fifty level-dependent .eff calls on each of fifty headers (and is going to require additional real-world testing and tweaking to fight the defective staggered probability engine)
Sounds good... not. I hate to ask, but do you have code for this?
Link to comment

Sure.

 

It's replacing one undesirable behavior (autodestruction of items in the magical weapon slot) with another (dispel checks the target's level rather than the original spell caster's level). And the probabilities really do need to be sorted, empirically. Consider whether it's something you'd really want.

Link to comment
Consider whether it's something you'd really want.
Well, I considered and... I dunno. I guess the only way is to test it and see if it's better (the lesser of two evils). Might not be Fixpack material, but it could make a good tweak (i.e., good Fixpack material).
Link to comment
I'd not mind digging it up for you, but if you wanted it for the BG Fixpack it'd be TotSC only and a departure from that game's implementation.
No, I don't want it for the fixpack (I was joking about that... for now, anyway) but for my own evil purposes, testing, etc. Probably won't be able to do anything with it any time soon, but this asinine dispel behaviour still bothers me, so I'd like to mess with it more eventually.
Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...