Shargast_PRC8/_module/Chapter 2/nss/bpm_ou_portal.nss
Jaysyn904 66a0a3e043 Initial commit
Initial commit.
2024-08-03 14:13:18 -04:00

44 lines
1.9 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Gatestones 1.6
//:: bpm_ou_portal
//:: Copyright (c) 2006 CarfaxAbbey.net
//:://////////////////////////////////////////////
/*
To be placed in the OnUsed Script of the portals.
*/
//:://////////////////////////////////////////////
//:: Created By: Diavlen <diavlen@carfaxabbey.net>
//:: Created On: 3/24/2004
//:: Updated on: 8/11/2006
//:://////////////////////////////////////////////
void main()
{
object oPC = GetLastUsedBy();
object oMonster;
object oDestPortal = GetLocalObject(OBJECT_SELF,"DESTPORTAL");
int nMod, nDC, nRoll;
effect eWard = EffectVisualEffect(VFX_IMP_DEATH_WARD);
AssignCommand(oPC, JumpToObject(oDestPortal));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eWard,oDestPortal,10.0);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eWard,OBJECT_SELF,10.0);
SendMessageToAllDMs(GetName(oPC) + " Ported to " + GetName(GetArea(oDestPortal)));
WriteTimestampedLogEntry(GetName(oPC) + " Ported to " + GetName(GetArea(oDestPortal)));
oMonster = GetFirstObjectInShape(SHAPE_SPHERE,60.0,GetLocation(OBJECT_SELF),TRUE,OBJECT_TYPE_CREATURE);
while (oMonster!=OBJECT_INVALID) {
if(GetIsEnemy(oMonster,oPC)) {
nMod=GetAbilityModifier(ABILITY_INTELLIGENCE,oMonster);
nRoll=d20()+nMod;
nDC=15;
if ((nRoll >= nDC)&& (nRoll < nDC+10)) {
SendMessageToAllDMs(GetName(oMonster) + " Ported to " + GetName(GetArea(oDestPortal)));
WriteTimestampedLogEntry(GetName(oMonster) + " Ported to " + GetName(GetArea(oDestPortal)));
ApplyEffectToObject(DURATION_TYPE_INSTANT,eWard,oDestPortal);
AssignCommand(oMonster,JumpToObject(oDestPortal));
}
}
oMonster=GetNextObjectInShape(SHAPE_SPHERE,60.0,GetLocation(OBJECT_SELF),TRUE,OBJECT_TYPE_CREATURE);
}
}