GetStringByStrRef(int, int)

Determines translated string by string reference.

string GetStringByStrRef(
    int nStrRef,
    int nGender = GENDER_MALE
);

Parameters

nStrRef

Target string reference.

nGender

Gender of the string for some languages (Default: GENDER_MALE)


Description

Returns a translated string from the talk table using the string reference indicated by nStrRef.



Remarks

The talk table is a list of strings local to the user's language, so the obtained string will be in, for instance, German on a German installation of Neverwinter Nights.

Since Hordes of the Underdark, it's become possible to easily make your own tlk file and include with your module. Note that you must add 16777216 to the index in your file, so if you want entry 1 in your custom tlk file, you'll need use 16777217 for the nStrRef in this function.

More detailed information on talktables can be found here:
http://ccg.dladventures.com/index.php/TalkTables

With patch 1.31, a gender option has been added to the function, with a default value of GENDER_MALE. This is useful as some languages will have different strings depending on the gender of the speaker. It is unknown if providing a GENDER_FEMALE value for a language which doesn't support that will provide the same result as with GENDER_MALE, or if the function errors.

Previous versions of the Lexicon listed that a list of constants could be used for nStrRef. This is incorrect, though you can of course use constants instead of the actual integer values.


Version

1.62

Example

//Function to get the name of a spell
string GetSpellName(int nSpell)
{
//Look up the StrRef as a string in spells.2da
string sStrRef=Get2DAString("spells", "Name", nSpell);

//Convert to an integer
int nStrRef=StringToInt(sStrRef);

//Look up the name in the dialog.tlk file
string sName=GetStringByStrRef(nStrRef);

//return the spell's name
return sName;
}

//Example of using the function above
void main()
{
//The spell that triggered this OnSpellCastAt event
int nSpell=GetLastSpell();
string sName=GetSpellName(nSpell);

//I'm so funny
SpeakString("Don't you dare cast "+sName+" at me!!!");
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), GetLastSpellCaster());
}

See Also

categories: String Functions
constants: GENDER_* Constants


 author: Daniel Beckman, editor: Lilac Soul, additional contributor(s): NWVault via Crag Hack, Lilac Soul