WoR_PRC8/_module/nss/tele_magforgeout.nss
Jaysyn904 b5e28e52f4 Initial commit
Initial commit [1.18]
2025-04-03 11:49:34 -04:00

83 lines
3.1 KiB
Plaintext

location lTarget;
object oTarget;
effect eEffect;
//Put this script OnEnter
#include "prc_inc_spells"
void main()
{
object oPC = GetEnteringObject();
//Are we a pc
if (!GetIsPC(oPC)) return;
//Start of first set of conditions
/* if ((GetLevelByClass(CLASS_TYPE_BARD, oPC)==0)&&
(GetLevelByClass(CLASS_TYPE_CLERIC, oPC)==0)&&
(GetLevelByClass(CLASS_TYPE_DRUID, oPC)==0)&&
(GetLevelByClass(CLASS_TYPE_SORCERER, oPC)==0)&&
(GetLevelByClass(CLASS_TYPE_WIZARD, oPC)==0)) */
if (PRCGetCasterLevel(oPC) > 1)
{
eEffect = EffectDamage(100, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_ENERGY);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GREATER_RUIN), oPC);
oTarget = GetWaypointByTag("WP_MAGEFORGE_OUT");
lTarget = GetLocation(oTarget);
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;
AssignCommand(oPC, ClearAllActions());
DelayCommand(3.0, AssignCommand(oPC, ActionJumpToLocation(lTarget)));
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_UNSUMMON), oPC);
SendMessageToPC(oPC, "You do not possess arcane power, you have been warned!");
SetLocalInt(oPC, "WARNED", 1);
//End of first set of conditions
//Start of second set of conditions
}
else if (GetLocalInt(oPC, "WARNED")== 1)
{
eEffect = EffectDamage(200, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_ENERGY);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GREATER_RUIN), oPC);
oTarget = GetWaypointByTag("WP_MAGEFORGE_OUT");
lTarget = GetLocation(oTarget);
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;
AssignCommand(oPC, ClearAllActions());
DelayCommand(3.0, AssignCommand(oPC, ActionJumpToLocation(lTarget)));
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_UNSUMMON), oPC);
SendMessageToPC(oPC, "You have recieved your second warning!");
SetLocalInt(oPC, "WARNED", 2);
//End of second set of conditions
//Start of third set of conditions
}
else if (GetLocalInt(oPC, "WARNED")== 2)
{
eEffect = EffectDamage(300, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_ENERGY);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GREATER_RUIN), oPC);
oTarget = GetWaypointByTag("WP_MAGEFORGE_OUT");
lTarget = GetLocation(oTarget);
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;
AssignCommand(oPC, ClearAllActions());
DelayCommand(3.0, AssignCommand(oPC, ActionJumpToLocation(lTarget)));
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_UNSUMMON), oPC);
SendMessageToPC(oPC, "This is your final warning!");
//End of third set of conditions
//Start of forth and final set of conditions
}
else if (GetLocalInt(oPC, "WARNED")== 3)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GREATER_RUIN), oPC);
eEffect = EffectDeath();
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 0.0f);
SendMessageToPC(oPC, "You should have listened to the warnings.");
}
else
{
}
}