Aschbourne_PRC8/_module/nss/vamp_lineage.nss
GetOffMyYarn 69879d6957 Areas and Fixes
Added CCOH and missing areas
Changed some areas to be craftable,
Fixed some on death issues,
Fixed the Gaurd
2024-08-30 11:38:44 -04:00

102 lines
4.5 KiB
Plaintext

// Vampire ability to tell another Vampire's lineage (maker)
// By David Beoulve
void vamp_lineage(object oPC, object oTarget)
{
string Lineage = GetCampaignString("Vampire","Lineage",oTarget);
string Lineage1 = GetCampaignString("Vampire","Lineage_1",oTarget);
string Lineage2 = GetCampaignString("Vampire","Lineage_2",oTarget);
string Lineage3 = GetCampaignString("Vampire","Lineage_3",oTarget);
string Lineage4 = GetCampaignString("Vampire","Lineage_4",oTarget);
PrintString("vamp_lineage: PC=" + GetName(oPC) + "| Target=" + GetName(oTarget));
PrintString("vamp_lineage: Lineage of Target=" + GetName(oTarget) + " is " + Lineage + ".");
PrintString("vamp_lineage: L1="+Lineage1+" | L2="+Lineage2+" | L3="+Lineage3+" | L4="+Lineage4+".");
if (GetIsObjectValid(oTarget))
{ // All we know it that it's valid.
if (GetIsPC(oTarget))
{ // okay, it's a PC...
if (GetSubRace(oTarget)=="Vampire")
{ // It's a Vampire!
if (Lineage != "")
{
SendMessageToPC(oPC, GetName(oTarget) + " was created by the Vampire, " + Lineage + ".");
if (Lineage1 != "")
{
SendMessageToPC(oPC, GetName(oTarget) + "'s maker, "+Lineage+" was created by the Vampire, " + Lineage1 + ".");
if (Lineage2 != "")
{
SendMessageToPC(oPC, Lineage1+" was created by the Vampire, " + Lineage2 + ".");
if (Lineage3 != "")
{
SendMessageToPC(oPC, Lineage2+" was created by the Vampire, " + Lineage3 + ".");
if (Lineage4 != "")
{
SendMessageToPC(oPC, Lineage3+" was created by the Vampire, " + Lineage4 + ".");
}
else
{
SendMessageToPC(oPC, "You can't determine the maker of "+Lineage3+".");
}
}
else
{
SendMessageToPC(oPC, "You can't determine the maker of "+Lineage2+".");
}
}
else
{
SendMessageToPC(oPC, "You can't determine the maker of "+Lineage1+".");
}
}
else
{
SendMessageToPC(oPC, "You can't determine the maker of "+Lineage+".");
}
}
else
{
SendMessageToPC(oPC, "You cannot determine the maker or lineage of " + GetName(oTarget) + ". OOC you should report this to a DM immediately if this is not a DM run character!");
}
SendMessageToPC(oPC,GetName(oTarget)+" is the "+IntToString(GetCampaignInt("Vampire","VampLevel",oTarget))+" generation of vampires (OOC: the greater the number, the farther down the ladder they are)");
}
else
{
SendMessageToPC(oPC, GetName(oTarget) + " is not a Vampire.");
}
}
else
{
SendMessageToPC(oPC, "You can not sense anything about " + GetName(oTarget) + ".");
}
}
else
{
SendMessageToPC(oPC, "That is not a Vampire. Try sensing the lineage of a Vampire.");
}
/* if (GetIsImmune(oTarget,IMMUNITY_TYPE_DOMINATE)==FALSE)
{
// Create and link effects.
effect eDominated = EffectDominated();
effect eMind = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DOMINATED);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
effect eLink = EffectLinkEffects(eMind, eDominated);
eLink = EffectLinkEffects(eLink, eDur);
// Duration and spell DC
int iDuration = 12;
int SpellDC = 10 + (GetHitDice(oPC)/2)+GetAbilityModifier(ABILITY_CHARISMA,oPC);
// Make spell save.
int Save = WillSave(oTarget,SpellDC,SAVING_THROW_TYPE_MIND_SPELLS,oPC);
// If will save failed.
if (Save == 0 )
{
// Target is dominated.
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget,RoundsToSeconds(iDuration));
}
}
else SendMessageToPC(oPC, "Target is immune to domination.");*/
}