Jump to content

Three White Doves

Recommended Posts

OK, after looking at Three White Doves, I've been stymied as to a simple way to make it behave.


Some background for those not following the v5 bug thread list... Three White Doves is an IWD mace that destroys undead on hit, based on their hit dice. Under 4 HD is always dead, 95% for 5 HD, etc. on a progressive scale up to 20% at 11+ HD. The mace used a custom, IWD-only opcode to make this happen; in BG2 we obviously don't have that available. In fact the only thing that can kill based on hit dice is the slay (55) opcode, but virtually all undead are immune to it via their immunity item, ring95.itm.


My first thought was to modify ring95.itm--removing the slay opcode immunity and using protection from spell to nuke the few spells that use slay(55) as a substitute. The problem is that this would block all effects of these spells, rather than just the slay effect--i.e. Cloudkill, Finger of Death, Wail of the Banshee, Nature's Beauty, etc. It also would lack any way to block items using slay, and be an issue with modders who want to use slay in their custom items and spells. You could fragment spells using slay in to undead and non-undead versions, but then you're really complicating stuff for modders.


So, my next bright idea was to create a series of custom SPECIFIC values for undead based on their hit dice, which would be applied via a regexp patch at install time. This would allow me to use the unblocked Kill opcode outright (via an EFF targeted at their SPECIFIC). Modders now have to assign a SPECIFIC to any undead creatures they add but it would 1) be easier and 2) have less of an effect if they didn't bother. Also SPECIFIC is, I believe, utilized at least partially by detectable spells.


So, I'm basically fishing for some ideas and feedback. Is there a better way to do all this? Is SPECIFIC safe to muck around with? Are the tradeoffs even worth it?

Link to comment

Probably way behind, but I'll give it a "think silly thoughts" or "Department of Silly Walks" try, just to spark an idea or two - hope it helps.


I think the idea of moving the effect of the weapon to script blocks triggered by an opcode (some kind of HitBy() or DamageType ) might be easier, unless you are saying that is how you are using the SPECIFIC value;


the extension of reactions could be as simple as adding the script blocks to undead's .bcs, as appropriate.


So, undead gets a LOCALS set via a successful hit, and the script blocks apply the relevant damage - randomness is built right in to the script blocks ( lesser undead just get Die(), greater undead get Zraen's script randomization #20 #20 #20, etc. if this makes any sense. )


This would be completely customizeable, and all modders would have to do is use the base undead script as part of their customized .cres.


Hackery to a grand extent, but it does have the advantage of being pretty simple to adjust until it mimics the wanted behavior, and probably is right up DavidW's alley in terms of setting up via SSL.

Link to comment

Doesn't the 'use EFF file' opcode (or the EFF files themselves) take min dice into consideration? If so, simply create an EFF file that deals 5000 fire damage (or whatever elemental source no undead can resist) and add to the 3WD the appropriate calls to use that EFF with appropriate IDS references, dice limitations and probabilities.

Link to comment


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

  • Create New...