void main()
{
object oZhent=GetObjectByTag("jw_new_zhent_wiz");
object oPC=GetClickingObject();
int nDoor=GetLocalInt(oPC,"jw_new_door");

int nDisguised=0;
if (GetTag(GetItemInSlot(INVENTORY_SLOT_CHEST,oPC))=="jw_zhent_splint"||GetTag(GetItemInSlot(INVENTORY_SLOT_CHEST,oPC))=="jw_new_zh_robe")
{
nDisguised=1;
}

if (GetObjectSeen(oPC,oZhent)&&nDoor<3&&nDisguised==0)
{
AssignCommand(oZhent,SetFacingPoint(GetPosition(oPC)));
AssignCommand(oZhent,SpeakString("You leave that door alone or there'll be trouble. Go on now, get out of here!"));
AssignCommand(oZhent,PlaySound("vs_nwizarm1_warn"));
SetLocalInt(oPC,"jw_new_door",nDoor+1);
}

else

if (GetObjectSeen(oPC,oZhent)&&nDoor>=3&&nDisguised==0)
{
//AssignCommand(oZhent,SetFacingPoint(GetPosition(oPC)));
AssignCommand(oZhent,SpeakString("I warned you!"));
SetIsTemporaryEnemy(oPC,oZhent);
AssignCommand(oZhent,ActionAttack(oPC));
location lTarget=GetLocation(OBJECT_SELF);
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_GARGANTUAN, lTarget, TRUE, OBJECT_TYPE_CREATURE);
    //Cycle through the targets within the spell shape until an invalid object is captured.
    while (GetIsObjectValid(oTarget))
    {
      if (GetIsFriend(oTarget,oZhent))
      {
      SetIsTemporaryEnemy(oPC,oTarget);
      AssignCommand(oTarget,ActionAttack(oPC));
      }

       //Select the next target within the shape.
     oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_GARGANTUAN, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR);
    }
  }

}