Neverwinter Nights Forum News
Posted Thursday, December 18, 2003 - 18:15 CET by chevalier
Here are today's Neverwinter Nights forum highlights. Please take into account that these are only single parts of various threads and should not be taken out of context. Bear in mind also that the posts presented here are copied as-is, and that any bad spelling and grammar does not get corrected on our end.
Georg Zoeller, Designer
Craft Item: For starters, add some magical abilities to the crafting components in the toolset ... you will find out that some of them carry over when you make an item out of them.
Further:
We were not allowed to make magical item crafting using skills, as it is against the 3E rules. However, the system itself supports item properties being carried over from crafting components to the final product. Example: Add a property to the item components for a longbow (bowshaft and leather string) either in the toolset or via scripting. Then create a bow ...
Patches: Sure, there are/will be issues, but mosty of the issues in the ("I have trouble when joining a server with patch 1.60) I've seen so far can be attributed to people not updating their server hakpaks correctly.
Singleplayer: The patch fixes several issues in the official campaign, you should apply it in any case
Multiplayer: The patch fixes DM issues and security exploits, you would be stupid not to apply it.
Subradial Feats:
Quote: A question... is it possible to make the subfeats have requirements of their own? In other words, say you take the Leadership feat and it gives you two extra henchmen commands (say, Knitting and Sewing) in a subradial menu. Then upon meeting some other condition (another feat taken, a certain skill level, whatever) it adds the Basketweaving command to the Leadership radial menu. Is that possible at all? It's a long shot but it would help tidy up some of my projects.
The radial will always show all options, but you could of course make the script that is fired by each radial option require a certain feat or whatever, otherwise have it display a floating text "you can't do that".
Further:
Quote: Thanks Georg. Let me get this straight, the subradial feats are nowhere listed in feat.2da, right? From a quick look at that file it appears to be so, some kind of virtual feats...The subfeat ID... I suppose this identify the subradial feat for the GetHasFeat, etc, functions, as do the indexes usually? So this should be different from any actual line number used in feat.2da, by Bio or us? You say IDs under 2999 are reserved for Bio, however the "safe index" line in feat.2da is 2000... So I'm probably completly mistaken.
hehe, you are. Those subradial feats are spells (that point back to a feat - just like the greater wildshapes spells in spells.2da)
Further:
Err, short summary
1) add your feat to feats.2da and a spell to spells.2da
2) put the feats id into spells.FeatID and the spell id into feats.SpellID
3) create up to 5 more spells and put their ids into the subradial fields of the new spell in spells.2da
now comes the tricky part: you need to calculate the value for the featID value of those 5 new spells. To do so you use the calculation method provided in the first post, which requires you to use a SubfeatID value, which you must decide on.
Hope that clears it up
Further:
Subfeat ID's are the numbers you need to put into the FeatID entry of all subradial spells used by the spell connected to your feat.
Further:
Hmm (* smashes head against the wall * )
Hi word (top 16 bit): The FeatID (it is not only OK to use the feat ID there, MUST BE the featID).
Low word (low 16 bit): 16 bit integer of your choise, above 2999
Their use by the engine is to allow the game to associate the spell that is cast from the subradial entry with it's parent feat. You couldn't just put a featID into that row because the featID <-> spellID relation between feat.2da and spells.2da is a 1:1 relation (as opposed to 1:n or n:n).
Further:
Ah, sorry for confusing you,
65536 * subfeat + feat ID is correct, ignore my former statement regarding that.
Let me try to put it into pseudo code, much easier for me
Further:
You added a feat at line 3000 that points to a new spell at line 2000 that has 3 subradial spells, lets say at 2001, 2002 and 2003 in spells.2da
feat[3000].spellid = 2000 // point to the master spell
spell[2000].featId = 3000 // masterspell point back to feat
spell[2000].subradial1 = 2001 // register subradial 1
spell[2000].subradial2 = 2002 // register subradial 2
spell[2000].subradial3 = 2003 // register subradial3 3
spell[2001].featid = (65536 * X ) + 3000 // link to feat
spell[2002].featid = (65536 * Y ) + 3000 // link to feat
spell[2003].featid = (65536 * Z ) + 3000 // link to feat
where X,Y,Z are numbers of your chose above 2999 which may not be reused in the entire scope of spells.2a. They are used to generate a unique entry for the featId field and still point back to the original feat, so the engine doesn't have to resolve the featid by looking it up on the master spell.
Further:
Exactly, don't do it, the programmers said not to do it. Also the engine has reserved "subfeat id's" below 2999, so you would be asking for dire trouble if you would select any number below 2999