PoA_PRC8/_module/nss/eq_immortalcrown.nss
Jaysyn904 55766b63b5 Updating scripts for PRC.
Updating scripts for PRC.
2022-10-07 21:14:47 -04:00

151 lines
4.3 KiB
Plaintext

#include "x2_inc_switches"
#include "prc_class_const"
void main()
{
object oPC = GetPCItemLastEquippedBy();
object oItem = GetPCItemLastEquipped();
if (!GetIsPC(oPC)) return;
//:: If they have the spell Clarity On take off the crown.
if (GetHasSpellEffect(SPELL_CLARITY)== TRUE)
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC);
return;
}
//:: Classes with Immunity to Mind Effects take off the crown and stop script.
if ((GetLevelByClass(CLASS_TYPE_MONK, oPC) > 19 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_BINDER, oPC) > 18 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_BAELNORN, oPC) > 0 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_LICH, oPC) > 0 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_PLANT, oPC) > 0 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_UNDEAD, oPC) > 0 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_BLIGHTLORD, oPC) > 9 == TRUE)
|| (GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER, oPC) > 19 == TRUE))
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC);
return;
}
//:: If they have mind immunity take off the crown and stop script.
if (GetIsImmune(oPC, IMMUNITY_TYPE_MIND_SPELLS)== TRUE)
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionUnequipItem(oItem));
FloatingTextStringOnCreature("A greater power prevents you from using this crown.", oPC);
return;
}
object oTarget = oPC;
if (GetItemPossessedBy(oPC, "secret2")== OBJECT_INVALID)
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectConfused(), oTarget);
}
effect eEffect;
eEffect = EffectDamageIncrease(DAMAGE_BONUS_2d12, DAMAGE_TYPE_POSITIVE);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectDamageIncrease(DAMAGE_BONUS_2d12, DAMAGE_TYPE_NEGATIVE);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectRegenerate(65, 6.0f);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectACIncrease(40);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectAttackIncrease(20);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectTemporaryHitpoints(300);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectInvisibility(EFFECT_TYPE_INVISIBILITY);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectConcealment(60);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectSpellResistanceIncrease(50);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectSavingThrowIncrease(SAVING_THROW_ALL, 12, SAVING_THROW_TYPE_ALL);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_BLUDGEONING, 90);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_PIERCING, 90);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_SLASHING, 90);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectDamageImmunityIncrease(DAMAGE_TYPE_MAGICAL, 90);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectImmunity(IMMUNITY_TYPE_CRITICAL_HIT);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
eEffect = EffectTrueSeeing();
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
}