void do_npc_special(void self)
{
   int x = getentityproperty(self, "x");
   int z = getentityproperty(self, "z");
   int a = getentityproperty(self, "a");
   int zz = (x - 8);
   int direction = getentityproperty(self, "direction");
    int i;
    void ent;
    for(i=0; i<openborvariant("ent_max"); i++)
    {
      ent = getentity(i);
      if(getentityproperty(ent, "exists") && getentityproperty(ent, "parent") == self){
	 performattack(ent, openborconstant("ANI_RUNATTACK") );
	 changeentityproperty(ent, "position", zz, z, 0);
	 changeentityproperty(ent, "direction", direction);
      }
    }
}


void do_npc_special5(void self)
{
    int i;
    void ent;
    for(i=0; i<openborvariant("ent_max"); i++)
    {
      ent = getentity(i);
      if(getentityproperty(ent, "exists") && getentityproperty(ent, "parent") == self){
         changeentityproperty(ent, "animation", openborconstant("ANI_RUNATTACK"));
      }
    }
}

void do_npc_hyper(void self)
{
   int x = getentityproperty(self, "x");
   int z = getentityproperty(self, "z");
   int a = getentityproperty(self, "a");
   int direction = getentityproperty(self, "direction");
    int i;
    void ent;
    for(i=0; i<openborvariant("ent_max"); i++)
    {
      ent = getentity(i);
      if(getentityproperty(ent, "exists") && getentityproperty(ent, "parent") == self){
	 performattack(ent, openborconstant("ANI_FREESPECIAL4") );
	 changeentityproperty(ent, "position", x, z, a);
	 changeentityproperty(ent, "direction", direction);
      }
    }
}

void do_npc_special2(void self)
{
   int x = getentityproperty(self, "x");
   int z = getentityproperty(self, "z");
   int a = getentityproperty(self, "a");
   int direction = getentityproperty(self, "direction");
    int i;
    void ent;
    for(i=0; i<openborvariant("ent_max"); i++)
    {
      ent = getentity(i);
      if(getentityproperty(ent, "exists") && getentityproperty(ent, "parent") == self){
	 performattack(ent, openborconstant("ANI_FREESPECIAL2") );
	 changeentityproperty(ent, "position", x, z, a);
	 changeentityproperty(ent, "direction", direction);
      }
    }
}

void do_npc_special3(void self)
{
   int x = getentityproperty(self, "x");
   int z = getentityproperty(self, "z");
   int a = getentityproperty(self, "a");
   int direction = getentityproperty(self, "direction");
    int i;
    void ent;
    for(i=0; i<openborvariant("ent_max"); i++)
    {
      ent = getentity(i);
      if(getentityproperty(ent, "exists") && getentityproperty(ent, "parent") == self){
	 performattack(ent, openborconstant("ANI_FREESPECIAL3") );
	 changeentityproperty(ent, "position", x, z, a);
	 changeentityproperty(ent, "direction", direction);
      }
    }
}

