Aller au contenu

Photo

Community Patch discussion and development thread


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

#801
Shadooow

Shadooow
  • Members
  • 4 468 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.

im working on the spontaneous casters since saturday and i managed to make a progress but spontaneous casters turned to be much more problematic than memorized

 

atm i am able to get the lvlup spell selection and it shows up in spellbook but spells from custom spontaneous class has 0 spell uses and it will take me a while to fix this

 

the prestige class levelling + sorc/bard is completely different issue, Im not even sure whether the spell selection should be there per rules- this is not priorty for me atm and it can be workarounded via nwnx_funcs - I have a script system that allows to add new spells via store inventory - i will make an image, its not perfect solution but it worked for me in past


  • WhiteTiger aime ceci

#802
WodahsEht

WodahsEht
  • Members
  • 15 messages

I can definitely see why it's not a priority, but since you're already in there, figuring out the inner workings of how NWN does its thing, it should be doable.

 

As for the "spells known" question... I think it was always pretty vague.  Sometimes they explicitly said it does increase spells known, other times it's left out.  I'm not aware of any classes that use the spells per day mechanic that explicitly state that the character does NOT gain spells known.  Community consensus seems to be that it does include spells known.  This is how NWN2 implemented it.

 

All that being said, a Sorcerer (or Bard) taking a caster-advancing PrC is really handicapped without the "spells known" rule.



#803
Shadooow

Shadooow
  • Members
  • 4 468 messages

spontaneous spellcasting is almost fully done

 

screenshot

 

still have some issues with saving/loading (no spell uses after loading a saved game) that I need to solve before I will release a working dll.

 

 

I can definitely see why it's not a priority, but since you're already in there, figuring out the inner workings of how NWN does its thing, it should be doable.

 

Unfortunately this looks extremely complicated. I dont think its even possible to show up spell selection window when leveling Pale Master (or custom class enhancing base spellcasting). Probably the best I can do is to calculate PM into max number of the spells known which should theoretically allow to fill those extra spells known at next sorc/bard level.

 


  • thirdmouse, henesua et WhiteTiger aiment ceci

#804
Shadooow

Shadooow
  • Members
  • 4 468 messages

Ok I have a compiled plugin for testing. Atm only client version. There will be issues thats guaranteed and before they get all fixed its pointless to maintain two versions client and server.

 

Plugin download - for those who didn't follow it, its available as a nwncx_patch plugin to be used with NWNCX.

Test 2DAs I used in work - grab if you need help to understand how to configure it or if you are lazy to make your own 2das.

Rough readme - should explain everything.

 

Base features:

  • cleric-type of casting (automatically knows all spells of given level) - done

  • wizard-type of casting (knows only spells from lvl up) - done

  • sorcerer-type of casting (spontaneous) - done

  • fully working level up/character creation for custom spellcasters

  • fully controlled by 2DA

Additional features:

  • removed hardcoded restriction on paladin and ranger spellcasting - both classes can now cast from lvl 1 if builder changes cls_spgn_rang/pal.2da appropriately

  • hardcoded intelligence, charisma and wisdom for spellcasting purposes changed to class primary ability

  • custom spellcasters can learn spells from scrolls (note multiclass of two or three such classes is not supported atm - need to figure how to select which class to use)

  • complete rewrite of the familiar and animal companion selection - will now dynamically appear at the level the class gets the summon familiar/animal companion feat and regardless of casting type. This works with vanilla classes and custom classes, if you change ranger to obtain animal at lvl 1, the selection will automatically appear, if you change summon familiar for summon animal companion for sorcerer, he get animal companion selection instead of familiar.

  • softcoded familiar and animal companion summoning - already existing CPP feature - this is needed to calculate level or rather resref of the summoned creature as normally the level is calculated from sorc+wiz and druid+ranger levels

  • fixed vanilla bug in spellbook where spontaneous caster at the 3rd class position had no spell icon for cantrips if such class had only cantrips (which was true for bard)

If you encounter some issue, like incorrectly calculated spell uses, spells known, or something not working at all send me a savegame before that problem occurs with instructions what to do to reproduce it. Also I might need your classes.2da and spells_level.2da files.


  • WhiteTiger aime ceci

#805
Shadooow

Shadooow
  • Members
  • 4 468 messages

Im waiting for any betatest reports before I will continue with custom spellcasting in the meantime I enabled customization of the unarmed damage via 2da.

 

This was actually quite tricky to do, because I found out that there is hidden interaction with Shou Disciple and Monk and their unarmed damage. Turns out that medium sized Monk11+/Shou5 has due to the bug/overlook in code 2d20!! damage.

 

The way it should work is that it takes better of shou unarmed damage or monk unarmed damage, but monk unarmed damage calculation stacks shou levels. Very confusing, but I managed to make it work and fix the bug.

 

The 2da customization however won't allow to stack with monk like Shou, but the code will automatically take best result. So if you had a build:

Monk 11 (1d20 as it stacks with shou)

Shou 5 (2d6)

Brawler 20 (2d12)

it will take the 2d12

 

this also enables to input different values for tiny, large and huge creature size


  • WhiteTiger aime ceci

#806
WodahsEht

WodahsEht
  • Members
  • 15 messages

Are you talking about the Brawler from the PRC?  (I actually designed and implemented that class... many moons ago.)  It's designed to be an non-mystical, martial alternative to the monk, and it does not stack.



#807
Shadooow

Shadooow
  • Members
  • 4 468 messages

Are you talking about the Brawler from the PRC?  (I actually designed and implemented that class... many moons ago.)  It's designed to be an non-mystical, martial alternative to the monk, and it does not stack.

thats just example, it can be used also to modify base unarmed damage for anyone specifying 2da for every class

 

I know the unarmed dmg can be workarounded via the creature weapon slots, but I needed to fix the bug with Shou anyway and it will be easier to use since creature weapons have many issues as you surely know.

 

But yes, ultimately I want my plugin to enable virtually anything from PRC for example. Im already working on a custom Smite damage calculation whch will automatically calculate any custom prestige class with smite together wth pal/cot or bg


  • WhiteTiger aime ceci

#808
WodahsEht

WodahsEht
  • Members
  • 15 messages

Everything I tested seems okay.  One thing you may not be able to work around is that I don't think you can select a domain and an animal companion at the same time.  I took your custom druid class and added domains.  I could select domains at Level 1 but I couldn't select an animal companion until Level 2.



#809
Shadooow

Shadooow
  • Members
  • 4 468 messages

Everything I tested seems okay.  One thing you may not be able to work around is that I don't think you can select a domain and an animal companion at the same time.  I took your custom druid class and added domains.  I could select domains at Level 1 but I couldn't select an animal companion until Level 2.

Hmm I see, that won't be in my abilities, so I will add it into the list of missing features.

There will be similar problem with spellschools - selecting spell schools will automaticaly enable spell selection even if its class that doesnt learn spell.

 

Stll both domains and spell school is hardcoded to cleric and wizard only, I only allowed to select it atm.


  • WhiteTiger aime ceci

#810
WodahsEht

WodahsEht
  • Members
  • 15 messages

Here's another request to mull over: softcoded metamagic.



#811
Shadooow

Shadooow
  • Members
  • 4 468 messages

Here's another request to mull over: softcoded metamagic.

try to give the metamagic as bonus feat, i know that picking it at lvlup fails because engine thinks you are missing the spell lvl requirement, but it could work as bonus feat



#812
WodahsEht

WodahsEht
  • Members
  • 15 messages

try to give the metamagic as bonus feat, i know that picking it at lvlup fails because engine thinks you are missing the spell lvl requirement, but it could work as bonus feat

What I meant is the ability to add entirely new metamagic feats.



#813
Shadooow

Shadooow
  • Members
  • 4 468 messages

What I meant is the ability to add entirely new metamagic feats.

Active new metamagic feat is almost impossible to do unfortunately. At least in the same way how default metamagics are done.

 

The only way is psionic-style metamagic which is not very useable for memorized casters.

 

Automatic (passive) metamagic are doable, many of them can be coded without NWNX - I know PRC has some of these metamagics, just don't know how are they activated. Anyway, the spell engine in last 1.72 beta allows to dynamically change almost every spell value in spellhook. I was able to code full Archmage PRC with this in 30minutes. It can be also used to new metamagic feats - if you figure out some way of activation or you make them passive.

 

 

BTW, got the new smite code that automatically calculates levels of any custom class that has smite in granted feat list. This will be huge help for PrCs like Shining Blade.



#814
WodahsEht

WodahsEht
  • Members
  • 15 messages
I think there are several metamagic workarounds, it's just a shame they're so ingrained. At a scripting level, metamagic is trivial.

#815
Shadooow

Shadooow
  • Members
  • 4 468 messages

I was able to enable the Prestige class spell progression to sorcerer/bard and any custom spontaneous caster.

 

screenshot

 

The spell selection won't show up when leveling Pale Master though, player needs to take a level in base class to be able to add extra known spells from PM level.


  • thirdmouse, OldTimeRadio, henesua et 2 autres aiment ceci

#816
thirdmouse

thirdmouse
  • Members
  • 144 messages

*runs around cave excitedly*



#817
WodahsEht

WodahsEht
  • Members
  • 15 messages

Awesome!



#818
Shadooow

Shadooow
  • Members
  • 4 468 messages

got another teaser

 

fully working domains for custom (or just other default) classes

 

I am tempted to play HotU campaing or something with Druid with domains Strength+Trickery. So much potential.


  • henesua et WhiteTiger aiment ceci

#819
Shadooow

Shadooow
  • Members
  • 4 468 messages

Past 4 days I was working on the port for server and also bugfinding and code cleaning.

 

I solved disguisting issue with CExoString class as I found out that due to the fact that each nwn core function is deleting inputted CExoString, the secondary c++ automatic destructor will try to delete already deleted CExoString. While this didn't crashed the game, who knows what it can do, so I was for two days finding a workaround for that and I finally found it. If you are nwnx developer and want to know more PM me, this technical stuff is a bit offtopic here.

 

Anyway, since I encountered the need to create a AddKnownSpell function and several others for scroll learning softcode script, I decided to rebuild this project into something more. New functions weren't in plan for my nwnx plugin, however if I need them for softcode scripts, its inevitable. And I can't rely on other peoples' plugins.

 

So, atm I will probably combine nwnx_patch with nwnx_funcs, nwnx_funcs has several issues anyway and those who doesn't need special features such as traps spawning might find new nwnx_patch better for their usage since I am around and I am providing support. Might as well include nwnx_events, especially when I already hooked several functions. This will unfortunately delay the plugin release.



#820
WodahsEht

WodahsEht
  • Members
  • 15 messages

Take your time, it's more important to "get it right."  I knew that nwnx_spells had gone part of the way, but it wasn't NWNCX compatible, and it was incomplete.  This is a major change.

 

I will say that the teaser plugin seemed to work really well from what I tried.  I've been thinking about building upon your work, but I haven't really planned anything specific yet.



#821
Shadooow

Shadooow
  • Members
  • 4 468 messages

I will say that the teaser plugin seemed to work really well from what I tried.  I've been thinking about building upon your work, but I haven't really planned anything specific yet.

I was thinking to use it on my never finished PW just to provide a testing PW environment, however I don't know where I get time to do it hehe.

 

I would really use a spells_level.2da with spells assigned for Assassin and Blackguard prestige classes based on SRD. Also for Antipaladin from PRC, always had him in plan.



#822
Shadooow

Shadooow
  • Members
  • 4 468 messages

Small teaser for custom functions coming with new version of the nwnx and nwncx_patch. So far I added basically only functions I really needed for some softcoding + functions from my personal plugins which weren't available in any others. Also moved few from nwnx_funcs and I am continuing with that atm.



#823
Shadooow

Shadooow
  • Members
  • 4 468 messages

Was thinking how to avoid those few issues with CPP that can happen and I think I have a solution.

 

Probably the only issue with CPP is improved AI. Fixes and improvements in AI often change monsters behavior. Usually its not a problem but theres always a few creatures where the behavior is too dfferent and creature is too difficult.

 

This is problem if the creature is badly designed in first place or when its and environment where players expect creature to do exactly the same sequence of abilities everytime. Such monsters should be toned down by builder but oten builders don't have resources to do that or there are no builders anymore and admins are just happy then can run their PW. Also this can hardly happen in singleplayer obviously.

 

Anyway, the AI fixes and improvements could be by default enabled only for henchmans and familiars, monsters would still run on vanilla AI with only critical fixes (stuck issues only) and the rest of the CPP improvements would have to be enabled by module switch or a 70:ai_default* set of scripts directly on creature.

 

Not 100% sure its a good option to do backwards now when it worked without this for so long, but it would solve the only issue there probably is and builders would lost the excuses against CPP...



#824
Gruftlord

Gruftlord
  • Members
  • 348 messages
I'm not sure i saw any issue reports for the fixed AI. On the other hand, whenever you do add another switch to the scripts, basically offering two modes for double the content but also troubleshoot, i can't help myself but fear that these are the spots where bugs can creep up. I think the fixed AI is fine as is.

Also i'm not sure if it helps the beta period if you never feature lock it.

#825
Shadooow

Shadooow
  • Members
  • 4 468 messages

I'm not sure i saw any issue reports for the fixed AI. On the other hand, whenever you do add another switch to the scripts, basically offering two modes for double the content but also troubleshoot, i can't help myself but fear that these are the spots where bugs can creep up.

Basically yes, however if there is issue in something that you need to turn on, you can just turn it off and avoid it which is a bit better case of the potential CPP issue as it won't be a problem for anyone not using that feature.

 

Anyway, while there were some AI problems like monsters too difficult to handle, I realized that what Im proposing is nearly impossible to do, would require two sets of AI libraries and two sets of scripts. Not very good solution for the benefit it gives.

 

The only AI issues so far were that:

- monsters are using spells they didn't use before, mainly sorcerers, they had those spells all the time but if one of them was dispel or breach it could drastically increase difficulty

- monsters are no longer polymorphing which also made them stronger especially if they have some strong defensive stats on skin which they previously lost in random polymorph - polymorphing must be enabled by variable in CPP to trigger special AI, normal AI cant handle this and it leads into weird behavior

- monsters aren't casting same spells in consecutive fashion - so where monster previously used 5x death howl 2x fear hown 1x beholder dispel, with CPP they casts 1x death, 1x fear, 1x dispel, 1x death, 1x fear, death - while it makes sense such monster can be twice as difficult to handle due to this

- stunning fists are spammed too often as monsters now doesn't take target AC into consideration (basically it has now same usage rate as it had previously for a very low AC target) - that can drastically improve difficulty as well since they werent using it at 10ab/ab difference already

 

 

Also i'm not sure if it helps the beta period if you never feature lock it.

Well I think that for the most I could make it a final version long time ago, if not for nwnx. NWNX is the most risky element here which needs a lot of testing and this testing must occur in both singleplayer and multiplayer as the code is different for client and server. And despite all those good fixes it seems nobody actuall wants to give players sticky combat modes, fix for losing spellslots in polymorph and others. That leaves me two options either remove nwnx plugins from CPP which I do not want as I need to supply scripts and 2das with it too, or add more and cooler features to drag builders attention to it and force them to want it and use it.

 

Either way the final release of 1.72 is scheduled at June (same day when 1.71 was released two years ago), no matter what.