213 lines
9.7 KiB
Plaintext
213 lines
9.7 KiB
Plaintext
|
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||
|
//:::::::::::::::::::::::: 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);
|
||
|
}
|