Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
103 lines
3.9 KiB
Plaintext
103 lines
3.9 KiB
Plaintext
// Useful includes for dealing with races.
|
|
|
|
//function prototypes
|
|
//use this to get class/race adjusted racial type back to one of the bioware bases
|
|
//includes shifter changed forms
|
|
int MyPRCGetRacialType(object oCreature);
|
|
|
|
// Guess what this does
|
|
int GetIsWarforged(object oCreature);
|
|
// DoRacialSLA() moved to prc_inc_core as it is used by other spell-like scripts, not just race specific
|
|
|
|
|
|
#include "prc_class_const"
|
|
#include "prc_feat_const"
|
|
#include "prc_racial_const"
|
|
|
|
int MyPRCGetRacialType(object oCreature)
|
|
{
|
|
// Shadow Sun Ninja - Ballance of Light and Dark
|
|
if(GetLocalInt(oCreature, "SSN_BALANCE_LD"))
|
|
return RACIAL_TYPE_UNDEAD;
|
|
if(GetHasFeat(FEAT_UNDEAD_HD, oCreature))
|
|
return RACIAL_TYPE_UNDEAD;
|
|
|
|
// Class-based racial type changes
|
|
if(GetLevelByClass(CLASS_TYPE_LICH,oCreature) > 3)
|
|
return RACIAL_TYPE_UNDEAD;
|
|
if(GetLevelByClass(CLASS_TYPE_MONK, oCreature) > 19
|
|
|| GetLevelByClass(CLASS_TYPE_CONTEMPLATIVE, oCreature) > 9
|
|
|| GetLevelByClass(CLASS_TYPE_ACOLYTE, oCreature) > 9
|
|
|| GetLevelByClass(CLASS_TYPE_INCANDESCENT_CHAMPION, oCreature) > 9)
|
|
return RACIAL_TYPE_OUTSIDER;
|
|
if(GetLevelByClass(CLASS_TYPE_OOZEMASTER, oCreature) > 9)
|
|
return RACIAL_TYPE_OOZE;
|
|
if(GetLevelByClass(CLASS_TYPE_ELEMENTAL_SAVANT, oCreature) > 9)
|
|
return RACIAL_TYPE_ELEMENTAL;
|
|
if(GetLevelByClass(CLASS_TYPE_DRAGONDISCIPLE, oCreature) > 9)
|
|
return RACIAL_TYPE_DRAGON;
|
|
if (GetLevelByClass(CLASS_TYPE_WEREWOLF, oCreature) > 9)
|
|
return RACIAL_TYPE_SHAPECHANGER;
|
|
if (GetLevelByClass(CLASS_TYPE_HEARTWARDER, oCreature) > 9)
|
|
return RACIAL_TYPE_FEY;
|
|
if (GetLevelByClass(CLASS_TYPE_FORESTMASTER, oCreature) > 7)
|
|
return RACIAL_TYPE_PLANT;
|
|
|
|
// PRC Shifting Polymorph -caused racial type override. Stored with offset +1 to differentiate value 0 from non-existence
|
|
int nShiftingOverrideRace = GetLocalInt(oCreature, "PRC_ShiftingOverride_Race");
|
|
if(nShiftingOverrideRace)
|
|
return nShiftingOverrideRace - 1;
|
|
|
|
// Race pack racial type feats
|
|
if(GetHasFeat(FEAT_OUTSIDER, oCreature))
|
|
return RACIAL_TYPE_OUTSIDER;
|
|
if(GetHasFeat(FEAT_ELEMENTAL, oCreature))
|
|
return RACIAL_TYPE_ELEMENTAL;
|
|
if(GetHasFeat(FEAT_LIVING_CONSTRUCT, oCreature))
|
|
return RACIAL_TYPE_CONSTRUCT;
|
|
if(GetHasFeat(FEAT_PLANT, oCreature))
|
|
return RACIAL_TYPE_PLANT;
|
|
if(GetHasFeat(FEAT_ABERRATION, oCreature))
|
|
return RACIAL_TYPE_ABERRATION;
|
|
if(GetHasFeat(FEAT_DRAGON, oCreature))
|
|
return RACIAL_TYPE_DRAGON;
|
|
if(GetHasFeat(FEAT_SHAPECHANGER, oCreature))
|
|
return RACIAL_TYPE_SHAPECHANGER;
|
|
if(GetHasFeat(FEAT_GIANT, oCreature))
|
|
return RACIAL_TYPE_GIANT;
|
|
if(GetHasFeat(FEAT_FEY, oCreature))
|
|
return RACIAL_TYPE_FEY;
|
|
if(GetHasFeat(FEAT_MONSTEROUS, oCreature))
|
|
return RACIAL_TYPE_HUMANOID_MONSTROUS;
|
|
if(GetHasFeat(FEAT_BEAST, oCreature))
|
|
return RACIAL_TYPE_BEAST;
|
|
if(GetHasFeat(FEAT_DWARVEN, oCreature))
|
|
return RACIAL_TYPE_DWARF;
|
|
if(GetHasFeat(FEAT_ELVEN, oCreature))
|
|
return RACIAL_TYPE_ELF;
|
|
if(GetHasFeat(FEAT_GNOMISH, oCreature))
|
|
return RACIAL_TYPE_GNOME;
|
|
if(GetHasFeat(FEAT_HALFLING, oCreature))
|
|
return RACIAL_TYPE_HALFLING;
|
|
if(GetHasFeat(FEAT_ORCISH, oCreature))
|
|
return RACIAL_TYPE_HUMANOID_ORC;
|
|
if(GetHasFeat(FEAT_HUMAN, oCreature))
|
|
return RACIAL_TYPE_HUMAN;
|
|
if(GetHasFeat(FEAT_GOBLINOID, oCreature))
|
|
return RACIAL_TYPE_HUMANOID_GOBLINOID;
|
|
if(GetHasFeat(FEAT_REPTILIAN, oCreature))
|
|
return RACIAL_TYPE_HUMANOID_REPTILIAN;
|
|
if(GetHasFeat(FEAT_VERMIN, oCreature))
|
|
return RACIAL_TYPE_VERMIN;
|
|
|
|
return GetRacialType(oCreature);
|
|
}
|
|
|
|
int GetIsWarforged(object oCreature)
|
|
{
|
|
int nRace = GetRacialType(oCreature);
|
|
|
|
if (nRace == RACIAL_TYPE_WARFORGED || nRace == RACIAL_TYPE_WARFORGED_CHARGER) return TRUE;
|
|
|
|
return FALSE;
|
|
} |