WoR_PRC8/_module/nss/sha_leto_sraces1.nss

213 lines
9.7 KiB
Plaintext
Raw Permalink Normal View History

2025-04-03 11:49:34 -04:00
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:::::::::::::::::::::::: Shayan's Subrace Engine :::::::::::::::::::::::::::::
//:::::::::::::::::::::: File Name: sha_leto_sraces1 :::::::::::::::::::::::::::
//:::::::::::::::::::::::::: OnModuleLoad script :::::::::::::::::::::::::::::::
// Written By: Shayan
//
// Description: This script holds the pre-made Dwarf and Elf subraces found
// listed here: Dwarf-Arctic, Dwarf-Deep, Dwarf-Duergar, Dwarf-Hill, Dwarf-Wild
// Dwarf-Azer, Elf-Aquatic, Elf-Gray, Elf-High, Elf-Wild
//
// If you do not want to use these, simply comment the lines:
// DelayCommand(3.0, ExecuteScript("sha_leto_sraces1", GetModule()));
// in the script: sha_on_modload.
//
////////////////////////////////////////////////////////////////////////////////
#include "sha_subr_methds"
void main()
{
//::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Dwarf - Arctic ECL +1 ::
//::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: AC +1, Cold 100% Immunity Bonus
CreateSubrace(RACIAL_TYPE_DWARF, "Dwarf-Arctic", "sha_pcl_dwarfart", "", FALSE, 0, FALSE, 0, 1);
SetupSubraceAlias("Dwarf-Arctic", "dwarf-artic");
//LETO - Change ability scores: (Str +4, Dex -2, Con +2, Int, Wis, Cha)
struct SubraceBaseStatsModifier DwarfArticStats = CustomBaseStatsModifiers(4, -2, 2, 0, 0, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Dwarf-Arctic", DwarfArticStats, 1);
//LETO - Bonus Skills: Hide +4
ModifySubraceSkill("Dwarf-Arctic", SKILL_HIDE, 4, 1, FALSE);
//Favored class: Ranger
AddSubraceFavoredClass("Dwarf-Arctic", CLASS_TYPE_RANGER, CLASS_TYPE_RANGER);
//::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Dwarf - Deep ECL 0 :::
//::::::::::::::::::::::::::::::::::::
//Properties from the Skin: +3 save vs spells, +3 save vs poison
//Light sensitive
CreateSubrace(RACIAL_TYPE_DWARF, "Dwarf-Deep", "sha_pc_dwarfdeep", "", TRUE);
SetupSubraceAlias("Dwarf-Deep", "deep");
//Favored class: Fighter
AddSubraceFavoredClass("Dwarf-Deep", CLASS_TYPE_FIGHTER, CLASS_TYPE_FIGHTER);
//LETO - Feats: Darkvision
ModifySubraceFeat("Dwarf-Deep", FEAT_DARKVISION, 1);
//:::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Dwarf - Duergar ECL +2 ::
//:::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: Immunity Paralysis, Poison, Spell Phantasmal Killer, Spell Weird
//Abilities from the unique item: Cast Spell Invisibility (3) 1 Use Per/Day
//Light sensitive
CreateSubrace(RACIAL_TYPE_DWARF, "Dwarf-Duergar", "sha_pcl_dwarfdue", "sha_subrace_duer", TRUE, 0, FALSE, 0, 2);
// Appearance: Hair: lightest gray = 16, Skin: stone = 60
ModifySubraceAppearanceColors("Dwarf-Duergar",16,16,60,60);
SetupSubraceAlias("Dwarf-Duergar", "duergar");
SetupSubraceAlias("Dwarf-Duergar", "dwarf duergar");
//Alignment Restriction: Can only be evil
CreateSubraceAlignmentRestriction("Dwarf-Duergar", FALSE, FALSE, TRUE);
//LETO - Change ability scores: (Str, Dex, Con +2, Int, Wis, Cha -2)
struct SubraceBaseStatsModifier DwarfDuergarStats = CustomBaseStatsModifiers(0, 0, 2, 0, 0, -2, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Dwarf-Duergar", DwarfDuergarStats, 1);
//LETO - Bonus Skills: Hide +1, Spot +1, Move Silently +4
ModifySubraceSkill("Dwarf-Duergar", SKILL_SPOT, 1, 1, FALSE);
ModifySubraceSkill("Dwarf-Duergar", SKILL_LISTEN, 1, 1, FALSE);
ModifySubraceSkill("Dwarf-Duergar", SKILL_MOVE_SILENTLY, 4, 1, FALSE);
//Favored class: Fighter
AddSubraceFavoredClass("Dwarf-Duergar", CLASS_TYPE_FIGHTER, CLASS_TYPE_FIGHTER);
//::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Dwarf - Hill ECL 0::::
//::::::::::::::::::::::::::::::::::::
CreateSubrace(RACIAL_TYPE_DWARF, "Dwarf-Hill");
SetupSubraceAlias("Dwarf-Hill", "Hill Dwarf");
//Human Faction
ModifySubraceFaction("Dwarf-Hill", "HUMAN_FACTION_NPC", SUBRACE_FACTION_REPUTATION_FRIENDLY);
//Human Starting Point
CreateSubraceStartLocation("Dwarf-Hill", "wp_human_start");
//Favored class: Fighter
AddSubraceFavoredClass("Dwarf-Hill", CLASS_TYPE_FIGHTER, CLASS_TYPE_FIGHTER);
//Human Respawn Point
CreateSubraceDeathLocation("Dwarf-Hill", "wp_human_death");
//:::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Dwarf - Wild ECL +1::::::
//:::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: AC Bonus +1, Fire Resist 5 / -, Disease +4, Poison +1
CreateSubrace(RACIAL_TYPE_DWARF, "Dwarf-Wild", "sha_pcl_dwarfwil", "", FALSE, 0, FALSE, 0, 1);
//LETO - Bonus Feats: Use Poison
ModifySubraceFeat("Dwarf-Wild", FEAT_USE_POISON, 1);
//LETO - Bonus Skills: Hide +4
ModifySubraceSkill("Dwarf-Wild", SKILL_HIDE, 4, 1, FALSE);
//Favored class: Barbarian
AddSubraceFavoredClass("Dwarf-Wild", CLASS_TYPE_BARBARIAN, CLASS_TYPE_BARBARIAN);
//::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Dwarf - Azer ECL +3 ::
//::::::::::::::::::::::::::::::::::::
//Properties from the Skin: AC Bonus +6, Fire 100% Immunity Bonus, Cold 50% Damage Vulnerability
CreateSubrace(RACIAL_TYPE_DWARF, "Azer", "sha_pcl_azer", "", FALSE, 0, FALSE, 0, 3);
//LETO - Change ability scores: (Str +2, Dex +2, Con +2, Int +2, Wis +2, Cha)
struct SubraceBaseStatsModifier AzerStats = CustomBaseStatsModifiers(2, 2, 2, 2, 2, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Azer", AzerStats, 1);
//LETO - Feats: Darkvision
ModifySubraceFeat("Azer", FEAT_DARKVISION, 1);
//Appearance: Azer - Permanent
CreateSubraceAppearance("Azer", TIME_BOTH, 1109, 1110);
//Spell Resistance: 13 + 1 Per Level.
CreateSubraceSpellResistance("Azer", 13, 53);
//:::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Elf - Aquatic ECL 0 :::::
//:::::::::::::::::::::::::::::::::::::::
//Properties from the Skin: Immunity Specific Spell Drown
//String variable check on skin for "water breathing" ability - added by Birdman
CreateSubrace(RACIAL_TYPE_ELF, "Elf-Aquatic", "sha_pcl_elfaquat", "");
SetupSubraceAlias("Elf-Aquatic", "Aquatic Elf");
// Appearance: Hair: green = 153, Skin: blue = 20
ModifySubraceAppearanceColors("Elf-Aquatic",153,153,20,20);
//LETO - Change ability scores: (Str, Dex, Con, Int -2, Wis , Cha)
struct SubraceBaseStatsModifier ElfAquaticStats = CustomBaseStatsModifiers(0, 0, 0, -2, 0, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Elf-Aquatic", ElfAquaticStats, 1);
//Favored Class: Fighter
AddSubraceFavoredClass("Elf-Aquatic", CLASS_TYPE_FIGHTER, CLASS_TYPE_FIGHTER);
//:::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Elf - Avariel ECL 0 ::::
//:::::::::::::::::::::::::::::::::::::::
CreateSubrace(RACIAL_TYPE_ELF, "Elf-Avariel");
SetupSubraceAlias("Elf-Avariel", "avariel");
//LETO - Change ability scores: (Str, Dex +2, Con, Int +2, Wis +2, Cha)
struct SubraceBaseStatsModifier ElfAvarielStats = CustomBaseStatsModifiers(0, 2, 0, 2, 2, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Elf-Avariel", ElfAvarielStats, 1);
// Can Fly
AddSubraceItem("Elf-Avariel", "sha_subrace_fly");
//LETO - Bonus Skills: Spot +2
ModifySubraceSkill("Elf-Avariel", SKILL_SPOT, 2, 1, FALSE);
//Favored Class: Cleric
AddSubraceFavoredClass("Elf-Avariel", CLASS_TYPE_CLERIC, CLASS_TYPE_CLERIC);
//Leto - Add Bird wings
ModifySubraceAppearanceAttachment("Elf-Avariel", CREATURE_WING_TYPE_BIRD, CREATURE_WING_TYPE_BIRD, 0, 0, 1);
//:::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Elf - Gray ECL 0 ::::::::
//:::::::::::::::::::::::::::::::::::::::
CreateSubrace(RACIAL_TYPE_ELF, "Elf-Gray");
SetupSubraceAlias("Elf-Gray", "Gray Elf");
SetupSubraceAlias("Elf-Gray", "Grey Elf");
SetupSubraceAlias("Elf-Gray", "Elf-Grey");
//Favored class: Wizard
AddSubraceFavoredClass("Elf-Gray", CLASS_TYPE_WIZARD, CLASS_TYPE_WIZARD);
//LETO - Change ability scores: (Str -2, Dex, Con, Int +2, Wis, Cha)
struct SubraceBaseStatsModifier ElfGrayStats = CustomBaseStatsModifiers(-2, 0, 0, 2, 0, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Elf-Gray", ElfGrayStats, 1);
//::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Elf - High ECL 0 :::::
//::::::::::::::::::::::::::::::::::::
CreateSubrace(RACIAL_TYPE_ELF, "Elf-High");
SetupSubraceAlias("Elf-High", "High Elf");
//Favored class: Wizard
AddSubraceFavoredClass("Elf-High", CLASS_TYPE_WIZARD, CLASS_TYPE_WIZARD);
//LETO - Change ability scores: (Str -2, Dex, Con, Int +2, Wis, Cha +2)
struct SubraceBaseStatsModifier ElfHighStats = CustomBaseStatsModifiers(-2, 0, 0, 2, 0, 2, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Elf-High", ElfHighStats, 1);
//LETO - Bonus Skills: Concentration +4, Lore +4, Spellcraft +4
ModifySubraceSkill("Elf-High", SKILL_CONCENTRATION, 4, 1, FALSE);
ModifySubraceSkill("Elf-High", SKILL_LORE, 4, 1, FALSE);
ModifySubraceSkill("Elf-High", SKILL_SPELLCRAFT, 4, 1, FALSE);
//Appearance: Hair: Blonde = 8, Skin: Golden Bronze = 9
ModifySubraceAppearanceColors("Elf-High",8,8,9,9);
//:::::::::::::::::::::::::::::::::::::::
//:::: SUBRACE: Elf - Wild ECL 0 :::::
//:::::::::::::::::::::::::::::::::::::::
CreateSubrace(RACIAL_TYPE_ELF, "Elf-Wild");
//LETO - Change ability scores: (Str, Dex +2, Con, Int -2, Wis, Cha)
struct SubraceBaseStatsModifier ElfWildStats = CustomBaseStatsModifiers(0, 2, 0, -2, 0, 0, MOVEMENT_SPEED_CURRENT);
CreateBaseStatModifier("Elf-Wild", ElfWildStats, 1);
//LETO - Bonus Skills: Spot +2, Listen +2, Search +2
ModifySubraceSkill("Elf-Wild", SKILL_SPOT, 2, 1, FALSE);
ModifySubraceSkill("Elf-Wild", SKILL_LISTEN, 2, 1, FALSE);
ModifySubraceSkill("Elf-Wild", SKILL_SEARCH, 2, 1, FALSE);
//Favored Class: Sorcerer
AddSubraceFavoredClass("Elf-Wild", CLASS_TYPE_SORCERER, CLASS_TYPE_SORCERER);
}