Aller au contenu

Photo

Community Patch discussion and development thread


  • Veuillez vous connecter pour répondre
919 réponses à ce sujet

#776
Shadooow

Shadooow
  • Members
  • 4 470 messages

Doesn`t work cleric`s Endure Elements on my Cleric/Bard build.

upd:

all resist elements like spells are broken. Or is it what called "balance"?

Thanks for report. You are right, all elemental spells are broken in 1.72beta10 because I renamed the multispell script but forgot to update spells.2da.

 

Please be patient. This is called beta for a reason, and from beta9 to beta10 I made very significant changes to all spellscripts so its possible some spells will be bugged in some way. I am a single person and I really can't test every single thing I make because I do a lots of them.

 

Which is why I am still looking for a PW module (doesnt have to be open, closed one for testers only is enough) which would installed 1.72 as that would allow to track all the issues much faster.

 

I will release beta11 fixing this issue and bringing new features at sunday. For now, revert to 1.71.


  • WildWhisper aime ceci

#777
Shadooow

Shadooow
  • Members
  • 4 470 messages

Community Patch 1.72 Beta 11 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.

 

 

Im calling the "this will be last beta" off. I can't release something thats not 100% tested and perfect, no not me, other projects can but not community patch. And to test monster as this, I need more testers or to test in on a PW. Which is problem because PWs are not interested in something which is in beta...

 

Anyway I'm still looking for anyone willing to try it on his PW, it doesn't have to be a PW with 20 players, not even already released PW, just PW where are atleast few peoples playing/testing things.

 

 

 

Neverwinter Nights Community Patch 1.72 beta 11 content:

Fixed broken stuff from previous Patch versions:
- fixed a 1.71 bug where under specific circumstances, an aoe spell like delayed fireball ignored target immunity to 9/8/7 level spells if this spell was acquired by some custom content like a polymorph or something
- fixed temporary hitpoint stacking from Shapechange spell
- added missing externalizations into few spellscripts (spike growth)
- ballista and ballista, arbalet set not to be static in 2da (could cause crashing and other issues on some graphic cards)
- fixed an issue with multisummoning feature, where summoning a creature close to the other player with his own summons count the other player as a master and could unsummone his own summon
- implemented the "merge all switch" which was somehow completely omitted
- fixed two tiles from beta10 that threw SQRT Domain error when placing

- fixed all elemental spells that stopped working in beta10

 

Revisited features from previous Patch versions:
- Ioun stones will no longer be dispellable by the standard means. This was implemented in early 1.70 and reverted before release due to the critique on this change. I know there are modules where they prefer ioun stones to be dispellable, but on the same hand there are modules which prefer not to. Since DnD rules are clear, I decided they will be not dispellable by default in 1.72. Either way, it's very easy to change this in scripts especially when 1.72 introduced single multiscript for all ioun stones 70_s3_iounstone.
- the custom evasion function that handles dnd evasion rules implemented into all scripts, not just spells
- new metamagic icons in spellbook from previous version colored a bit to better match with previous star icon and the spell level icons (preview compare with beta10 preview)
- switch to ignore spell resist/immunity on AOE spells won't consider delayed blast fireball as glyph of warding as AOE spells thus they will still check for this
- multi summoning switch can be now used also locally, ie. builder can allow this feature only certain player meeting some prerequisites etc.

New fixes and features:

Tileset fixes:
tdc01.set,tde01.set,tdr01.set,tsw01.set,tdt01.set,tdm01.set,tdc01.set - Big Door tiles visibility changed to fix the issue with revealing what's behind doors without opening them
ttf01_edge.2da - fixed missing cliff edge tile in the corner of the area
tds01_o13_01 - fixed path node rotation
tds01_d06_01 - fixed visibility node, rotated by 90°(allowed to see hidden rooms)
tdc01_g09_01 - critical walkmesh fix (could trap characters close to wall)
tdc01_a13_01 - fixed polygon gaps in black coverage with tilefading enabled
tdc01_f09_01 - fixed polygon gaps in black coverage with tilefading enabled
tdc01_f11_01 - fixed polygon gaps in black coverage with tilefading enabled
tdc01_f18_01 - fixed polygon gaps in black coverage with tilefading enabled
tdc01_g13_01 - fixed polygon gaps in black coverage with tilefading enabled
ttr01_j17_01 - fixed polygon gaps in black coverage with tilefading enabled
ttr01_z17_01 - fixed polygon gaps in black coverage with tilefading enabled
tdm01_d11_01 - fixed polygon gap in wall
tdm01_d12_01 - fixed polygon gap in wall

 

Spells, feats and special abilities:
- Battletide, Mind Fog: the penalty is added instantly, although the visual will land with a delay - this is to prevent a situation when player moves into aura/fog and immediately moves back, because the penalty is delayed and not yet present on character the onexit script can't remove it and thus player ends up with permanent penalty
- Entangle, Grease, Web: added missing caster validity check, aoes will vanish with its caster
- Tymora Smile: effects made undispellable (supernatural)

 

Scripts:
- 70_mod_resurrect - new script which will fire after casting raise dead or resurrection spell
- 70_mod_petrified - new script which will fire after petrify effect application from any spell/ability
- 70_s2_pickpocket - new script which implements pickpocket skill, runs only when nwn©x_patch is in use
- nw_ch_summon_9 - henchmens will stay closer to the master as was intended
- 70_inc_main - new library for a generic functions I had no other place to put, contains:

  • ShutdownServer: server shutdown/crash without need for NWNX
  • NWNX_Patch_IsInUse: checks availability of the nwnx_patch or nwncx_patch
  • AddFeat: allows add a feat on player, using PC Skin system from 1.69 and expanded iprp_feats.2da from 1.72 where each working feat is added into itemproperty with constant number + offset of 100
  • GetCommunityPatchVersion: returns -1, 170, 171 or 172 depending on the community patch version installed on the running machine

- 70_inc_itemprop:

  • added new function UpdateItemCharges (fixes cast spell itemproperties when charges set to 0)

- x2_inc_itemprop:

  • added new function IPGetIsThrownWeapon
  • implemented module switch to use weapon boost spells on ammo or throwing weapons

- x2_inc_switches:

  • new module switch MODULE_SWITCH_DISABLE_DAMAGE_SHIELD_STACKING, this switch enforces the "only one damage shield spell" rule
  • new module switch MODULE_SWITCH_DISABLE_WEAPON_BOOST_STACKING, this switch enforces the "only one weapon boost spell" rule
  • new module switch MODULE_SWITCH_DISABLE_AOE_SPELLS_STACKING, this switch allows to limit how much persistent aoes of the same type can player cast in same area
  • new module switch MODULE_SWITCH_ALLOW_BOOST_THROWING_WEAPONS to enable weapon boost spells to be used on darts, shurikens or throwing axes
  • new module switch MODULE_SWITCH_ALLOW_BOOST_AMMO to enable weapon boost spells to be used on arrows, bolts and bullets

- x3_inc_horse: HorseGetIsMounted changed in a way it checks phenotype instead of integer on skin - this change should prevent creation of the PC Skin in a modules without horses

Polymorph system:
- the merge arms and ability stacking switches will now work also locally, ie. you can apply these rules only for certain PC, not just for everyone, To do this, use SetLocalInt on the player with corresponding module switch variable and value.
- fixed stacking abilities from weapon when stacking from all items wasn't enabled
- implemented a hitpoints correction to fix special case where repolymorph increased character hitpoints
- small rewrite to handle spells like Shapechange that has delay on the polymorph application

 

Spell-engine:
- the spell id overriding variables like (id)_CASTER_LEVEL_OVERRIDE are now also checked on module. The reason for this is that the spellhook is by default triggered only for player characters, so if you wanted to make igms limited to 15 missiles max for everyone not just players, you would had to modify 70_spellhook to trigger module spellhook also for npcs or use.

Client:
- updated PC Widget tool to include ammo and throwing weapons spell boosting

 

NWNX_Patch and NWNCX_Patch plugins (current version v1.14):
- softcoded pickpocket skill

 

 

Notes:

 

1) The pickpocket implementation is as close to vanilla as possible with few exceptions. Main is that the victim get the "lost item" feedback if thief steals an item. I haven't add this functionality mainly because I would have to add a new NWNX function for this or expand the DestroyObject somehow to take second parameter. Either way, that wouldn't really fit into plugin that patches things. So the options are: a) add it into nwnx_patch anyway,  b.) ship with patch also nwnx_funcs or cool (which both are highly unstable unfortunately), c) create a new nwnx plugin for functions, d) leave it be. I choosed d as you see. Need suggestion whether any other option has sense. I bet many players (except thieves) and DMs will prefer it this way anyway.

 

2) I was considering add some more functions into 70_inc_main from Homebrew thread on forums. However since most of them comes from me, I rather choosed not to as Im biased. I takes suggestions on custom functions to add from anyone interested in this.

 

3) The disable spell stacking switches weren't added into PC Widget because it is improbable that a player would want to use them. They are intented for module Builders who can code this into module itself. Also, the PC Widget conversation grows large so if I should add them, I will need to create some categories first...


  • WhiteTiger et WildWhisper aiment ceci

#778
Shadooow

Shadooow
  • Members
  • 4 470 messages

I need to revisit all those spell override and modifier variables. I just found that the "module-wise" override I added in last beta is not functional. But when I wanted to fix it, I realized that it becomes a bit complicated.

 

Anyway, currently it works this way:

Module-wise spell id override ("87_DC_OVERRIDE") has highest priority. If its set its used no matter what might contain lower overrides.

Creature spell id override ("87_DC_OVERRIDE") has second priority. If its set its used no matter what might contain lower overrides.

Creature override ("SPELL_DC_OVERRIDE") has lowest prioty. Its used only if spell id overrides aren't set.

Creature modifier ("SPELL_DC_MODIFIER") is added to the original value (in this case original caster level) only if the value is not overriden.

 

My concerns:

1) Is it optimal? Shouldn't actually the "any" override ("SPELL_DC_OVERRIDE") take priority over spell id version? Shouldn't creature override take priority over module-wise override?

2) Shouldnt modifier be also added into override?

3) Should the caster level, dc and metamagic even exists as module-wise override? These three values vary with spellcaster, while other spell informations are always the same no matter who the spellcaster is. It doesn't really make sense to override caster level of implosion globally for everyone in module.

Note: the module-wise override was created to change some of the spell values like TargetType or SavingThrow or DurationType globally for every spellcaster in module. This avoids the need to do it manually in spellhook which also normally doesnt run for NPCs.


  • WhiteTiger aime ceci

#779
meaglyn

meaglyn
  • Members
  • 808 messages

My 2 cents:

 

1) No. The specific one should be higher priority than the general one.

2) That probably makes sense. Then you can have creatures modify it as needed.

3) I agree. I'm not sure of the utility of a module-wide override of spell DC for all spells.  I can see the use for creature level overrides to make say a boss more dangerous or even module-wide override to a specific spell. The general module-wide override of DC for all spells seems of little use to me.  That makes the first two questions sort of moot...



#780
Shadooow

Shadooow
  • Members
  • 4 470 messages

to 3) right, on the other hand module-wise modifier for DC would actually make a sense, caster level probably too (althought thats a bit weird usage).



#781
Shadooow

Shadooow
  • Members
  • 4 470 messages

I realized that although I have problems using github or similar services, I can simply upload sources of my plugins on google drive.

 

So here they are, including some new stuff like fix for effect caster level or onhitcastspell which will be included in next 1.72 release.



#782
Shadooow

Shadooow
  • Members
  • 4 470 messages

Today, Im going through my screenshot folder as I'm making screenshots whenever I see any polygon gap ingame. Most of them are custom content which I do not care about but often I find new vanilla tileset issue.

 

Thats the case with ttr01_q12_01 and ttr01_q13_01. See image. Problem is, I am not able to fix these tiles. I can fix small polygon gaps, add black coverage polygons or hide something when tilefade, but whener the adjustion needs to alter texture I'm out. This is the case + actually the mismatch is so big that it would need remodelling actually.

 

Can someone help me with these two tiles?


  • henesua aime ceci

#783
Shadooow

Shadooow
  • Members
  • 4 470 messages

Community Patch 1.72 Beta 12 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.
 
 
Neverwinter Nights Community Patch 1.72 beta 12 content:

Fixed broken stuff from previous Patch versions:
- fixed 1.71 bug in Dirge where the spell had no effect on entering enemies and only heartbeat worked
- fixed several issues in 1.71 special AI for polymorphed creatures where such creatures get stuck when trying to use certain abilities and only performed melee attacks
- fixed 1.71 AI feature with heal/inflict spell substituting that could stuck creature due to the engine bug with TalentSpell
- fixed all the module-wise spell engine overrides from beta11 that weren't working due to the overlook in code
- added missing 70_inc_main library announced in beta11 (sorry overlooked)
 
Revisited features from previous Patch versions:
- removed module-wise spell engine override for caster level, DC and metamagic
- circle kick fix in nwnx_patch will work only for players now (often builder wants creature to switch targets and circle kick is easiest way to do that)
- the edge fix for chasm in forest and desert tileset reworked in order to make this fix custom content compatible (so it shows in custom tilesets based on forest/desert and modified forest/desert tilesets)
- battletide and dirge AI behavior changed from aura-like spells and moved to protection buffs as it was a bit weird to start with these spells and then use talents like fear aura + high AI was then able to cast battletide instantly which wasn't intended
- the variable to disallow identification of certain items renamed from DISALLOW_IDENTIFY to 72_DISALLOW_IDENTIFY
- nw_i0_spells: MySavingThrow will ignore paralysis immunity if the module switch 72_DISABLE_PARALYZE_MIND_SPELL_IMMUNITY is activated
- nw_i0_spells: DoSpellBreach feedback printed also for caster if its player
- 70_inc_main: NWNX_Patch_IsInUse() renamed to NWNXPatch_IsInUse() to unite with other plugin naming conventions)

New fixes and features:

Tileset fixes:
ttd01_z11_01 - new fix for the missing edge tile
ttf01_z11_01 - new fix for the missing edge tile
tcn01_h02_02 - fixed one part of the wall that didn't fade properly
tdc01_g17_01 - fixed polygon gaps in black coverage with tilefading enabled
tdc01_g17_02 - fixed polygon gaps in black coverage with tilefading enabled
tdc01_p13_01 - fixed polygon gaps + minor other fixes
tdt01_j11_01 - fixed polygon gaps in the wall
tdm01_c02_02 - fixed polygon gaps in the wall under water
tdm01_h17_01 - fixed polygon gap in the bottom edge of one pillar
tdm01_h18_01 - fixed polygon gaps in the bottom side of two pillars
ttr01_u04_01 - added missing black coverage to the upper arc, also filled the polygon gaps from bottom side of the arc which could be seen under specific camera angles
ttr01_v04_01 - added missing black coverage to the upper arc, also filled the polygon gaps from bottom side of the arc which could be seen under specific camera angles
 
2DAs:
- spells.2da: fixed Master reference for several shapeshifting subspells
- polymorph.2da: racial type of the super chicken polymorph form corrected to animal (was gnome)
 
Spells, feats and special abilities:
- Freedom of movement: added supernatural effect check as is in restoration spells - this allows to make a movement decrease effect which won’t be removed with this spell
- all poison special effects now controls poison immunity, if poisoned character acquired poison immunity the poison will fail
- Pit Fiend Ichor poison: the death will ignore death spells immunity only on hardcore and high difficult difficulty
- Blue Whinnis poison: the sleep effect will be removable by neutralize poison spell now
 
Scripts:
- added new item switch variable 72_DISABLE_ENCHANTMENT_SPELLS = 1, item with this variable won't be allowed to enhance with weapon/armor buffing spells
- 70_inc_ai: new library for AI functions, contains:

  • bkTalentFilterLoc - copy of bkTalentFilter that uses talent on location
  • bkTalentFilterSpell - copy of bkTalentFilter that uses ActionCastSpellToObject
  • TalentShapechange - moved here from x0_i0_talent to provide backwards compatibility (in case that module had modified x0_i0_talent but unmodified nw_i0_generic, then some scripts might threw error when compiling before - this won't happen again)

- 70_inc_main: added new function NWNXPatch_DumpEffects(object) for effect debugging purposes

Other:
- scroll of Negative Energy Protection set identified
 
AI:
- improved several AI routines to allow handle defensive casting in everything that creature casts
- fixed combat of huge creatures like dragons who had much higher chance to magic than intented because their target was never "close enough"
- further improved spellcasting: removed a code that could sent creature to start melee attack prematurely
- creatures will be able to count with the limit override in Power Word: Kill spell. That limit however must be enforced with spell id variable, ie. "131_LIMIT_OVERRIDE" either on creature or module
- significantly improved AI for polymorphed creatures introduced in 1.71:

  • creatures polymorphed into chicken, penguin and cow will no longer try to fight and will flee from enemies
  • AI will now handle spellcasting while in polymorph, by a rule of thumb - everything that’s not an ordinary spell (UserType != 1) will be allowed to cast even polymorphed, if its ordinary spell and the innate level is 5 or higher then the polymorph will be canceled and creature will cast this spell
  • however, creatures won't cancel polymorph earlier than after 3 rounds to avoid dumb situations
  • AI will now handle also polymorph self, tenser's transformation and shapechange polymorphs
  • AI will not use low CR polymorphs if the CR of the creature is way higher
  • AI will keep a track of the shifter form spell limits and won't use talent which has all uses depleted
     

Spell-engine:
- added module-wise modifier for DC (ie. spellid_DC_MODIFIER on module object)
 
NWNX_Patch and NWNCX_Patch plugins (current version v1.15):
- fixed crash exploit with cursed items
- ApplyEffectToObject now allows to use DURATION_TYPE_EQUIPPED and DURATION_TYPE_INNATE
- improved OnClientLeave module event: the GetExitingObject() will now return fully valid player object, ie. you can get location and any other info there

- fixed OnHitCastSpell itemproperty overriding the spell concentration check which led into casted spells being incorrectly uninterruptable (issue details)
- complete rewrite of the effect caster level initialization:

  • fixed caster level of spell effects cast from an item (which was set to last normal spell caster level or -1 if none such spell was cast by the creature)
  • properly takes into account negative levels
  • takes into account Pale Master levels if the appropriate module switch is active
  • takes into account any custom prestige class levels if the conditions are met (ie. arcane class with prestige class with ArcSpellLvlMod or divine class with prestige class with DivSpellLvlMod). Custom content note: custom arcane class must have SpellCaster equal to 2 in classes.2da.
  • takes into account community patch caster level override and modifier features (but only when creator is creature)

- added EffectDump function for the new effect caster level debugging purposes (this is unfortunately working only for server version of the nwnx_patch plugin)
 
 
Notes:
 
1) For ApplyEffectToObject, the new constants are: DURATION_TYPE_EQUIPPED = 3 and DURATION_TYPE_INNATE = 4. I forgot to add this into nwscript.nss so next time. However I have no idea how they behave. I copied this code from leo_x's linux plugin as I needed to make a change there so I included his improvements, but he has no description either. So you need to experiment a bit - make sure you post the results here.

 

2) The effect caster level is much complicated than it seems to be. On this page I wrote what it does normally and how it behaves now. To explain some of the terms inside that document. Delayed effect is an effect declared in a function that is delayed by DelayCommand or AssignCommand from spellscript. This is for example a case of Bigby's Clenched Fist spell where the stun effect is declared this way.

 

If you want to test this use NWNXPatch_DumpEffects(oPC); this will print (in server version) all effects (even internal) with all their informations into nwnx_patch.txt.

 

3) I'm not 100% confident with that -1 caster level on effects created in delays. When the creator is creature they come out undispellable, where previously they were always dispellable just the caster level was wrong and it could make dispel either incorrectly successful or unsuccessful. I think its just Bigby Clenched Fist that does this (inferno/hell inferno are making damage effects which are instant thus not subject to dispelling) and the stun is 1round long anyway so it probably not a problem and even then the stun comes from fist not fist caster so it should basically rely on fist presence anyway. Idk, your opinions?

 

4) Note that only effects are automatically taking into caster level calculation custom prestige classes, spellscripts will not do this and will only calculate PM levels (if enabled with module switch). This is actually intented to provide a support for custom content with its own spellscripts whose do not utilize CPP spell engine at all. For example, PRC has all spellscripts changed to account for their custom prestige classes that improves arcan/divine spellcasting. This all works correctly except the effects' caster level is unchanged. This will fix this issue (although PRC workarounded this by completely reworked dispels but due to this many spells have to work differently and the dispel is far from vanilla in behavior). Anyway. If you have custom prestige class that enhance arcane/divine spellcasting and you are using CPP spell engine, you need to use SPELL_CASTER_LEVEL_OVERRIDE or SPELL_CASTER_LEVEL_MODIFIER features (prefferably in spellhook) to take effect of your class levels into all spell scripts. And if you use SPELL_CASTER_LEVEL_OVERRIDE, the internal effect caster level will use this value over anything anyway.


Modifié par Shadooow, 24 janvier 2016 - 04:27 .


#784
Shadooow

Shadooow
  • Members
  • 4 470 messages

I finished the detailed documentation for the NWN©X_Patch plugin.

 

You can read it here.

 

While making this I found out I forgot to mention that last version 1.15 fixed also the OnHitSpelCast issue mentioned here. So I edited the list of changes and added it there.

 

Anyway, I would like to hear any comments or objections on the nwnx_patch features/functionalities. If you think something shouldn't be automatically enabled tell me what and why. If you think something is not a bugfix but balance change or that feature X doesnt even belong to plugin called patch or whather I want to hear it, but I want to hear why you think so too.


  • WhiteTiger aime ceci

#785
Devlyn

Devlyn
  • Members
  • 4 messages

I'm totally lost. I just dug out my old Neverwinter Nights II disk and installed it, not realizing how much time had past and that it would not be supported anymore, patch wise. I've tried following the directions but I don't seem to be understanding. I downloaded the 1.72 Beta 12, extracted it, then tried to copy into the NWN folder. That worked, but nothing has changed. I'm sure this is user error. Can you help? Do I need something to install a patch? Do I need to start with an earlier version? The version I have is fresh from the disk. 

 

Thanks in advance!



#786
Empyre65

Empyre65
  • Members
  • 372 messages

Are you trying to install the 1.72 patch for NWN onto NWN 2?

 

This is the forum for NWN. The forum for NWN 2 is here: http://forum.bioware...nter-nights-ii/



#787
Devlyn

Devlyn
  • Members
  • 4 messages

Are you trying to install the 1.72 patch for NWN onto NWN 2?

 

This is the forum for NWN. The forum for NWN 2 is here: http://forum.bioware...nter-nights-ii/

Arg blurg. So dum. *sigh* Sorry.



#788
Tchos

Tchos
  • Members
  • 5 057 messages

I'm totally lost. I just dug out my old Neverwinter Nights II disk and installed it, not realizing how much time had past and that it would not be supported anymore, patch wise.

 

Aside from the link to the NWN2 forum, you'll probably also be able to make use of this link to the NWN2 patches.  The final patch is 1.23.  There's also a patcher that can automate the update process once you have those patches.



#789
Devlyn

Devlyn
  • Members
  • 4 messages

Wow! That's perfect! I was able to find all the updates. If someone else finds this, I just had to download the patches, move them to the NWN2 main folder (still zipped), disconnect from the internet (so it doesn't time out looking for patches online) and start nwupdate.exe. I'm sure the other patches will take other work, but I appreciate getting this far and now I need to know where to look for more info. 

 

Thank you all for not simply laughing at my ineptitude. I thought I double checked to make sure this was the right forum, but apparently third time would have been the charm.



#790
Shadooow

Shadooow
  • Members
  • 4 470 messages

Atm working on AI.

 

I noticed I removed few spell usage checks in 1.70 and thinking about reenabling them

 

however, this will probably need some sort of intelligence check - not every creature should be able to cast so smart so what should be the condition?

 

intelligence 13+? humanoid race?

 

we are talking here about these spell rules:

 

- do not use drown on targets naturally immune to drown

- do not use level drain on targets naturally immune to level drain

- do not use sleep/daze on targets with 4+HD

- do not use hold/charm person on nonhumanoids

- do not use mind affecting spells on targets naturally immune to mind spells


  • WhiteTiger aime ceci

#791
Shadooow

Shadooow
  • Members
  • 4 470 messages

I think I will enable this to creatures with AI_LEVEL_HIGH only. Ie. only those that builder set up for this with 70_c2_aihigh9 OnSpawn script as no standard creature has this AI level.

 

Enabling this to everyone can cause the gameplay issues that were already reported in some modules, where badly balanced module might become too difficult if creatures will be more smart. That also raises a question whether I shouldn't move some of the 1.71 AI fixes//features to High AI as well to avoid this. HIPS casting? Curse song? I don't know, I think the highest impact has the randomized casting on sorcerers which is quite essential no matter how much more diffucult it may be.


  • WhiteTiger aime ceci

#792
shadguy

shadguy
  • Members
  • 57 messages

You can't balance everyone's modules for them.  Empower them with options, document, and go find other good uses for your time.  

 

-Dave



#793
Shadooow

Shadooow
  • Members
  • 4 470 messages

You can't balance everyone's modules for them.  Empower them with options, document, and go find other good uses for your time.  

 

-Dave

Of course I can't. But what already happened by reports is that the module was semibalanced already. Balanced because the creatures were stupid, were using same spell over and over, not using some spells at all - but thats what the module creator counted with. When these creatures suddenly started behaving more logical and smarter, players suddently had issues beating the encounter.
 

This is why I didn't enabled AI to use several talents: Mummy Dust, Dragon Knight, Greater Sanctuary, Mass Heal and others as these spells might increase encounter difficulty too much.

 

Builders often uses creature wizard which gives creatures these feats/spells and they don't care creatures doesn't uses it. So many creatures still have these talents and I must count with that when improving AI as my AI is enabled automatically for all creatures.

 

As I said, I received two reports like this already and I was witness of these issues on a PWs where they installed community patch - it depends on encounter of course, but just curse song might swing the battle in monster favor easily.


  • WhiteTiger aime ceci

#794
Shadooow

Shadooow
  • Members
  • 4 470 messages

In next nwnx_patch version, the curse immunity to ability decrease immunity "fix" will be toggleable. It is actually possible to turn off via DisableEffectImmunityHook = 1 in nwnplayer.ini, however thats not ideal solution as this will also disable the immunity ignore on items with ability decreases.

 

Anyway, the thing is I found out new way to make options using diffsettings.2da.

 

So the question is whether to add a new line into diffsettings.2da which would look like this:

 

           Name                 DMEasy   Easy   Normal   Hardcore   DMPlayers   
0          NoCriticalOnPC       1        1      1        ****       ****        
1          NoAoOWithRanged      1        1      1        ****       ****        
2          NoAoOWithPotion      1        1      1        ****       ****        
3          MinPCDamagePercent   100      50     ****     ****       ****        
4          MaxNPCDamagePercent  25       50     100      100        150         
5          MinHP1               1        ****   ****     ****       ****        
6          MassiveDamage        0        0      0        1          1
7  CurseIgnoreAbilityImmunity   0        0      0        1          1

or just do it via module switch which has the advantage of using dynamically - values in 2DA are cached and can't be changed after game/server is loaded.

 

AND, if the diffsettings.2da is a way to go, then the question is whether I shouldn't move some of the already existing module switches there as well - the 72_DISABLE_PARALYZE_MIND_SPELL_IMMUNITY kind of fits there.


  • WhiteTiger aime ceci

#795
Shadooow

Shadooow
  • Members
  • 4 470 messages

currently working on the possibility to create custom spellcasters

 

for now, I managed to remove the restriction on min lvl of paladin and ranger spells which is normally lvl 4 - now, it will be possible to allow paladin and ranger to cast cantrips or level1 spells from lvl 1 via cls_spgn_pal.2da / cls_spgn_rang.2da

 

showcase image


  • yetanothername et Tonden_Ockay aiment ceci

#796
Tonden_Ockay

Tonden_Ockay
  • Members
  • 562 messages

Nice I love your work Shadooow. 



#797
Shadooow

Shadooow
  • Members
  • 4 470 messages

I am making progress.

 

Managed to enable the spellbook for custom class.

 

Showcase image

 

Its still just beginning, although I can prepare spells and cast them, I still need to figure out spellbook population as currently every single spell with same innate level shows there. And thats only the prepared and non-learner class type, the spontaneous or learning type of class will need to be coded separately.

 

Still its very promising I was able to make such big progress in matter of hours which I really didn't expect lol.


  • yetanothername et Grani aiment ceci

#798
Tonden_Ockay

Tonden_Ockay
  • Members
  • 562 messages

WOW this is very good to hear.



#799
Shadooow

Shadooow
  • Members
  • 4 470 messages

I finished the first task of this project and its available for testing.

 

download

EDIT: reuploaded new version which now properly calculates bonus spellslots for high ability score

 

instructions:

 

put nwncx_patch.dll and nwnx_patch.dll into NWN folder

put classes.2da and spells_levels.2da into override folder

 

now, run nwn server via NWNX2.exe or nwn client via NWNCX_Loader.exe. Note, that in multiplayer, clients without nwncx_patch wont be able to see "known" spells in the spellbook panel as thats entirely client-side thing. So in multiplayer it needs both client and server run with NWNX.

 

the classes.2da included in this package is modified to make assassin base class, arcane spellcaster with a divine-type of spelllist ie. character knows all spells from given level automatically. Also I modified class commoner to be spellcaster. This is quite messed up, I definitely recommend to make your own classes.2da, perhaps to use it for PRC classes like Anti-Paladin. Note: I dont think the class needs to be base class. It should normally work on prestige class too - I changed assassin to be base class just for easier testing.

 

now technical info

 

classes.2da

SpellCaster must be 1 to allow spellcasting (obviously)

SpellGainTable  must be filled

SpellKnownTable  musntn't be filled

CastingAbility is now equal to PrimaryAbil column and it should now be possible to change this for vanilla spellcasters

LearnScroll column is unfinished - it will show the learn scroll GUI but clicking on it will not work for non-wizard yet, so ignore this

CastType is supposed to be a bitflag, but at this moment it has only one flag and thats Arcane = 128, so if you want your spellcaster to be arcane set CastType = 128, otherwise leave 0, arcane spellcasting is affected by armor/shield failure, deafness and maybe something else, not sure

spells_level.2da

this is special 2da that controls which spell shows in custom spellcaster class spellbook

basically, if you add a custom spellcaster class, you need to add a new column in this 2da with name = row_id of the class

so in my case as I allowed to cast Assassin which ID is 30 I added new column "30" without quotes, then just add values for each spell you want this class to know, values are the same as for classes.2da columns.

 

I tested this in both singleplayer and multiplayer, however my testing wasn't very thorought and Im especially curious whether it will work in a multiplayer without player neededing these 2das in override. It should, however untested.

 

This is very limited in the current state and only allow to create a memorization spellcaster with preset known spells. It should also be possible to set certain spells to be spontaneous for custom spellcaster via the nwnx_patch spontaneous casting feature as explained in readme. But untested.

 

Oh yea and I don't think it will be compatible with nwnx_spells plugin for linux. The possibility is there, but I doubt it, the linux plugin works completely differently.


  • yetanothername aime ceci

#800
WodahsEht

WodahsEht
  • Members
  • 15 messages

Shadooow... I can't believe you've done it.  I think the community needs to get hyped!

 

Any chance you can make this system work with the Sorcerer/Bard and leveling up in a Prestige Class?  There's already a class in the game that could benefit greatly from this - the Pale Master.  PM's are pretty much Wizard-only at the moment.