269 lines
13 KiB
Plaintext
269 lines
13 KiB
Plaintext
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
//:::::::::::::::::::::::: Shayan's Subrace Engine :::::::::::::::::::::::::::::
|
|
//:::::::::::::::::::::: File Name: sha_leto_sraces6 :::::::::::::::::::::::::::
|
|
//:::::::::::::::::::::::::: OnModuleLoad script :::::::::::::::::::::::::::::::
|
|
// Written By: Shayan
|
|
//
|
|
// Description: This script holds the pre-made "undead" subraces as well as
|
|
// some Human and Halfling based sub races listed here: Imp, Pixie, Githyanki,
|
|
// Githzarai, Lich, Vampire
|
|
//
|
|
// If you do not want to use these, simply comment the lines:
|
|
// DelayCommand(3.0, ExecuteScript("sha_leto_sraces6", GetModule()));
|
|
// in the script: sha_on_modload.
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
#include "sha_subr_methds"
|
|
void main()
|
|
{
|
|
//::::::::::::::::::::::::::::::::::
|
|
//:::SUBRACE: Halfing Imp ECL 0 ::::
|
|
//::::::::::::::::::::::::::::::::::
|
|
CreateSubrace(RACIAL_TYPE_HALFLING, "Imp");
|
|
|
|
//can only be Wizard, Sorcerer or Rogue.
|
|
CreateSubraceClassRestriction("Imp", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE);
|
|
|
|
//Apearance: Imp - Permanent
|
|
CreateSubraceAppearance("Imp", TIME_BOTH, APPEARANCE_TYPE_IMP, APPEARANCE_TYPE_IMP);
|
|
|
|
//LETO - Change ability scores: (Str, Dex +3, Con, Int +4, Wis, Cha -4)
|
|
struct SubraceBaseStatsModifier ImpStats = CustomBaseStatsModifiers(0, 3, 0, 4, 0, -4, MOVEMENT_SPEED_CURRENT);
|
|
CreateBaseStatModifier("Imp", ImpStats, 1);
|
|
|
|
//LETO - Skills: Search +5, Spot +5, Listen +5, Spellcraft +5, Concentration +5
|
|
//Skill Decrease: Move Silently -4 (wing flap)
|
|
ModifySubraceSkill("Imp", SKILL_SEARCH, 5, 1, FALSE);
|
|
ModifySubraceSkill("Imp", SKILL_SPOT, 5, 1, FALSE);
|
|
ModifySubraceSkill("Imp", SKILL_LISTEN, 5, 1, FALSE);
|
|
ModifySubraceSkill("Imp", SKILL_SPELLCRAFT, 5, 1, FALSE);
|
|
ModifySubraceSkill("Imp", SKILL_CONCENTRATION, 5, 1, FALSE);
|
|
ModifySubraceSkill("Imp", SKILL_MOVE_SILENTLY, -4, 1, FALSE);
|
|
|
|
//Alignment Restriction: Can only be chaotic-evil
|
|
CreateSubraceAlignmentRestriction("Imp", FALSE, FALSE, TRUE, FALSE, FALSE, TRUE);
|
|
|
|
//Favored Class: Rogue
|
|
AddSubraceFavoredClass("Imp", CLASS_TYPE_ROGUE, CLASS_TYPE_ROGUE);
|
|
|
|
//Item Restriction: No shields, tiny weapons, cloth only
|
|
SubraceRestrictUseOfItems("Imp", ITEM_TYPE_WEAPON_SIZE_TINY | ITEM_TYPE_ARMOR_AC_0 | ITEM_TYPE_MISC_CLOTHING | ITEM_TYPE_JEWLERY | ITEM_TYPE_HELM | TIME_BOTH,ITEM_TYPE_REQ_ALL);
|
|
//::::::::::::::::::::::::::::::::::::::::
|
|
//:::: SUBRACE: Halfling - Pixie ECL +6 ::
|
|
//::::::::::::::::::::::::::::::::::::::::
|
|
//Properties from the Skin: AC +1, +1 Soak 5 Damage
|
|
//Abilities from the unique item: Cast Spell Confusion (10) 1/Day, Entangle (5) 1/Day
|
|
//Invisibility (3) 1/Day, Lesser Dispel (5) 1/Day, Polymorph Self (7) 1/Day
|
|
CreateSubrace(RACIAL_TYPE_HALFLING, "Pixie", "sha_pcl_pixie", "sha_subrace_pixi", FALSE, 0, FALSE, 0, 6);
|
|
SetupSubraceAlias("Pixie", "pixy");
|
|
SetupSubraceAlias("Pixie", "Faerie");
|
|
SetupSubraceAlias("Pixie", "Fey");
|
|
SetupSubraceAlias("Pixie", "Faery");
|
|
|
|
ModifySubraceFaction("Pixie", "FACTION_DRYAD", SUBRACE_FACTION_REPUTATION_FRIENDLY);
|
|
|
|
// Can Fly
|
|
AddSubraceItem("Pixie", "sha_subrace_fly");
|
|
|
|
//LETO - Change ability scores: (Str -4, Dex +8, Con -4, Int +6, Wis +4, Cha +6) Movement Speed: Fast
|
|
struct SubraceBaseStatsModifier PixieStats = CustomBaseStatsModifiers(-4, 8, -4, 6, 4, 6, MOVEMENT_SPEED_FAST);
|
|
CreateBaseStatModifier("Pixie", PixieStats, 1);
|
|
|
|
//LETO - Bonus Feats: Darkvision, Dodge
|
|
ModifySubraceFeat("Pixie", FEAT_DARKVISION, 1);
|
|
ModifySubraceFeat("Pixie", FEAT_DODGE, 1);
|
|
|
|
//Alignment Restriction: Neutral Only
|
|
CreateSubraceAlignmentRestriction("Pixie", FALSE, TRUE, FALSE);
|
|
|
|
//Class Restriction: Bard, Rogue, Sorcerer, Wizard
|
|
CreateSubraceClassRestriction("Pixie", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE);
|
|
|
|
//Favored Class: Sorcerer
|
|
AddSubraceFavoredClass("Pixie", CLASS_TYPE_SORCERER, CLASS_TYPE_SORCERER);
|
|
|
|
//Appearance Change: Permanent - Pixie
|
|
CreateSubraceAppearance("Pixie", TIME_BOTH, APPEARANCE_TYPE_FAIRY, APPEARANCE_TYPE_FAIRY);
|
|
|
|
//Effect: Visual Effect - Fairy Dust
|
|
AddSubraceEffect("Pixie", EFFECT_TYPE_VISUALEFFECT, VFX_DUR_PIXIEDUST, FALSE, DURATION_TYPE_PERMANENT, 0.0, TIME_BOTH);
|
|
|
|
//Spell Resistance: Base (at Level 1): 15, Max(at Level 40): 55.
|
|
CreateSubraceSpellResistance("Pixie", 15, 55);
|
|
|
|
//Item Restriction: No shields, Clothing only, Tiny Weapons
|
|
SubraceRestrictUseOfItems("Pixie", ITEM_TYPE_WEAPON_SIZE_TINY | ITEM_TYPE_ARMOR_AC_0 | ITEM_TYPE_MISC_CLOTHING | ITEM_TYPE_JEWLERY | ITEM_TYPE_HELM | TIME_BOTH,ITEM_TYPE_REQ_ALL);
|
|
//:::::::::::::::::::::::::::::::::::::::::
|
|
//:::: SUBRACE: Human - Githyanki ECL +2 ::
|
|
//:::::::::::::::::::::::::::::::::::::::::
|
|
//Abilities from Unique Item: Daze 3/day
|
|
CreateSubrace(RACIAL_TYPE_HUMAN, "Githyanki", "", "sha_subrace_gy", FALSE, 0, FALSE, 0, 2);
|
|
|
|
//LETO - Change ability scores: (Str, Dex +2, Con +2, Int, Wis -2, Cha)
|
|
struct SubraceBaseStatsModifier GithyStats = CustomBaseStatsModifiers(0, 2, 2, 0, -2, 0, MOVEMENT_SPEED_CURRENT);
|
|
CreateBaseStatModifier("Githyanki", GithyStats, 1);
|
|
|
|
//LETO -Bonus Feats: Darkvision
|
|
ModifySubraceFeat("Githyanki", FEAT_DARKVISION, 1);
|
|
|
|
//Appearance: Hair: red 5 Skin: yellow 94
|
|
ModifySubraceAppearanceColors("Githyanki",5,5,94,94);
|
|
|
|
//Appearance: Heads: Male 33, Female 27
|
|
ModifySubraceHead("Githyanki", 33,27);
|
|
|
|
//Spell Resistance: 5 + 1 Per Level.
|
|
CreateSubraceSpellResistance("Githyanki", 5, 45);
|
|
|
|
//Favored Class: Fighter
|
|
AddSubraceFavoredClass("Githyanki", CLASS_TYPE_FIGHTER, CLASS_TYPE_FIGHTER);
|
|
|
|
//Alignment Restriction: Evil Only
|
|
CreateSubraceAlignmentRestriction("Githyanki", FALSE, FALSE, TRUE);
|
|
//:::::::::::::::::::::::::::::::::::::::::
|
|
//:::: SUBRACE: Human - Githzerai ECL +2 ::
|
|
//:::::::::::::::::::::::::::::::::::::::::
|
|
//Abilities from Unique Item: Daze 3/day
|
|
CreateSubrace(RACIAL_TYPE_HUMAN, "Githzerai", "", "sha_subrace_gz", FALSE, 0, FALSE, 0, 2);
|
|
|
|
//LETO - Change ability scores: (Str, Dex +6, Con, Int -2, Wis +2, Cha)
|
|
struct SubraceBaseStatsModifier GithzStats = CustomBaseStatsModifiers(0, 6, 0, -2, 2, 0, MOVEMENT_SPEED_CURRENT);
|
|
CreateBaseStatModifier("Githzerai", GithzStats, 1);
|
|
|
|
//LETO - Bonus Feats: Darkvision
|
|
ModifySubraceFeat("Githzerai", FEAT_DARKVISION, 1);
|
|
|
|
//Appearance: Hair and Skin: Mottled Green 175
|
|
ModifySubraceAppearanceColors("Githzerai",175,175,175,175);
|
|
|
|
//Appearance Heads: Male 34, Female 26
|
|
ModifySubraceHead("Githzerai", 34, 26);
|
|
|
|
//Inertial Barrier at will
|
|
AddSubraceItem("Githzerai","sha_subrace_ps_i");
|
|
|
|
//Spell Resistance: 5 + Level
|
|
CreateSubraceSpellResistance("Githzerai", 5, 45);
|
|
|
|
//Alignment Restriction: Neutral Only
|
|
CreateSubraceAlignmentRestriction("Githzerai", FALSE, TRUE, FALSE, TRUE, TRUE, TRUE);
|
|
|
|
//Favored Class: Monk
|
|
AddSubraceFavoredClass("Githzerai", CLASS_TYPE_MONK, CLASS_TYPE_MONK);
|
|
//::::::::::::::::::::::::::::::::::::::
|
|
//::::: SUBRACE: Undead - Lich ECL +9 ::
|
|
//::::::::::::::::::::::::::::::::::::::
|
|
//Properties from the Skin:
|
|
//Level 1: Damage Reduction: +1/15 Damage, Turn Resistance +4, Cold 100% Immunity, Electrical 100% Immunity
|
|
//Level 5: Gains - Immunity: Miscellaneous: Disease
|
|
//Level 10: Gains - Immunity: Miscellaneous: Poison
|
|
//Level 15: Gains - Immunity: Miscellaneous: Paralysis
|
|
//Level 20: Gains - Immunity: Miscellaneous: Level/Ability Drain
|
|
//Level 25: Gains - Immunity: Miscellaneous: Mind-Affecting Spells
|
|
//Level 30: Gains - Immunity: Miscellaneous: Death Magic
|
|
//Level 35: Gains - Immunity: Miscellaneous: Sneak Attack
|
|
//Level 40: Gains - Immunity: Miscellaneous: Critical Hits
|
|
//Abilities from the unique item: Cast Spell Destruction (13) 1/Day, Cast Spell Vampiric Touch (5) 1/Day
|
|
//Light Sensitive, Takes 10 Divine Damage While in Sunlight
|
|
//Undead
|
|
CreateSubrace(RACIAL_TYPE_HUMAN, "Lich", "sha_pcl_lich", "sha_subrace_lich", TRUE, 10, FALSE, 0, 9, TRUE, TRUE);
|
|
|
|
//LETO - Change ability scores: (Str, Dex, Con, Int +2, Wis +2, Cha +2)
|
|
struct SubraceBaseStatsModifier LichStats = CustomBaseStatsModifiers(0, 0, 0, 2, 2, 2, MOVEMENT_SPEED_CURRENT);
|
|
CreateBaseStatModifier("Lich", LichStats, 1);
|
|
|
|
//Can also be Elf
|
|
AddAdditionalBaseRaceToSubrace("Lich", RACIAL_TYPE_ELF);
|
|
|
|
//Can also be Half-Elf
|
|
AddAdditionalBaseRaceToSubrace("Lich", RACIAL_TYPE_HALFELF);
|
|
|
|
//The different skins to be equipped at different levels...
|
|
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich1", 5);
|
|
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich2", 10);
|
|
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich3", 15);
|
|
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich4", 20);
|
|
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich5", 25);
|
|
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich6", 30);
|
|
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich7", 35);
|
|
AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich8", 40);
|
|
|
|
//Alignment Restriction - Must be Evil
|
|
CreateSubraceAlignmentRestriction("Lich", FALSE, FALSE, TRUE);
|
|
|
|
//Class Restriction - Can only be Wizard or Sorcerer
|
|
CreateSubraceClassRestriction("Lich", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE);
|
|
|
|
// Prestige Class restriction - Can only be Pale Master
|
|
CreateSubracePrestigiousClassRestriction("Lich", 10, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE);
|
|
|
|
//Spell Resistance: 10 + 1/2 Per Level.
|
|
CreateSubraceSpellResistance("Lich", 10, 30);
|
|
|
|
//Appearance: Lich - Permanent
|
|
CreateSubraceAppearance("Lich", TIME_BOTH, APPEARANCE_TYPE_LICH, APPEARANCE_TYPE_HEURODIS_LICH);
|
|
|
|
//Favored Class: Pale Master
|
|
AddSubraceFavoredClass("Lich", CLASS_TYPE_WIZARD, CLASS_TYPE_WIZARD);
|
|
//::::::::::::::::::::::
|
|
//:::SUBRACE: Vampire ::
|
|
//::::::::::::::::::::::
|
|
//Subrace Name: Vampire
|
|
//Properties from the Skin:
|
|
//Level 1: Divine 100% Damage Vulnerability, Saving Throw Divine -5, Regeneration +1
|
|
//Level 5: Gains - Immunity: Miscellaneous: Paralysis
|
|
//Level 10: Gains - Immunity: Miscellaneous: Poison
|
|
//Level 15: Gains - Immunity: Miscellaneous: Disease
|
|
//Level 20: Gains - Immunity: Miscellaneous: Death Magic, Regeneration Increases by +1
|
|
//Level 25: Gains - Immunity: Miscellaneous: Level/Ability Drain
|
|
//Level 30: Gains - Immunity: Miscellaneous: Mind-Affecting Spells
|
|
//Level 35: Gains - Immunity: Miscellaneous: Sneak Attack
|
|
//Level 40: Gains - Immunity: Miscellaneous: Critical Hits, Regeneration Increases by +1
|
|
//NOTE: Final Regeneration rate (At Level 40) is +3.
|
|
//Light Sensitive. Takes 10 Divine Damage while in Sunlight.
|
|
CreateSubrace(RACIAL_TYPE_HUMAN, "Vampire", "sha_pcl_vamp001", "sha_subrace_vamp", TRUE, 10, FALSE, 0, 9, TRUE, TRUE);
|
|
|
|
// Can Fly
|
|
AddSubraceItem("Vampire", "sha_subrace_fly");
|
|
|
|
//LETO - Change ability scores: (Str, Dex, Con, Int, Wis, Cha -2)
|
|
struct SubraceBaseStatsModifier VampireStats = CustomBaseStatsModifiers(0, 0, 0, 0, 0, -2, MOVEMENT_SPEED_CURRENT);
|
|
CreateBaseStatModifier("Vampire", VampireStats, 1);
|
|
|
|
//LETO - Bonus Feats: Darkvision
|
|
ModifySubraceFeat("Vampire", FEAT_DARKVISION, 1);
|
|
|
|
//Can also be Elf
|
|
AddAdditionalBaseRaceToSubrace("Vampire", RACIAL_TYPE_ELF);
|
|
|
|
//Can also be Half-Elf
|
|
AddAdditionalBaseRaceToSubrace("Vampire", RACIAL_TYPE_HALFELF);
|
|
|
|
//Skins that are equipped at certain levels...
|
|
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp002", 5);
|
|
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp003", 10);
|
|
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp004", 15);
|
|
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp005", 20);
|
|
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp006", 25);
|
|
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp007", 30);
|
|
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp008", 35);
|
|
AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp009", 40);
|
|
|
|
//Alignment Restriction: Can only be evil
|
|
CreateSubraceAlignmentRestriction("Vampire", FALSE, FALSE, TRUE);
|
|
|
|
//Appearance: Change the Appearance to a Vampire during night time, and revert back to normal during day time.
|
|
CreateSubraceAppearance("Vampire", TIME_NIGHT, APPEARANCE_TYPE_VAMPIRE_MALE, APPEARANCE_TYPE_VAMPIRE_FEMALE, 1);
|
|
|
|
//Temporary Stats: Bonuses at Night time: (Str +6, Dex +4, Con +4, Int, Wis, Cha +2) AC +5, AB +10
|
|
struct SubraceStats VampStats1 = CreateCustomStats(SUBRACE_STAT_MODIFIER_TYPE_POINTS, 6.0, 4.0, 4.0, 0.0, 0.0, 2.0, 5.0, 10.0);
|
|
CreateTemporaryStatModifier("Vampire", VampStats1, TIME_NIGHT);
|
|
|
|
//Favored Class: Rogue
|
|
AddSubraceFavoredClass("Vampire", CLASS_TYPE_ROGUE, CLASS_TYPE_ROGUE);
|
|
|
|
//Appearance no longer changes, but the player will get a control item.
|
|
CreateSubraceAppearance("Vampire", TIME_NONE, APPEARANCE_TYPE_WERECAT, APPEARANCE_TYPE_WERECAT, 20);
|
|
AddSubraceItem("Vampire", "sha_vamp_cont", 20);
|
|
}
|