Recent changes Random page
GAMING
Gaming
 
WoWWiki
Halopedia
FFXIclopedia
Age of Conan
Warhammer Online
Grand Theft Wiki
See more...

Random NPC name generator

From NWNWiki

Jump to: navigation, search
 

The random NPC name generator produces a random name for an NPC, customized to the NPC's race and gender. To use this in conjunction with the default OnSpawn event handler, the following script should be named "x3_name_gen". Each NPC whose name should be generated with this script needs to have a local variable set on them in the Toolset. The local variable's name must be "X2_NAME_RANDOM", its type must be "integer", and its value must be 1.

[edit] The script

 
//::///////////////////////////////////////////////
//:: Name Random Name OnSpawn Generator
//:: FileName x3_name_gen
//:://////////////////////////////////////////////
/*
    Random name generator, with special support
    for the seven playable races and animals.
    Does not work on PC's.

    To use: Name this script x3_name_gen and set
    a local integer variable called X2_NAME_RANDOM
    on those NPC's that should have random names.
*/
//:://////////////////////////////////////////////
//:: Created By: SpookyPl
//:: Created On: 21.09.2007, 12:27
//:: Revised By: The Krit
//:: Revised On: 21.09.2007
//:://////////////////////////////////////////////

void main()
{
    string sName = "";

    // Try to customize the name based on race.
    switch ( GetRacialType(OBJECT_SELF) )
    {
        case RACIAL_TYPE_DWARF:
                // Customize the first name based on gender.
                if ( GetGender(OBJECT_SELF) == GENDER_FEMALE )
                    sName = RandomName(NAME_FIRST_DWARF_FEMALE);
                else
                    sName = RandomName(NAME_FIRST_DWARF_MALE);
                // Add a last name.
                sName += " " + RandomName(NAME_LAST_DWARF);
                break;

        case RACIAL_TYPE_ELF:
                // Customize the first name based on gender.
                if ( GetGender(OBJECT_SELF) == GENDER_FEMALE )
                    sName = RandomName(NAME_FIRST_ELF_FEMALE);
                else
                    sName = RandomName(NAME_FIRST_ELF_MALE);
                // Add a last name.
                sName += " " + RandomName(NAME_LAST_ELF);
                break;

        case RACIAL_TYPE_GNOME:
                // Customize the first name based on gender.
                if ( GetGender(OBJECT_SELF) == GENDER_FEMALE )
                    sName = RandomName(NAME_FIRST_GNOME_FEMALE);
                else
                    sName = RandomName(NAME_FIRST_GNOME_MALE);
                // Add a last name.
                sName += " " + RandomName(NAME_LAST_GNOME);
                break;

        case RACIAL_TYPE_HALFELF:
                // Customize the first name based on gender.
                if ( GetGender(OBJECT_SELF) == GENDER_FEMALE )
                    sName = RandomName(NAME_FIRST_HALFELF_FEMALE);
                else
                    sName = RandomName(NAME_FIRST_HALFELF_MALE);
                // Add a last name.
                sName += " " + RandomName(NAME_LAST_HALFELF);
                break;

        case RACIAL_TYPE_HALFLING:
                // Customize the first name based on gender.
                if ( GetGender(OBJECT_SELF) == GENDER_FEMALE )
                    sName = RandomName(NAME_FIRST_HALFLING_FEMALE);
                else
                    sName = RandomName(NAME_FIRST_HALFLING_MALE);
                // Add a last name.
                sName += " " + RandomName(NAME_LAST_HALFLING);
                break;

        case RACIAL_TYPE_HALFORC:
                // Customize the first name based on gender.
                if ( GetGender(OBJECT_SELF) == GENDER_FEMALE )
                    sName = RandomName(NAME_FIRST_HALFORC_FEMALE);
                else
                    sName = RandomName(NAME_FIRST_HALFORC_MALE);
                // Add a last name.
                sName += " " + RandomName(NAME_LAST_HALFORC);
                break;

        case RACIAL_TYPE_HUMAN:
                // Customize the first name based on gender.
                if ( GetGender(OBJECT_SELF) == GENDER_FEMALE )
                    sName = RandomName(NAME_FIRST_HUMAN_FEMALE);
                else
                    sName = RandomName(NAME_FIRST_HUMAN_MALE);
                // Add a last name.
                sName += " " + RandomName(NAME_LAST_HUMAN);
                break;

        case RACIAL_TYPE_ANIMAL:
        case RACIAL_TYPE_BEAST:
        case RACIAL_TYPE_MAGICAL_BEAST:
        case RACIAL_TYPE_VERMIN:
                // Use an "animal" random name.
                sName = RandomName(NAME_ANIMAL);
                break;

        default:// This NPC has a race without specialized naming support.
                // Go with a generic name.
                sName = RandomName(NAME_FIRST_GENERIC_MALE);
    }

    // Record the name for the OnSpawn event handler to find.
    SetLocalString(OBJECT_SELF, "X3_S_RANDOM_NAME", sName);
}
Rate this article:
Share this article: