WoR_PRC8/_module/nss/sha_leto_sraces2.nss
Jaysyn904 b5e28e52f4 Initial commit
Initial commit [1.18]
2025-04-03 11:49:34 -04:00

261 lines
12 KiB
Plaintext

//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:::::::::::::::::::::::: Shayan's Subrace Engine :::::::::::::::::::::::::::::
//:::::::::::::::::::::: File Name: sha_leto_sraces2 :::::::::::::::::::::::::::
//:::::::::::::::::::::::::: OnModuleLoad script :::::::::::::::::::::::::::::::
// Written By: Shayan
//
// Description: This script holds the pre-made Elf, Half-Elf and Gnome sub races
// listed here: Elf-Wood, Elf-Drow, Elf-Drider, Elf-Nymph, Half-Elf Air-Touched,
// Half-Elf Half-Drow, Half-Elf Half-High, Half-Elf Shadow, Half-Elf Satyr
// Gnome-Forest
//
// If you do not want to use these, simply comment the lines:
// DelayCommand(3.0, ExecuteScript("sha_leto_sraces2", GetModule()));
// in the script: sha_on_modload.
//
////////////////////////////////////////////////////////////////////////////////
#include "sha_subr_methds"
void main()
{
//:::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Elf - Wood ECL 0 :::::
//:::::::::::::::::::::::::::::::::::::::
CreateSubrace(RACIAL_TYPE_ELF, "Elf-Wood");
SetupSubraceAlias("Elf-Wood", "wood elf");
SetupSubraceAlias("Elf-Wood", "wood-elf");
//LETO - Change ability scores: (Str +2, Dex, Con, Int -2, Wis, Cha -2)
struct SubraceBaseStatsModifier ElfWoodStats = CustomBaseStatsModifiers(2, 0, 0, -2, 0, -2, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Elf-Wood", ElfWoodStats, 1);
//LETO - Skills: Animal Empathy +4, Craft Trap +2
ModifySubraceSkill("Elf-Wood", SKILL_ANIMAL_EMPATHY, 4, 1, FALSE);
ModifySubraceSkill("Elf-Wood", SKILL_CRAFT_TRAP, 2, 1, FALSE);
//LETO - Bonus Feats: Alertness
ModifySubraceFeat("Elf-Wood", FEAT_ALERTNESS, 1);
//Favored Class: Ranger
AddSubraceFavoredClass("Elf-Wood", CLASS_TYPE_RANGER, CLASS_TYPE_RANGER);
//:::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Elf - Drow ECL +2 ::::
//:::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: Will +2
//Abilities from the unique item: Cast Spell Darkness (5) 1/Day, Cast Spell Light () 1/Day
//Light Sensitive
CreateSubrace(RACIAL_TYPE_ELF, "Drow", "sha_pcl_drow", "sha_subrace_drow", TRUE, 0, FALSE, 0, 2);
SetupSubraceAlias("Drow", "dark elf");
//Appearance: White Hair, Black Skin
ModifySubraceAppearanceColors("Drow", 16, 16, 30, 30, 1);
// Give Faerie Fire - Violet
AddSubraceItem("Drow","sha_subrace_ff_v");
//LETO - Change ability scores: (Str, Dex, Con, Int +2, Wis, Cha +2)
struct SubraceBaseStatsModifier DrowStats = CustomBaseStatsModifiers(0, 0, 0, 2, 0, 2, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Drow", DrowStats, 1);
//LETO - Feats: Darkvision
ModifySubraceFeat("Drow", FEAT_DARKVISION, 1);
//LETO - Skills: Move Silently +2, Hide +2
ModifySubraceSkill("Drow", SKILL_MOVE_SILENTLY, 2, 1, FALSE);
ModifySubraceSkill("Drow", SKILL_HIDE, 2, 1, FALSE);
//Favored Class - Male: Wizard, Female: Cleric
AddSubraceFavoredClass("Drow", CLASS_TYPE_WIZARD, CLASS_TYPE_CLERIC);
//Alignment Restriction: Can only be evil
CreateSubraceAlignmentRestriction("Drow", FALSE, FALSE, TRUE);
//Spell Resistance: Base (at Level 1): 10, Max(at Level 40): 50.
CreateSubraceSpellResistance("Drow", 10, 50);
//:::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Elf - Drider ECL +7 ::
//:::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: Will +2
//Abilities from the unique item: Cast Spell Darkness (5) 1/Day, Cast Spell Light () 1/Day
//Poison : Drider Bite
//Light Sensitive
CreateSubrace(RACIAL_TYPE_ELF, "Drider", "sha_pcl_drider", "sha_subrace_drid", TRUE, 0, FALSE, 0, 7);
//LETO - Change ability scores: (Str +4, Dex +4, Con +6, Int +4, Wis +6, Cha +6)
struct SubraceBaseStatsModifier DriderStats = CustomBaseStatsModifiers(4, 4, 6, 4, 6, 6, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Drider", DriderStats, 1);
//LETO - Bonus Feats: Darkvision
ModifySubraceFeat("Drider", FEAT_DARKVISION, 1);
//LETO - Bonus Skills: Hide +4, Silently +4
ModifySubraceSkill("Drider", SKILL_HIDE, 4, 1, FALSE);
ModifySubraceSkill("Drider", SKILL_MOVE_SILENTLY, 4, 1, FALSE);
//Favored Class - Male: Wizard, Female: Cleric
AddSubraceFavoredClass("Drider", CLASS_TYPE_WIZARD, CLASS_TYPE_CLERIC);
//Alignment Restriction: Can only be evil
CreateSubraceAlignmentRestriction("Drider", FALSE, FALSE, TRUE);
//Spell Resistance: Base (at Level 1): 10, Max(at Level 40): 50.
CreateSubraceSpellResistance("Drider", 10, 50);
//Appearance is permanently changed to Driders (male is different from female)
CreateSubraceAppearance("Drider", TIME_BOTH, APPEARANCE_TYPE_DRIDER, APPEARANCE_TYPE_DRIDER_FEMALE);
// Give Faerie Fire - Violet
AddSubraceItem("Drider","sha_subrace_ff_v");
//:::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Elf - Nymph ECL +6 ::::::
//:::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: AC+5, Damage Reduction 10/+1
//Abilities from Unique Item: Cast Displacement 1/Day
CreateSubrace(RACIAL_TYPE_ELF, "Nymph", "sha_pcl_nymph", "sha_subrace_nymp", FALSE, 0 , FALSE, 0, 6);
//LETO - Change ability scores: (Str, Dex +6, Con +2, Int +6, Wis +6, Cha +8)
struct SubraceBaseStatsModifier NymphStats = CustomBaseStatsModifiers(0, 6, 2, 6, 6, 8, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Nymph", NymphStats, 1);
ModifySubraceFaction("Nymph", "FACTION_DRYAD", SUBRACE_FACTION_REPUTATION_FRIENDLY);
//LETO - Bonus Feats: Darkvision
ModifySubraceFeat("Nymph", FEAT_DARKVISION, 1);
//LETO - Bonus Skills: Animal Empath +6
ModifySubraceSkill("Nymph", SKILL_ANIMAL_EMPATHY, 6, 1, FALSE);
//Favored Class: Sorcerer
AddSubraceFavoredClass("Nymph", CLASS_TYPE_SORCERER, CLASS_TYPE_SORCERER);
//Appearance: Nymph - Permanent
CreateSubraceAppearance("Nymph", TIME_BOTH, APPEARANCE_TYPE_NYMPH, APPEARANCE_TYPE_NYMPH);
//Alignment Restriction: Chaotic Good Only
CreateSubraceAlignmentRestriction("Nymph", TRUE, FALSE, TRUE, FALSE, FALSE, TRUE);
// Gender : Female Only
CreateSubraceGenderRestriction("Nymph",FALSE,TRUE);
//:::::::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Half-Elf - Air-Touched ECL 0 ::
//:::::::::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: AC Bonus vs. Alignment Group Lawful +2
// Magical 25% Damage Vulnerability, Cold 10% Immunity Bonus, Electrical 10% Immunity Bonus
CreateSubrace(RACIAL_TYPE_HALFELF, "Air-Touched", "sha_pcl_airtouch");
SetupSubraceAlias("Air-Touched", "air touched");
//Appearance: Hair: lightest gray 16, Skin: light blue 20
ModifySubraceAppearanceColors("Air-Touched",16,16,20,20);
//Alignment Restriction: Can only be evil
CreateSubraceAlignmentRestriction("Air-Touched", FALSE, FALSE, TRUE);
//LETO - Change ability scores: (Str -2, Dex +2, Con, Int +2, Wis -2, Cha)
struct SubraceBaseStatsModifier AirTouchedStats = CustomBaseStatsModifiers(-2, 2, 0, 2, -2, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Air-Touched", AirTouchedStats, 1);
//Favored Class: Shadow Dancer
AddSubraceFavoredClass("Air-Touched", CLASS_TYPE_ROGUE, CLASS_TYPE_ROGUE);
//:::::::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Half-Elf - Half-Drow ECL 0 ::::
//:::::::::::::::::::::::::::::::::::::::::::::
//Abilities from the unique item: Cast Spell Darkness (5) 1/Day, Cast Spell Light (5) 1/Day
CreateSubrace(RACIAL_TYPE_HALFELF, "Half-Drow", "sha_pcl_hlfdrow", "sha_sbr_hlfdrow", TRUE, 0, FALSE, 0, 1);
//LETO - Change ability scores: (Str, Dex, Con, Int +1, Wis, Cha +1)
struct SubraceBaseStatsModifier HalfDrowStats = CustomBaseStatsModifiers(0, 0, 0, 1, 0, 1, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Half-Drow", HalfDrowStats, 1);
//LETO - Bonus Skills: Hide +1, Move Silently +1
ModifySubraceSkill("Half-Drow", SKILL_HIDE, 1, 1, FALSE);
ModifySubraceSkill("Half-Drow", SKILL_MOVE_SILENTLY, 1, 1, FALSE);
//LETO - Bonus Feats: Darkvision
ModifySubraceFeat("Half-Drow", FEAT_DARKVISION, 1);
//Spell Resistance: Base (at Level 1): 10, Max(at Level 40): 50.
CreateSubraceSpellResistance("Half-Drow", 10, 10);
//Appearance: White Hair, Grey Skin
ModifySubraceAppearanceColors("Half-Drow", 16, 16, 43, 43, 1);
// Give Faerie Fire - Violet
AddSubraceItem("Half-Drow","sha_subrace_ff_v");
//:::::::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Half-Elf - Half-High ECL 0 ::::
//:::::::::::::::::::::::::::::::::::::::::::::
CreateSubrace(RACIAL_TYPE_HALFELF, "Half-Elf-High");
SetupSubraceAlias("Half-Elf-High", "Half-High");
SetupSubraceAlias("Half-Elf-High", "Half-High Elf");
SetupSubraceAlias("Half-Elf-High", "High Half-Elf");
//LETO - Change ability scores: (Str -1, Dex, Con, Int +1, Wis, Cha +1)
struct SubraceBaseStatsModifier HalfElfHighStats = CustomBaseStatsModifiers(-1, 0, 0, 1, 0, 1, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Half-Elf-High", HalfElfHighStats, 1);
//LETO - Bonus Skills: Concentration +2, Lore +2, Spellcraft +2
ModifySubraceSkill("Half-Elf-High", SKILL_CONCENTRATION, 2, 1, FALSE);
ModifySubraceSkill("Half-Elf-High", SKILL_LORE, 2, 1, FALSE);
ModifySubraceSkill("Half-Elf-High", SKILL_SPELLCRAFT, 2, 1, FALSE);
//::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Half-Elf - Shadow ECL 0 ::
//::::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: AC Bonus vs. Alignment Group: Good +1
//Positive Energy 25% Damage Vulnerability, Negative Energy 10% Immunity Bonus
CreateSubrace(RACIAL_TYPE_HALFELF, "Shadow", "sha_pcl_shadow", "");
//Alignment Restriction: Can only be evil
CreateSubraceAlignmentRestriction("Shadow", FALSE, FALSE, TRUE);
//LETO - Bonus Feats: Darkvision
ModifySubraceFeat("Shadow", FEAT_DARKVISION, 1);
//LETO - Change ability scores: (Str, Dex, Con, Int +2, Wis, Cha -2)
struct SubraceBaseStatsModifier ShadowStats = CustomBaseStatsModifiers(0, 0, 0, 2, 0, -2, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Shadow", ShadowStats, 1);
//Favored Class: Shadow Dancer
AddSubraceFavoredClass("Shadow", CLASS_TYPE_ROGUE, CLASS_TYPE_ROGUE);
//::::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Half-Elf - Satyr ECL +5 ::
//::::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: AC +4
CreateSubrace(RACIAL_TYPE_HALFELF, "Satyr", "sha_pcl_satyr", "", FALSE, 0, FALSE, 0, 5);
//LETO - Change ability scores: (Str, Dex +2, Con +2, Int +2, Wis +2, Cha +2)
//Make Fast as Satyr Model is Slower
struct SubraceBaseStatsModifier SatyrStats = CustomBaseStatsModifiers(0, 2, 2, 2, 2, 2, MOVEMENT_SPEED_FAST);
CreateBaseStatModifier("Satyr", SatyrStats, 1);
//LETO - Bonus Feats: Darkvision
ModifySubraceFeat("Satyr", FEAT_DARKVISION, 1);
//LETO - Bonus Skills: Hide +4, move silent +4, listen +4, perform +4, spot +4
ModifySubraceSkill("Satyr", SKILL_HIDE, 4, 1, FALSE);
ModifySubraceSkill("Satyr", SKILL_LISTEN, 4, 1, FALSE);
ModifySubraceSkill("Satyr", SKILL_MOVE_SILENTLY, 4, 1, FALSE);
ModifySubraceSkill("Satyr", SKILL_PERFORM, 4, 1, FALSE);
ModifySubraceSkill("Satyr", SKILL_SPOT, 4, 1, FALSE);
//Favored Class: Bard
AddSubraceFavoredClass("Satyr", CLASS_TYPE_BARD, CLASS_TYPE_BARD);
//Appearance: Satyr - Permanent
CreateSubraceAppearance("Satyr", TIME_BOTH, 143, 143);
// Gender : Male Only
CreateSubraceGenderRestriction("Satyr",TRUE,FALSE);
//:::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Gnome - Forest ECL 0 ::
//:::::::::::::::::::::::::::::::::::::
//Properties from the Skin: AC bonus vs Goblinoid +1, AC bonus vs Orc +1, AC bonus vs Reptillian +1
CreateSubrace(RACIAL_TYPE_GNOME, "Gnome-Forest", "sha_pcl_forest");
SetupSubraceAlias("Gnome-Forest", "Forest Gnome");
//LETO - Bonus Skills: Hide +4
ModifySubraceSkill("Gnome-Forest", SKILL_HIDE, 4, 1, FALSE);
//Favored Class: Wizard, Cleric
AddSubraceFavoredClass("Gnome-Forest", CLASS_TYPE_WIZARD, CLASS_TYPE_WIZARD);
AddSubraceFavoredClass("Gnome-Forest", CLASS_TYPE_CLERIC, CLASS_TYPE_CLERIC);
}