Auto Alcing... With Scar/SRL

Discussion in 'Scar/Simba General Discussion' started by T4z, Mar 20, 2007.

Auto Alcing... With Scar/SRL
  1. Unread #1 - Mar 20, 2007 at 5:37 PM
  2. T4z
    Joined:
    Mar 17, 2007
    Posts:
    66
    Referrals:
    0
    Sythe Gold:
    0

    T4z Member

    Auto Alcing... With Scar/SRL

    ok, i am useing a scar script for alcing.. i answer ALL radoms and TALK to people (if in a populated area)... i am not a lvl3 or a suspicious looking account...

    i am just wondering if Jagex can detect im using an autoer (i alc in edgie and my house)

    AND! what would be better... alcing with people arround (i do talk, i just dont like clicking alcs) or without people...

    I do always wear valuable items and ect....

    Opinions? answers?
     
  3. Unread #2 - Mar 20, 2007 at 5:41 PM
  4. Town
    Joined:
    Jan 21, 2007
    Posts:
    3,776
    Referrals:
    3
    Sythe Gold:
    5

    Town Grand Master
    Scar Programmers

    Auto Alcing... With Scar/SRL

    The only things that matter will be if the script you are using has enough Random Timing and Random Movements so that it is not detectable by Jagex's Macroing Detection System. If people report you that plays somewhat of a role in it as well but if you do it in your house that won't matter.
     
  5. Unread #3 - Mar 20, 2007 at 5:44 PM
  6. T4z
    Joined:
    Mar 17, 2007
    Posts:
    66
    Referrals:
    0
    Sythe Gold:
    0

    T4z Member

    Auto Alcing... With Scar/SRL

    not sure if it has random clicker.... take a look... ( i only use for 2-6 Hrs at a time with 30 min breaks every 2-3Hrs

    Code:
      
    //------------------------------------------------------------------------\\
    //                          bibi26's Alcher 0.5                           \\
    //                                by bibi26                               \\
    //------------------------------------------------------------------------\\
    // Alching is boring but useful, this Alcher will alch for you, it will   \\
    // check for randoms, act like a human, use bank for minimize the damage  \\
    // if you die, you can low alchemy or high alchemy.                       \\
    //------------------------------------------------------------------------\\
    // Setup Lines : 35-85                                                    \\
    // Knowns bugs : xxx                                                      \\
    // For nexts versions : Don't know                                        \\
    //------------------------------------------------------------------------\\
    
    {[=========================================================================]
    [                            Instructions                                  ]
    [==========================================================================]
    [ 1. Set your screen color to 32 bits color.                               ]
    [ 2. Close all unnecessary programs and fill the setup lines.              ]
    [ 3. Set Runescape on low details and on Very Bright Mode.                 ]
    [ 4. Drag the crosshair on Runescape Window.                               ]
    [ 5. Have an EMPTY inventory, put your nature runes in the first slot of   ]
    [ the bank, put the item you want to alch in the second slot of the bank.  ]
    [ 6. Be beside a bank and click on Play.                                   ]
    [==========================================================================}
    
    program bibi26Alcher;
    {.include SRL\SRL.scar}
    
    var
     AngleVar : extended;
     Center, AlchemyDone, AlchemyDone2, AlchemyToDo, DoneAlchemy, DoneAlchemy2 : Integer;
     alchemy2 : Boolean;
     Rdirection : String;
    
    // ************************** Setup lines ****************************
    const
     Ms = 16; // Mouse Speed ?
     Autotalka = false; // Auto talk ?
     Autoresponda = false; // Auto respond ? (Can cause lag)
     
    procedure DeclarePlayers;
    begin
     HowManyPlayers:=1; // How many players you want to use ?
     NumberOfPlayers(HowManyPlayers); // Don't touch this line !
     CurrentPlayer:=0; // Don't touch this line !
    
     Players[0].Name :='xxxxxxxx; //Runescape username
     Players[0].Pass :='xxxxxxx'; //Runescape password
     Players[0].Nick :='wnu'; //Type 3-4 letters of your runescape username - IT IMPORTANT TO CHOOSE A GOOD NICKNAME !!
     Players[0].String1 :='N'; //If you are attacked, in what direction do you want to run ?
     Players[0].String2 :=''; //Pin Number of your bank (leave it if you don't have one)
     Players[0].Integer1 :=1000; //How many alchemy do you want to do ?
     Players[0].Boolean1 :=true; //True = High Alchemy, False = Low Alchemy
     Players[0].Active :=true; //Use player 0 ?
    end;
    
    // ************************** End of setup lines ***********************
    
    procedure WithdrawType(Note : Boolean);
    begin
     case Note of
      true : if (not(GetColor(377, 312) = 1777020)) then Mouse(377,312,7,4,true);
      false : if (not(GetColor(307, 311) = 1777020)) then Mouse(307,311,7,4,true);
     end;
    end;
    
    procedure Setvariables;
    var
     Pin : String;
    begin
     MouseSpeed:= Ms+random(4);
     Rdirection:=Players[CurrentPlayer].String1;
     alchemy2:=Players[CurrentPlayer].Boolean1;
     AlchemyToDo:=Players[CurrentPlayer].Integer1;
     AlchemyDone2:=0;
     DoneAlchemy:=50+random(250);
     DoneAlchemy2:=DoneAlchemy+random(20);
     Pin:=Players[CurrentPlayer].String2;
     if (DoneAlchemy2 > AlchemyToDo) then DoneAlchemy2 := AlchemyToDo - AlchemyDone2;
     NickNameBmp:=CreateBitmapMaskFromText(Players[CurrentPlayer].Nick,UpChars);
     Case (Players[CurrentPlayer].Boolean1) of
      true   :  Players[CurrentPlayer].Integer3:=65;
      false  :  Players[CurrentPlayer].Integer3:=31;
     end;
     MakeCompass('N');
     PerfectNorth;
     OpenBank3;
     InPin(Pin);
     FixBank;
     Wait(500+random(300));
     Withdraw(1, 1, DoneAlchemy2);
     Wait(400+random(300));
     WithdrawType(true);
     Wait(100+random(160));
     Withdraw(2, 1, DoneAlchemy2);
     CloseBank;
     Wait(100+random(200));
     if (alchemy2) then begin DragItem(2, 16); end else begin DragItem(2, 8); end;
    end;
    
    // ------ SRL function with a few modifications ------ \\
    
    procedure NextPlayer2(Active: Boolean);
    begin
      if RandomPlayer then
        RandomNextPlayer(Active)
      else
      begin
        Writeln('NextPlayer');
        if not Active then
          Players[CurrentPlayer].Active := False;
        LogOut;
        PlayerCurTime := (GetSystemTime div 1000);
        Players[CurrentPlayer].Worked := Players[CurrentPlayer].Worked + ((PlayerCurTime - PlayerStartTime) / 60);
        CurrentPlayer := CurrentPlayer + 1;
        if CurrentPlayer > HowManyPlayers - 1 then
          CurrentPlayer := 0;
        while Players[CurrentPlayer].Active = False do
        begin
          CurrentPlayer := CurrentPlayer + 1;
          if CurrentPlayer > HowManyPlayers - 1 then
          begin
            CurrentPlayer := 0;
            WriteLn('All players are inactive. Script terminated.');
            TerminateScript;
          end;
        end;
        if Players[CurrentPlayer].Active = True then
        begin
          Logs := Logs + 1;
        end;
        LoginPlayer;
        Setvariables;
      end;
    end;
    
    function Cast(TheSpell: String): Boolean; // In wait of validation of my fix
    var
     Spell : string;
     Color : Integer;
     Coords : TPoint;
    begin
    
     Spell:= Lowercase(TheSpell);
     GameTab(7);
    
     if ((Spell) = 'low level alchemy') or (Spell = '13') then
       begin Color:= 596489; Coords.x:= 710; Coords.y:= 252; end;
    
     if ((Spell) = 'high level alchemy') or (Spell = '34') then
       begin Color:= 140325; Coords.x:= 712; Coords.y:= 326; end;
    
       if(Color > 0)then
         begin
          if(not(FindColor(x, y, Color, Coords.x, Coords.y, Coords.x, Coords.y)))then
            begin
             Result:= True;
             MMouse(Coords.x, Coords.y, 2, 2);
             Wait(20 + Random (10) - Random (20));
             GetMousePos(x, y);
             Wait(200 + Random (100) - Random (200));
             if Random(140) < 139 then
             begin
              ClickMouse(x,y,true);
             end
            else
            begin
             Mouse(x,y,1,1,true);
            end;
           end;
          end;
         end;
    
    // --------------------------------------------------- \\
    
    procedure AutorespondV;
    var
     Respond : String;
    begin
     OldLine := TheLine;
     TheName := lowercase(trim(GetTextAtEx(20, 415, 45, SmallChars, False, False, 0, 2, 0, 40, True, tr_NormalChars)));
     TheLine := lowercase(trim(GetTextAtEx(20, 415, 45, SmallChars, False, False, 0, 2, 16711680, 40, False, tr_NormalChars)));
     NewLine := TheLine;
     if OldLine <> NewLine then
      if (pos('yo', TheName) <> 0) or (pos('th', TheName) <> 0) or (pos(Players[CurrentPlayer].Nick, TheName) <> 0) then
      begin
      end
      else
      begin
       if (IsChatMessage('gic')) and ((IsChatMessage('lvl')) or (IsChatMessage('evel'))) then
       begin
        SayCurrentLevels('magic');
       end;
      if (IsChatMessage('ello')) then
      begin
       if Random(3) = 1 then
       begin
        Case Random(4) of
         1: Respond := 'hi';
         2: Respond := 'hello';
         3: Respond := 'howdy';
         4: Respond := 'yo';
        end;
       end;
       TypeSend(Respond);
      end;
      if (IsChatMessage('cya')) or (IsChatMessage('bye')) then
      begin
       Case Random(3) of
        1: Respond := 'cya';
        2: Respond := 'bye';
        3: Respond := 'bye bye';
       end;
       TypeSend(Respond);
      end;
      if (IsChatMessage('lol')) or (IsChatMessage('hah')) or (IsChatMessage('rofl')) or (IsChatMessage('lmao')) then
      begin
       if Random(3) = 1 then
       begin
        wait(100+random(100));
        Case Random(14) of
         1: Respond := 'lol';
         2: Respond := 'lolol';
         3: Respond := 'lmao';
         4: Respond := 'rofl';
         5: Respond := 'nice';
         6: Respond := 'roflz';
         7: Respond := 'lmfao';
         8: Respond := 'ahahah';
         9: Respond := 'hahaha';
         10: Respond := 'that funny';
         11: Respond := 'hehe';
         12: Respond := 'hoho';
         13: Respond := 'hohoh';
         14: Respond := 'heheh';
        end;
       end;
       TypeSend(Respond);
      end;
     end;
    end;
    
    procedure PlayerReport;
    var
     Active: String;
     I:Integer;
    begin
    for I  :=  0 to HowManyPlayers - 1 Do
    begin
     if Players[i].Active=True Then Active := 'True' Else Active := 'False';
     AddtoReport(+Players[I].name);
     AddtoReport('Alchemy done : '+inttostr(Players[I].Integer2));
     AddtoReport('Exp gained : '+inttostr(Players[I].Integer2*Players[I].Integer3));
     AddtoReport('');
     end;
    end;
    
    procedure ProgressReport;
    begin
     SRLRandomsReport;
     AddtoReport('');
     AddtoReport('<======== Total report ========>');
     AddtoReport(' Total time working : ' + TimeRunning);
     AddtoReport(' Total alchemy done : ' + inttostr(AlchemyDone));
     AddtoReport('');
     AddtoReport('<======== User report ========>');
     PlayerReport;
     ChangeReportWidth(430);
    end;
    
    function SolveFroggy : Boolean; // Based on Sumilion's Frog Cave Solver, in waiting of validation of his script in SRL ;)
    var
     Crown, Froggy : Integer;
    begin
      WriteLn('******** FOUND FROG CAVE RANDOM ********');
      Crown := DTMFromString('78DA63CC616460D8C480027E9C9265B001D24' +
             '01986FF40C0988F50C30C5573798D345C0D08306603591B50D5FC' +
             '3E6F86AA0664D71654359F8FC9A2AAC9C4B4EBE57E54350015B91' +
             '3ED');
      MarkTime(Froggy);
      repeat
       if (FindDTMRotated(Center, x, y, MMX1, MMY1, MMX2, MMY2, 0, pi*2, 0.1, AngleVar)) then
       begin
        Mouse(x, y, 0, 0, true);
        FFlag(0);
        Wait(300+Random(400));
       end;
       if (FindDTM(Crown, x, y, 90, 102, 473, 334)) then
       begin
        MMouse(x,y,2,2);
        if (IsUpText('Talk')) then
        begin
         Mouse(x,y,2,2,true);
         FFlag(0);
         Wait(500+random(500));
         if (FindText(x, y, 'urrah', NPCChars, MCX1, MCY1, MCX2, MCY2)) then
         begin
          ClickToContinue;
         end;
         if (FindText(x, y, 'mph', NPCChars, MCX1, MCY1, MCX2, MCY2)) then
         begin
          ClickToContinue;
          Wait(1000+random(700));
          ClickToContinue;
          Wait(1000+random(700));
          ClickToContinue;
          Wait(1000+random(700));
         end;
        end;
       end;
      if (TimeFromMark(Froggy)>120000) then begin NOFrogs := NOFrogs + 1; WriteLn('******** FROG CAVE RANDOM MISSED ********'); ProgressReport; wait(1000+random(500)); NextPlayer2(false); end;
      until (not(FindDTMRotated(Center, x, y, MMX1, MMY1, MMX2, MMY2, 0, pi*2, 0.1, AngleVar)));
     WriteLn('******** FROG CAVE RANDOM SOLVED ********');
     Result := True;
     Frogs := Frogs + 1;
     FreeDTM(Crown);
    end;
    
    procedure AntiRandomsV;
    begin
     FindTalk;
     Wait(1);
     if (FindFight) then
      begin
       WriteLn('You are attacked, trying to escape.');
       RunAwayDirection(Rdirection);
       Wait(8000+random(3000));
       WriteLn('Escape done, now, go back to mining.');
       RunBack;
      end;
     Wait(1);
     FindTalk;
     Wait(1);
     if FindBitmapToleranceIn(NewBox, x, y, 556, 206, 738, 463, 50) then SolveBox;
     Wait(1);
     FindLamp('magic');
     Wait(1);
     if FindDTMRotated(Center, x, y, MMX1, MMY1, MMX2, MMY2, 0, pi*2, 0.1, AngleVar) then SolveFroggy;
     Wait(1);
     FindDemon;
     Wait(1);
     FindMod;
     Wait(1);
     FindScapeRune;
     Wait(1);
     SolvePinball;
     Wait(1);
     FindQuiz;
     Wait(1);
     NoGameTab;
     Wait(1);
     FindTalk;
    end;
    
    procedure LeaveScreen;
    var
     rx, a: Integer;
    begin
     rx := Random(300);
     a := Random(2);
     if (a = 0) then
     begin
      MMouse(rx, 1, 0, 0);
      ClickMouse(rx, -1, True);
      Wait(1000 + Random(1000));
     end;
     if (a = 1) then
     begin
      MMouse(rx, 502, 0, 0);
      ClickMouse(rx, 503, True);
      Wait(1000 + Random(1000));
     end;
    end;
    
    procedure AntibanVe;
    begin
     Case Random(4) of
      1: begin SendArrowSilentWait(Random(4), 500 + Random(500)); SendArrowSilentWait(Random(4), 500 + Random(500)); MakeCompass('n'); SendArrowSilentWait(0, 1400 + Random(100)); end;
      2: begin HoverSkill('Magic', false); GameTab(7); end;
      3: PickUpMouse;
      4: MouseSpeed := Ms-1+random(5);
     end;
    end;
    
    procedure Move;
    begin
     Case Random(7) of
      1: mmouse(30+random(20),120+random(20),3,3);
      2: mmouse(150-random(10),120+random(30),3,3);
      3: mmouse(200+random(50),50+random(50),3,3);
      4: mmouse(90+random(50),120+random(50),3,3);
      5: mmouse(300-random(20),300-random(20),3,3);
      6: mmouse(300+random(20),120+random(50),3,3);
      7: mmouse(500+random(100),300+random(100),3,3);
     end;
    end;
    
    procedure AntibanVe2;
    begin
     wait(100+random(500));
     Case Random(3) of
      1: begin GameTab(1+random(12)); wait(1000+random(1000)); GameTab(4); end;
      2: RandomRClick;
      3: begin Move; wait(500+random(1000)); end;
     end;
    end;
    
    procedure BankA;
    begin
     OpenBank3;
     FixBank;
     DepositAll;
     if (Players[CurrentPlayer].Integer2 >= AlchemyToDo) then
     begin
      CloseBank;
      Exit;
     end
     else
     begin
      DoneAlchemy:=50+random(250);
      DoneAlchemy2:=DoneAlchemy+random(20);
      Players[CurrentPlayer].Integer2:=0;
      Withdraw(1, 1, DoneAlchemy2);
      Wait(500+random(300));
      Mouse(375+random(50),312,0,0,true);
      Wait(100+random(150));
      Withdraw(2, 1, DoneAlchemy2);
      Wait(500+random(300));
      CloseBank;
      Wait(100+random(200));
      AlchemyDone2:=0;
      if (alchemy2) then begin DragItem(2, 16); end else begin DragItem(2, 8); end;
     end;
    end;
    
    procedure AlchemyA;
    begin
     repeat
      if (LoggedIn) then
      begin
       if (Autoresponda) then Autorespondv;
       if (alchemy2) then
       begin
        Cast('high level alchemy');
        Wait(200+random(150));
        GetMousePos(x,y);
        ClickMouse(x,y,true);
        AntiRandomsV;
        wait(2700+random(700));
       end
       else
       begin
        Cast('low level alchemy');
        Wait(200+random(150));
        GetMousePos(x,y);
        ClickMouse(x,y,true);
        AntiRandomsV;
        wait(1000+random(700));
       end;
       FindTalk;
       ProgressReport;
       if Random(400) = 1 then LeaveScreen;
       if Random(600) = 1 then AntibanVe;
       if (Autotalka) then RandomChat;
       AlchemyDone := AlchemyDone + 1;
       Players[CurrentPlayer].Integer2 := Players[CurrentPlayer].Integer2 + 1;
       AlchemyDone2 := AlchemyDone2 + 1;
      end
     else
     begin
      ProgressReport;
      wait(1000+random(500));
      NextPlayer2(false);
     end;
     until (AlchemyDone2 = DoneAlchemy2) or (Players[CurrentPlayer].Integer2 = AlchemyToDo);
    end;
    
    begin
     SetupSRL;
     ActivateClient;
     DisguiseScar('Winamp');
     DeclarePlayers;
     Center := DTMFromString('78DA63EC6462603061400191C14E0C46409A1' +
             '188FF0301E302A01A17881C13548D7971025C0D08302E07CA5812' +
             '50B30828A34E40CD2CA08C3C0135BD401929026A9A80323204D45' +
             '401651408A82904CAA81050930B94D125A0261B11CE38D5E40065' +
             'AC08A8A904CA781050534F841A505C381050B30428634B40CD3CA' +
             '08C1201351D84E3020008042788');
     Wait(200+random(100));
     if (LoggedIn) then
     begin
      Setvariables;
     end
     else
     begin
      LoginPlayer;
      Setvariables;
     end;
      repeat
       repeat
       if (LoggedIn) then
       begin
        AlchemyA;
        AntiRandomsV;
        MouseSpeed:=Ms+random(4);
        BankA;
        ProgressReport;
        if Random (30) < 2 then AntibanVe2;
        LogOutEvery(2,10+random(5));
       end
       else
       begin
        ProgressReport;
        wait(1000+random(500));
        NextPlayer2(false);
       end;
       until (Players[CurrentPlayer].Integer2 = AlchemyToDo);
      ProgressReport;
      wait(1000+random(500));
      NextPlayer2(false);
     until (false);
    end.
     
     
  7. Unread #4 - Mar 20, 2007 at 6:19 PM
  8. Town
    Joined:
    Jan 21, 2007
    Posts:
    3,776
    Referrals:
    3
    Sythe Gold:
    5

    Town Grand Master
    Scar Programmers

    Auto Alcing... With Scar/SRL

    That's an old script but it still works well. There is always a chance, but you should be fine.
     
< Installing SRL question... | scar detection by jagex question. >

Users viewing this thread
1 guest


 
 
Adblock breaks this site