EN4_PRC8/_module/nss/ss1_ambush.nss
Jaysyn904 b464d8da05 Initial Commit
Initial Commit [v1.32PRC8]
2025-04-03 13:38:45 -04:00

73 lines
1.9 KiB
Plaintext

#include "rd_spawnzones"
void main()
{
object oPC;
vector vPC;
vector vNew;
location lLoc;
int iRndX;
int iRndY;
int iLevel;
int iRandom;
int iCount;
string sTag;
oPC = GetEnteringObject();
if (GetIsPC(oPC))
{
if (Random(20) == 0)
{
if (GetLocalInt(GetArea(OBJECT_SELF),"SpecialTrig") == 0)
{
SetLocalInt(GetArea(OBJECT_SELF),"SpecialTrig",1);
SendMessageToPC(oPC,"You feel the sand shift under your feet...");
iLevel = GetHitDice(oPC);
iLevel = ZoneLevel(GetArea(oPC),iLevel);
vPC = GetPosition(oPC);
iRndX = Random(6) + 4;
iRndY = Random(6) + 4;
if (Random(2) == 1) iRndX=iRndX * -1;
if (Random(2) == 1) iRndY=iRndY * -1;
vNew = vPC + Vector( iRndX/1.0, iRndY/1.0, 0.0 );
lLoc = Location(GetArea(oPC), vNew, VectorToAngle( -1.0 * vNew ) );
if (Random(2)==0)
sTag = "EN4_BSCORP";
else
sTag = "en4_giantdviper";
iCount = 0;
iRandom=Random(3)+1;
while (iCount < iRandom)
{
CreateObject(OBJECT_TYPE_CREATURE, sTag,lLoc);
iCount++;
}
vPC = GetPosition(oPC);
iRndX = Random(6) + 4;
iRndY = Random(6) + 4;
if (Random(2) == 1) iRndX=iRndX * -1;
if (Random(2) == 1) iRndY=iRndY * -1;
vNew = vPC + Vector( iRndX/1.0, iRndY/1.0, 0.0 );
lLoc = Location(GetArea(oPC), vNew, VectorToAngle( -1.0 * vNew ) );
iCount = 0;
iRandom=Random(3)+1;
while (iCount < iRandom)
{
CreateObject(OBJECT_TYPE_CREATURE, sTag,lLoc);
iCount++;
}
} else {
SetLocalInt(GetArea(OBJECT_SELF),"SpecialTrig",0);
}
}
}
}