Jump to content

Spell V1.0 Update


Smoketest

Recommended Posts

Okay, here are my IWD2 SPL 2.0 observations for this particular variable (0x001E) and others.

 

1. I can't verify from observation that priest spells use this variable. While a few "good-only" and "evil-only" priest spells did have the proper bits set, other priest spells that were denoted (good), (evil), or (lawful) did not have any alignment bits set. (There were spurious mage school bits, including Wild Magic, in a few priest (SPPR) spells, but none in the wizard (SPWI) spells.) I suspect the alignment bits are superceded by LISTDOMN.2DA.

 

2. Wizard spells (SPWI) did not use this variable at all; In all wizard spells, this variable's bits were set to zero.

 

3. For both the priest spells (SPPR) and the wizard spells (SPWI), the casting graphics variable at 0x0022 was being set to the proper value and the Primary Type (Spell School) variable at 0x0025 was being set to the appropriate value. The Secondary Type variable at 0x0027 wasn't being used at all (always zero.)

 

4. The Priest Type variable at 0x0020 seems to be superceded by the 2DA files also, specifically LISTSPLL and LISTDOMN.2DA. Except for two spurious odd values (1 and 2) in as many spells, this variable was set to zero for every other spell the player can learn.

 

5. If the bits work at all, it is likely they follow the functionality of HoW.

 

Here are the 2DAs I mentioned, and what they appear to do.

 

- LISTDOMN.2DA determines which clerics, according to domain or diety, can use which spells, and at what level they gain access to those spells.

- LISTMAGE.2DA determines which wizard specialists (not including sorcerers and generalists) can use which spells, and at what level they gain access to those spells.

- LISTSPLL.2DA determines which spellcasters can use which spells, and at what level they gain access to those spells.

 

The line between "wizard spells" and "priest spells" is greyed in IWD2. While traditional wizard spells are still mostly used by wizards, bards and sorcerers, some of them are also used by priests. Likewise with traditional priest spells. So you'll see SPWI and SPPR spells being assigned to all sorts of spellcasters rather than being limited to one particular group.

 

In support of my points above, Weimer's IWD2 EoU mod incorporates fixes/tweaks for druid spell accessibility. To make the changes, it modifies LISTSPLL.2DA, not the spell files.

 

Since I'm not modding or fixing bugs for IWD2 at the moment (I'm busy with BG1,) I'm posting these observations in the event someone else wants to take a stab at setting values and observing the results. Things to test are: Do the bits still work? If so, do they override 2DA settings?

 

I also updated the first post with the new info.

Link to comment

Here's some code to institute the pnp school exclusions. I'm no WeiDU ninja, so I'm sure it could probably be improved somehow.

 

COPY_EXISTING_REGEXP ~^SPWI[1-7].+\.spl$~ ~override~
READ_SHORT 0x1e "exclusion_school"
PATCH_IF ("%exclusion_school%" = 256) THEN BEGIN // Conjuration/Summoning, exclude Diviners
 WRITE_SHORT 0x1e 2304 // Exclude Diviners & Invokers
END
PATCH_IF ("%exclusion_school%" = 512) THEN BEGIN // Invocation/Evocation, exclude Enchanters
 WRITE_SHORT 0x1e 1664 // Exclude Encanters, Conjurers & Illusionists
END
PATCH_IF ("%exclusion_school%" = 1024) THEN BEGIN // Necromancy, exclude Illusionists
 WRITE_SHORT 0x1e 9728 // Exclude Illusionists, Enchanters & Transmuters
END
PATCH_IF ("%exclusion_school%" = 2048) THEN BEGIN // Enchantment/Charm, exclude Invokers
 WRITE_SHORT 0x1e 6144 // Exclude Invokers & Necromancers
END
PATCH_IF ("%exclusion_school%" = 4096) THEN BEGIN // Illusion/Phantasm, exclude Necromancers
 WRITE_SHORT 0x1e 4160 // Exclude Necromancers & Abjurers
END
PATCH_IF ("%exclusion_school%" = 8192) THEN BEGIN // Abjuration, exclude Transmuters
 WRITE_SHORT 0x1e 9216 // Exclude Transmuters & Illusionists
END
BUT_ONLY_IF_IT_CHANGES

 

BTW anyone else noticed that NI lists 9216 as the flag for necromancy, and 2304 as the flag for conjuration? :)

Link to comment
BTW anyone else noticed that NI lists 9216 as the flag for necromancy, and 2304 as the flag for conjuration? :)

Yes, I had those values in my draft writeup. They represent the setting of two exclusion bits for those schools, part of Bioware's loose compliance with pnp exclusion schools (for balancing with the learnable spell library). Most specialists only block one opposing school in the BG games, but the two you mention block two opposing schools. Thus the combined bit values.

 

NI's a little behind the times, since Jon Olav hasn't updated his beta in some time and hasn't been responding to e-mails.

Link to comment

It's true, as my first post states just below the listed extra bits for BG2.

 

The reason all other exclusion school bits are set for Wild Magic is because the wild magic bit won't exclude anything but generalist magi. So Bioware set all other exclusion bits as well, so that Wild Magic spells can only be learned and used by Wild Magi. (This could be changed by a mod.)

 

Alas, the current version of IESDP doesn't accurately represent my data. I think something was lost in the translation. I think I'll re-edit my initial post just in case something's confusing. (Update: edited the initial post. Hopefully it's much clearer.)

Link to comment

Archived

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

×
×
  • Create New...