76 lines
1.5 KiB
Plaintext
76 lines
1.5 KiB
Plaintext
|
#include "rd_spawnzones"
|
||
|
#include "utl_i_sqluuid"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
object oPC = GetEnteringObject();
|
||
|
vector vPC;
|
||
|
vector vNew;
|
||
|
location lLoc;
|
||
|
int iRndX;
|
||
|
int iRndY;
|
||
|
int iLevel;
|
||
|
string sTag;
|
||
|
|
||
|
if (GetIsPC(oPC))
|
||
|
{
|
||
|
if (Random(20) == 0)
|
||
|
{
|
||
|
if (GetLocalInt(GetArea(OBJECT_SELF),"SpecialTrig") == 0)
|
||
|
{
|
||
|
SetLocalInt(GetArea(OBJECT_SELF),"SpecialTrig",1);
|
||
|
SendMessageToPC(oPC,"You hear a twig snap...");
|
||
|
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 (iLevel > 25)
|
||
|
sTag = "fiend";
|
||
|
|
||
|
else if (iLevel > 10)
|
||
|
sTag = "merc";
|
||
|
|
||
|
else
|
||
|
sTag = "bandit";
|
||
|
|
||
|
if (SQLocalsUUID_GetInt(oPC,"EvilPath") > 1)
|
||
|
{
|
||
|
if (iLevel > 25)
|
||
|
sTag = "angelic";
|
||
|
|
||
|
else if (Random(2) == 0)
|
||
|
sTag = "elf";
|
||
|
|
||
|
else
|
||
|
sTag = "dwarf";
|
||
|
}
|
||
|
|
||
|
GetRaceCreatures(sTag,lLoc,iLevel,3);
|
||
|
|
||
|
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 ) );
|
||
|
|
||
|
GetRaceCreatures(sTag,lLoc,iLevel,3);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
SetLocalInt(GetArea(OBJECT_SELF),"SpecialTrig",0);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|