Files
HeroesStone_PRC8/_module/nss/necromaticregen.nss
Jaysyn904 1eefc84201 Initial Commit
Initial Commit.
2025-09-14 15:40:46 -04:00

270 lines
6.6 KiB
Plaintext

#include "prc_inc_racial"
void main()
{
{
effect eEffect = EffectHeal(1000);
object oTarget = GetItemActivatedTarget();
location lTarget = GetLocation(oTarget);
object oPC = GetItemActivator();
//SETS MAX NUMBER OF SKELETONS YOU CAN CONTROL
if (!GetIsPC(oPC)) return;
//Check to make sure the target is dead first
if (GetIsObjectValid(oTarget))
{
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_RESURRECTION, FALSE));
if (GetIsDead(oTarget))
{
//Effect to be used
effect Vfx1 = EffectVisualEffect(VFX_COM_CHUNK_RED_LARGE);
//Apply Visual effect Raise
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, Vfx1, GetLocation(oTarget));
//Effect to be used
effect Vfx2 = EffectVisualEffect(VFX_COM_CHUNK_BONE_MEDIUM);
//Apply Visual effect Raise
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, Vfx2, GetLocation(oTarget));
effect Vfx3 = EffectVisualEffect(VFX_IMP_HARM);
//Apply Visual effect Raise
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, Vfx3, GetLocation(oPC));
//Destroy Dead Creature
DestroyObject(oTarget, 0.0);
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC);
//Check race and apply increase or decrease of skill, ability, AC etc.
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_ABERRATION))
{
eEffect = EffectSkillIncrease(SKILL_HIDE, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_ANIMAL))
{
eEffect = EffectSkillIncrease(SKILL_ANIMAL_EMPATHY, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_BEAST))
{
eEffect = EffectAbilityIncrease(ABILITY_CONSTITUTION, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_CONSTRUCT))
{
eEffect = EffectAbilityIncrease(ABILITY_WISDOM, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_DRAGON))
{
eEffect = EffectAbilityIncrease(ABILITY_CHARISMA, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_DWARF))
{
eEffect = EffectAbilityIncrease(ABILITY_STRENGTH, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_ELEMENTAL))
{
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_COLD, 100);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_ELF))
{
eEffect = EffectAbilityIncrease(ABILITY_DEXTERITY, 40);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_FEY))
{
eEffect = EffectAbilityIncrease(ABILITY_DEXTERITY, 10);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_GIANT))
{
eEffect = EffectDamageIncrease(DAMAGE_BONUS_2d12, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_GNOME))
{
eEffect = EffectSkillIncrease(SKILL_LORE, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_HALFELF))
{
eEffect = EffectSkillIncrease(SKILL_LISTEN, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_HALFLING))
{
eEffect = EffectSkillIncrease(SKILL_OPEN_LOCK, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_HALFORC))
{
eEffect = EffectSkillIncrease(SKILL_TAUNT, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_HUMAN))
{
eEffect = EffectSkillIncrease(SKILL_TUMBLE, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_HUMANOID_GOBLINOID))
{
eEffect = EffectAbilityDecrease(ABILITY_INTELLIGENCE, 10);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_HUMANOID_MONSTROUS))
{
eEffect = EffectAbilityDecrease(ABILITY_WISDOM, 10);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_HUMANOID_ORC))
{
eEffect = EffectAbilityDecrease(ABILITY_INTELLIGENCE, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_HUMANOID_REPTILIAN))
{
eEffect = EffectAbilityIncrease(ABILITY_CONSTITUTION, 30);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_MAGICAL_BEAST))
{
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_MAGICAL, 100);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_OOZE))
{
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_ACID, 100);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_OUTSIDER))
{
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_NEGATIVE, 1000);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_SHAPECHANGER))
{
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_SLASHING, 100);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_UNDEAD))
{
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_BLUDGEONING, 100);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
else
{
if ((MyPRCGetRacialType(oTarget)==RACIAL_TYPE_VERMIN))
{
eEffect = EffectAbilityIncrease(ABILITY_DEXTERITY, 20);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 300.0f);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}