void main()
{
object oPC= GetEnteringObject();
if (GetIsPC(oPC)) {
 int NumOfParty = 0;
 object oPartyMember = GetFirstFactionMember(oPC, TRUE);
    while(GetIsObjectValid(oPartyMember))  {

        if (GetArea(oPC) == GetArea(oPartyMember))
        {
        NumOfParty++;
        }
          oPartyMember = GetNextFactionMember(oPC, TRUE);
        }


if (NumOfParty >= 3){return;}


int roll = d100() ;
 if (NumOfParty == 2){roll = roll +1;}
string percent = IntToString(roll);
string msg = (", and is not activated on " + GetName(oPC) + ".");
if (roll<=2){ msg = (". Drow Ambush activated on " + GetName(oPC) + ".");}

//SendMessageToAllDMs("Ambush trigger rolls a " + percent + msg);
if (roll <= 2){
location ambush1 = GetLocation(GetNearestObjectByTag("ambush1"));
location ambush2 = GetLocation(GetNearestObjectByTag("ambush2"));
location ambush3 = GetLocation(GetNearestObjectByTag("ambush3"));

CreateObject( OBJECT_TYPE_CREATURE, "drowwizard001", ambush1);
CreateObject( OBJECT_TYPE_CREATURE, "drowwizard001", ambush2);
CreateObject( OBJECT_TYPE_CREATURE, "drowwarrior1", ambush3);
CreateObject( OBJECT_TYPE_CREATURE, "drowwarrior1", ambush3);
CreateObject( OBJECT_TYPE_CREATURE, "drowwarrior1", ambush3);
CreateObject( OBJECT_TYPE_CREATURE, "drowbattlespider", ambush2);
CreateObject( OBJECT_TYPE_CREATURE, "drowbattlespider", ambush2);
CreateObject( OBJECT_TYPE_CREATURE, "drowbattlespider", ambush3);
CreateObject( OBJECT_TYPE_CREATURE, "drowbattlespider", ambush3);

ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, SupernaturalEffect(EffectVisualEffect(VFX_DUR_DARKNESS)),ambush1, 180.0);
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, SupernaturalEffect(EffectVisualEffect(VFX_DUR_DARKNESS)),ambush2, 180.0);
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, SupernaturalEffect(EffectVisualEffect(VFX_DUR_DARKNESS)),ambush3, 180.0);

FloatingTextStringOnCreature("IT'S AN AMBUSH!", oPC, TRUE);
}

}

}