NWNWiki
NWNWiki
3,719
pages

Feature Overview[]

This feature is still in development and is not activated in the currently available download.

Per the rules in the Player's Handbook, clerics are supposed to prepare one of the spells granted by their domains at each spell level. BioWare did not implement this feature, but instead gave clerics one extra spell slot to be used for any spell the cleric chooses. This feature is intended to implement the D&D rule by checking the cleric at the end of the rest event, after spells are done being memorized, and placing a block on the cleric if there is not at least one domain spell memorized for each level, providing the domain actually has a spell available at that level. If a cleric does not have a spell available for either domain at a particular level, it will not keep him from being able to cast spells. The only way to remove the block is to reselect the memorized spells and rest again.

Development notes[]

  • This feature is now working and in final testing. SSB Syrus Greycloak 11:19, 9 February 2006 (PST)
  • updated sg_spellhook:
    1. bonus domain feat check section to only check cleric casters if local variable not set.
      • updated check to also check if caster has domains that receive the feats. Otherwise the caster was receiving a blank empty creature skin in their inventory. SSB Syrus Greycloak 13:42, 9 January 2006 (PST)
    2. new check: if caster is a cleric, checks local variable on caster to see if domain check has been done
      • this prevents logging off to get around the second variable which blocks the caster from casting
      1. if the check has not been done, calls SGCheckDomainSpellsMemorized
      2. once check has been done, checks if caster is blocked from casting
      3. if so, displays message and stops spell script
      4. if not, continues with casting script
  • added script sg_mod_def_rest.nss to development hak for domain spell memorization and bonus domain feat checking
  • added a module switch "SG_ENFORCE_DOMAINSPELLS", which if set on the module, will run the checks.
  • new function in sg_i0_deities: void SGCheckDomainSpellsMemorized(object oPC=OBJECT_SELF);
    • function uses other new functions in sg_i0_deities to determine if there is a domain spell memorized for each level
    • sets two local variables on caster to indicate the check has been done, and whether they have spells memorized.
  • new function in sg_inc_charinfo: int SGGetHasClass(int iClassType, object oCreature=OBJECT_SELF);
    • basically wraps GetClassByPosition and does the looping automatically.
  • new 2da created, sg_domains, which list spells domain requires. To be used in domain checking function.