Difference between revisions of "Talent"

From NWN Lexicon
Jump to: navigation, search
m
Line 1: Line 1:
 
{{DISPLAYTITLE:talent}}
 
{{DISPLAYTITLE:talent}}
 
A talent represents a feat, skill, or spell.
 
A talent represents a feat, skill, or spell.
 +
 +
Talents are ''quite'' a thing; they're pretty much an index to an ability/spell/feat on a creature however defining them manually is no better than calling the direct related functions (eg; [[ActionUseFeat]]). In fact they're really buggy when created manually using [[TalentSpell]] or [[TalentFeat]] and don't really work properly that way; there is for instance no way to specify metamagic or what class has the spell, nor if an item is involved (yet all 3 of these can be done by the engine itself using the Best/Random functions).
 +
 +
Bioware only ever used [[GetCreatureTalentBest]] and [[GetCreatureTalentRandom]], both of which are quite slow since they iterate over every spell/ability/item on the creature, so calling them too often in an AI script isn't recommended, and they are limited since you cannot iterate through them only get the best or a completely random one of a certain category. If you wondered why the Bioware AI was a bit daft in spellcasting choice this is the main reason.
 +
 +
Until NWN:EE talents were the only way creatures could use spell-casting items such as potions, scrolls and the like, now you can use [[ActionUseItemOnObject]] and [[ActionUseItemAtLocation]] to completely mimic player actions.
 +
 +
In NWN:EE it is still the only way to properly cast certain spells and abilities, due to bugs with [[GetHasSpell]] and [[ActionCastSpellOnObject]]/[[ActionCastSpellAtLocation]], and the only reliable way to use metamagic such as METAMAGIC_SILENCE prepared spells when under the effect of silence.
 +
  
 
====Example====
 
====Example====
  
 
<nwscript>
 
<nwscript>
talent tHvyArmor = TalentFeat(FEAT_ARMOR_PROFICIENCY_HEAVY);
+
talent tKnockdown = TalentFeat(FEAT_KNOCKDOWN);
talent tTurnUndead = TalentFeat(SPELLABILITY_TURN_UNDEAD);
+
talent tMagicMissile = TalentSpell(SPELL_MAGIC_MISSILE);
 
</nwscript>
 
</nwscript>
 +
  
 
====See Also====
 
====See Also====
 +
 +
 +
{| class="seealso"
 +
| width="1px" align="right" valign="top" | <font color="gray">functions: </font>
 +
|
 +
[[:Category:Talents_Skills_Feats_Functions|Talents Skills Feats Functions]]
 +
|}
  
 
----
 
----
 
[[Category:Data_Types]]
 
[[Category:Data_Types]]

Revision as of 01:11, 17 September 2021

A talent represents a feat, skill, or spell.

Talents are quite a thing; they're pretty much an index to an ability/spell/feat on a creature however defining them manually is no better than calling the direct related functions (eg; ActionUseFeat). In fact they're really buggy when created manually using TalentSpell or TalentFeat and don't really work properly that way; there is for instance no way to specify metamagic or what class has the spell, nor if an item is involved (yet all 3 of these can be done by the engine itself using the Best/Random functions).

Bioware only ever used GetCreatureTalentBest and GetCreatureTalentRandom, both of which are quite slow since they iterate over every spell/ability/item on the creature, so calling them too often in an AI script isn't recommended, and they are limited since you cannot iterate through them only get the best or a completely random one of a certain category. If you wondered why the Bioware AI was a bit daft in spellcasting choice this is the main reason.

Until NWN:EE talents were the only way creatures could use spell-casting items such as potions, scrolls and the like, now you can use ActionUseItemOnObject and ActionUseItemAtLocation to completely mimic player actions.

In NWN:EE it is still the only way to properly cast certain spells and abilities, due to bugs with GetHasSpell and ActionCastSpellOnObject/ActionCastSpellAtLocation, and the only reliable way to use metamagic such as METAMAGIC_SILENCE prepared spells when under the effect of silence.


Example

talent tKnockdown = TalentFeat(FEAT_KNOCKDOWN);
talent tMagicMissile = TalentSpell(SPELL_MAGIC_MISSILE);


See Also

functions:

Talents Skills Feats Functions