37 lines
1.3 KiB
Plaintext
37 lines
1.3 KiB
Plaintext
// activate crime squad
|
|
void fnCheckForDepart()
|
|
{
|
|
object oEnemy=GetNearestCreature(CREATURE_TYPE_REPUTATION,REPUTATION_TYPE_ENEMY,OBJECT_SELF,1,CREATURE_TYPE_PERCEPTION,PERCEPTION_SEEN,CREATURE_TYPE_IS_ALIVE,TRUE);
|
|
if (GetIsObjectValid(oEnemy)) DelayCommand(30.0,fnCheckForDepart());
|
|
else { DestroyObject(OBJECT_SELF); }
|
|
}
|
|
|
|
|
|
void fnReserve(location lLoc,object oPC)
|
|
{
|
|
AssignCommand(OBJECT_SELF,ClearAllActions(TRUE));
|
|
AssignCommand(OBJECT_SELF,ActionMoveToLocation(lLoc,TRUE));
|
|
SetIsTemporaryEnemy(oPC,OBJECT_SELF,TRUE,240.0);
|
|
DelayCommand(90.0,fnCheckForDepart());
|
|
}
|
|
|
|
|
|
void main()
|
|
{
|
|
object oPC=GetPCSpeaker();
|
|
object oAlly=GetNearestCreature(CREATURE_TYPE_REPUTATION,REPUTATION_TYPE_FRIEND,OBJECT_SELF,1,CREATURE_TYPE_IS_ALIVE,TRUE);
|
|
string sGuardRes="municipalguardre";
|
|
object oWP=GetNearestObjectByTag("BACKUP_GUARDS");
|
|
object oGuard;
|
|
int nN;
|
|
SetIsTemporaryEnemy(oPC,OBJECT_SELF,TRUE,240.0);
|
|
if (GetIsObjectValid(oAlly)&&GetDistanceBetween(OBJECT_SELF,oAlly)<10.0) AssignCommand(oAlly,SetIsTemporaryEnemy(oPC,oAlly,TRUE,240.0));
|
|
nN=1;
|
|
while(nN<7&&GetIsObjectValid(oWP))
|
|
{ // create backup guards
|
|
oGuard=CreateObject(OBJECT_TYPE_CREATURE,sGuardRes,GetLocation(oWP));
|
|
DelayCommand(1.0,AssignCommand(oGuard,fnReserve(GetLocation(OBJECT_SELF),oPC)));
|
|
nN++;
|
|
} // create backup guards
|
|
}
|