Community Patch 1.72 Beta 10 Released
download
To install it, follow as in 1.71 manual installation. Simply unpack the archive into folder with NWN files (thus if you do this right it will want to overwrite bunch of files which you have to confirm). The 1.72 is international, works for all languages as there are no changes in dialog.tlk file yet.
To uninstall it, either run 1.69 critical rebuild, 1.71 installation, or manually delete/rename the xp2patch.key file and rename the xp2patch171.key which is included in the 1.72 beta distribution.
This is probably last beta before final release. I tested all I could, now to be 100% sure everything works as intented this needs to be tested in uncontrollable environment as is persistent world. Im looking for volunteers who would like to use 1.72 on their PW - I will of course provide full support for any issue that might appear. I really hope there is someone who can do this as is nearly impossible to test every feature to make sure everything works as intented especially due to the ammount of them. PM me if you can help with final testing.
Neverwinter Nights Community Patch 1.72 beta 10 content:
Fixed broken stuff from previous Patch versions:
- fixed bug in a function ForcePolymorphEnd which did not ended polymorph correctly on a player that repolymorphed
- fixed nonfunctional temp hps on shapes from polymorph self and shapechange spells
- fixed stacking merged itemproperties in special case when repolymorph in multiplayer copied old merged itemproperties
Revisited features from previous Patch versions:
- Psionic inertial barrier: rescripted to use CPP spell engine to fix the targetting issues that any polymorph spell cant be cast on any object (which in vanilla isn't problem as the script is written to only apply effects on OBJECT_SELF, while 1.71 changed all these scripts to GetSpellTargetObject in order to provide custom content compatibility)
- Tenser Transformation: removed the int/cha/wis undocumented bonuses that were added in 1.70 to fix losing spell slots - but this code unfortunately didn't provided this functionality anyway
- removed undocumented overriding crate models from NWNEnhanced that were added in 1.70 (it doesn't look like there is any fix in them, only reskin)
New fixes and features:
Tileset fixes:
- tcn01_z06_01 - whole tile was mispositioned by 1 pixel in both X and Y directions
- tic01_j15_01 - fixed small polygon gap in floor around wall pillar
- tdc01_f14_01 - fixed polygon gaps in black coverage with tilefading enabled
- tdc01_f16_01 - fixed polygon gaps in black coverage with tilefading enabled
- tdc01_f20_01 - fixed polygon gaps in black coverage with tilefading enabled
- tdc01_g14_01 - fixed polygon gaps in black coverage with tilefading enabled
- tdc01_g15_01 - fixed polygon gaps in black coverage with tilefading enabled
Spells and spellabilities:
- Tide of battle (special spell): added missing target type - which allowed to hurt anyone even in NoPvP area
- Tenser Transformation: fixed losing the hp/attacks/fort when repolymorph happened, fixed not losing temp hp when polymorph was canceled before the actual spell expired (this is even backwards compatible - it will work even without rewritting the spell to use new polymorph engine)
- several spells which has no saving throw rescripted to allow use of the saving throw via spellhook (icestorm, heal, harm, vampiric touch, acid arrow and few more)
- spells that doesn't check spell resistance rescripted to allow add this check via spellhook (earthquake, crumble, greater thunderclap, creeping doom, dispels, breaches)
Scripts:
- 70_spellhook: fixed targetting bug that allows to cast any polymorph spell on any target no matter its range
- x2_inc_switches: added module switch which will disable a recursive check for polymorph end - this is useful to optimize the code in multiplayer
- x2_inc_switches: added module switch which will merge casting abilities from all items no matter what given shape merges in order to avoid losing spellslots in environment without NWNX (NWNX_Patch handles this automatically and in a better way)
- x2_inc_switches: added module switch to enforce DnD hardcore rules for evasion - evasion won't work in medium/heavy armor or when is character helpless (stun, paralysis, sleep, petrify, dying)
- x2_inc_switches: added module switch which will detach paralysis immunity from mind spells immunity (NWNX_Patch dependant feature)
Spell-engine related:
- added new field into spell engine structure, spell.DamageType, this is used to replace damage type in spells (eg. change all cold damage spells into fire or just for changing single spell damage type, eg. changing crumble sonic into magical)
- added new field into spell engine structure, spell.SavingThrow, this is used to replace saving throw the spell is imposing (eg. if player has Feat X, replace all fort saving throws with will) or even remove the saving throw (set to SAVING_THROW_NONE = 4 for this functionality), the spell in such case works as if the saving throw was always failed
- added new field into spell engine structure, spell.SR, this is used to disable (or enable) spell resistance check (eg. npc whose spells will ignore SR)
- added new field into spell engine structure, spell.TargetType, this is used to replace target type scheme spell checks (eg. change all selective hostile spells into standard hostile, or backwards, it also allows to turn aoe spells into singletarget, but not backwards)
- new spell overriding variable, use int SPELL_DAMAGE_TYPE_OVERRIDE on caster to override spell damage type. valid constants are DAMAGE_TYPE_*, check lexicon (http://www.nwnlexico...tle=Damage_type) for direct values if you plan to use this outside of script editor
- new spell overriding variable, use int SPECIAL_ABILITY_DAMAGE_TYPE_OVERRIDE on caster
- new spell overriding variable, use int ITEM_DAMAGE_TYPE_OVERRIDE on item
- new spell overriding variable, use int X_DAMAGE_TYPE_OVERRIDE on item or caster to override damage type of the spell with ID of X, example 368_DAMAGE_TYPE_OVERRIDE int 16 = ice storm with acid damage
- new spell overriding variable, use int SPELL_SAVING_THROW_OVERRIDE on caster to override saving throw that spell uses. Values: 1 - fortitude, 2 - reflex, 3 - will, 4 - none.
- new spell overriding variable, use int SPECIAL_ABILITY_SAVING_THROW_OVERRIDE on caster
- new spell overriding variable, use int ITEM_SAVING_THROW_OVERRIDE on item
- new spell overriding variable, use int X_SAVING_THROW_OVERRIDE on item or caster to override saving throw of the spell with ID of X, example 89_SAVING_THROW_OVERRIDE int 2 = implosion with reflex saving throw
- new spell overriding variable, use int SPELL_SR_OVERRIDE on caster to override whether spell checks spell resistance or not. Values: 1 - yes, -1 no.
- new spell overriding variable, use int SPECIAL_ABILITY_SR_OVERRIDE on caster
- new spell overriding variable, use int ITEM_SR_OVERRIDE on item
- new spell overriding variable, use int X_SR_OVERRIDE on item or caster to override spell resistance of the pell with ID of X, example 423_SR_OVERRIDE int -1 = bombardment spell will ignore SR
- new spell overriding variable, use int SPELL_TARGET_TYPE_OVERRIDE on caster to override target type scheme that spell uses. Values: 1 - all allies, 2 - single target, 3 - selective hostile, 4 - standard hostile.
- new spell overriding variable, use int SPECIAL_ABILITY_TARGET_TYPE_OVERRIDE on caster
- new spell overriding variable, use int ITEM_TARGET_TYPE_OVERRIDE on item
- new spell overriding variable, use int X_TARGET_TYPE_OVERRIDE on item or caster to override target type selection scheme of the spell with ID of X, example 367_TARGET_TYPE_OVERRIDE int 3 = horrid wilting which will not harm party members
Client:
- updated PC Widget tool to include 1.72 module switches
NWNX_Patch and NWNCX_Patch plugins (current version v1.13):
- enabled detaching immunity to paralysis from immunity to mind spells
Notes:
1) I had in plan to add more of the More TNO Placeables hak - however when browsing, I found out that its very hard to determine whats an improvement and whats "just a reskin". I decided I will not do it. If someone else wants to browse this hak and choose what it good addition into community patch, there is an override patch-hak I created for this.
2) Im also probably done with nwnx_patch. I had some things in plan but turned out they are out of my abilities (enabling flying - ie. set a X,Y position as walkable for flying creatures, softcode knockdown, enable open container GUI on equipped items, automatically equip new stack of throwing weapons, casting silent spell not breaking stealth mode). Unfortunately noone from those I sent sourcecode helped with anything so I dont expect any more help with this. What NWNX_Patch needs the most is some bigger rewrite to avoid collision with other plugins, unfortunately this is also out of my abilities (mostly). So if there are conflicts, you have to find out yourself and decide which plugin to prefer and which to disable.
3) The new spell script structure should be final (link example script for fireball). I don't think there is anything else that needs to be externalized like DamageCap, DamageType, SavingThrow and other were. Only remaining things are SAVING_THROW_TYPE_* which is not so important at all + it could be changed in MySavingThrows if someone wanted to do it. Also there is a shape type, but there are only 3 types, sphere, cube and line. Turning sphere into line has no sense, and sphere and cube are almost identical anyway. There will be always something I havent counted with and which will require to rewrite certain function or whole spellscript but current structure should be enough for majority of the features and almost everything should be now doable via spellhook without touching spellscripts at all.
4) Documentation. This will probably take me a whole month with the way Im active atm. This is my main task currently because peoples ask for features while they are already available here just not documented in a comprehensive way.