New Rs update: no macro log ins..

Discussion in 'RuneScape Scripts' started by pwntagev2, Nov 26, 2008.

New Rs update: no macro log ins..
  1. Unread #1 - Nov 26, 2008 at 9:01 AM
  2. pwntagev2
    Referrals:
    0

    pwntagev2 Guest

    New Rs update: no macro log ins..

    I know this might be in the wrong place but when ever your macro's try to log in they just have the mouse shaking in 'Please Log In' words. Advanced Draynor Willow Cutter + Banker and BCD (Draynor Chop'N Bank) dont log in. UPDATE:

    Code:
    //-----------------------------------------------------------------//
    //--               Scar Standard Resource Library                --//
    //--               » Login Routines                              --//
    //-----------------------------------------------------------------//
    // * function  RSReady: Boolean;                      // * by ZephyrsFury
    // * Procedure LoginScreenMusic(State: Variant);      // * by Wizzup?
    // * procedure Login_SetAudio(Volume, SFX, Area: Integer; SMSetting: (Stereo, Mono, NoChange) );  // * by ZephyrsFury
    // * procedure Login_SetGraphics(Brightness: Integer; vl, rr, gd, td, ia, fl, gt, cs: string);    // * by ZephyrsFury
    // * procedure SetAutoingDefaults;                    // * by ZephyrsFury
    // * procedure Logout;                                // * by Starblaster100 and Raymond
    // * procedure LoginPlayer;                           // * by SRL Developers
    // * procedure RandomNextPlayer(Active: Boolean);     // * by Dankness, Ron and Raymond
    // * procedure NextPlayer(Active: Boolean);           // * by Dankness, Ron and Raymond
    // * procedure CheckUserNicks;                        // * by Sumilion and Raymond
     
    { var SRL_Logs: Integer;
      Description: Variables needed for some login functions. }
    { var RandomPlayer, GraphicsSet: Boolean;
      Description: Variables needed for some login functions. }
    var
      SRL_Logs: Integer;
      RandomPlayer, GraphicsSet: Boolean;
     
    procedure NextPlayer(Active: Boolean); forward;
    procedure RandomNextPlayer(Active: Boolean); forward;
     
    {*******************************************************************************
    function RSReady: Boolean;
    By: ZephyrsFury
    Description: Returns true if we are ready to auto (on loginscreen or logged in).
      Useful for waiting until RS has fully loaded.
    *******************************************************************************}
     
    function RSReady: Boolean;
    begin
      Result := (LoggedIn) or (GetColor(520, 146) = 4038981);
    end;
     
    {*******************************************************************************
    Procedure LoginScreenMusic(State: Variant);
    By: Wizzup?
    Description: Takes Boolean(True, False) or Integer(1..5) as arguments.
      1 or True = Off, 5 or False = Max.
          1   2   3   4   5
        <-o---o---o---o---o->
    *******************************************************************************}
     
    Procedure LoginScreenMusic(State: Variant);
     
    Var
       RealState: Variant;
       x: Extended;
     
    Begin
      if (LoggedIn) then Exit;
      if (CountColor(7750, 346, 356, 416, 369) <> 119) and (GetColor(520, 135) = 4038981) then
      begin
        TypeByte(vk_Escape);
        Wait(100);
      end;
      if (CountColor(7750, 346, 356, 416, 369) <> 119) then Exit;
      Case VarType(State) Of
      11: RealState := (State + 1) * 4;
      3: If InRange(State, 1, 5) Then
           RealState := State - 1;
         Else
           RealState := 0;
      End;
      x := (425.0 - 337.0) * RealState / 4.0 + 339.0;
      If CountColorTolerance(1647966, Round(x) - 5, 375, Round(x) + 5, 385, 20) < 5 Then
        If CountColorTolerance(991349, Round(x) - 5, 375, Round(x) + 5, 385, 20) < 5 Then
          Mouse(Round(x), RandomRange(375, 385), 0, 0, True);
     
    End;
     
    {*******************************************************************************
    procedure Login_SetAudio(Volume, SFX, Area: Integer; SMSetting: (Stereo, Mono, NoChange) );
    By: ZephyrsFury
    Description: Sets audio options through the login screen.
    Use: Enter the desired Setting for the desired Option. Make option 0 for no change.
      EG. Login_SetAudio(1, 5, 2, NoChange);
     
                            1   2   3   4   5
      Volume, SFX, Area:  <-o---o---o---o---o->
    *******************************************************************************}
     
    procedure Login_SetAudio(Volume, SFX, Area: Integer; SMSetting: TSMSetting);
    var
      II, Tx, Ty, T: Integer;
      Pts: TIntegerArray;
    begin
      if (LoggedIn) then Exit;
      TypeByte(vk_Escape);
      T := GetSystemTime;
      while (CountColor(7750, 346, 373, 416, 386) <> 119) and (GetSystemTime - T < 5000) do
        Wait(100);
      if (CountColor(7750, 346, 373, 416, 386) = 119) then
        MouseBox(334, 362, 426, 371, 1)
      else
        Exit;
      Wait(100);
      Pts := [Volume, SFX, Area];
      for II := 0 to 2 do
      begin
        if (Pts[II] = 0) then Continue;
        if (not(InRange(Pts[II], 0, 5))) then
        begin
          srl_Warn('Login_SetAudio', 'Points must be between 0 and 5', warn_AllVersions);
          Continue;
        end;
        Tx := 337 + Round((425 - 337) * (Pts[II] - 1) / 4);
        Ty := Round(3.5 * II * II + 46.5 * II + 245);
        if (GetColor(Tx, Ty) <> 1121100) then
          Mouse(Tx + 2, Ty - 14, 0, 0, True);
        Wait(50);
      end;
      if (GetColor(337, 389) = 181) and (SMSetting = Stereo) then
        Mouse(421, 385, 10, 10, True)
      else
      if (GetColor(426, 389) = 181) and (SMSetting = Mono) then
        Mouse(332, 385, 10, 10, True);
      Wait(100);
      TypeByte(vk_Escape);
    end;
     
    {*******************************************************************************
    procedure Login_SetGraphics(Brightness: Integer; vl, rr, gd, td, ia, fe, gt, cs: string);
    By: ZephyrsFury
    Description: Sets graphic options in the login screen.
    Use: Enter the desired Setting for the desired Option.
      Leave as 0 for no change of brightness and '' for no change in anything else.
     
      Parameter    Option                Setting
        Brightness   Brightness            1 - 4 (0 for no change)
        vl           Visible Levels        Current / All
        rr           Remove Roofs          Always / Selectively
        gd           Ground Decoration     Off / On
        td           Texture Detail        Low / High
        ia           Idle Animations       Few / Many
        fe           Flickering Effects    Off / On
        gt           Ground Textures       Few / Many
        cs           Chracter Shadows      Off / On
     
                        1   2   3   4
      Brightness:   <---o---o---o---o--->
     
    EG. Login_SetGraphics(2, 'current', '', 'off', 'low', 'few', '', 'few', 'off');
     
    For Autoing:
    Login_SetGraphics(4, 'current', 'always', 'off', 'low', 'few', 'off', 'few', 'off');
    *******************************************************************************}
     
    procedure Login_SetGraphics(Brightness: Integer; vl, rr, gd, td, ia, fe, gt, cs: string);
    var
      Settings, PosSettings, OptionName: TStringArray;
      II, T, W, tCol, x, y, mSpeed: Integer;
      TB: TBox;
      P: TPoint;
    begin
      if (LoggedIn) then Exit;
      Settings := [vl, rr, gd, td, ia, fe, gt, cs];
      PosSettings := ['Current', 'All', 'Always', 'Selectively', 'Off', 'On', 'Low',
        'High', 'Few', 'Many', 'Off', 'On', 'Few', 'Many', 'Off', 'On'];
      OptionName := ['Visible levels', 'Remove roofs', 'Ground decoration', 'Texture detail',
        'Idle animations', 'Flickering effects', 'Ground textures', 'Character shadows'];
      TypeByte(vk_Escape);
      T := GetSystemTime;
      while (CountColor(7750, 346, 373, 416, 386) <> 119) and (GetSystemTime - T < 5000) do
        Wait(100);
      if (CountColor(7750, 346, 373, 416, 386) = 119) then
        MouseBox(321, 338, 443, 346, 1)
      else
        Exit;
      mSpeed := MouseSpeed;
      MouseSpeed := 25;
      Wait(100);
      if (Brightness > 4) then
        srl_Warn('Login_SetGraphics', 'Brightness must be between 0 and 4', warn_AllVersions)
      else
      if (Brightness <> 0) then
      begin
        P := Point(89 + (Brightness - 1) * 21, 266);
        if (GetColor(P.x, P.y) <> 1121100) then
          Mouse(P.x - 3, P.y - 17, 6, 6, True);
      end;
      for II := 0 to 7 do
      begin
        TB.x1 := 67 + 130 * ((II + 1) mod 5);
        TB.y1 := 245 + 60 * ((II + 1) div 5);
        TB.x2 := TB.x1 + 109;
        TB.y2 := TB.y1 + 15;
        if (not(InStrArrEx(Capitalize(Settings[II]), [PosSettings[II * 2], PosSettings[II * 2 + 1]], W))) then
        begin
          srl_Warn('Login_SetGraphics', 'Invalid Setting: ' + Settings[II] + ' for Option: ' + OptionName[II] + '.', warn_AllVersions);
          Continue;
        end;
        tCol := (W mod 2) * 16777088 + 127;
        if (not(FindColor(x, y, tCol, TB.x1, TB.y1, TB.x2, TB.y2))) then
        begin
          Mouse(TB.x1 + 10, TB.y1 + 3, 10, 7, True);
          if (FindColor(x, y, tCol, TB.x1, TB.y2 + 1, TB.x2, TB.y2 + 1 + 51)) then
            Mouse(x, y, 10, 7, True)
          else
            MouseBox(TB.x1 + 10, TB.y1 + 3, TB.x2 - 40, TB.y2 - 3, 1);
        end;
      end;
      Wait(100);
      TypeByte(vk_Escape);
      MouseSpeed := mSpeed;
    end;
     
    {*******************************************************************************
    procedure SetAudioOff;
    By: ZephyrsFury
    Description: Sets the Audio to off (1 for each bar). Works logged in and out.
    *******************************************************************************}
     
    procedure SetAudioOff;
    begin
      if (LoggedIn) then
        SetAudio(1, 1, 1, NoChange)
      else
        Login_SetAudio(1, 1, 1, NoChange);
    end;
     
    {*******************************************************************************
    procedure SetAutoingDefaults;
    By: ZephyrsFury
    Description: Sets the graphic options for best SRL compatibility. Works both logged in and out.
    *******************************************************************************}
     
    procedure SetAutoingDefaults;
    begin
      if (LoggedIn) then
        SetGraphics(4, 'current', 'always', 'off', 'low', 'few', 'off', 'few', 'off')
      else
        Login_SetGraphics(4, 'current', 'always', 'off', 'low', 'few', 'off', 'few', 'off');
    end;
     
    {*******************************************************************************
    procedure Logout;
    By: Starblaster100 / Raymond
    Description: Logs you out.
    *******************************************************************************}
     
    function Logout: Boolean;
    var
      c, i: Integer;
    begin
      Result := (not (LoggedIn));
      if Result = True then
        Exit;
      if GameTab(14) = False then
        Exit;
      Wait(200 + Random(100));
      while (LoggedIn) and (c < 10) do
      begin
        Inc(c);
        if(ClickText('here', UpChars, MIX1, MIY1, MIX2, MIY2, True))then
          for i := 0 to 10 do
          begin
            Wait(1000);
            if not(LoggedIn)then
            begin
              Result := True;
              Exit;
            end;
          end;
      end;
    end;
     
    {*******************************************************************************
    procedure LoginPlayer;
    By: SRL Developers
    Description: Logs in the Player[CurrentPlayer]. Detects most Client Login Errors
    *******************************************************************************}
     
    procedure LoginPlayer;
    var
      Mark, Attempts: Integer;
      Actions: TVariantArray;
      RetryLogin: Boolean;
    label
      ProcStart;
    begin
      ActivateClient;
      Wait(100);
     
      if (GetColor(212, 327) = 238301) then    //At Click To Play screen
      begin
        Wait(1000 + Random(3000));
        MouseBox(227, 337, 555, 364, 1);
        MarkTime(Mark);
        while (TimeFromMark(Mark) < 30000) and (not(LoggedIn)) do
          Wait(1000 + Random(1000));
      end;
      if (not(RSReady)) then
      begin
        MarkTime(Mark);
        while (not(RSReady)) do
        begin
          Wait(100);
          if (TimeFromMark(Mark) > 180000) then
          begin
            WriteLn('It has been 3 minutes and Runescape is not yet ready... Terminating.');
            TerminateScript;
          end;
        end;
        WriteLn('Welcome to Runescape.');
      end;
      
      LoginScreenMusic(True);
      if (not(GraphicsSet)) then
      begin
        SetAutoingDefaults;
        GraphicsSet := True;
      end;
      ProcStart:
     
      if (not(LoggedIn)) then
      begin
        if (not(Players[CurrentPlayer].Active)) then
        begin
          WriteLn('Player is not Active...');
          NextPlayer(False);
          Exit;
        end;
        Wait(900 + random(60));
     
        //Click 'Log In' on main menu
        while (GetColor(343, 176) <> 7750) do
        begin
          MouseBox(360, 180, 400, 185, 1);
          Wait(100 + Random(100));
        end;
     
        //Type Username
        Mouse(315, 272, 10, 5, True);
        while (CountColor(7750, 311, 269, 452, 284) > 13) do
        begin
          KeyDown(vk_Back);
          Wait(10 + Random(10));
          KeyUp(vk_Back);
          Wait(50 + Random(50));
        end;
        for Mark := 0 to 3 do
        begin
          KeyDown(vk_Back);
          Wait(10 + Random(10));
          KeyUp(vk_Back);
          Wait(50 + Random(50));
        end;
        Wait(100 + Random(200));
        WriteLn(Capitalize(Players[CurrentPlayer].Name));
        TypeSend(Players[CurrentPlayer].Name);
        Wait(100+random(50));
     
        //Type Password
        Mouse(315, 334, 10, 5, True);
        while (CountColor(7750, 311, 337, 452, 352) > 13) do
        begin
          KeyDown(vk_Back);
          Wait(10 + Random(10));
          KeyUp(vk_Back);
          Wait(50 + Random(50));
        end;
        for Mark := 0 to 3 do
        begin
          KeyDown(vk_Back);
          Wait(10 + Random(10));
          KeyUp(vk_Back);
          Wait(50 + Random(50));
        end;
        Wait(100 + Random(200));
        TypeSend(Players[CurrentPlayer].Pass);
        Wait(500 + Random(300));
     
        if (not(FindTextTPA(12509695, 0, 288, 205, 475, 247, 'login', StatChars, Nothing))) then   //If 'enter' from typesend didn't log us in
        begin
          MouseBox(355, 359, 403, 372, 1);  //Click 'login' login screen
          Wait(250 + random(100));
        end;
     
        MarkTime(Mark);
        repeat
          SetLength(Actions, 0);
     
          if (TimeFromMark(Mark) > 60000) then
            Actions := ['One minute has passed...', 0, 2, 'NextPlayer', 'Login Failed']
          else
          case (CountColor(12509695, 288, 205, 475, 247)) of   //Number of text colour points
            //   Actions := ['WriteLn Text', TimeToWait, NumberOfRetries, 'FinalAction', 'PlayerStatus'];
            760: Actions := ['Too many incorrect logins.', 5 * 60000, 2, 'NextPlayer', ''];
            536: Actions := ['Login limit exceeded. Please wait 1 minute and try again.', 60000, 2, 'NextPlayer', ''];
            711: Actions := ['Your account has been disabled', 0, 0, 'NextPlayer', 'Acc Disabled'];
            598: Actions := ['Invalid Username \ Password', 0, 2, 'NextPlayer', 'Wrong User/Pass'];
            917: Actions := ['Not a Members Account', 0, 0, 'NextPlayer', 'Non-member'];
            408: Actions := ['World is full.', 5000, 20, 'Terminate', ''];
            623: Actions := ['Your account is already logged in', 5000, 0, 'RandomNextPlayer', ''];
            555: Actions := ['The Server is being updated.', 60000, 4, 'Terminate', 'Server Updating'];
            218: Actions := ['Error Connecting.', 20000, 9, 'Terminate', 'Error Connecting'];
            335: Actions := ['Unable to connect Login Server offline.',(20000) + Random(6000), 4, 'Terminate', 'Login Server Offline'];
            512: Actions := ['RuneScape has been updated. Script Terminated.', 0, 0, 'Terminate', 'RS Updated'];
            489: Actions := ['Connection timed out.', 0, 4, 'Terminate', 'Connection Timed Out'];
            737: Actions := ['You are standing in a members-only area.', 0, 0, 'NextPlayer', 'In Mems-Only Area'];
            //10: Actions := ['Error loading your profile.', 5000, 10, 'NextPlayer', 'Profile Loading Failed']; // Error loading your profile. Will attempt to re-login 5 more times.)
            //11: Actions := ['Login server rejected session.', 1000, 10, 'NextPlayer', 'Login Serv. Rejected'];  // Login server rejected session.
          end;
     
          if (Length(Actions) > 0) then
          begin
            WriteLn(Actions[0]);
            Wait(Actions[1] + Random(100));
            if (Actions[2] <> 0) then
              if (Attempts < Actions[2]) or (Actions[2] = -1) then
              begin
                RetryLogin := True;
                Break;
              end;
            if (Actions[4] <> '') then
              Players[CurrentPlayer].Loc := Actions[4];
            case Actions[3] of
              'NextPlayer': NextPlayer(False);
              'RandomNextPlayer': RandomNextPlayer(True);
              'Terminate': TerminateScript;
            end;
            Exit;
          end;
          Wait(100);
        until(GetColor(212, 327) = 238301);
     
        if (RetryLogin) then
        begin
          RetryLogin := False;
          Inc(Attempts);
          goto ProcStart;
        end;
     
        if (GetColor(212, 327) = 238301) then
        begin
          Wait(1000 + Random(2000));
          MouseBox(227, 337, 555, 364, 1);
        end;
        MarkTime(Mark);
        while (TimeFromMark(Mark) < 30000) and (not(LoggedIn)) do
          Wait(1000 + Random(1000));
      end;
     
      if (LoggedIn) then
      begin
        PlayerStartTime := (GetSystemTime div 1000); // PlayerStartTime
        if Length(Players[CurrentPlayer].NickTPA) < 2 then
        begin;
          Writeln('Creating the NickTPA.');
          if Players[CurrentPlayer].Nick <> '' then
            Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Nick, UpChars)
          else
          begin;
            Writeln('Nickname isn''t set, taking the username instead..');
            Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Name, UpChars);
          end;
        end;
        AddToSRLLog('Current player: ' + Capitalize(Players[CurrentPlayer].Name));
      end;
    end;
     
    {*******************************************************************************
    procedure RandomNextPlayer(Active: Boolean);
    By: Dankness based on WT-Fawki's NextPlayer and modified by Ron and by Raymond
    Description: Picks Random Player that is Active and Logs in
    *******************************************************************************}
     
    procedure RandomNextPlayer(Active: Boolean);
    var
      LastPlayer: Integer;
    begin
      WriteLn('NextPlayer');
      LastPlayer := CurrentPlayer;
      Players[CurrentPlayer].Active := Active;
      Logout;
      PlayerCurTime := (GetSystemTime div 1000);
      Players[CurrentPlayer].Worked := Players[CurrentPlayer].Worked +
        ((PlayerCurTime - PlayerStartTime) / 60);
      repeat
        if (AllPlayersInactive) then Wait(60000);
        if (PlayersActive = 1) then Break;
        CurrentPlayer := Random(HowManyPlayers);
        Wait(100);
      until (Players[CurrentPlayer].Active) and (LastPlayer <> CurrentPlayer);
      SRL_Logs := SRL_Logs + 1;
      LoginPlayer;
    end;
     
    {*******************************************************************************
    procedure NextPlayer(Active: Boolean);
    By: Dankness and modified by Ron and by Raymond
    Description: Logs in the next player.
    Boolean: True - Current player is ok. False - Current player is false.
    *******************************************************************************}
     
    procedure NextPlayer(Active: Boolean);
    begin
      if RandomPlayer then
        RandomNextPlayer(Active)
      else
      begin
        WriteLn('NextPlayer(Active: ' + BoolToStr(Active)+ ');');
        Players[CurrentPlayer].Active := Active;
        Logout;
        PlayerCurTime := (GetSystemTime div 1000);
        Players[CurrentPlayer].Worked := Players[CurrentPlayer].Worked +
          ((PlayerCurTime - PlayerStartTime) / 60);
        CurrentPlayer := (CurrentPlayer + 1) mod Length(Players);
        while Players[CurrentPlayer].Active = False do
        begin
          CurrentPlayer := (CurrentPlayer + 1) mod Length(Players);
          if (AllPlayersInactive) then Wait(60000); // Everybody False. Endless Loop.
        end;
        SRL_Logs := SRL_Logs + 1;
        LoginPlayer;
      end;
    end;
     
    {*******************************************************************************
    procedure CheckUserNicks;
    By: Sumilion / Raymond
    Description: Checks if all nicks are set correct.
    *******************************************************************************}
     
    procedure CheckUserNicks;
    var
      CorrectString: string;
      i: Integer;
      Wrong : Boolean;
      Str : String;
    begin
      for i := 0 to HowManyPlayers - 1 do
      begin
        if (not(Players[CurrentPlayer].Active)) then Continue;
        Wrong := False;
        if (Players[i].Nick = '') then
        begin
          Wrong := True;
          Str := 'WARNING : Please fill in your nickname.';
        end;
        if (Players[i].Nick <> LowerCase(Players[i].Nick)) then
        begin
          Wrong := True;
          Str := 'WARNING : Please Uncapitalise your nickname.';
        end;
        if (pos(Players[i].Nick, LowerCase(Players[i].Name)) = 1) then
        begin
          Wrong := True;
          Str := 'WARNING : Dont use the first letter in your nick.';
        end;
        if (pos(' ', Players[i].Nick) > 0) then
        begin
          Wrong := True;
          Str := 'WARNING : Dont use spaces in your Nick.';
        end;
        CorrectString := Capitalize(Players[i].Name);
        if not (Pos(LowerCase(Players[i].Nick), CorrectString) > 0) then
        begin
          Wrong := true;
          Str := 'WARNING : Nick does NOT match the name.';
        end;
        if Wrong then
        begin;
          Writeln('--');
          Writeln(Str);
          if (Length(Players[i].Name) > 0) then
            Writeln('Warning occured with player : ' + Players[i].Name);
          Writeln('For more information, visit http://www.srl-forums.com/forum/set-up-your-t6267.html');
        end;
      end;
    end;
     
  3. Unread #2 - Nov 26, 2008 at 11:23 AM
  4. RichNubzor
    Referrals:
    0

    RichNubzor Guest

    New Rs update: no macro log ins..

    Yeah, I found that I had the same problem earlier :S.
     
  5. Unread #3 - Nov 26, 2008 at 11:28 AM
  6. HyperSecret
    Joined:
    Jun 5, 2007
    Posts:
    123
    Referrals:
    0
    Sythe Gold:
    0

    HyperSecret Active Member

    New Rs update: no macro log ins..

  7. Unread #4 - Nov 26, 2008 at 3:28 PM
  8. guinner
    Joined:
    Nov 22, 2008
    Posts:
    30
    Referrals:
    0
    Sythe Gold:
    0

    guinner Member

    New Rs update: no macro log ins..

    yes!! that's what was wong with mine! I told you guys there was a problem. When somone has an updated draynor chop and banker with this problem save please let me know.
     
  9. Unread #5 - Nov 27, 2008 at 3:48 AM
  10. Bbri06
    Joined:
    May 21, 2006
    Posts:
    911
    Referrals:
    1
    Sythe Gold:
    0

    Bbri06 Apprentice

    New Rs update: no macro log ins..

    Err, Hyper just linked you to the fix. I don't think the script will need updating.
     
  11. Unread #6 - Nov 27, 2008 at 4:31 AM
  12. guinner
    Joined:
    Nov 22, 2008
    Posts:
    30
    Referrals:
    0
    Sythe Gold:
    0

    guinner Member

    New Rs update: no macro log ins..

    can someone post it on here. I haven't been an SRL member for over 1 week yet.
     
  13. Unread #7 - Nov 27, 2008 at 4:39 AM
  14. pwntagev2
    Referrals:
    0

    pwntagev2 Guest

    New Rs update: no macro log ins..

    when you make your account, you have to activate it through your email you provided. then you make 10 posts in a place where you can post, i.e. free scripts.
     
  15. Unread #8 - Nov 27, 2008 at 5:26 AM
  16. guinner
    Joined:
    Nov 22, 2008
    Posts:
    30
    Referrals:
    0
    Sythe Gold:
    0

    guinner Member

    New Rs update: no macro log ins..

    ok then I'll try it out.
     
  17. Unread #9 - Nov 27, 2008 at 9:12 AM
  18. HyperSecret
    Joined:
    Jun 5, 2007
    Posts:
    123
    Referrals:
    0
    Sythe Gold:
    0

    HyperSecret Active Member

    New Rs update: no macro log ins..

    Don't spam the forums though, you need to wait a week also until you become a junior member. Here it is though.

    Replace Login.scar With This. (Credit to Lee Lok Hin)

    Code:
    //-----------------------------------------------------------------//
    //--               Scar Standard Resource Library                --//
    //--               » Login Routines                              --//
    //-----------------------------------------------------------------//
    // * function  RSReady: Boolean;                      // * by ZephyrsFury
    // * Procedure LoginScreenMusic(State: Variant);      // * by Wizzup?
    // * procedure Login_SetAudio(Volume, SFX, Area: Integer; SMSetting: (Stereo, Mono, NoChange) );  // * by ZephyrsFury
    // * procedure Login_SetGraphics(Brightness: Integer; vl, rr, gd, td, ia, fl, gt, cs: string);    // * by ZephyrsFury
    // * procedure SetAutoingDefaults;                    // * by ZephyrsFury
    // * procedure Logout;                                // * by Starblaster100 and Raymond
    // * procedure LoginPlayer;                           // * by SRL Developers
    // * procedure RandomNextPlayer(Active: Boolean);     // * by Dankness, Ron and Raymond
    // * procedure NextPlayer(Active: Boolean);           // * by Dankness, Ron and Raymond
    // * procedure CheckUserNicks;                        // * by Sumilion and Raymond
     
    { var SRL_Logs: Integer;
      Description: Variables needed for some login functions. }
    { var RandomPlayer, GraphicsSet: Boolean;
      Description: Variables needed for some login functions. }
    var
      SRL_Logs: Integer;
      RandomPlayer, GraphicsSet: Boolean;
     
    procedure NextPlayer(Active: Boolean); forward;
    procedure RandomNextPlayer(Active: Boolean); forward;
     
    {*******************************************************************************
    function RSReady: Boolean;
    By: ZephyrsFury
    Description: Returns true if we are ready to auto (on loginscreen or logged in).
      Useful for waiting until RS has fully loaded.
    *******************************************************************************}
     
    function RSReady: Boolean;
    begin
      Result := (LoggedIn) or (GetColor(520, 146) = 4038981);
    end;
     
    {*******************************************************************************
    Procedure LoginScreenMusic(State: Variant);
    By: Wizzup?
    Description: Takes Boolean(True, False) or Integer(1..5) as arguments.
      1 or True = Off, 5 or False = Max.
          1   2   3   4   5
        <-o---o---o---o---o->
    *******************************************************************************}
     
    Procedure LoginScreenMusic(State: Variant);
     
    Var
       RealState: Variant;
       x: Extended;
     
    Begin
      if (LoggedIn) then Exit;
      if (CountColor(7750, 346, 356, 416, 369) <> 119) and (GetColor(520, 135) = 4038981) then
      begin
        TypeByte(vk_Escape);
        Wait(100);
      end;
      if (CountColor(7750, 346, 356, 416, 369) <> 119) then Exit;
      Case VarType(State) Of
      11: RealState := (State + 1) * 4;
      3: If InRange(State, 1, 5) Then
           RealState := State - 1;
         Else
           RealState := 0;
      End;
      x := (425.0 - 337.0) * RealState / 4.0 + 339.0;
      If CountColorTolerance(1647966, Round(x) - 5, 375, Round(x) + 5, 385, 20) < 5 Then
        If CountColorTolerance(991349, Round(x) - 5, 375, Round(x) + 5, 385, 20) < 5 Then
          Mouse(Round(x), RandomRange(375, 385), 0, 0, True);
     
    End;
     
    {*******************************************************************************
    procedure Login_SetAudio(Volume, SFX, Area: Integer; SMSetting: (Stereo, Mono, NoChange) );
    By: ZephyrsFury
    Description: Sets audio options through the login screen.
    Use: Enter the desired Setting for the desired Option. Make option 0 for no change.
      EG. Login_SetAudio(1, 5, 2, NoChange);
     
                            1   2   3   4   5
      Volume, SFX, Area:  <-o---o---o---o---o->
    *******************************************************************************}
     
    procedure Login_SetAudio(Volume, SFX, Area: Integer; SMSetting: TSMSetting);
    var
      II, Tx, Ty, T: Integer;
      Pts: TIntegerArray;
    begin
      if (LoggedIn) then Exit;
      TypeByte(vk_Escape);
      T := GetSystemTime;
      while (CountColor(7750, 346, 373, 416, 386) <> 119) and (GetSystemTime - T < 5000) do
        Wait(100);
      if (CountColor(7750, 346, 373, 416, 386) = 119) then
        MouseBox(334, 362, 426, 371, 1)
      else
        Exit;
      Wait(100);
      Pts := [Volume, SFX, Area];
      for II := 0 to 2 do
      begin
        if (Pts[II] = 0) then Continue;
        if (not(InRange(Pts[II], 0, 5))) then
        begin
          srl_Warn('Login_SetAudio', 'Points must be between 0 and 5', warn_AllVersions);
          Continue;
        end;
        Tx := 337 + Round((425 - 337) * (Pts[II] - 1) / 4);
        Ty := Round(3.5 * II * II + 46.5 * II + 245);
        if (GetColor(Tx, Ty) <> 1121100) then
          Mouse(Tx + 2, Ty - 14, 0, 0, True);
        Wait(50);
      end;
      if (GetColor(337, 389) = 181) and (SMSetting = Stereo) then
        Mouse(421, 385, 10, 10, True)
      else
      if (GetColor(426, 389) = 181) and (SMSetting = Mono) then
        Mouse(332, 385, 10, 10, True);
      Wait(100);
      TypeByte(vk_Escape);
    end;
     
    {*******************************************************************************
    procedure Login_SetGraphics(Brightness: Integer; vl, rr, gd, td, ia, fe, gt, cs: string);
    By: ZephyrsFury
    Description: Sets graphic options in the login screen.
    Use: Enter the desired Setting for the desired Option.
      Leave as 0 for no change of brightness and '' for no change in anything else.
     
      Parameter    Option                Setting
        Brightness   Brightness            1 - 4 (0 for no change)
        vl           Visible Levels        Current / All
        rr           Remove Roofs          Always / Selectively
        gd           Ground Decoration     Off / On
        td           Texture Detail        Low / High
        ia           Idle Animations       Few / Many
        fe           Flickering Effects    Off / On
        gt           Ground Textures       Few / Many
        cs           Chracter Shadows      Off / On
     
                        1   2   3   4
      Brightness:   <---o---o---o---o--->
     
    EG. Login_SetGraphics(2, 'current', '', 'off', 'low', 'few', '', 'few', 'off');
     
    For Autoing:
    Login_SetGraphics(4, 'current', 'always', 'off', 'low', 'few', 'off', 'few', 'off');
    *******************************************************************************}
     
    procedure Login_SetGraphics(Brightness: Integer; vl, rr, gd, td, ia, fe, gt, cs: string);
    var
      Settings, PosSettings, OptionName: TStringArray;
      II, T, W, tCol, x, y, mSpeed: Integer;
      TB: TBox;
      P: TPoint;
    begin
      if (LoggedIn) then Exit;
      Settings := [vl, rr, gd, td, ia, fe, gt, cs];
      PosSettings := ['Current', 'All', 'Always', 'Selectively', 'Off', 'On', 'Low',
        'High', 'Few', 'Many', 'Off', 'On', 'Few', 'Many', 'Off', 'On'];
      OptionName := ['Visible levels', 'Remove roofs', 'Ground decoration', 'Texture detail',
        'Idle animations', 'Flickering effects', 'Ground textures', 'Character shadows'];
      TypeByte(vk_Escape);
      T := GetSystemTime;
      while (CountColor(7750, 346, 373, 416, 386) <> 119) and (GetSystemTime - T < 5000) do
        Wait(100);
      if (CountColor(7750, 346, 373, 416, 386) = 119) then
        MouseBox(321, 338, 443, 346, 1)
      else
        Exit;
      mSpeed := MouseSpeed;
      MouseSpeed := 25;
      Wait(100);
      if (Brightness > 4) then
        srl_Warn('Login_SetGraphics', 'Brightness must be between 0 and 4', warn_AllVersions)
      else
      if (Brightness <> 0) then
      begin
        P := Point(89 + (Brightness - 1) * 21, 266);
        if (GetColor(P.x, P.y) <> 1121100) then
          Mouse(P.x - 3, P.y - 17, 6, 6, True);
      end;
      for II := 0 to 7 do
      begin
        TB.x1 := 67 + 130 * ((II + 1) mod 5);
        TB.y1 := 245 + 60 * ((II + 1) div 5);
        TB.x2 := TB.x1 + 109;
        TB.y2 := TB.y1 + 15;
        if (not(InStrArrEx(Capitalize(Settings[II]), [PosSettings[II * 2], PosSettings[II * 2 + 1]], W))) then
        begin
          srl_Warn('Login_SetGraphics', 'Invalid Setting: ' + Settings[II] + ' for Option: ' + OptionName[II] + '.', warn_AllVersions);
          Continue;
        end;
        tCol := (W mod 2) * 16777088 + 127;
        if (not(FindColor(x, y, tCol, TB.x1, TB.y1, TB.x2, TB.y2))) then
        begin
          Mouse(TB.x1 + 10, TB.y1 + 3, 10, 7, True);
          if (FindColor(x, y, tCol, TB.x1, TB.y2 + 1, TB.x2, TB.y2 + 1 + 51)) then
            Mouse(x, y, 10, 7, True)
          else
            MouseBox(TB.x1 + 10, TB.y1 + 3, TB.x2 - 40, TB.y2 - 3, 1);
        end;
      end;
      Wait(100);
      TypeByte(vk_Escape);
      MouseSpeed := mSpeed;
    end;
     
    {*******************************************************************************
    procedure SetAudioOff;
    By: ZephyrsFury
    Description: Sets the Audio to off (1 for each bar). Works logged in and out.
    *******************************************************************************}
     
    procedure SetAudioOff;
    begin
      if (LoggedIn) then
        SetAudio(1, 1, 1, NoChange)
      else
        Login_SetAudio(1, 1, 1, NoChange);
    end;
     
    {*******************************************************************************
    procedure SetAutoingDefaults;
    By: ZephyrsFury
    Description: Sets the graphic options for best SRL compatibility. Works both logged in and out.
    *******************************************************************************}
     
    procedure SetAutoingDefaults;
    begin
      if (LoggedIn) then
        SetGraphics(4, 'current', 'always', 'off', 'low', 'few', 'off', 'few', 'off')
      else
        Login_SetGraphics(4, 'current', 'always', 'off', 'low', 'few', 'off', 'few', 'off');
    end;
     
    {*******************************************************************************
    procedure Logout;
    By: Starblaster100 / Raymond
    Description: Logs you out.
    *******************************************************************************}
     
    function Logout: Boolean;
    var
      c, i: Integer;
    begin
      Result := (not (LoggedIn));
      if Result = True then
        Exit;
      if GameTab(14) = False then
        Exit;
      Wait(200 + Random(100));
      while (LoggedIn) and (c < 10) do
      begin
        Inc(c);
        if(ClickText('here', UpChars, MIX1, MIY1, MIX2, MIY2, True))then
          for i := 0 to 10 do
          begin
            Wait(1000);
            if not(LoggedIn)then
            begin
              Result := True;
              Exit;
            end;
          end;
      end;
    end;
     
    {*******************************************************************************
    procedure LoginPlayer;
    By: SRL Developers
    Description: Logs in the Player[CurrentPlayer]. Detects most Client Login Errors
    *******************************************************************************}
     
    procedure LoginPlayer;
    var
      Mark, Attempts: Integer;
      Actions: TVariantArray;
      RetryLogin: Boolean;
    label
      ProcStart;
    begin
      ActivateClient;
      Wait(100);
     
      if (GetColor(212, 327) = 238301) then    //At Click To Play screen
      begin
        Wait(1000 + Random(3000));
        MouseBox(227, 337, 555, 364, 1);
        MarkTime(Mark);
        while (TimeFromMark(Mark) < 30000) and (not(LoggedIn)) do
          Wait(1000 + Random(1000));
      end;
      if (not(RSReady)) then
      begin
        MarkTime(Mark);
        while (not(RSReady)) do
        begin
          Wait(100);
          if (TimeFromMark(Mark) > 180000) then
          begin
            WriteLn('It has been 3 minutes and Runescape is not yet ready... Terminating.');
            TerminateScript;
          end;
        end;
        WriteLn('Welcome to Runescape.');
      end;
      
      LoginScreenMusic(True);
      if (not(GraphicsSet)) then
      begin
        SetAutoingDefaults;
        GraphicsSet := True;
      end;
      ProcStart:
     
      if (not(LoggedIn)) then
      begin
        if (not(Players[CurrentPlayer].Active)) then
        begin
          WriteLn('Player is not Active...');
          NextPlayer(False);
          Exit;
        end;
        Wait(900 + random(60));
     
        //Click 'Log In' on main menu
        while (GetColor(343, 175) <> 7750) do
        begin
          MouseBox(360, 180, 400, 185, 1);
          Wait(100 + Random(100));
        end;
     
        //Type Username
        Mouse(315, 272, 10, 5, True);
        while (CountColor(7750, 311, 269, 452, 284) > 13) do
        begin
          KeyDown(vk_Back);
          Wait(10 + Random(10));
          KeyUp(vk_Back);
          Wait(50 + Random(50));
        end;
        for Mark := 0 to 3 do
        begin
          KeyDown(vk_Back);
          Wait(10 + Random(10));
          KeyUp(vk_Back);
          Wait(50 + Random(50));
        end;
        Wait(100 + Random(200));
        WriteLn(Capitalize(Players[CurrentPlayer].Name));
        TypeSend(Players[CurrentPlayer].Name);
        Wait(100+random(50));
     
        //Type Password
        Mouse(315, 334, 10, 5, True);
        while (CountColor(7750, 311, 337, 452, 352) > 13) do
        begin
          KeyDown(vk_Back);
          Wait(10 + Random(10));
          KeyUp(vk_Back);
          Wait(50 + Random(50));
        end;
        for Mark := 0 to 3 do
        begin
          KeyDown(vk_Back);
          Wait(10 + Random(10));
          KeyUp(vk_Back);
          Wait(50 + Random(50));
        end;
        Wait(100 + Random(200));
        TypeSend(Players[CurrentPlayer].Pass);
        Wait(500 + Random(300));
     
        if (not(FindTextTPA(12509695, 0, 288, 205, 475, 247, 'login', StatChars, Nothing))) then   //If 'enter' from typesend didn't log us in
        begin
          MouseBox(355, 359, 403, 372, 1);  //Click 'login' login screen
          Wait(250 + random(100));
        end;
     
        MarkTime(Mark);
        repeat
          SetLength(Actions, 0);
     
          if (TimeFromMark(Mark) > 60000) then
            Actions := ['One minute has passed...', 0, 2, 'NextPlayer', 'Login Failed']
          else
          case (CountColor(12509695, 288, 205, 475, 247)) of   //Number of text colour points
            //   Actions := ['WriteLn Text', TimeToWait, NumberOfRetries, 'FinalAction', 'PlayerStatus'];
            760: Actions := ['Too many incorrect logins.', 5 * 60000, 2, 'NextPlayer', ''];
            536: Actions := ['Login limit exceeded. Please wait 1 minute and try again.', 60000, 2, 'NextPlayer', ''];
            711: Actions := ['Your account has been disabled', 0, 0, 'NextPlayer', 'Acc Disabled'];
            598: Actions := ['Invalid Username \ Password', 0, 2, 'NextPlayer', 'Wrong User/Pass'];
            917: Actions := ['Not a Members Account', 0, 0, 'NextPlayer', 'Non-member'];
            408: Actions := ['World is full.', 5000, 20, 'Terminate', ''];
            623: Actions := ['Your account is already logged in', 5000, 0, 'RandomNextPlayer', ''];
            555: Actions := ['The Server is being updated.', 60000, 4, 'Terminate', 'Server Updating'];
            218: Actions := ['Error Connecting.', 20000, 9, 'Terminate', 'Error Connecting'];
            335: Actions := ['Unable to connect Login Server offline.',(20000) + Random(6000), 4, 'Terminate', 'Login Server Offline'];
            512: Actions := ['RuneScape has been updated. Script Terminated.', 0, 0, 'Terminate', 'RS Updated'];
            489: Actions := ['Connection timed out.', 0, 4, 'Terminate', 'Connection Timed Out'];
            737: Actions := ['You are standing in a members-only area.', 0, 0, 'NextPlayer', 'In Mems-Only Area'];
            //10: Actions := ['Error loading your profile.', 5000, 10, 'NextPlayer', 'Profile Loading Failed']; // Error loading your profile. Will attempt to re-login 5 more times.)
            //11: Actions := ['Login server rejected session.', 1000, 10, 'NextPlayer', 'Login Serv. Rejected'];  // Login server rejected session.
          end;
     
          if (Length(Actions) > 0) then
          begin
            WriteLn(Actions[0]);
            Wait(Actions[1] + Random(100));
            if (Actions[2] <> 0) then
              if (Attempts < Actions[2]) or (Actions[2] = -1) then
              begin
                RetryLogin := True;
                Break;
              end;
            if (Actions[4] <> '') then
              Players[CurrentPlayer].Loc := Actions[4];
            case Actions[3] of
              'NextPlayer': NextPlayer(False);
              'RandomNextPlayer': RandomNextPlayer(True);
              'Terminate': TerminateScript;
            end;
            Exit;
          end;
          Wait(100);
        until(GetColor(212, 327) = 238301);
     
        if (RetryLogin) then
        begin
          RetryLogin := False;
          Inc(Attempts);
          goto ProcStart;
        end;
     
        if (GetColor(212, 327) = 238301) then
        begin
          Wait(1000 + Random(2000));
          MouseBox(227, 337, 555, 364, 1);
        end;
        MarkTime(Mark);
        while (TimeFromMark(Mark) < 30000) and (not(LoggedIn)) do
          Wait(1000 + Random(1000));
      end;
     
      if (LoggedIn) then
      begin
        PlayerStartTime := (GetSystemTime div 1000); // PlayerStartTime
        if Length(Players[CurrentPlayer].NickTPA) < 2 then
        begin;
          Writeln('Creating the NickTPA.');
          if Players[CurrentPlayer].Nick <> '' then
            Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Nick, UpChars)
          else
          begin;
            Writeln('Nickname isn''t set, taking the username instead..');
            Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Name, UpChars);
          end;
        end;
        AddToSRLLog('Current player: ' + Capitalize(Players[CurrentPlayer].Name));
      end;
    end;
     
    {*******************************************************************************
    procedure RandomNextPlayer(Active: Boolean);
    By: Dankness based on WT-Fawki's NextPlayer and modified by Ron and by Raymond
    Description: Picks Random Player that is Active and Logs in
    *******************************************************************************}
     
    procedure RandomNextPlayer(Active: Boolean);
    var
      LastPlayer: Integer;
    begin
      WriteLn('NextPlayer');
      LastPlayer := CurrentPlayer;
      Players[CurrentPlayer].Active := Active;
      Logout;
      PlayerCurTime := (GetSystemTime div 1000);
      Players[CurrentPlayer].Worked := Players[CurrentPlayer].Worked +
        ((PlayerCurTime - PlayerStartTime) / 60);
      repeat
        if (AllPlayersInactive) then Wait(60000);
        if (PlayersActive = 1) then Break;
        CurrentPlayer := Random(HowManyPlayers);
        Wait(100);
      until (Players[CurrentPlayer].Active) and (LastPlayer <> CurrentPlayer);
      SRL_Logs := SRL_Logs + 1;
      LoginPlayer;
    end;
     
    {*******************************************************************************
    procedure NextPlayer(Active: Boolean);
    By: Dankness and modified by Ron and by Raymond
    Description: Logs in the next player.
    Boolean: True - Current player is ok. False - Current player is false.
    *******************************************************************************}
     
    procedure NextPlayer(Active: Boolean);
    begin
      if RandomPlayer then
        RandomNextPlayer(Active)
      else
      begin
        WriteLn('NextPlayer(Active: ' + BoolToStr(Active)+ ');');
        Players[CurrentPlayer].Active := Active;
        Logout;
        PlayerCurTime := (GetSystemTime div 1000);
        Players[CurrentPlayer].Worked := Players[CurrentPlayer].Worked +
          ((PlayerCurTime - PlayerStartTime) / 60);
        CurrentPlayer := (CurrentPlayer + 1) mod Length(Players);
        while Players[CurrentPlayer].Active = False do
        begin
          CurrentPlayer := (CurrentPlayer + 1) mod Length(Players);
          if (AllPlayersInactive) then Wait(60000); // Everybody False. Endless Loop.
        end;
        SRL_Logs := SRL_Logs + 1;
        LoginPlayer;
      end;
    end;
     
    {*******************************************************************************
    procedure CheckUserNicks;
    By: Sumilion / Raymond
    Description: Checks if all nicks are set correct.
    *******************************************************************************}
     
    procedure CheckUserNicks;
    var
      CorrectString: string;
      i: Integer;
      Wrong : Boolean;
      Str : String;
    begin
      for i := 0 to HowManyPlayers - 1 do
      begin
        if (not(Players[CurrentPlayer].Active)) then Continue;
        Wrong := False;
        if (Players[i].Nick = '') then
        begin
          Wrong := True;
          Str := 'WARNING : Please fill in your nickname.';
        end;
        if (Players[i].Nick <> LowerCase(Players[i].Nick)) then
        begin
          Wrong := True;
          Str := 'WARNING : Please Uncapitalise your nickname.';
        end;
        if (pos(Players[i].Nick, LowerCase(Players[i].Name)) = 1) then
        begin
          Wrong := True;
          Str := 'WARNING : Dont use the first letter in your nick.';
        end;
        if (pos(' ', Players[i].Nick) > 0) then
        begin
          Wrong := True;
          Str := 'WARNING : Dont use spaces in your Nick.';
        end;
        CorrectString := Capitalize(Players[i].Name);
        if not (Pos(LowerCase(Players[i].Nick), CorrectString) > 0) then
        begin
          Wrong := true;
          Str := 'WARNING : Nick does NOT match the name.';
        end;
        if Wrong then
        begin;
          Writeln('--');
          Writeln(Str);
          if (Length(Players[i].Name) > 0) then
            Writeln('Warning occured with player : ' + Players[i].Name);
          Writeln('For more information, visit http://www.srl-forums.com/forum/set-up-your-t6267.html');
        end;
      end;
    end;
    
     
  19. Unread #10 - Nov 27, 2008 at 1:28 PM
  20. Bbri06
    Joined:
    May 21, 2006
    Posts:
    911
    Referrals:
    1
    Sythe Gold:
    0

    Bbri06 Apprentice

    New Rs update: no macro log ins..

    They've changed it again. The above login.scar that hyper posted won't work but to fix it simply change line 331 to
    Code:
    while (GetColor(343, 176) <> 7750) do
    
     
  21. Unread #11 - Nov 27, 2008 at 10:49 PM
  22. RichNubzor
    Referrals:
    0

    RichNubzor Guest

    New Rs update: no macro log ins..

    Thanks for fixes guys! Works perfectly.
     
  23. Unread #12 - Nov 28, 2008 at 2:06 AM
  24. pwntagev2
    Referrals:
    0

    pwntagev2 Guest

    New Rs update: no macro log ins..

    yeah thanx hyper and bbri06 for that. i posted it up at the top so its easyer for people to get to instead of scrolling down to get to it
     
  25. Unread #13 - Nov 29, 2008 at 4:41 PM
  26. guinner
    Joined:
    Nov 22, 2008
    Posts:
    30
    Referrals:
    0
    Sythe Gold:
    0

    guinner Member

    New Rs update: no macro log ins..

    Thanks guys I was seriously wondering what was going on. Now it's fixed thanks heaps.
     
  27. Unread #14 - May 5, 2009 at 1:58 AM
  28. JuanPedro
    Joined:
    Apr 6, 2009
    Posts:
    129
    Referrals:
    0
    Sythe Gold:
    3

    JuanPedro Active Member

    New Rs update: no macro log ins..

    i was like wtf, then relized how old the post is :D
     
< Draynor Fisher & Banker | MetalancA's Al-Kaharid Any Tanner! >

Users viewing this thread
1 guest


 
 
Adblock breaks this site