GetCreatureTalentBest(int, int, object)
Determines the best talent of a creature from a group of talents.
- The maximum Challenge Rating of the talent.
- The creature that has the talent. (Default: OBJECT_SELF)
Returns the best talent (i.e. closest to nCRMax without going over) of oCreature, within nCategory.
It is possible for nCreature not to have any talent within the specified nCategory. In this case this function will return an invalid talent, akin to OBJECT_INVALID, but you must use the GetIsTalentValid() to test this.
If CR = -1 function works like GetCreatureTalentRandom, CR = 0 returns potions, scrolls and other unequippable items, spell has CR equal to (InnateLevel*2)-1, feats probably 0 as well.
If nCategory = 0, returns anything without category, known feats (but not with 0 uses) and skills.
The talent engine checks most talent prerequisities: class level and base ability score for spells, use limitation itemproperty for items, and will not return talents that creature is not able to use. This validity control doesn't work well with polymorphed creatures though. Only item (excluding potion) talents are disallowed to use in polymorph, everything else is allowed.
Specifying nCategory 1 actually returns talents of category 11 and vice versa. Confirmation needed.
Returns invalid talent if the creature is immobilized (toolset speed setting, entangle effect or cutscene immobility).
author: Tom Cassiotis