_Guile wrote...
I don't know why people are still using Shayan's Subs with nwnx_funcs out there, truly makes no sense to me.. '>
I was able to write up & code 72 subs in like 2 days, no problem..
I run a Shayan's Subrace Engine PW Server - updated to use nwnx_funcs
I agree - Letoscript is no longer necessary, now that funcs exists.
But the Subrace engine itself is highly intuitive, and allows for alot of expandability.
Im in the process of adding additional features.
Such as
Subrace Heartbeats (specific subraces have different heartbeats that do different things)
- Imagine being able to create diseases that infect specific subraces. Code could go in here.
Subrace Death Events
- Some subraces should die in specific ways. Fire Elemental based subraces - burst into flames and explode.
- Vampires in my PW are able to respawn in a Spectral Realm, which is a mirror duplicate of the area where they died - they need to kill x amount of spectral demons to return to the real world.
Subrace on Examine Events
- Using nwnx_cool - Certain Subraces can do specific things on examining objects.
Eg - Increased Identify chance etc.
Making these systems are actually very easy, and is done basically by storing the name of the specific script for that specific subrace event as a local int on the module, and then call it on the appropriate event.
eg-
SetLocalString("GetModule(),"SUB_E_REST_"+IntToString(34),"vampire_rest");
34 being the subrace id for Vampire
Then in the rest script, we get the Subrace ID for the rester, and get the script from the LocalString on the module, if it exists, and Execute that script on the player.
Voila - we have just appended a new Subrace specific event, to the modules generic Rest Event.
If you are using nwnx_resman, you can then sign into your pw, test the script, and modify it, without needing to reload the module. (as long as you upload it to the module via the externalsources folder)
One criticism about Shayans Subrace engine, is that it uses alot of hex code - which actually limits the size of the integers it is capable of using.
Eg - I was trying to apply CEP2.3 Wings to a subrace, but because the int value for 3123 etc, didnt exist within the context of 00-FF, it meant that it wasnt do-able in native Shayans.
I had to refactor that bit of code, to use a mySQL Database - which technically wasnt requred, but did solve the problem.