//:: Xovian's Companion Summon //:: Created: 25 Aug 10 //:: This script is used as a call in conversation for a Henchman to summon their Companion. //:: The Henchman will summon a different Companion based on Alignment. //Henchmen Summons Companion// void HenchmanSummonCompanion(object oHench); //Henchmen Summons Companion// void HenchmanSummonCompanion(object oHench) { /* valid companions: // nw_ac_badger, nw_ac_bear, nw_ac_boar, nw_ac_dwlf, // nw_ac_spid, nw_ac_hawk, nw_ac_pant, nw_ac_wolf, x0_ac_drat0 */ if(GetAlignmentGoodEvil(OBJECT_SELF) == ALIGNMENT_EVIL || IP_CONST_ALIGNMENTGROUP_EVIL == TRUE) { //Evil Alignment will summon: string eType = "nw_ac_spid"; //ANIMAL_COMPANION_CREATURE_TYPE_SPIDER int nHD = GetLevelByClass(CLASS_TYPE_RANGER, oHench)-5; if (nHD < 0) nHD = 0; nHD += GetLevelByClass(CLASS_TYPE_DRUID, oHench); if (nHD == 0) return; else if (nHD <= 1) eType = eType + "0" + IntToString(nHD); else eType = eType + IntToString(nHD); //Summon the companion and add it as a henchman object oCom = CreateObject(OBJECT_TYPE_CREATURE, eType, GetLocation(OBJECT_SELF), FALSE); SetName(oCom, GetName(oHench)+ "'s Companion"); effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oCom)); AddHenchman(oHench, oCom); DecrementRemainingFeatUses(oHench, FEAT_ANIMAL_COMPANION); } else if(GetAlignmentGoodEvil(OBJECT_SELF) == ALIGNMENT_GOOD || IP_CONST_ALIGNMENTGROUP_GOOD == TRUE) { //Good Alignment will summon: string gType = "nw_ac_hawk"; //ANIMAL_COMPANION_CREATURE_TYPE_HAWK int nHD = GetLevelByClass(CLASS_TYPE_RANGER, oHench)-5; if (nHD < 0) nHD = 0; nHD += GetLevelByClass(CLASS_TYPE_DRUID, oHench); if (nHD == 0) return; else if (nHD <= 1) gType = gType + "0" + IntToString(nHD); else gType = gType + IntToString(nHD); //Summon the companion and add it as a henchman object oCom = CreateObject(OBJECT_TYPE_CREATURE, gType, GetLocation(OBJECT_SELF), FALSE); SetName(oCom, GetName(oHench)+ "'s Companion"); effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oCom)); AddHenchman(oHench, oCom); DecrementRemainingFeatUses(oHench, FEAT_ANIMAL_COMPANION); } else { //All other non-specifc or Neutral Alignment will summon: string nType = "nw_ac_pant"; //ANIMAL_COMPANION_CREATURE_TYPE_PANTHER int nHD = GetLevelByClass(CLASS_TYPE_RANGER, oHench)-5; if (nHD < 0) nHD = 0; nHD += GetLevelByClass(CLASS_TYPE_DRUID, oHench); if (nHD == 0) return; else if (nHD <= 1) nType = nType + "0" + IntToString(nHD); else nType = nType + IntToString(nHD); //Summon the companion and add it as a henchman object oCom = CreateObject(OBJECT_TYPE_CREATURE, nType, GetLocation(OBJECT_SELF), FALSE); SetName(oCom, GetName(oHench)+ "'s Companion"); effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oCom)); AddHenchman(oHench, oCom); DecrementRemainingFeatUses(oHench, FEAT_ANIMAL_COMPANION); } } //Makes a henchman summon their Companion void main() { AssignCommand(OBJECT_SELF, HenchmanSummonCompanion(OBJECT_SELF)); }