Results 1 to 14 of 14

Thread: Script help =/

  1. #1
    Join Date
    Jan 2011
    Posts
    335
    Mentioned
    0 Post(s)
    Quoted
    23 Post(s)

    Default Script help =/

    When i try to run "Smurg's AIO fletcher"

    I always get this error:
    "Exception in Script: Unable to find file 'SRL/SRL/Misc/Stats.scar' used from ''

    i have simba/srl/reflection installed so im a bit confused.
    If I see you autoing with level 3/default clothes/crap name I WILL report you. Auto Correctly.

  2. #2
    Join Date
    Oct 2009
    Location
    Stockton, CA
    Posts
    2,040
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Perhaps you need to update SRL? Or maybe Stats is an extra file you must download from somewhere else. It is relatively new so that might be it.
    Join the IRC! irc.rizon.net:6667/srl | SQLite (0.99rc3+) | SRL Doc | Simba Doc | Extra Simba Libraries (openSSL & sqlite3)
    Quote Originally Posted by #srl
    10:45 < Toter> daphil when can get sex anyday I want
    10:45 < Toter> he is always on #SRL
    "A programmer is just a tool which converts caffeine into code"

  3. #3
    Join Date
    Nov 2010
    Location
    Australia
    Posts
    1,472
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default

    Try deleteing that line and see if it works.

  4. #4
    Join Date
    Oct 2009
    Location
    Stockton, CA
    Posts
    2,040
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Quote Originally Posted by KingKong View Post
    Try deleteing that line and see if it works.
    The line where it includes Stats? I'm sure that stats is used in the script so he would have to remove all the stat bits.
    Join the IRC! irc.rizon.net:6667/srl | SQLite (0.99rc3+) | SRL Doc | Simba Doc | Extra Simba Libraries (openSSL & sqlite3)
    Quote Originally Posted by #srl
    10:45 < Toter> daphil when can get sex anyday I want
    10:45 < Toter> he is always on #SRL
    "A programmer is just a tool which converts caffeine into code"

  5. #5
    Join Date
    Nov 2010
    Location
    Australia
    Posts
    1,472
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default

    Well its useless since it uses the old stats.

  6. #6
    Join Date
    Oct 2009
    Location
    Stockton, CA
    Posts
    2,040
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Oh, it does? Then shit, just get a new script :P.
    Join the IRC! irc.rizon.net:6667/srl | SQLite (0.99rc3+) | SRL Doc | Simba Doc | Extra Simba Libraries (openSSL & sqlite3)
    Quote Originally Posted by #srl
    10:45 < Toter> daphil when can get sex anyday I want
    10:45 < Toter> he is always on #SRL
    "A programmer is just a tool which converts caffeine into code"

  7. #7
    Join Date
    Jan 2011
    Posts
    335
    Mentioned
    0 Post(s)
    Quoted
    23 Post(s)

    Default

    Quote Originally Posted by Sex View Post
    Oh, it does? Then shit, just get a new script :P.
    I tried getting new scripts and i said i had problem when i requested a new one, but the guy was like "go try help thread to fix the problem" so... can someone just pm me a script that does stringing lol? tired of being bounced back and forth.
    If I see you autoing with level 3/default clothes/crap name I WILL report you. Auto Correctly.

  8. #8
    Join Date
    Oct 2009
    Location
    Stockton, CA
    Posts
    2,040
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Um, post the script, I'll remove stats and make it compile.
    Or I'll make you a simple little stringer if you want.
    Join the IRC! irc.rizon.net:6667/srl | SQLite (0.99rc3+) | SRL Doc | Simba Doc | Extra Simba Libraries (openSSL & sqlite3)
    Quote Originally Posted by #srl
    10:45 < Toter> daphil when can get sex anyday I want
    10:45 < Toter> he is always on #SRL
    "A programmer is just a tool which converts caffeine into code"

  9. #9
    Join Date
    Jan 2011
    Posts
    335
    Mentioned
    0 Post(s)
    Quoted
    23 Post(s)

    Default

    http://villavu.com/forum/showthread....light=fletcher

    is the one, i already have a simple stringing script but its too bot like and doesnt work that well lol.

    Also thankyou for the help.
    If I see you autoing with level 3/default clothes/crap name I WILL report you. Auto Correctly.

  10. #10
    Join Date
    Oct 2009
    Location
    Stockton, CA
    Posts
    2,040
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Simba Code:
    //////////////////////////////////////////////////
    ///////                                    ///////
    //                                              //
    //          Smurg's AIO Fletcher V2.01          //
    //       --------------------------------       //
    //       |     Fill in lines 61-107     |       //
    //       --------------------------------       //
    //                                              //
    ///////                                    ///////
    ////////////////////////////////////////////////////////////////////////////////
    ///////                                                                  ///////
    //                                                                            //
    //       Release Notes:                                                       //
    //        Version 1.00:                                                       //
    //          + Wrote original script and personally tested                     //
    //        Version 1.10:                                                       //
    //          + Added in breaks and fixed antiban                               //
    //        Version 1.20:                                                       //
    //          + Added final report and fixed formatting, break handler,         //
    //            and various errors                                              //
    //        Version 1.30:                                                       //
    //          + Added stringing support                                         //
    //          + Pulled ID #'s out and replaced using constants                  //
    //          + Replaced waits with failsafe loops ending on conditions         //
    //          + Restructured the Mainloop from inventory counts to by each      //
    //            'activity' and individual checks                                //
    //        Version 2.00:                                                       //
    //          + Added arrow support. (Darts and Bolts soon!)                    //
    //          + Added some more antiban.                                        //
    //        Version 2.01:                                                       //
    //          + Updated DTMs                                                    //
    //                                                                            //
    //       Future Additions:                                                    //
    //          + Darts/Bolts Support                                             //
    //                                                                            //
    //       Known Bugs: Sometimes SRL Anti-Ban functions makes it walk (should   //
    //                   relocate to a bank if on screen though.                  //
    //                                                                            //
    ///////                                                                  ///////
    ////////////////////////////////////////////////////////////////////////////////
    //                                                                            //
    //           Instructions:                                                    //
    //                                                                            //
    // + Start with knife in first inventory spot if cutting wood.                ///////
    // + Only cutting/stringing logs and arrows are supported so far, no bolts/darts.  //
    // + For arrows/darts/bolts: Start with any items you need in inventory, it will   //
    //   make the headless for you and then attach the tips.                           //
    //                                                                            ///////
    ////////////////////////////////////////////////////////////////////////////////
    program AIOFletcher;                            //
    {$i SRL/SRL/misc/smart.scar}                    //
    {$i SRL/SRL.scar}                               //
    {$i Reflection/Reflection.Simba}                //
    const                                           //
    //////////////////////////////////////////////////

    ///////////////////////////////////////////////////////////
    //////////////////// Global Settings  /////////////////////
    ///////////////////////////////////////////////////////////
      World = 67;          // World # to play on             //
      DebugMode = True;    // Output debugging statements?   //
    ///////////////////////////////////////////////////////////

    ///////////////////////////////////////////////////////////
    ////////// Break Handler for Single Player Only ///////////
    ////////////////////////////////////////////////////////////////////////////////
      BreakEvery = 220;      // Break every ... (+/- 'BreakEveryRand' minutes)    //
      BreakEveryRand = 40;  // +/- amount for BreakEvery                          //
    //----------------------------------------------------------------------------//
      BreakFor = 10;        // Break for ... (+/- 'BreakForRand' minutes)         //
      BreakForRand = 5;    // +/- amount for BreakFor                             //
    ////////////////////////////////////////////////////////////////////////////////

    procedure DeclarePlayers;
    var
      x: Integer;
    begin
      HowManyPlayers := 1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;

      with Players[0] do
      begin
        Name := '';
        Pass := '';
        Nick := '';
        Pin := '';
        Active := True;
    //----------------------------------------------------------------------------------------------------
        Integers[0] := 99999;    // Items (Logs, Arrows, Darts, etc.) to fletch before switching players
                                 // If using one player, leave Integers[0] blank or equal to Integers[1]
    //----------------------------------------------------------------------------------------------------
        Integers[1] := 99999;    // Items (Logs, Arrows, Darts, etc.) to fletch before stopping player.
    //----------------------------------------------------------------------------------------------------
        Strings[0] := 'Cut';     // Activity ('Cut'/'String'/'Arrows'/'Darts'/'Bolts')
    //----------------------------------------------------------------------------------------------------
        Strings[1] := 'Willow';  // Cutting/Stringing: ('Normal'/'Oak'/'Willow'/'Maple'/'Yew'/'Magic')
                                 // Arrows: ('ABronze'/'AIron'/'ASteel'/'AMithril'/'ABroad'/'AAdamant'/'ARune'/'ADragon')
                                 // Darts:  ('DBronze'/'DIron'/'DSteel'/'DMithril'/'DAdamant'/'DRune'/'DDragon')
                                 // Bolts:  ('BBronze'/'BIron'/'BSilver'/'BSteel'/'BMithril'/'BAdamant'/'BRune'/'BBroad')
                                 // Headless: Just for making headless arrows, no tips added.
    //----------------------------------------------------------------------------------------------------
        Strings[2] := 'Long';    // Cutting/Stringing: ('Long'/'Short'/'Stock'/'Shaft') (Stringing only supports longbows.)
                                 // Arrows, Darts, Bolts: Leave as ''
    //----------------------------------------------------------------------------------------------------
        Strings[3] := 'lb';      // Bank location.

        // veb  -  Varrock East Bank
        // vwb  -  Varrock West Bank
        // fwb  -  Falador West Bank
        // feb  -  Falador East Bank
        // lb   -  Lumbridge Bank
        // db   -  Draynor Bank
        // akb  -  Al-Kharid Bank
        // seb  -  Seers Bank
        // ctb  -  Catherby Bank
        // eb   -  Edgeville Bank
        // fgb  -  Fishing Guild Bank
        // mc   -  Moonclan Bank
        // yb   -  Yanille Bank
        // da   -  Duel Arena Bank
        // asb  -  Ardougne South Bank
        // pc   -  Pest Control Bank

      end; {

      with Players[1] do
      begin
        Name := '';
        Pass := '';
        Nick := '';
        Pin := '';
        Active := True;
    //----------------------------------------------------------------------------------------------------
        Integers[0] := 99999;    // Items (Logs, Arrows, Darts, etc.) to fletch before switching players
                                 // If using one player, leave Integers[0] blank or equal to Integers[1]
    //----------------------------------------------------------------------------------------------------
        Integers[1] := 99999;    // Items (Logs, Arrows, Darts, etc.) to fletch before stopping player.
    //----------------------------------------------------------------------------------------------------
        Strings[0] := 'Cut';     // Activity ('Cut'/'String'/'Arrows'/'Darts'/'Bolts')
    //----------------------------------------------------------------------------------------------------
        Strings[1] := 'Willow';  // Cutting/Stringing: ('Normal'/'Oak'/'Willow'/'Maple'/'Yew'/'Magic')
                                 // Arrows: ('ABronze'/'AIron'/'ASteel'/'AMithril'/'ABroad'/'AAdamant'/'ARune'/'ADragon')
                                 // Darts:  ('DBronze'/'DIron'/'DSteel'/'DMithril'/'DAdamant'/'DRune'/'DDragon')
                                 // Bolts:  ('BBronze'/'BIron'/'BSilver'/'BSteel'/'BMithril'/'BAdamant'/'BRune'/'BBroad')
    //----------------------------------------------------------------------------------------------------
        Strings[2] := 'Long';    // Cutting/Stringing: ('Long'/'Short'/'Stock'/'Shaft') (Stringing only supports longbows.)
                                 // Arrows, Darts, Bolts: Leave as ''
    //----------------------------------------------------------------------------------------------------
        Strings[3] := 'lb';      // Bank location.

        // veb  -  Varrock East Bank
        // vwb  -  Varrock West Bank
        // fwb  -  Falador West Bank
        // feb  -  Falador East Bank
        // lb   -  Lumbridge Bank
        // db   -  Draynor Bank
        // akb  -  Al-Kharid Bank
        // seb  -  Seers Bank
        // ctb  -  Catherby Bank
        // eb   -  Edgeville Bank
        // fgb  -  Fishing Guild Bank
        // mc   -  Moonclan Bank
        // yb   -  Yanille Bank
        // da   -  Duel Arena Bank
        // asb  -  Ardougne South Bank
        // pc   -  Pest Control Bank

      end;}


      for x := 0 to (HowManyPlayers - 1) do
      begin
        Players[x].Integers[90] := 0;     // Local loads done per player.
        Players[x].Integers[91] := 0;     // Global loads done per player.
        Players[x].Integers[92] := 0;     // Time ran per player.
        Players[x].Integers[93] := 0;     // Sleep time per player.

          // 80: FeathersSlot      // 94: Headless Arrow XP
          // 81: ShaftSlot         // 95: Unstrung Bow ID #
          // 82: HeadlessSlot      // 96: Finished Bow ID #
          // 83: TipsSlot          // 97: XP per log
                                   // 98: Wood/Tip ID #

      end;

      if(HowManyPlayers = 1)then Players[CurrentPlayer].Integers[0] := Players[CurrentPlayer].Integers[1];
    end;

    var
      StartTime, EndTime, Wrong: Integer;
      BreakStartTime, SBreakEvery, SBreakFor: Integer;

    const
    //////////////////
    //     ID's     //
    /////////////////////////
      Knife = 946;         //
      BowString = 1777;    //
      Feathers = 314;      //
      Shafts = 52;         //
      Headless = 53;       //////////////////////////////////////////////
      ABronze = 39; AIron = 40; ASteel = 41; AMithril = 42;            //
      ABroad = 13278; AAdamant = 43; ARune = 44; ADragon = 11237;      //
      DBronze = 819; DIron = 820; DSteel = 821; DMithril = 822;        //
      DAdamant = 823; DRune = 824; DDragon = 11232;                    //
      BBronze = 9375; BIron = 9377; BSilver = 9382; BSteel = 9378;     //
      BMithril = 9379; BBroad = 13279; BAdamant = 9380; BRune = 9381;  //
    /////////////////////////////////////////////////////////////////////
    //     Colors   //
    /////////////////////////
      WhBorder = 16777215; //
      OrText = 2070783;    //
    /////////////////////////

    ////////////////////////////////////////////////////////////////////////////////
    procedure RWait(WaitTime: Integer);                                           //
    begin                                                                         //
      Wait(WaitTime + Random(WaitTime / 5));                                      //
    end;                                                                          //
    ////////////////////////////////////////////////////////////////////////////////
    procedure MC(x, y, rx, ry: Integer; Left: Boolean);                           //
    begin                                                                         //
      Mouse(x + RandomRange(-rx,rx), y + RandomRange(-ry,ry), 0, 0, Left);        //
    end;                                                                          //
    ////////////////////////////////////////////////////////////////////////////////
    procedure Debug(Msg: String);                                                 //
    begin                                                                         //
      if(DebugMode)then                                                          //
        Writeln(Msg);                                                             //
    end;                                                                          //
    ////////////////////////////////////////////////////////////////////////////////
    procedure Bye(Msg: String);                                                   //
    begin                                                                         //
      Players[CurrentPlayer].Active := False;                                     //
      Players[CurrentPlayer].Strings[99] := Msg;                                  //
      Logout;                                                                     //
    end;                                                                          //
    ////////////////////////////////////////////////////////////////////////////////

    function WhiteBorder(x, y: Integer): Boolean;
    var
      i, n, m: Integer;
    begin
      Debug('Selecting White Border');
      Result := False; i := 0;
      repeat
        if(FindColorSpiralTolerance(n, m, WhBorder, x - 8, y - 8, x + 8, y + 8, 1))then
          Result := True
        else begin
          MC(x, y, 6, 6, True);
          Wait(200 + Random(100));
        end;
        Inc(i);
      until((i > 2) or (Result = True))
    end;

    function OrangeText: Boolean;
    var
      i, x, y: Integer;
    begin
      Debug('Selecting Orange Text');
      Result := False;
      repeat
        Wait(50);
        if(FindColorSpiralTolerance(x, y, OrText, MCX1, MCY1, MCX2, MCY2, 2))then
          Result := True;
        Inc(i);
      until((i > 100) or (Result = True))
    end;

    procedure TakeBreak;
    var
      i, StartBreak: Integer;
    begin
      Logout;
      StartBreak := GetSystemTime;
      Debug('Taking a break for ' + IntToStr(SBreakFor div 1000 div 60) + ' minutes.');
      repeat
        Wait(1000);
        Inc(i);
        if((i > 120) and ((SBreakFor - (GetSystemTime - StartBreak)) > 5000))then
        begin
          i := 0;
          Debug('Waking up in ' + IntToStr((SBreakFor - (GetSystemTime - StartBreak)) div 1000 div 60) + ' minutes.');
        end;
      until(SBreakFor < (GetSystemTime - StartBreak))
      Debug('Waking up');
      LogInPlayer;
      IncEx(Players[CurrentPlayer].Integers[93], SBreakFor);
      BreakStartTime := GetSystemTime;
      SBreakEvery := (BreakEvery + RandomRange(-BreakEveryRand, BreakEveryRand)) * 60 * 1000;
      SBreakFor := (BreakFor + RandomRange(-BreakForRand, BreakForRand)) * 60 * 1000;
      Wait(6000 + Random(6000));
    end;

    procedure AntiBan;
    begin
      case Random(500) of
        0..4: Gametab(RandomRange(tab_Combat, tab_Notes));
        5..14: RandomRClick;
        15..47: SleepAndMoveMouse(1000+ Random(1200));
        48..50: BoredHuman;
        51..60: HoverSkill('fletching', False);
        61..100: IdleTime(2000, 1000, 0.2);
      end;
    end;

    procedure SoftAntiBan;
    begin
      case Random(500) of
        0..10: RandomRClick;
        11..50: SleepAndMoveMouse(RandomRange(200, 1200));
        51..85: IdleTime(1000, 500, 0.2);
      end;
    end;

    procedure AFKAntiBan;
    begin
      Wait(30000 + Random(50000));
    end;

    function GetDTM(Item: string): Integer;
    begin
      case Lowercase(Item) of
        'normal', 'regular':  Result := DTMFromString('mlwAAAHicY2dgYDADYnsg1gNiL' +
                    'SBWB2ILIHYE4hwgLgDiQiDOAuJiIC6Fsr0sFBmSvbQZWrKsgDwmFMwDJGEYH' +
                    'TDiwVAAAPZKB1Q=');
        'oak':      Result := DTMFromString('mlwAAAHicY2dgYEgC4mwgDgPiGCAOBuJ0qBg' +
                    'I5wNxIRBXAHEuEJcAcRYQV0abMrSlWjNMKQfpYELBPEAShtEBIx4MBQDr7gl6');
        'willow':   Result := DTMFromString('mrAAAAHic42BgYOgF4qlA3A7EjUBcjyQ2HYh' +
                    'zgDgPiIuAOBuIi4G4DIhLgDgTiI11+RmcrUUYIoKsgTwmDMwDJGEYG2AkgGE' +
                    'AABoVCgQ=');
        'maple':    Result := DTMFromString('mrAAAAHic42BgYNgBxIeAeBMQrwPitUC8GYj' +
                    '3AvERIM4B4gIgLgTibCAuBeIKKJ0FxM46nAxxdrwM5SEqQB4TBuYBkjCMDTA' +
                    'SwDAAAP21C44=');
        'yew':      Result := DTMFromString('mrAAAAHic42BgYHgKxO+B+B4Q3wLia0B8F4i' +
                    'fA/FHIM4B4gIgLgTiLCi7DIpBfDN1dgYfc26GwmgjII8JA/MASRjGBhgJYBg' +
                    'AAL7lDMM=');
        'magic':    Result := DTMFromString('mlwAAAHicY2dgYBBiZGBgB2J5IBYGYlkg5gF' +
                    'iFiDOBcqXAHEOEJcBcSkQV0L5EYGGDIdOn2AI9tVnyEywBoowwTEPkETGyIA' +
                    'RD4YCAElYCOM=');
        'bow string': Result := DTMFromString('mlwAAAHicY2dgYLBjhGAvIDYEYjcgdgViU' +
                      'yDOBcqXA3EREGcCcQUDRAyEs1OC4DgqyAYowgTHPEASGSMDRjwYCgCv8Qlf');
        'umaple':     Result := DTMFromString('mggAAAHicY2NgYDjKyMBwHogPAvFJID4Lx' +
                      'GeA+AFQ7h0Q3wXiR0D8AojfAHF6TCRDeXY6Q4S/D0NDcT5QhAmMeYAkMoY' +
                      'BRhwYAgBw5A8Z');
        'uyew':       Result := DTMFromString('mlwAAAHicY2dgYLAEYjsgdgBiZyA2BWJHI' +
                      'LYFYh5GBgYBIBYDYikg5gRiYSDmBeL0SD6GibUiDHW5QmDMwMAExzwgvUg' +
                      'YGTDiwVAAAHFnBlg=');
        'umagic':     Result := DTMFromString('mggAAAHicY2NgYEgD4iQgzoLiXCDOA2IeR' +
                      'gYGDiDmA2JhIBYHYikgVspPY5Dw92BQzE5iEDAzZJAK82eQDPRi4AHpwYI' +
                      'ZcWAIAACCoge2');
        else
        begin
          Bye('Wrong DTM selected.');
          Exit;
        end;
      end;
    end;

    procedure BankDTM(Item: String; Num: Integer);
    var
      i, x, y, DTM_OBJ, Start, StartInv: Integer;
    begin
      if(not(LoggedIn))then Exit;
      DTM_OBJ := GetDTM(Item);
      repeat
        RWait(75);
        if(i = 85)then
          MMouse(300, 50, 100, 45);
        if((i > 90) and (i < 94))then
        begin
          FreeDTM(DTM_OBJ);
          DTM_OBJ := GetDTM(Item);
          CloseBank;
          R_OpenBankBooth(Players[CurrentPlayer].Strings[3]);
          Wait(350 + Random(500));
        end;
        if(i > 100)then
        begin
          CloseBank;
          Logout;
          FreeDTM(DTM_OBJ);
          Bye('Couldnt find ' + Item + ' Logs.');
          Exit;
        end;
        Inc(i);
      until(FindDTM(DTM_OBJ, x, y, MSX1, 80, MSX2, MSY2))
      FreeDTM(DTM_OBJ);
      i := 0;
      Wait(50 + Random(150));
      MC(x, y, 5, 5, False);
      Wait(250 + Random(300));
      StartInv := InvCount;
      if(Num = 28)then
      begin
        ChooseOption('ithdraw-All but');
        RWait(300);
        Exit;
      end else
      begin
        if(OptionsExist(['draw-' + IntToStr(num)], False))then
        begin
          ChooseOption('draw-' + IntToStr(num));
          Wait(150 + Random(450));
        end else
        begin
          ChooseOption('draw-X');
          DTM_OBJ := DTMFromString('mwQAAAHic42QAAkYGhhtA6g4QawLZekAsAsRvgPxbQKwA' +
                     'ZE8C4ilA3APEU4G4HyoGwhOAeCIjA9UAIxEYDgCBqglB');
          Start := GetSystemTime;
          repeat
            RWait(100);
            if((GetSystemTime - Start) > 7500)then
            begin
              FreeDTM(DTM_OBJ);
              Exit;
            end;
          until((FindDTM(DTM_OBJ, x, y, 200, 380, 320, 420)))
          FreeDTM(DTM_OBJ);
          Wait(150 + Random(450));
          TypeSend(IntToStr(Num));
        end;
      end;
      repeat
        RWait(50);
        if(i > 150)then
          Break;
        Inc(i);
      until(InvCount > StartInv)
      i := 0;
      Wait(100 + Random(250));
    end;

    {procedure Stats;
    begin
      Debug('Sending Updated Stats');
      if(not(SRLStats_UserID = ''))then
      begin
        Stats_SendReport;
        Stats_ManageAccounts;
      end;
    end;}


    {procedure SetupStats;
    begin
      Stats_UserID := SRLStats_UserID;
      Stats_Password := SRLStats_Password;
      Stats_ScriptID := '91';
      Debug('Setup Stats With Website');
    end;}


    procedure CutLogs;
    var
      i, r, Inv, LogCount, Num, Start: Integer;
    begin
      if(not(LoggedIn))then Exit;
      if(R_BankScreen = False)then
      begin
        Inv := R_CountItemID(Players[CurrentPlayer].Integers[98]);
        if(Inv < 27)then
        begin
          Inc(Wrong);
          Exit;
        end;
        if(not(WhiteBorder(580, 230)))then
          Inc(Wrong)
        else begin
          Debug('Clicking Knife onto Wood');
          Wait(300 + Random(300));
          case Random(6) of
            0..3: MC(625, 225, 7, 7, True);
            4: MC(580, 265, 7, 7, True);
            5: MC(625, 265, 7, 7, True);
          end;
          Wait(300 + Random(300));
          if(not(OrangeText))then
            Inc(Wrong)
          else begin
            Debug('Clicking Orange Text');
            Wait(200 + Random(300));
            case LowerCase(Players[CurrentPlayer].Strings[1]) of
              'normal', 'regular': begin
                case LowerCase(Players[CurrentPlayer].Strings[2]) of
                  'shaft': MC(110, 425, 25, 15, True);
                  'short': MC(210, 425, 25, 15, True);
                  'long': MC(310, 425, 25, 15, True);
                  'stock': MC(410, 425, 25, 15, True);
                end;
              end;
              'oak', 'willow', 'maple', 'yew': begin
                case LowerCase(Players[CurrentPlayer].Strings[2]) of
                  'short': MC(160, 425, 25, 15, True);
                  'long': MC(260, 425, 25, 15, True);
                  'stock': MC(360, 425, 25, 15, True);
                end;
              end;
              'magic': begin
                case LowerCase(Players[CurrentPlayer].Strings[2]) of
                  'short': MC(210, 425, 25, 15, True);
                  'long': MC(310, 425, 25, 15, True);
                end;
              end;
            end;
            repeat
              Wait(100);
              Inc(i);
              if(i > 75)then
                Inc(Wrong);
            until((R_CountItemID(Players[CurrentPlayer].Integers[98]) < Inv) or (i > 75))
            i := 0;
            if(R_CountItemID(Players[CurrentPlayer].Integers[98]) < Inv)then
            begin
              Wrong := 0;
              Start := GetSystemTime;
              repeat
                if(r = 0)then
                  LogCount := R_CountItemID(Players[CurrentPlayer].Integers[98]);
                RWait(100);
                if(LevelUp)then Exit;
                if(i > 1000)then
                  Inc(Wrong);
                if(R_CountItemID(Players[CurrentPlayer].Integers[98]) > 8)then
                  AntiBan
                else
                  SoftAntiBan;
                if(R_FindRandoms)then
                begin
                  RWait(2500 + Random(5300));
                  Exit;
                end;
                Inc(i); Inc(r);
                if(R_CountItemID(Players[CurrentPlayer].Integers[98]) < LogCount)then
                begin
                  //Debug('Less Logs Detected. Resetting R.');
                  r := 0;
                end else
                begin
                  //Debug('R: ' + IntToStr(r));
                  if(r > 20)then
                  begin
                    Inc(Wrong);
                    Exit;
                  end;
                end;
              until((R_CountItemID(Players[CurrentPlayer].Integers[98]) = 0) or ((GetSystemTime - Start) > 120000))
              Num := (27 - R_CountItemID(Players[CurrentPlayer].Integers[98]));
              IncEx(Players[CurrentPlayer].Integers[90], Num);
              IncEx(Players[CurrentPlayer].Integers[91], Num);
              //IncEx(Stats_CustomVars[1], Num);
              //IncEx(Stats_CustomVars[2], Num * Players[CurrentPlayer].Integers[97]);
              //Stats;
              Debug(IntToStr(i));
            end;
          end;
        end;
      end else
        CloseBank;
    end;

    procedure StringThem;
    var
      i, r, x, y, Inv, Num, StringCount, Start: Integer;
    begin
      if(not(LoggedIn))then Exit;
      if((R_BankScreen = False) and (R_CountItemID(BowString) = 14) and (R_CountItemID(Players[CurrentPlayer].Integers[95]) = 14))then
      begin
        Inv := InvCount;
        case Random(100) of
          0..55: begin
            x := 585; y := 340;
          end;
          56..80: begin
            x := 625; y := 340;
          end;
          81..92: begin
            x := 665; y := 300;
          end;
          93..99: begin
            x := 705; y := 300;
          end;
        end;
        if(not(WhiteBorder(x, y)))then
          Inc(Wrong)
        else begin
          Debug('Clicking String onto Unstrung');
          Wait(300 + Random(300));
          if(x < 600)then
            MC(585, 375, 7, 7, True)
          else if(x < 640)then
            MC(625, 375, 7, 7, True)
          else if(x < 680)then
            MC(665, 335, 7, 7, True)
          else if(x < 720)then
            MC(705, 335, 7, 7, True);
          Wait(300 + Random(300));
          if(not(OrangeText))then
            Inc(Wrong)
          else begin
            Debug('Clicking Orange Text');
            Wait(200 + Random(300));
            MC(260, 425, 25, 15, True);
            repeat
              Wait(100);
              Inc(i);
              if(i > 75)then
              begin
                Inc(Wrong);
                Exit;
              end;
            until(InvCount < Inv)
            i := 0; Wrong := 0;
            Start := GetSystemTime;
            repeat
              if(r = 0)then
                StringCount := R_CountItemID(BowString);
              RWait(100);
              if(LevelUp)then Exit;
              if(i > 1000)then
                Inc(Wrong);
              if(R_CountItemID(Players[CurrentPlayer].Integers[96]) < 8)then
                AntiBan
              else
                SoftAntiBan;
              if(R_FindRandoms)then
              begin
                RWait(2500 + Random(5300));
                Exit;
              end;
              Inc(i); Inc(r);
              if(R_CountItemID(BowString) < StringCount)then
              begin
                Debug('Less Strings Detected. Resetting R.');
                r := 0;
              end else
              begin
                Debug('R: ' + IntToStr(r));
                if(r > 20)then
                begin
                  Inc(Wrong);
                  Exit;
                end;
              end;
            until((R_CountItemID(BowString) = 0) or ((GetSystemTime - Start) > 45000))
            Num := (14 - R_CountItemID(BowString));
            IncEx(Players[CurrentPlayer].Integers[90], Num);
            IncEx(Players[CurrentPlayer].Integers[91], Num);
            //IncEx(Stats_CustomVars[1], Num);
            //IncEx(Stats_CustomVars[2], Num * Players[CurrentPlayer].Integers[97]);
            //Stats;
          end;
        end;
      end else
        Inc(Wrong);
    end;

    procedure HeadlessLoop;
    var
      i, r, Num, Start, StartAmount, StartAmount2: Integer;
      Inv: array[1..28] of TInvItem;
    begin
      if(Players[CurrentPlayer].Booleans[0] = False)then
      begin
        for i := 1 to 28 do
        begin
          Inv[i] := GetInvItemAt(i);
          case Inv[i].ID of
            Feathers: Players[CurrentPlayer].Integers[80] := Inv[i].Slot;
            Shafts:   Players[CurrentPlayer].Integers[81] := Inv[i].Slot;
            Headless: Players[CurrentPlayer].Integers[82] := Inv[i].Slot;
            Players[CurrentPlayer].Integers[98]: Players[CurrentPlayer].Integers[83] := Inv[i].Slot;
          end;
        end;
        Players[CurrentPlayer].Booleans[0] := True;
      end;
      if(Random(2) = 0)then
      begin
        R_ClickItemID(Feathers, True, '');
        RWait(150 + Random(350));
        R_ClickItemID(Shafts, True, '');
      end else
      begin
        R_ClickItemID(Shafts, True, '');
        RWait(150 + Random(350));
        R_ClickItemID(Feathers, True, '');
      end;
      Start := GetSystemTime;
      repeat
        RWait(100);
        if((GetSystemTime - Start) > 5000)then
        begin
          Inc(Wrong);
          Exit;
        end;
      until(OrangeText)
      Wait(150 + Random(350));
      MC(260, 425, 25, 10, True);
      StartAmount := GetItemStackSizeAt(Players[CurrentPlayer].Integers[80]);
      Start := GetSystemTime;
      repeat
        RWait(100);
        if((GetSystemTime - Start) > 5000)then
        begin
          Inc(Wrong);
          Exit;
        end;
      until(GetItemStackSizeAt(Players[CurrentPlayer].Integers[80]) < StartAmount)
      Wrong := 0;
      repeat
        if(r = 0)then
          StartAmount2 := GetItemStackSizeAt(Players[CurrentPlayer].Integers[80]);
        RWait(25);
        if(LevelUp)then
        begin
          Wait(500 + Random(2000));
          Exit;
        end;
        if(R_FindRandoms)then
        begin
          RWait(2500 + Random(5300));
          Exit;
        end;
        SoftAntiBan;
        Inc(r);
        if(GetItemStackSizeAt(Players[CurrentPlayer].Integers[80]) < StartAmount2)then
        begin
          Debug('Less Feathers Detected. Resetting R.');
          r := 0;
        end else
          Debug('R: ' + IntToStr(r));
      until((r >= 15) or ((GetSystemTime - Start) > 25000))
      Wait(100 + Random(250));
      Num := (StartAmount - GetItemStackSizeAt(Players[CurrentPlayer].Integers[80]));
      IncEx(Players[CurrentPlayer].Integers[94], Num);
      //IncEx(Stats_CustomVars[2], Num * Players[CurrentPlayer].Integers[97]);
      //Stats;
      if(Random(19) = 0)then BoredHuman;
    end;

    procedure ArrowLoop;
    var
      i, r, Num, Start, StartAmount, StartAmount2: Integer;
      Inv: array[1..28] of TInvItem;
    begin
      if(Players[CurrentPlayer].Booleans[1])then
      begin
        Players[CurrentPlayer].Booleans[0] := False;
        Players[CurrentPlayer].Booleans[1] := False;
      end;
      if(Players[CurrentPlayer].Booleans[0] = False)then
      begin
        for i := 1 to 28 do
        begin
          Inv[i] := GetInvItemAt(i);
          case Inv[i].ID of
            Feathers: Players[CurrentPlayer].Integers[80] := Inv[i].Slot;
            Shafts:   Players[CurrentPlayer].Integers[81] := Inv[i].Slot;
            Headless: Players[CurrentPlayer].Integers[82] := Inv[i].Slot;
            Players[CurrentPlayer].Integers[98]: Players[CurrentPlayer].Integers[83] := Inv[i].Slot;
          end;
        end;
        Players[CurrentPlayer].Booleans[0] := True;
      end;
      if(Random(2) = 0)then
      begin
        R_ClickItemID(Headless, True, '');
        RWait(150 + Random(350));
        R_ClickItemID(Players[CurrentPlayer].Integers[98], True, '');
      end else
      begin
        R_ClickItemID(Players[CurrentPlayer].Integers[98], True, '');
        RWait(150 + Random(350));
        R_ClickItemID(Headless, True, '');
      end;
      Start := GetSystemTime;
      repeat
        RWait(100);
        if((GetSystemTime - Start) > 5000)then
        begin
          Inc(Wrong);
          Exit;
        end;
      until(OrangeText)
      Wait(150 + Random(350));
      MC(260, 425, 25, 10, True);
      StartAmount := GetItemStackSizeAt(Players[CurrentPlayer].Integers[83]);
      Start := GetSystemTime;
      repeat
        RWait(100);
        if((GetSystemTime - Start) > 5000)then
        begin
          Inc(Wrong);
          Exit;
        end;
      until(GetItemStackSizeAt(Players[CurrentPlayer].Integers[83]) < StartAmount)
      Wrong := 0;
      repeat
        if(r = 0)then
          StartAmount2 := GetItemStackSizeAt(Players[CurrentPlayer].Integers[83]);
        RWait(25);
        if(LevelUp)then
        begin
          Wait(500 + Random(2000));
          Exit;
        end;
        if(R_FindRandoms)then
        begin
          RWait(2500 + Random(5300));
          Exit;
        end;
        SoftAntiBan;
        Inc(r);
        if(GetItemStackSizeAt(Players[CurrentPlayer].Integers[83]) < StartAmount2)then
        begin
          Debug('Less Tips Detected. Resetting R.');
          r := 0;
        end else
          Debug('R: ' + IntToStr(r));
      until((r >= 15) or ((GetSystemTime - Start) > 25000))
      Wait(100 + Random(250));
      Num := (StartAmount - GetItemStackSizeAt(Players[CurrentPlayer].Integers[83]));
      IncEx(Players[CurrentPlayer].Integers[90], Num);
      IncEx(Players[CurrentPlayer].Integers[91], Num);
      //IncEx(Stats_CustomVars[1], Num);
      //IncEx(Stats_CustomVars[2], Num * Players[CurrentPlayer].Integers[97]);
      //Stats;
      if(Random(25) = 0)then BoredHuman;
    end;

    procedure DartLoop;
    begin
    end;

    procedure BoltLoop;
    begin
    end;

    procedure MainLoop;
    var
      Start: Integer;
    begin
      if(not(LoggedIn))then Exit;
      RWait(150 + Random(150));
      case (LowerCase(Players[CurrentPlayer].Strings[0])) of
        'cut':  begin
                  R_FindRandoms;
                  if(not(R_CountItemID(Knife) = 1))then
                  begin
                    Bye('No Knife in Inventory');
                    Exit;
                  end;
                  if(not(R_CountItemId(Players[CurrentPlayer].Integers[98]) = 27))then
                  begin
                    R_OpenBankBooth(Players[CurrentPlayer].Strings[3]);
                    //OpenBank(Players[CurrentPlayer].Strings[3], True, True);
                    Start := GetSystemTime;
                    repeat
                      RWait(100);
                    until((R_BankScreen) or ((GetSystemTime - Start) > 5000))
                    Wait(200 + random(300));
                    R_DepositAllButID(Knife);
                    Wait(200 + Random(300));
                    BankDTM(Players[CurrentPlayer].Strings[1], 28);
                  end;
                  Wait(350 + Random(500));
                  CloseBank;
                  if((R_CountItemID(Players[CurrentPlayer].Integers[98]) > 0) and (R_CountItemID(Players[CurrentPlayer].Integers[98]) < 27) and (not(InvCount = 28)))then
                  begin
                    Bye('Insufficient Logs Detected');
                    Exit;
                  end;
                  Start := GetSystemTime;
                  repeat
                    RWait(100);
                  until((not(R_BankScreen)) or ((GetSystemTime - Start) > 5000))
                  if(R_BankScreen)then CloseBank;
                  Wait(500 + Random(1000));
                  CutLogs;
                  R_FindRandoms;
                end;
        'string': begin
                    R_FindRandoms;
                    if(((R_CountItemID(BowString) > 0) and (R_CountItemID(BowString) < 14) and (not(InvCount = 28))) or
                    ((R_CountItemID(Players[CurrentPlayer].Integers[95]) > 0) and (R_CountItemID(Players[CurrentPlayer].Integers[95]) < 14) and (not(InvCount = 28))))then
                    begin
                      Bye('Insufficient Strings/Unstrung Detected');
                      Exit;
                    end;
                    if(not((R_CountItemID(BowString) = 14) and (R_CountItemID(Players[CurrentPlayer].Integers[95]) = 14)))then
                    begin
                      R_OpenBankBooth(Players[CurrentPlayer].Strings[3]);
                      //OpenBank(Players[CurrentPlayer].Strings[3], True, True);
                      Start := GetSystemTime;
                      repeat
                        RWait(100);
                      until((R_BankScreen) or ((GetSystemTime - Start) > 5000))
                      Wait(200 + random(300));
                      R_DepositAll(True);
                      Wait(200 + Random(300));
                      BankDTM('Bow String', 14);
                      BankDTM('u' + Players[CurrentPlayer].Strings[1], 14);
                    end;
                    Wait(350 + Random(500));
                    CloseBank;
                    Start := GetSystemTime;
                    repeat
                      RWait(100);
                    until((not(R_BankScreen)) or ((GetSystemTime - Start) > 5000))
                    if(R_BankScreen)then CloseBank;
                    Wait(500 + Random(1000));
                    StringThem;
                    R_FindRandoms;
                  end;
        'arrows', 'arrow':
                  begin
                    R_FindRandoms;
                    if(InvCount > 4)then
                    begin
                      Debug('To many item in inventory. Get it together.');
                      Exit;
                    end else
                    if((R_CountItemID(Feathers) > 0) and (R_CountItemID(Shafts) > 0))then
                    begin
                      HeadlessLoop;
                      Players[CurrentPlayer].Booleans[1] := True;
                    end
                    else if((R_CountItemID(Headless) > 0) and (R_CountItemID(Players[CurrentPlayer].Integers[98]) > 0))then
                      ArrowLoop
                    else
                    begin
                      Debug('Out of materials');
                      Exit;
                    end;
                  end;
        'darts', 'dart':
                  begin
                    R_FindRandoms;
                    DartLoop;
                  end;
        'bolts', 'bolt':
                  begin
                    R_FindRandoms;
                    BoltLoop;
                  end;
        else
        begin
          Bye('Wrong selection type entered.');
          Exit;
        end;
      end;
      R_FindRandoms;
    end;

    procedure Report;
    var
      a, i, SleepPer: Integer;
      PlayerRunTime: Extended;
    begin
      if(DebugMode = False)then
        ClearDebug;
      EndTime := GetSystemTime;
      IncEx(Players[CurrentPlayer].Integers[92], EndTime - StartTime);
      Writeln('---------------------------------------------');
      Writeln('------- Smurgs AIO Fletcher V2.01 -----------');
      Writeln('---------------------------------------------');
      Writeln('You are running: ' + IntToStr(HowManyPlayers) + ' character(s).');
      Writeln('---------------------------------------------');
      for a := 0 to (HowManyPlayers - 1) do
      begin
        PlayerRunTime := Players[a].Integers[92] div 1000.0 div 60.0 div 60.0;
        Writeln('Character: ' + Players[a].Nick);
        case LowerCase(Players[a].Strings[0]) of
          'cut':     Writeln('Logs Cut: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91]) div PlayerRunTime)) + ' logs/hr)(Cutting '  + Players[a].Strings[1] + ' ' + Players[a].Strings[2] + 's)');
          'string':  Writeln('Bows Strung: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91]) div PlayerRunTime)) + ' bows/hr)(Stringing ' + Players[a].Strings[1] + ' Bows)');
          'arrows', 'arrow':  Writeln('Arrows Fletched: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91] * 15) div PlayerRunTime)) + ' arrows/hr)(Making ' + Players[a].Strings[1] + ' Arrows)');
          'darts', 'dart':    Writeln('Darts Fletched: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91] * 10) div PlayerRunTime)) + ' darts/hr)(Making ' + Players[a].Strings[1] + ' Darts)');
          'bolts', 'bolt':    Writeln('Bolts Fletched: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91] * 10) div PlayerRunTime)) + ' bolts/hr)(Making ' + Players[a].Strings[1] + ' Bolts)');
        end;
        case LowerCase(Players[a].Strings[0]) of
          'cut', 'string':     Writeln('Experience Gained: ' + IntToStr(Players[a].Integers[91] * Players[a].Integers[97]) + ' (' + IntToStr(Round((Players[a].Integers[91] * Players[a].Integers[97]) div PlayerRunTime)) + ' xp/hr)');
          'arrows', 'arrow':  Writeln('Experience Gained: ' + IntToStr(((Players[a].Integers[91] * Players[a].Integers[97]) / 15) + Players[CurrentPlayer].Integers[94]) + ' (' + IntToStr(Round((((Players[a].Integers[91] * Players[a].Integers[97]) / 15) + Players[CurrentPlayer].Integers[94]) div PlayerRunTime)) + ' xp/hr)');
          'darts', 'dart':    Writeln('Experience Gained: ' + IntToStr((Players[a].Integers[91] * Players[a].Integers[97]) / 10) + ' (' + IntToStr(Round(((Players[a].Integers[91] * Players[a].Integers[97]) / 10) div PlayerRunTime)) + ' xp/hr)');
          'bolts', 'bolt':    Writeln('Experience Gained: ' + IntToStr((Players[a].Integers[91] * Players[a].Integers[97]) / 10) + ' (' + IntToStr(Round(((Players[a].Integers[91] * Players[a].Integers[97]) / 10) div PlayerRunTime)) + ' xp/hr)');
        end;
        Writeln('This character has been running for: ' + MsToTime(Players[a].Integers[92], 0));
        if(HowManyPlayers = 1)then
          Writeln('This character has slept for: ' + MsToTime(Players[a].Integers[93], 0))
        else
        begin
          SleepPer := 0;
          for i := 0 to (HowManyPlayers - 1)do
          begin
            if(not(a = i))then
              IncEx(SleepPer, Players[i].Integers[92]);
          end;
          Writeln('This character has slept for: ' + MsToTime(SleepPer, 0));
        end;
        if(Players[a].Active)then
          Writeln('Active Status: Active')
        else
        begin
          Writeln('Active Status: Not Active (Reason: ' + Players[a].Strings[99] + ')');
        end;
        Writeln('---------------------------------------------');
      end;
      Writeln('Total Script RunTime: ' + TimeRunning);
      Writeln('---------------------------------------------');
    end;

    procedure FinalReport;
    var
      a, i, SleepPer: Integer;
      PlayerRunTime: Extended;
    begin
      Writeln('---------------------------------------------');
      Writeln('------- Smurgs AIO Fletcher V2.01 -----------');
      Writeln('---------------------------------------------');
      Writeln('You are running: ' + IntToStr(HowManyPlayers) + ' character(s).');
      Writeln('---------------------------------------------');
      for a := 0 to (HowManyPlayers - 1) do
      begin
        PlayerRunTime := Players[a].Integers[92] div 1000.0 div 60.0 div 60.0;
        Writeln('Character: ' + Players[a].Nick);
        case LowerCase(Players[a].Strings[0]) of
          'cut':     Writeln('Logs Cut: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91]) div PlayerRunTime)) + ' logs/hr)(Cutting '  + Players[a].Strings[1] + ' ' + Players[a].Strings[2] + 's)');
          'string':  Writeln('Bows Strung: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91]) div PlayerRunTime)) + ' bows/hr)(Stringing ' + Players[a].Strings[1] + ' Bows)');
          'arrows', 'arrow':  Writeln('Arrows Fletched: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91] * 15) div PlayerRunTime)) + ' arrows/hr)(Making ' + Players[a].Strings[1] + ' Arrows)');
          'darts', 'dart':    Writeln('Darts Fletched: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91] * 10) div PlayerRunTime)) + ' darts/hr)(Making ' + Players[a].Strings[1] + ' Darts)');
        end;
        case LowerCase(Players[a].Strings[0]) of
          'cut', 'string':     Writeln('Experience Gained: ' + IntToStr(Players[a].Integers[91] * Players[a].Integers[97]) + ' (' + IntToStr(Round((Players[a].Integers[91] * Players[a].Integers[97]) div PlayerRunTime)) + ' xp/hr)');
          'arrows', 'arrow':  Writeln('Experience Gained: ' + IntToStr(((Players[a].Integers[91] * Players[a].Integers[97]) / 15) + Players[CurrentPlayer].Integers[94]) + ' (' + IntToStr(Round((((Players[a].Integers[91] * Players[a].Integers[97]) / 15) + Players[CurrentPlayer].Integers[94]) div PlayerRunTime)) + ' xp/hr)');
          'darts', 'dart':    Writeln('Experience Gained: ' + IntToStr((Players[a].Integers[91] * Players[a].Integers[97]) / 10) + ' (' + IntToStr(Round(((Players[a].Integers[91] * Players[a].Integers[97]) / 10) div PlayerRunTime)) + ' xp/hr)');
        end;
        Writeln('This character has been running for: ' + MsToTime(Players[a].Integers[92], 0));
        if(HowManyPlayers = 1)then
          Writeln('This character has slept for: ' + MsToTime(Players[a].Integers[93], 0))
        else
        begin
          SleepPer := 0;
          for i := 0 to (HowManyPlayers - 1)do
          begin
            if(not(a = i))then
              IncEx(SleepPer, Players[i].Integers[92]);
          end;
          Writeln('This character has slept for: ' + MsToTime(SleepPer, 0));
        end;
        if(Players[a].Active)then
          Writeln('Active Status: Active')
        else
        begin
          Writeln('Active Status: Not Active (Reason: ' + Players[a].Strings[99] + ')');
        end;
        Writeln('---------------------------------------------');
      end;
      Writeln('Total Script RunTime: ' + TimeRunning);
      Writeln('---------------------------------------------');
    end;

    procedure SetVars;
    var
      i: Integer;
    begin
      SBreakEvery := (BreakEvery + RandomRange(-BreakEveryRand, BreakEveryRand)) * 60 * 1000;
      SBreakFor := (BreakFor + RandomRange(-BreakForRand, BreakForRand)) * 60 * 1000;
      BreakStartTime := GetSystemTime;

      for i := 0 to (HowManyPlayers - 1)do
      begin
        case LowerCase(Players[i].Strings[1]) of
          'regular', 'normal':
          begin
            if(LowerCase(Players[i].Strings[0]) = 'string')then
            begin
              Bye('The script doesnt support stringing normal bows.');
              TerminateScript;
            end;
            Players[i].Integers[98] := 1511;
            case LowerCase(Players[i].Strings[2]) of
              'short':  Players[i].Integers[97] := 5;
              'long':   Players[i].Integers[97] := 10;
              'stock':  Players[i].Integers[97] := 6;
              'shaft':  Players[i].Integers[97] := 5;
              else
              begin
                Bye('Wrong value entered for fletch type');
                TerminateScript;
              end;
            end;
          end;
          'oak':
          begin
            if(LowerCase(Players[i].Strings[0]) = 'string')then
            begin
              Bye('The script doesnt support stringing oak bows.');
              TerminateScript;
            end;
            Players[i].Integers[98] := 1521;
            case LowerCase(Players[i].Strings[2]) of
              'short':  Players[i].Integers[97] := 17;
              'long':   Players[i].Integers[97] := 25;
              'stock':  Players[i].Integers[97] := 16;
              else
              begin
                Bye('Wrong value entered for fletch type');
                TerminateScript;
              end;
            end;
          end;
          'willow':
          begin
            if(LowerCase(Players[i].Strings[0]) = 'string')then
            begin
              Bye('The script doesnt support stringing willow bows.');
              TerminateScript;
            end;
            Players[i].Integers[98] := 1519;
            case LowerCase(Players[i].Strings[2]) of
              'short':  Players[i].Integers[97] := 33;
              'long':   Players[i].Integers[97] := 42;
              'stock':  Players[i].Integers[97] := 22;
              else
              begin
                Bye('Wrong value entered for fletch type');
                TerminateScript;
              end;
            end;
          end;
          'maple':
          begin
            if(LowerCase(Players[i].Strings[0]) = 'string')then
            begin
              if(not(LowerCase(Players[i].Strings[2]) = 'long'))then
              begin
                Bye('The script doesnt support stringing anything but longbows.');
                TerminateScript;
              end;
            end;
            Players[i].Integers[95] := 62;
            Players[i].Integers[96] := 851;
            Players[i].Integers[98] := 1517;
            case LowerCase(Players[i].Strings[2]) of
              'short':  Players[i].Integers[97] := 50;
              'long':   Players[i].Integers[97] := 58;
              'stock':  Players[i].Integers[97] := 32;
              else
              begin
                Bye('Wrong value entered for fletch type');
                TerminateScript;
              end;
            end;
          end;
          'yew':
          begin
            if(LowerCase(Players[i].Strings[0]) = 'string')then
            begin
              if(not(LowerCase(Players[i].Strings[2]) = 'long'))then
              begin
                Bye('The script doesnt support stringing anything but longbows.');
                TerminateScript;
              end;
            end;
            Players[i].Integers[95] := 66;
            Players[i].Integers[96] := 855;
            Players[i].Integers[98] := 1515;
            case LowerCase(Players[i].Strings[2]) of
              'short':  Players[i].Integers[97] := 68;
              'long':   Players[i].Integers[97] := 75;
              'stock':  Players[i].Integers[97] := 50;
              else
              begin
                Bye('Wrong value entered for fletch type');
                TerminateScript;
              end;
            end;
          end;
          'magic':
          begin
            if(LowerCase(Players[i].Strings[0]) = 'string')then
            begin
              if(not(LowerCase(Players[i].Strings[2]) = 'long'))then
              begin
                Bye('The script doesnt support stringing anything but longbows.');
                TerminateScript;
              end;
            end;
            Players[i].Integers[95] := 70;
            Players[i].Integers[96] := 859;
            Players[i].Integers[98] := 1513;
            case LowerCase(Players[i].Strings[2]) of
              'short':  Players[i].Integers[97] := 83;
              'long':   Players[i].Integers[97] := 92;
              else
              begin
                Bye('Wrong value entered for fletch type');
                TerminateScript;
              end;
            end;
          end;
          'abronze': begin Players[i].Integers[98] := ABronze; Players[i].Integers[97] := 40; end;
          'airon': begin Players[i].Integers[98] := AIron; Players[i].Integers[97] := 58; end;
          'asteel': begin Players[i].Integers[98] := ASteel; Players[i].Integers[97] := 95; end;
          'amithril': begin Players[i].Integers[98] := AMithril; Players[i].Integers[97] := 133; end;
          'abroad': begin Players[i].Integers[98] := ABroad; Players[i].Integers[97] := 225; end;
          'aadamant': begin Players[i].Integers[98] := AAdamant; Players[i].Integers[97] := 170; end;
          'arune': begin Players[i].Integers[98] := ARune; Players[i].Integers[97] := 207; end;
          'adragon': begin Players[i].Integers[98] := ADragon; Players[i].Integers[97] := 245; end;

          'dbronze': begin Players[i].Integers[98] := DBronze; Players[i].Integers[97] := 18; end;
          'diron': begin Players[i].Integers[98] := DIron; Players[i].Integers[97] := 38; end;
          'dsteel': begin Players[i].Integers[98] := DSteel; Players[i].Integers[97] := 75; end;
          'dmithril': begin Players[i].Integers[98] := DMithril; Players[i].Integers[97] := 112; end;
          'dadamant': begin Players[i].Integers[98] := DAdamant; Players[i].Integers[97] := 150; end;
          'drune': begin Players[i].Integers[98] := DRune; Players[i].Integers[97] := 188; end;
          'ddragon': begin Players[i].Integers[98] := DDragon; Players[i].Integers[97] := 250; end;

          'bbronze': begin Players[i].Integers[98] := BBronze; Players[i].Integers[97] := 5; end;
          'biron': begin Players[i].Integers[98] := BIron; Players[i].Integers[97] := 15; end;
          'bsilver': begin Players[i].Integers[98] := BSilver; Players[i].Integers[97] := 25; end;
          'bsteel': begin Players[i].Integers[98] := BSteel; Players[i].Integers[97] := 35; end;
          'bmithril': begin Players[i].Integers[98] := BMithril; Players[i].Integers[97] := 50; end;
          'badamant': begin Players[i].Integers[98] := BAdamant; Players[i].Integers[97] := 70; end;
          'brune': begin Players[i].Integers[98] := BRune; Players[i].Integers[97] := 100; end;
          'bbroad': begin Players[i].Integers[98] := BBroad; Players[i].Integers[97] := 30; end;
          'headless': begin end;
          else
          begin
            Bye('Wrong value entered for wood type');
            TerminateScript;
          end;
        end;
      end;
    end;

    procedure StartSMART;
    begin
      Smart_Server := World;
      Smart_Members := True;
      Smart_Signed := True;
      Smart_SuperDetail := False;
      Debug('SMART Setup');
      ClearDebug;
      SetupSRL;
      SetUpReflectionEx(True);
      DeclarePlayers;
      if(not LoggedIn)then
      begin
        LogInPlayer;
        Wait(6000 + Random(6000));
      end;
      Debug('Setup SRL, Declared Players, Logged In');
      SetAngle(True);
      MakeCompass('N');
      Debug('Setup Camera');
      AddOnTerminate('FinalReport');
    end;

    begin
      StartSMART;
      SetVars;
      //if(not(SRLStats_UserID = ''))then SetupStats;
      repeat
        Players[CurrentPlayer].Integers[90] := 0;
        repeat
          StartTime := GetSystemTime;
          MainLoop;
          if(Wrong > 3)then
          begin
            Bye('Wrong counter exceeded');
            Wrong := 0;
            Break;
          end;
          if((Players[CurrentPlayer].Active) and ((GetSystemTime - StartTime) > 5000))then
            Report;
          if(((SBreakEvery < (GetSystemTime - BreakStartTime))) and (HowManyPlayers = 1))then
            TakeBreak;
        until(((Players[CurrentPlayer].Integers[90]) >= Players[CurrentPlayer].Integers[0]) or not(LoggedIn))
        if(HowManyPlayers > 1)then
        begin
          if((Players[CurrentPlayer].Integers[91]) >= (Players[CurrentPlayer].Integers[1]))then
            NextPlayer(False)
          else
            NextPlayer(Players[CurrentPlayer].Active);
          Wait(6000 + Random(6000));
        end else
        begin
          Players[CurrentPlayer].Active := False;
          Logout;
          TerminateScript;
        end;
      until(AllPlayersInactive)
    end.
    Compiles for me. Not sure if it works though.
    Join the IRC! irc.rizon.net:6667/srl | SQLite (0.99rc3+) | SRL Doc | Simba Doc | Extra Simba Libraries (openSSL & sqlite3)
    Quote Originally Posted by #srl
    10:45 < Toter> daphil when can get sex anyday I want
    10:45 < Toter> he is always on #SRL
    "A programmer is just a tool which converts caffeine into code"

  11. #11
    Join Date
    Jan 2011
    Posts
    335
    Mentioned
    0 Post(s)
    Quoted
    23 Post(s)

    Default

    WORKING PERFECTLY NOW!!!

    thankyou very much =D
    If I see you autoing with level 3/default clothes/crap name I WILL report you. Auto Correctly.

  12. #12
    Join Date
    Oct 2009
    Location
    Stockton, CA
    Posts
    2,040
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    You're welcome although all I did was remove one line .
    Join the IRC! irc.rizon.net:6667/srl | SQLite (0.99rc3+) | SRL Doc | Simba Doc | Extra Simba Libraries (openSSL & sqlite3)
    Quote Originally Posted by #srl
    10:45 < Toter> daphil when can get sex anyday I want
    10:45 < Toter> he is always on #SRL
    "A programmer is just a tool which converts caffeine into code"

  13. #13
    Join Date
    Nov 2010
    Location
    Australia
    Posts
    1,472
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default

    Quote Originally Posted by Sex View Post
    You're welcome although all I did was remove one line .
    Like I said?

  14. #14
    Join Date
    Oct 2009
    Location
    Stockton, CA
    Posts
    2,040
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Yep. Before when a script had stats there was different variables set and procedures called in the script..thus, I thought that it wouldn't compile after that line was removed.
    Join the IRC! irc.rizon.net:6667/srl | SQLite (0.99rc3+) | SRL Doc | Simba Doc | Extra Simba Libraries (openSSL & sqlite3)
    Quote Originally Posted by #srl
    10:45 < Toter> daphil when can get sex anyday I want
    10:45 < Toter> he is always on #SRL
    "A programmer is just a tool which converts caffeine into code"

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •