For instructions on using this, see my Anything Thief thread.

Code:
program GnomeAgilityPipe;
 
{
   ===============================================
   Gnome Agility script for RS1
   Start at the pipe with the camera facing north.
   Sleeping bag goes in the first slot.
   Set username and password below.
   ===============================================
}
 
var
  x, y: Integer;
  s: string;
const
username ='';
password ='';
 
procedure DoAgility;
begin
repeat
      if (FindColorSpiral (x, y, 5197647, 80, 80, 420, 270)) then
         begin
              wait(200);
              MoveMouse(x, y);
              if(IsTextAt(6,2,'pipe: enter'))then
              begin
                 status ('Going through the pipe');
                 ClickMouse(x, y, True);
                 Wait(5000 + Random(200));
              end;
         end;
    s:= GetChatMsg;
    until(s = 'you are too tired to train');
end;
 
procedure AutoLogin;
begin
     if (FindColorSpiral (x, y, 7888212, 300, 305, 355, 308)) then
     if (FindColorSpiral (x, y, 16777215, 80, 245, 95, 265)) then
     begin
              status ('Logging in');
              // Click on "Click here to login"
              ClickMouse(255, 285, True);
              wait(500);
              // Enter username
              ClickMouse(150, 250, True);
              wait(500);
              SendKeysSilent(username);
              wait(300);
              // Enter password
              ClickMouse(190, 300, True);
              wait(500);
              SendKeysSilent(password);
              wait(500);
              // Log in
              ClickMouse(410, 250, True);
              wait(5000);
              // Close welcome screen
              ClickMouse(254, 217, True);
              wait(500);
     end;
end;
 
 
procedure Sleep;
begin
if (IsTextAt (7, 304, 'you are too')) then
begin
    status ('Sleeping.');
    MoveMouse (490, 15)
    Wait (300);
      ClickMouse (280, 50, True);
      Wait(2000)
      repeat
            wait (50);
      until (IsTextAt (7, 304,'You wake up')) or
            (IsTextAt (7, 304,'You are unexpectedly awoken')) or
            (IsTextAt (7, 304,'You can t do that whilst'));
   MoveMouse(20,20)
   wait (5000);
end;
wait (5000);
end;
 
begin
  repeat
    AutoLogin;
    DoAgility;
    Sleep;
  until(False);
end.