Author Topic: Community Patch discussion and development thread  (Read 20318 times)

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #810 on: February 26, 2016, 10:06:49 am »


               


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


               
               

               
            

Legacy_WodahsEht

  • Newbie
  • *
  • Posts: 19
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #811 on: February 26, 2016, 12:34:44 pm »


               


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.


               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #812 on: February 26, 2016, 01:14:03 pm »


               


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.



               
               

               
            

Legacy_WodahsEht

  • Newbie
  • *
  • Posts: 19
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #813 on: February 26, 2016, 04:56:53 pm »


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

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #814 on: February 27, 2016, 01:30:02 pm »


               

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.



               
               

               
            

Legacy_thirdmouse

  • Newbie
  • *
  • Posts: 14
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #815 on: February 27, 2016, 10:48:21 pm »


               

*runs around cave excitedly*



               
               

               
            

Legacy_WodahsEht

  • Newbie
  • *
  • Posts: 19
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #816 on: February 28, 2016, 03:52:11 pm »


               

Awesome!



               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #817 on: February 28, 2016, 09:15:05 pm »


               

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.



               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #818 on: March 03, 2016, 06:05:14 am »


               

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.



               
               

               
            

Legacy_WodahsEht

  • Newbie
  • *
  • Posts: 19
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #819 on: March 03, 2016, 02:01:32 pm »


               

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.



               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #820 on: March 05, 2016, 05:27:37 am »


               


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.



               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #821 on: March 07, 2016, 09:36:13 am »


               

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.



               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #822 on: March 08, 2016, 06:23:18 am »


               

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...



               
               

               
            

Legacy_Gruftlord

  • Sr. Member
  • ****
  • Posts: 490
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #823 on: March 08, 2016, 06:33:01 am »


               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.
               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community Patch discussion and development thread
« Reply #824 on: March 09, 2016, 07:06:29 am »


               


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.