This is a hak that will route all spells (nw_s0_**** and x0_s0_*****) spells to a script called 'spell_hak'. The script spell_hak will then call the appropriate script from a new 2da file called dem_router.2da. I think this is a new concept. It uses the Get2DAString and a user made 2da file.
It allows great flexibility over the entire spell system. Now just change 1 script to change all spell behavior. Before this, it took changing over 300 scripts. I included an example of just how easy it now is to restrict magic use in a particular area.
Hopefully this 'method' will have uses outside of the spell system as well. 48 kb download. Includes 1 script and an editted spells.2da file and a new dem_router.2da file. The only change to the spells.2da file are to the script called column and to the innate spell level columns for some of the spells that are called off of a sub-radial menu.
Posted by Nazrohn at 2004-02-20 10:35:58 Voted 10.00 on 02/20/04
Overall: 10 Usefulness: 10 Value for Size 10 Ease of Use 10 Quality Control 10
Posted by Demetrious ( ..xxx.xxx ) at 2004-01-02 17:00:00
For HotU they got smart :) and included their own version of this into the main engine so it is not needed.
In HotU - x2_umd something or other is a good hook to use. Search under my name and find the script umd fix and it has the full name if you can't find it.
Posted by emegem ( ..xxx.xxx ) at 2003-12-30 15:06:00
Do you have any plans to update this for the HOTU spells?
Does this work under HOTU?
Posted by Ana ( ..xxx.xxx ) at 2003-11-23 12:49:00
Hi, again!
Thanks for the info.
Just to keep things clear: I upgraded my package to SoU beginning of August... I still don't get which "other system" you refer to?
Greets,
Ana
Posted by Demetrious ( ..xxx.xxx ) at 2003-11-16 16:42:00
I have not seen any performance issues. I use it in the PHB familiar system and the UMD system here on the vault. I have had 11 players on a cable modem and not seen any noticable change with those systems. The UMD might have up to 3 or 4 2da pulls depending upon how you multiclass your char and what spell you are casting and still I haven't seen anything I notice. PW might be different. If you notice a performance change, look at OldManWhistler's script that will load the entire spell.2da onto an object on module load and then you can use his functions to pull local variables rather than refering to the 2da file.
The spell file is completely unaltered except for routing spells to the appropriate script in this package.
I am not sure how BW will implement their system. I would think the structure of the spell.2da file will stay the same but just like this does - route the "spells" (ie castable spells) to a routing script. At least that is my hope. If I have to code in all the exceptions for special abilities into the UMD code, it will take longer than 3 min to update to HoTU compliant. :)
And yes that other system is nice if you don't want to use SoU spells and not have it upgradeable or don't want to do fancy stuff like you mention with custom base 2da's altogether. But this had to be a new idea because the main function was a new function (Get2da) :) so I knew I wasn't too far off.
Posted by Ana ( ..xxx.xxx ) at 2003-11-16 04:13:00
Uhhh, sorry!
I really should read all the posts before writing stuff.
One question: Did you experience any difficulties with the custom 2da for spell reference?
I meddled a bit after the custom 2da thingy was available and got bit slower results, but that might be due to other factors, as well.
Custom 2das combined with this kind of system are a real hammer, as you can even refer to several different ones with completely different spells in them, plus all the other parameters it may contain.
As far as I got it, Bioware will limit the whole thing to spells castable by players, so I don't know if this alternative will become completely obsolete.
I think it won't.
Neat work shall rule!
Have fun,
Ana
Posted by Demetrious ( ..xxx.xxx ) at 2003-11-03 15:20:00
Just to be clear - I think they had the system for HoTU in place behind the scenes so to speak when I released this hak version. Simultaneous development - but still not bad :)
Posted by Alec Usticke ( ..xxx.xxx ) at 2003-11-03 13:32:00
If they use your idea, Demetrious, hopefully you get a mention in the script comments at least. :)
Posted by Alec Usticke ( ..xxx.xxx ) at 2003-11-02 10:34:00
Bioware has stated that HotU will include a built-in spell routing system.
Posted by KzimiR666 ( ..xxx.xxx ) at 2003-11-02 07:44:00
GREAT GREAT GREAT !
I'm very happy to find your very good JOB ! It's exactly what I need !
Is it 100% compatible with SoU ? When HotU will be here, will you do another version of your HAK ?
Posted by Demetrious ( ..xxx.xxx ) at 2003-10-18 07:57:00
Reply for the Splief post:
I think he thinks this system and his sytem compete. They do not. I think this is why he felt like I was inappropriate in a post on his topic.
This is NOT a scripted spell system, but rather a way for builders to design changes to the default system in a very clean efficient fashion. This has basically NO scripting. His is a spell altering scripting package. They serve two completely different purposes.
Feel free to integrate the two - they should complement one another rather than compete. If you integrate the two it would allow you to exclude overwriting the scripts.
Posted by Demetrious ( ..xxx.xxx ) at 2003-10-16 13:41:00
I would think yes but not sure what you want to do.
It is very easy to see if you have things in inventory or on your possession - look at the spell ID and determine a pass or fail.
You can NOT stop the player from learning the spell using this system, but requirements to cast the spell are very easy.
The readme states it pretty clearly - this will allow ONE script to be fired each time any spell is cast. The flow will goto the "spell_hak" script first and then the flow is routed off to the appropriate spell.
Email me for more specific examples if you have specific questions.
Posted by MokahTGS ( ..xxx.xxx ) at 2003-10-16 10:26:00
I was wondering if this system could be used to create the Ultima magic system using reagents for casting spells and some sort of mana system (perhaps using mana crystals). I'm a little foggy on how this all works.
I'm working on a new project for the Ultima mythos and wanted to see if the magical system could be used.
Posted by Demetrious ( ..xxx.xxx ) at 2003-10-13 07:52:00
One last thought: The UMD system whistler talks about is the only "accurate" (pulls the right DC for all classes) one that I know of. It is offered as a standalone release or as a component of the PHB familiar/UMD/Spellcraft/Share Spell package.
Posted by Meraxes ( ..xxx.xxx ) at 2003-10-11 20:28:00
I'm somewhat undecided on whether or not to use this system.
My world that I'm tinkering with was built upon the HCR foundation, which used it's own wild magic/null magic system.
Of course it used the old "attach script to every damn spell" since that seemed the best route at the time.
After looking over this, I COULD modify my world to use this system instead, however I have to ask myself 'why'?
Obviously when HoU comes out, both systems will need an update.. however it appears as this system might make the transition a bit easier.
Anyone have any OTHER uses they've found for a system such as this besides null/wild magic? It seems like a great idea, and had I seen it before now, I'd probably have used this instead of HCR's method.
Hmm now that I think about it, I wouldn't have to go back and remodify the existing spells to remove HCR's modifications... I could just turn off thier system and let yours take over.. but the big question I have is... why? Is one inherently better than the other once implemented?
Posted by whistler ( ..xxx.xxx ) at 2003-10-07 13:50:00
Still works for 1.32 because spells.2DA wasn't modified in that patch.
Posted by whistler ( ..xxx.xxx ) at 2003-08-25 09:14:00
Yup, that's what the router is for. It makes any system that affects every spell in NWN a lot easier to create and maintain.
There's more than 400 spells in NWN. Going through and modifying every spell script, and then having to update those spell scripts when a new patch is released just isn't a viable option.
Posted by whistler ( ..xxx.xxx ) at 2003-08-22 21:30:00
Its updated to 1.31 compatible.
Posted by Demetrious ( ..xxx.xxx ) at 2003-07-18 08:18:00
Jasperre mentions below that only the server needs the information. As a hak this is incorrect. Haks are needed by players and the server. You could extract the .2da files and place them in your override directory. I did NOT publish this way for the following reason: IF you do this and you try to play ANY module that does not have the spell routing script "spell_hak" - no spells will function. If you are a builder and only play modules using this type of system that may be feasible option but otherwise I would not recommend that approach.
This falls back to the comment in the readme - Never remove the script "spell_hak" if you have attached the hak to your module.
Posted by SiliconScout ( ..xxx.xxx ) at 2003-07-16 08:37:00
What kind of error did you make in your UMD fix?
And does that mean you will be uploading an update in the near future?
Posted by Demetrious ( ..xxx.xxx ) at 2003-07-15 06:55:00
Glad to here you got it going Allan.
Just a note: This system will affect ALL spells. This is the intent. It DOES affect monster spell abilities if you do NOT exclude them in your code.
To just have it affect players add something like a GetIsPC check or a GetIsDM(GetMaster(oPC)) (DM controlled NPCs) check to your script. You would want monsters to ALWAYS run the ExecuteScript line.
Scripting up to the end user. Just a note of an error I made in my UMD fix.
I will be uploading a Override version in the scripts sections for those who just want the change on the server.
Posted by Allan ( ..xxx.xxx ) at 2003-07-14 16:32:00
Nevermind, I fixed it.
Posted by Allan ( ..xxx.xxx ) at 2003-07-09 20:29:00
I'm having a problem with this hak. It seemed to be working but when I tried casting a spell at a monster, it had no effect. All the animations play, but no damage is dealt. It doesn't even say 0 damage.
Weirdly enough spells still seem to damage placeables just fine. Just not monsters. I have to resort to pulling out the dagger and killing them the old fashioned way.
Can anyone help me?
Posted by Vilance ( ..xxx.xxx ) at 2003-07-08 09:10:00
would this help people make a spell-using prestige class?
V
Posted by Demetrious ( ..xxx.xxx ) at 2003-07-07 12:28:00
Performance wise - Myg MAY be faster - I have not tested. I have tested the UMD system which has a max of 5 Get2DAString functions per spell firing and it runs great on my system, but it is brand new. BW has stated the function is not super fast and warned against a loop. This code uses 1 2da pull. PW servers might be wise to test before a complete overhaul. Myg's is NOT updated to SoU right now. This is my best guess. If you test - please post.
Posted by Demetrious ( ..xxx.xxx ) at 2003-07-07 12:24:00
On vacation so can't test but, as a hak you must have this installed on the client and on the server. You can extract the 2da files and place them in the override directory and I believe that will allow you JUST to have the file on the server. As uploaded, this is a HAK - I agree that it is for scriptors but I wanted everyone to understand that it is currently uploaded as a hak (meaning both server and client must have it). In the script section many would just assume server.
This is really an in between piece - I went with the Hak as this is the most supported BW route rather than an override route.
You CAN still customize individual scripts - just don't change the name - that could will simply run after this inbetween script code is run. It IS currently SoU compatible. All the x0_s0_**** spells are in this hak. (x0_s1, x0_s2 etc - more feats or individual class stuff is not included and will NOT run through the main script.)
Posted by Messy ( ..xxx.xxx ) at 2003-07-07 10:03:00
Anyone tried measuring performance on any of these two ways of spell controlling?
Posted by Jasperre ( ..xxx.xxx ) at 2003-07-07 08:25:00
Ask Maximus, and get this transfered.
Great idea, although some things must be done on a spell-by-spell basis, some are easily done this way.
Scripting thing though - only the server needs this! Great stuff! :-)
Jasperre
Posted by Howdie ( ..xxx.xxx ) at 2003-07-07 03:04:00
OOpps, wrong file, was reading the other system that uses same technique....
can u make this so that the server is the only thing that need the new 2da file???
trying to avoid the hak from NWN for my players
Posted by howdie ( ..xxx.xxx ) at 2003-07-06 17:56:00
hey this is NOT a hak, its more of a scripting/builder content...u need to post it in the scripts section so ppl would know about it...when is the SOU compat version coming up??:D