Easyslime
function Attacking: boolean;
begin
   UpdateWorld;
   for x := 0 to Creatures.Count - 1 do
   begin
      UpdateWorld;
      if Creatures.Creature[x].Attacking then
      begin
         Result := True;
         Exit;
      end;
   end;
   Result := False;
   Exit;
end;
 
function GetFollowedCreatureID: integer;
begin
   UpdateWorld;
   for x := 0 to Creatures.Count - 1 do
   begin
      UpdateWorld;
      if Creatures.Creature[x].Following then
      begin
         Result := Creatures.Creature[x].ID;
         Exit;
      end;
   end;
end;
 
var
   MotherSlime, X1, Y1: integer;
begin
   MotherSlime := GetFollowedCreatureID;
   while not Terminated do
   begin
      UpdateWorld;
      if not Attacking then
      begin
         UpdateWorld;
         for x := 0 to Creatures.Count - 1 do
         begin
            UpdateWorld;
            if Creatures.Creature[x].ID <> MotherSlime then
            begin
               if (Creatures.Creature[x].Name <> Self.Name) and Creatures.Creature[x].NPC then
               begin
                  UpdateWorld;
                  X1 := Creatures.Creature[x].X;
                  Y1 := Creatures.Creature[x].Y;
                  if (X1 - Self.X = 1) or (X1 - Self.X = 0) or (X1 - Self.X = -1) then
                  begin
                     UpdateWorld;
                     if (Y1 - Self.Y = 1) or (Y1 - Self.Y = 0) or (Y1 - Self.Y = -1) then
                     begin
                        Creatures.Creature[x].Attacking := true;
                        Break;
                     end;
                  end;
               end;
            end;
         end;
      end;
      Sleep(1000);
   end;
end;
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License