Page 6 of 12 FirstFirst ... 45678 ... LastLast
Results 126 to 150 of 287

Thread: GE Arsonist

  1. #126
    Join Date
    May 2006
    Location
    Amsterdam
    Posts
    3,620
    Mentioned
    5 Post(s)
    Quoted
    0 Post(s)

    Default

    Not sure if anyone is interested, but here is my edit version (for Simba)..

    pascal Code:
    {.Script Info:
    # ScriptName   = GE Arsonist
    # Author       = IceFire908
    # Description  = Burns down the grand exchange
    # Version      = 1.12
    # Date         = April 20, 2010

    # Comments     = Logs in first bank slot. Tinderbox in first
                     inventory spot, bank all other items.
                     Don't forget to declare your players (line 91)
                     
    # Requirements = SCAR 3.23 Beta
                     SRL Open Dev
                     SMART
                     More scripts can be found at Villavu.com
    /Script Info}


    program FireMaker;

    {.Include SRL\SRL\Misc\SMART.SCAR}
    {.Include SRL\SRL.SCAR}

    {*******************************************************************************
                                      BEGIN SETUP
    *******************************************************************************}


    const
      YourStatsUserID     = '';        // User UID from scriptmanager.freehostia.com
      YourStatsPass       = '';        // Your pass from scriptmanager.
      AntiBanChance       = 30;        // Larger the less likely it is for Anti-Ban to occur.
      BreakFor            = 10;        // Minutes you want to break for.
      TakeBreaksEvery     = 100;       // Takes breaks every X amount of loads.
      TakeBreaks          = False;     // Takes regular breaks.
      PlayRandomSound     = True;      // Plays sound when a random is found.
      Smart_World         = 49; //109 Australia, 49 New Sealand, 118 Sweden
     
    {*******************************************************************************
                                        INDEXES
    *******************************************************************************}


    const                              // Don't change these
      Script_Version      = '1.12';
      Ref_CurrentBuild    = '604';     // Increase build # to current to overide server
      Ref_MyPlayer        = 'cn.n';    // Overrides
      Ref_Animation       = 'mb';
      Ref_Animation_Fire  = 733;
      Script_Fires        = 1;
      Script_EXP          = 2;
      Script_Loads        = 3;
      Script_Randoms      = 4;
      Script_Starts       = 5;
      Player_EXP          = 0;
      Player_Log_Type     = 0;
      Player_Loads        = 0;
      Player_Fires_ToMake = 1;
      Player_Fires_Made   = 2;
      Player_Trips        = 3;
      Player_Randoms      = 4;
      Player_InitLevel    = 5;
      Logs_Regular_EXP    = 40;
      Logs_Oak_EXP        = 60;
      Logs_Willow_EXP     = 90;
      Logs_Teak_EXP       = 105;
      Logs_Arctic_EXP     = 125;
      Logs_Maple_EXP      = 135;
      Logs_Mahogany_EXP   = 157.5;
      Logs_Eucalyptus_EXP = 193.5;
      Logs_Yew_EXP        = 202.5;
      Logs_Magic_EXP      = 303.8;
    var
      logDTM : integer;

    {*******************************************************************************
    procedure DeclarePlayers;
    By: SRL Template
    Description: Here you will need to set up your players
    Player_Log_Type valid inputs:
      ________________________________________________________________
     |  Name            | Input        | Level Required  | Experience |
     | ----------------   ------------   ---------------   ---------- |
     | Logs             | 'Regular'    |  1              |  40        |
     | Oak logs         | 'Oak'        | 15              |  60        |
     | Willow logs      | 'Willow'     | 30              |  90        |
     | Teak logs        | 'Teak'       | 35              | 105        |
     | Arctic pine logs | 'Arctic'     | 42              | 125        |
     | Maple logs       | 'Maple'      | 45              | 135        |
     | Mahogany logs    | 'Mahogany'   | 50              | 157.5      |
     | Eucalyptus logs  | 'Eucalyptus' | 58              | 193.5      |
     | Yew logs         | 'Yew'        | 60              | 202.5      |
     | Magic logs       | 'Magic'      | 75              | 303.8      |
      ----------------------------------------------------------------
    *******************************************************************************}

     
    procedure DeclarePlayers;
    var
      I: LongInt;
    begin
      HowManyPlayers := 1;             // How many players declared?
      CurrentPlayer := 0;              // Number of player to start with.
      NumberOfPlayers(HowManyPlayers);
      RC_Masters := [];
     
      for I := 0 to High(Players) do   // Don't change these
      begin
        SetLength(Players[I].Integers, 6);
        SetLength(Players[I].Strings, 1);
        SetLength(Players[I].Extendeds, 1);
        Players[I].Loc := 'Not yet started autoing.';
        Players[I].BoxRewards := ['XP', 'oins'];
      end;
     
      with Players[0] do
      begin
        Name := '';                    // Characters full RS username.
        Pass := '';                    // Characters RS password.
        Pin := '';                     // Bank Pin
        Nick := '';                    // 3 consecutive non-caps letters of char's RS username.
        Skill := 'Firemaking';         // Skill to choose for genie lamp
        Strings[Player_Log_Type] := 'Willow'; //See chart above
        Integers[Player_Loads] := 99999;       //Loads to do before switching players.
        Integers[Player_Fires_ToMake] := 30000; //Amount of logs you want to burn
        Active := True;                // Use player?
      end;
     
      //<-- To use more players, uncomment this section and change HowManyPlayers
      //to match with the current amount of players declared.
     
    {
      with Players[1] do
      begin
        Name := '';
        Pass := '';
        Pin := '';
        Nick := '';
        Skill := 'Firemaking';
        Strings[Player_Log_Type] := 'Regular';
        Integers[Player_Loads] := 10;
        Integers[Player_Fires_ToMake] := 1000;
        Active := True;
      end;
    }

    {
      with Players[2] do
      begin
        Name := '';
        Pass := '';
        Pin := '';
        Nick := '';
        Skill := 'Firemaking';
        Strings[Player_Log_Type] := 'Regular';
        Integers[Player_Loads] := 10;
        Integers[Player_Fires_ToMake] := 1000;
        Active := True;
      end;
    }

    {
      with Players[3] do
      begin
        Name := '';
        Pass := '';
        Pin := '';
        Nick := '';
        Skill := 'Firemaking';
        Strings[Player_Log_Type] := 'Regular';
        Integers[Player_Loads] := 10;
        Integers[Player_Fires_ToMake] := 1000;
        Active := True;
      end;
    }

    {
      with Players[4] do
      begin
        Name := '';
        Pass := '';
        Pin := '';
        Nick := '';
        Skill := 'Firemaking';
        Strings[Player_Log_Type] := 'Regular';
        Integers[Player_Loads] := 10;
        Integers[Player_Fires_ToMake] := 1000;
        Active := True;
      end;
    }


    end;

    {*******************************************************************************
                                      END SETUP
    *******************************************************************************}


    {*******************************************************************************
                                   GLOBAL VARIABLES
    *******************************************************************************}


    {*******************************************************************************
      Text
    *******************************************************************************}


    var
      Stats_UserID, Stats_Password, Stats_ScriptID, Stats_Link, CharAnim, MyPlayer: string;

    {*******************************************************************************
      Numbers
    *******************************************************************************}


    var
      TimeStarted, Stats_LastTime, Animation_Fire, RSBuild: LongInt;
      Total, TotalScript: array[1..5] of LongInt;
      Stats_CustomVars: array [1..20] of Integer;
      Stats_GlobalVars: array[1..24] of Integer;

    {*******************************************************************************
      Booleans
    *******************************************************************************}


    var
      CurrentlyMemberWorld: Boolean;

    {*******************************************************************************
                             STATS & SCRIPT START UP ROUTINES
    *******************************************************************************}


    {*******************************************************************************
    procedure ScriptTerminate;
    By: IceFire908.
    Description: Fixes disguise and terminates script.
    *******************************************************************************}


    procedure ScriptTerminate;
    begin
      Disguise('SCAR Divi CDE');
      FreeSRLBitmaps;
    end;

    {*******************************************************************************
    procedure Stats_CheckOutput(s: string);
    By: Nielsie95.
    Description: ???
    *******************************************************************************}


    procedure Stats_CheckOutput(s: string);
    var
      i: Integer;
      sa: TStringArray;
    begin
      sa := Explode(#10, s);
      for i := 0 to High(sa) do
        if (Trim(sa[i]) <> '') then
          if StartsWith('ERROR(1)', sa[i]) then
          begin
            WriteLn('STATS: "' + sa[i] + '"');
            Stats_UserID := '';
            Stats_Password := '';
          end
          else if StartsWith('ERROR(2)', sa[i]) then
          begin
            WriteLn('STATS: "' + sa[i] + '"');
            Stats_ScriptID := '';
          end
          else
            WriteLn('STATS: "' + sa[i] + '"');

    end;

    {*******************************************************************************
    function Stats_GetScriptInfo(out Version, News, Link: string; out OutDated: Boolean; out LastUpdate_HoursAgo: Integer): Boolean;
    By: Nielsie95.
    Description: Gets script info from the online server.
    *******************************************************************************}


    function Stats_GetScriptInfo(out Version, News, Link: string; out OutDated: Boolean; out LastUpdate_HoursAgo: Integer): Boolean;
    var
      Client: Integer;
      s: string;
      sa: TStringArray;
    begin
      Result := False;
      if (Stats_ScriptID = '') then
        Exit;

      Client := InitializeHTTPClient(False, False);
      ClearPostData(Client);
      AddPostVariable(Client, 'do', 'getinfo');
      AddPostVariable (Client, 'sID', Stats_ScriptID);

      s := PostHTTPPageEx(Client, Stats_Link);
      sa := Explode(#10'GLUE'#10, s);
      if (Length(sa) = 5) then
      begin
        Result := True;
        Version := sa[0];
        News := sa[1];
        Link := sa[2];
        OutDated := sa[3] = '1';
        LastUpdate_HoursAgo := StrToIntDef(sa[4], -1);
      end
      else
        Stats_CheckOutput(s);

      FreeHTTPClient(Client );
    end;

    {*******************************************************************************
    procedure Stats_SendReport;
    By: Nielsie95.
    Description: Sends global vars to server.
    *******************************************************************************}


    procedure Stats_SendReport;
    var
      i, Client, Time: Integer;
      s: string;
    begin
      if (Stats_UserID = '') and (Stats_Password = '') and (Stats_ScriptID = '') then
        Exit;

      Client := InitializeHTTPClient(False, False);
      ClearPostData(Client);
      AddPostVariable(Client, 'do', 'submit');

      Time := (GetTimeRunning - Stats_LastTime) div 1000 div 60;
      if (Time < 5) then
        Time := 0
      else
        Stats_LastTime := GetTimeRunning;
      AddPostVariable(Client, 'sTime', IntToStr(Time));

      if (Stats_UserID <> '') and (Stats_Password <> '') then
      begin
        AddPostVariable(Client, 'uID', Stats_UserID);
        AddPostVariable(Client, 'uPass', Stats_Password);
      end
      else
      begin
        AddPostVariable(Client, 'uID', '-1');
        AddPostVariable(Client, 'uPass', '');
      end;

      if (Stats_ScriptID <> '') then
      begin
        AddPostVariable (Client, 'sID', Stats_ScriptID);

        for i := Low(Stats_CustomVars) to High(Stats_CustomVars) do
        begin
          AddPostVariable(Client, 'rndCustom' + IntToStr(i), IntToStr(Stats_CustomVars[i]));
          Stats_CustomVars[i] := 0;
        end;
      end
      else
      begin
        AddPostVariable (Client, 'sID', '-1');
      end;

      for i := Low(Stats_GlobalVars) to High(Stats_GlobalVars) do
      begin
        case i of
          1: s := IntToStr(SRL_Logs - Stats_GlobalVars[i]);
          2: s := IntToStr(Banks - Stats_GlobalVars[i]);
          3: s := IntToStr(RandSolved[rand_Death] - Stats_GlobalVars[i]);
          else if ((i - 3) < Length(RandSolved) - 1 {for Death}) then
            s := IntToStr(RandSolved[i - 3] - Stats_GlobalVars[i]);
        end;
        AddPostVariable(Client, 'rndGlobal' + IntToStr(i), s);
        Stats_GlobalVars[i] := Stats_GlobalVars[i] + StrToInt(s);
      end;

      s := PostHTTPPageEx(Client, Stats_Link);
      Stats_CheckOutput(s);
      FreeHTTPClient(Client);

      if (SRL_Procs[srl_OnSendStats] <> nil) then
        SRL_Procs[srl_OnSendStats]();
    end;

    {*******************************************************************************
    procedure Stats_SendAccountInfo;
    By: Nielsie95.
    Description: Sends your personal player info to server.
    *******************************************************************************}


    procedure Stats_SendAccountInfo;
    var
      i, Client: Integer;
      Accounts: TStringArray;
    begin
      if (Stats_UserID = '') and (Stats_Password = '') then
        Exit;

      Client := InitializeHTTPClient(False, False);
      ClearPostData(Client);
      AddPostVariable(Client, 'do', 'setaccounts');
      AddPostVariable(Client, 'uID', Stats_UserID);
      AddPostVariable(Client, 'uPass', Stats_Password);
      if (Stats_ScriptID <> '') then
        AddPostVariable (Client, 'sID', Stats_ScriptID)
      else
        AddPostVariable (Client, 'sID', '-1');

      SetLength(Accounts, HowManyPlayers);
      for i := 0 to HowManyPlayers - 1 do
        Accounts[i] := Implode('.|?stat?|.', [Players[i].Name, Players[i].Loc, IntToStr(Integer(Players[i].Active))]);

      AddPostVariable(Client, 'accInfo', Implode(#10'ACC'#10, Accounts));
      Stats_CheckOutput(PostHTTPPageEx(Client, Stats_Link));
      FreeHTTPClient(Client);
    end;

    {*******************************************************************************
    procedure Stats_ManageAccounts;
    By: Nielsie95.
    Description: ????
    *******************************************************************************}


    procedure Stats_ManageAccounts;
    var
      i, ii, Client: Integer;
      s: string;
      Accounts, Stats: TStringArray;
    begin
      if (Stats_UserID = '') and (Stats_Password = '') then
        Exit;

      Client := InitializeHTTPClient(False, False);
      ClearPostData(Client);
      AddPostVariable(Client, 'do', 'getaccounts');
      AddPostVariable(Client, 'uPass', Stats_Password);
      AddPostVariable(Client, 'uID', Stats_UserID);

      s := PostHTTPPageEx(Client, Stats_Link);
      Accounts := Explode(#10'ACC'#10, s);
      for i := 0 to High(Accounts) do
      begin
        Stats := Explode('.|?stat?|.', Accounts[i]);
        if (Length(Stats) = 3) then
        begin
          for ii := 0 to HowManyPlayers - 1 do
            if (LowerCase(Players[ii].Name) = LowerCase(Stats[0])) then
            begin
              Players[ii].Loc := Stats[1];
              Players[ii].Active := Stats[2] = '1';
              Break;
            end;
        end
        else
        begin
          Stats_CheckOutput(s);
          Break;
        end;
      end;

      FreeHTTPClient(Client);
      stats_SendAccountInfo;
    end;

    {*******************************************************************************
    procedure InitScript;
    By: IceFire908.
    Description: Does everything to start the script up.
    *******************************************************************************}


    procedure InitScript;
    var
      UseDefaultHooks: Boolean;
      S: string;
      I: integer;
    begin
      logDTM := DTMFromString('78DA6354636060286440034C609211CA63740' +
           '1127904D418008972026AEC81443A01355A44AA29C1AF0600DC6A' +
           '03DE');
      SetScriptProp(SP_WriteTimeStamp,[true]);
    //  ClearDeBug;
      WriteLn('Checking hooks...');
    //  Wait(1000);
      S := GetPage('http://icefire908.netai.net/Hooks');
      if (not (Pos('RSBuild', S) > 0)) then
      begin
        WriteLn('********WARNING could not retrieve reflection hooks from server.');
        WriteLn('Script will run improperly if you are not using up to date hooks.');
        UseDefaultHooks := True;
    //    Wait(4000);
      end
      else
        if (StrToIntDef(Between('RSBuild = ', ';', S), 0) > StrToIntDef(Ref_CurrentBuild, 0)) then
        begin
          WriteLn('Hooks update available');
          WriteLn('');
          RSBuild := StrToIntDef(Between('RSBuild = ', ';', S), StrToIntDef(Ref_CurrentBuild, 0));
          MyPlayer := Between('MyPlayer = ''', ''';', S);
          CharAnim := Between('CharAnim = ''', ''';', S);
          Animation_Fire := StrToIntDef(Between('Animation_Fire = ', ';', S), Ref_Animation_Fire);
          WriteLn('RSBuild = ' + IntToStr(RSBuild) + ';');
          WriteLn('MyPlayer = ''' + MyPlayer + ''';');
          WriteLn('CharAnim = ''' + CharAnim + ''';');
          WriteLn('Animation_Fire = ' + IntToStr(Animation_Fire) + ';');
          WriteLn('');
          WriteLn('Updated hooks! Hopefully they are up to date now.');
    //      Wait(3000);
        end
        else
        begin
          UseDefaultHooks := True;
          WriteLn('Your hooks are probably up to date.');
    //      Wait(2000);
        end;
      if (UseDefaultHooks) then
      begin
        RSBuild := StrToIntDef(GetNumbers(Ref_CurrentBuild), -1);
        MyPlayer := Ref_MyPlayer;
        CharAnim := Ref_Animation;
        Animation_Fire := Ref_Animation_Fire;
      end;
    //  ClearDeBug;
      Disguise('GE Arsonist by IceFire908');
      for I := 1 to 5 do
        TotalScript[I] := StrToIntDef(ReadINI('GEArsonist', IntToStr(I), AppPath + 'GE_Arson.INI'), 0);
    {  WriteLn('  ___________________    _____                            .__          __');
      Wait(100);
      WriteLn(' /  _____/\_   _____/   /  _  \_______  __________   ____ |__| _______/  |_');
      Wait(100);
      WriteLn('/   \  ___ |    __)_   /  /_\  \_  __ \/  ___/  _ \ /    \|  |/  ___/\   __\');
      Wait(100);
      WriteLn('\    \_\  \|        \ /    |    \  | \/\___ (  <_> )   |  \  |\___ \  |  |');
      Wait(100);
      WriteLn(' \______  /_______  / \____|__  /__|  /____  >____/|___|  /__/____  > |__|');
      Wait(100);
      WriteLn('        \/        \/          \/           \/           \/        \/');
      Wait(100);
      WriteLn('   Grand Exchange Arsonist        version ' + Script_Version + '             by IceFire908');
      Wait(200);}

      WriteLn('Total script starts : ' + IntToStr(TotalScript[Script_Starts]) + '|| ||Total fires made : ' + IntToStr(TotalScript[Script_Fires]) + '||  ||Total EXP gained : ' + IntToStr(TotalScript[Script_EXP]) + '||');
      Smart_Server := Smart_World;
      Smart_Members := False;
      Smart_Signed := True;
      Smart_SuperDetail := False;
      SetUpSRL;
      DeclarePlayers;
      UseFindMod := False;
      LogOutOnMod := False;
      Stats_Link := 'http://scriptmanager.freehostia.com/submit.php';
      Stats_ScriptID := '36';
      Stats_UserID := YourStatsUserID;
      Stats_Password := YourStatsPass;
      SRLRandomsReport;
      Stats_SendReport;
      Stats_ManageAccounts;
    //  Wait(1000 + Random(1000));
    end;

    {*******************************************************************************
                                  FIRE MAKING ROUTINES
    *******************************************************************************}


    {*******************************************************************************
    procedure AntiBan(AntiChance: Integer);
    By: IceFire908.
    Description: Does an anti-ban at an anti-chance rate.
    *******************************************************************************}


    procedure AntiBan(AntiChance: Integer);
    begin
      if (not (LoggedIn)) then
        Exit;
      case (Random(5 * AntiChance)) of
        0: RandomRClick;
        1: if ((not (BankScreen)) and (not (PinScreen))) then
           begin
             HoverSkill('random', False);
             GameTab(tab_Inv);
           end;
        2: SleepAndMoveMouse(500 + Random(5000));
        3: PickUpMouse;
        4: BoredHuman;
      end;
    end;

    {*******************************************************************************
    procedure Randoms(ScanFor: Integer; var IncTimeIn: LongInt);
    By: IceFire908.
    Description: Everything for randoms.
    *******************************************************************************}


    procedure Randoms(ScanFor: Integer; var IncTimeIn: LongInt);
    var
      S, Ab: string;
      T: LongInt;
    begin
      T := GetSystemTime;
      if (not (LoggedIn)) then
        Exit;
      LampSkill := Players[CurrentPlayer].Skill;
      while (GetSystemTime - T < ScanFor) do
      begin
        if (LevelUp) then
        begin
          AntiBan(2);
          Inc(Players[CurrentPlayer].Level[Skill_FireMaking]);
        end;
        if (FindNormalRandoms) then
        begin

          Inc(Total[Script_Randoms]);
          Inc(Stats_CustomVars[Script_Randoms]);
          Inc(TotalScript[Script_Randoms]);
          WriteINI('GEArsonist', IntToStr(Script_Randoms), IntToStr(TotalScript[Script_Randoms]), AppPath + 'GE_Arson.INI');
          Inc(Players[CurrentPlayer].Integers[Player_Randoms]);
          SRLRandomsReport;
          Stats_SendReport;
          Stats_ManageAccounts;
          if (PlayRandomSound) then
          begin
            S := 'Playing sound to alert script user.';
            if (FileExists('C:\Windows\Media\TADA.WAV')) then
              PlaySound('C:\Windows\Media\TADA.WAV')
            else
              WriteLn('C:\Windows\Media\TADA.WAV does not exist, you may want to change this path');
          end;
          if (LoggedIn) then
            Ab := 'Performing anti-ban. ';
          WriteLn('Random found! ' + Ab + S);
          gametab(tab_inv);
          if (Ab <> '') then
            AntiBan(1);
          if (UseRewardBox) then
          begin
            Wait(4000 + Random(1000));
            FindLamp(LampSkill);
            Wait(1000 + Random(1000));
          end;
          //Break;
        end;
        Wait(RandomRange(250, 500));
      end;
      IncEx(IncTimeIn, GetSystemTime - T);
    end;

    {*******************************************************************************
    function CurrentChat: string;
    By: IceFire908
    Description: Returns the current chat you have open.
    *******************************************************************************}


    function CurrentChat: string;
    var
      Ch: TStringArray;
      I: integer;
    begin
      Result := 'unknown';
      for I := 0 to 6 do
        if (not (InIntArray([5399409, 6965324, 5342384], GetColor(9 + (57 * I), 484)))) then
          Break;
      if (not (InRange(I, 0, 6))) then
        Exit;
      Ch := ['all', 'game', 'public', 'private', 'clan', 'trade', 'assist'];
      Result := Ch[I];
    end;

    {*******************************************************************************
    function CurrentChatStatus(Chat: string): string;
    By: IceFire908
    Description: Returns the current chat status.
    *******************************************************************************}


    function CurrentChatStatus(Chat: string): string;
    var
      St, Ch: TStringArray;
      C: TIntegerArray;
      I: Integer;
      P: TPoint;
      II: integer;
      S: TBox;
    begin
      Result := 'unknown';
      if (LowerCase(Chat) = 'all') then
      begin
        if (CurrentChat = 'all') then
          Result := 'on'
        else
          Result := 'off';
        Exit;
      end;
      C := [65280, 65535, 255, 16776960]
      St := ['on', 'friends', 'off', 'hide'];
      Ch := ['game', 'public', 'private', 'clan', 'trade', 'assist'];
      if (not (InStrArrEx(LowerCase(Chat), Ch, I))) then
        Exit;
      S := IntToBox(71 + (57 * I), 492, 107 + (57 * I), 501);
      for II := 0 to 3 do
        if (FindColor(P.X, P.Y, C[II], S.X1, S.Y1, S.X2, S.Y2)) then
        begin
          if (I = 0) then
          begin
            case II of
              0: Result := 'all';
              1: Result := 'filter';
            else
              Result := St[II];
            end;
            Exit;
          end;
          Result := St[II];
          Exit;
        end;
    end;

    {*******************************************************************************
    function SetChatEx(Chat, Status: string): Boolean;
    By: IceFire908
    Description: Sets the chat to desired status.
    *******************************************************************************}


    function SetChatEx(Chat, Status: string): Boolean;
    var
      Ch: TStringArray;
      Cha, Sta: string;
      C: TPoint;
      I: Integer;
    begin
      Cha := LowerCase(Chat);
      Sta := LowerCase(Status);
      Result := (CurrentChatStatus(Cha) = Sta);
      if (Result) then
        Exit;
      Ch := ['all', 'game', 'public', 'private', 'clan', 'trade', 'assist'];
      if (not (InStrArrEx(Cha, Ch, I))) then
        Exit;
      C := Point(33 + (56 * I), 492);
      if (((Cha = 'all') and (Sta = 'on')) or (Sta = 'view')) then
      begin
        if (not (CurrentChat = Cha)) then
          Mouse(C.X, C.Y, 5, 5, True);
        Result := True;
        Exit;
      end;
      Mouse(C.X, C.Y, 5, 5, False);
      Wait(200 + Random(100));
      if (Sta = 'off') then
        Sta := 'of';
      Result := ChooseOption(Capitalize(Sta));
    end;

    {*******************************************************************************
    function InChatMulti(Text: TStringArray; var OutPut: string): Boolean;
    By: IceFire908
    Description: Grabs Last Chat Line and performs checks on occurence of text
    *******************************************************************************}


    function InChatMulti(Text: TStringArray; var OutPut: string): Boolean;
    var
      s: string;
      I: Integer;
    begin
      S := GetBlackChatMessage;
      for I := High(Text) downto 0 do
      begin
        Result := (Pos(Text[I], s) > 0);
        if (Result) then
        begin
          OutPut := Text[I];
          Exit;
        end;
      end;
    end;

    {*******************************************************************************
    procedure InitPlayer;
    By: IceFire908.
    Description: Sets up a user for autoing
    *******************************************************************************}


    procedure InitPlayer;
    var
      MemberLogs: TStringArray;
      M: Boolean;
      I: integer;
    begin
      if (not (LoggedIn)) then
      begin
        MemberLogs := ['Teak', 'Arctic', 'Mahogany', 'Eucalyptus', 'Magic'];
        M := InStrArr(Players[CurrentPlayer].Strings[Player_Log_Type], MemberLogs, False);
        if ((M) and (not (CurrentlyMemberWorld))) then
        begin
          Players[CurrentPlayer].WorldInfo := [True, -1, False];
          CurrentlyMemberWorld := True;
        end
        else
          if ((CurrentlyMemberWorld) and (not (M))) then
          begin
            Players[CurrentPlayer].WorldInfo := [False, -1, False];
            CurrentlyMemberWorld := False;
          end;
        LogInPlayer;
      end;
      Wait(500 + Random(500));
      if (not (LoggedIn)) then
        Exit;
      if (SRL_Logs < 1) then
        SRL_Logs := 1;
      Players[CurrentPlayer].Loc := 'Setting up...';
      WriteLn('Setting up player...');
      SetAngle(True);
      MakeCompass('N');
      Wait(500 + Random(500));
      for I := 1 to 21 do
        Players[CurrentPlayer].Level[I] := GetSkillLevel(I);
      if (Players[CurrentPlayer].Integers[Player_Fires_Made] < 1) then
        Players[CurrentPlayer].Integers[Player_InitLevel] := Players[CurrentPlayer].Level[Skill_FireMaking];
      GameTab(tab_Inv);
      Wait(200 + Random(100));
      AntiBan(AntiBanChance);
      Players[CurrentPlayer].Loc := 'GEB.';
      WriteLn('Player is set up.');
      SetChatEx('game', 'view');
      Wait(50 + Random(100));
      SetChatEx('game', 'all');
      Wait(200 + Random(100));
      if (TimeStarted = 0) then
        TimeStarted := GetSystemTime;
    end;

    {*******************************************************************************
    procedure WaitWhileGameLoads;
    By: IceFire908
    Description: Waits while game loads.
    *******************************************************************************}


    procedure WaitWhileGameLoads;
    var
      T: LongInt;
    begin
      T := GetSystemTime;
      while ((GetColor(77, 16) = clWhite) and (not ((GetSystemTime - T) >  15000))) do
        Wait(500);
    end;

    {*******************************************************************************
    function Walk(X, Y, R, FD: Integer): Boolean;
    By: IceFire908
    Description: Simple walking function that combines some higher level functions.
    *******************************************************************************}


    function Walk(X, Y, R, FD: Integer): Boolean;
    var
      T: LongInt;
      Dist : Integer;
    begin
      if (PointInBox(Point(X, Y), IntToBox(MMCX, MMCY, MMCX + 3, MMCY + 3))) then
        Exit;
      if (not (InCircle(X, Y, MMCX, MMCY, 75))) then
        Exit;
      Result := True;
      WaitWhileGameLoads;
      Dist := Distance(x,y,MMCX,MMCY);
      Mouse(RandomRange(X - R, X + R), RandomRange(Y - R, Y + R), 0, 0, True);
      SetRun(True);
      Randoms(100 + Dist * RandomRange(10,15), T);
      Wait(200 + Random(200));
      WaitWhileGameLoads;
      FFlag(FD);
      WaitWhileGameLoads;
    end;

    {*******************************************************************************
    function FindBankersMM(var P: TPoint): Boolean;
    By: IceFire908.
    Description: Finds a rotated DTM of the GE bankers.
    *******************************************************************************}


    function FindBankersMM(var P: TPoint): Boolean;
    var
      Angles: T2DExtendedArray;
      dtmGE: Integer;
      ptsg,pts,ptsw : TPointArray;
      atpa : T2DPointArray;
      pt : TPoint;
      b : TBox;
    label
      endzor;
    begin
      result := false;
      dtmGE := DTMFromString('78DA632C6662600865400179AD710CFF81342310FF0702C63CA09A10881C3354CD9F3F4C0C92503520C0980554E34B404D1A504D04013549403501F8D500008B89126A');
      if (FindDTMsRotatedAlternating(dtmGE,pts,MMX1, MMY1, MMX2, MMY2, -Pi/8.0, Pi/8.0, Pi/90.0, angles)) then
      begin
        filterpointsdist(pts,0,73,MMCX,MMCY);
        if length(pts) < 1 then
          goto endzor;
        FindColorsTolerance(ptsg,7829883,MMX1,MMY1,MMX2,MMY2,25);
        FindColorsTolerance(ptsw,16711422 ,MMX1,MMY1,MMX2,MMY2,40);
        AppendTPA(ptsg,ptsw);
        atpa := FloodFillTPA(ptsg);
        SortATPASize(atpa,true);
        if length(ATPA) < 1 then
          goto endzor;
        Writeln(length(ATPA[0]));
        if length(ATPA[0]) < 900 then
          goto endzor;
        b := GetTPABounds(ATPA[0]);
        pt := Point((b.x2+b.x1)/2,(b.y2+b.y1)/2);
        pt.x := pt.x + distance(pt.x,pt.y,mmcx,mmcy);
        SortTPAFrom(pts,pt);
        Writeln(b);
        pt := Point((b.x2+b.x1)/2,(b.y2+b.y1)/2);
        Writeln(Distance(pts[0].x,pts[0].y,pt.x,pt.y));
        if Distance(pts[0].x,pts[0].y,pt.x,pt.y) > 30 then
          goto endzor;
        result := true;
        p := pts[0];
      end;
      endzor:
      freedtm(dtmGE);
      writeln(result);
    end;

    {*******************************************************************************
    function OpenGEBank: Boolean;
    By: IceFire908.
    Description: Opens the GE bank via the bankers, uses ATPA and lots of sorting.
    *******************************************************************************}


    function OpenGEBank: Boolean;
    var
      T, TT, TTT, I: LongInt;
      TPAA: T2DPointArray;
      TPA: TPointArray;
      P: TPoint;
      B: TBox;
    begin
      if (not (LoggedIn)) then
        Exit;
      WriteLn('Opening bank...');
      T := GetSystemTime;
      repeat
        ColorToleranceSpeed(2);
        SetColorSpeed2Modifiers(0.03, 0.23);
        FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1337487, MSX1, MSY1, MSX2, MSY2, 6);
        SetColorSpeed2Modifiers(0.2, 0.2);
        ColorToleranceSpeed(1);
        if (Length(TPA) < 1) then
          Continue;
        TPAA := TPAToATPAEx(TPA, 20, 20);
        if (Length(TPAA) < 1) then
          Continue;
        SortATPAFromFirstPoint(TPAA, Point(MSCX, MSCY));
        TT := GetSystemTime;
        for I := 0 to High(TPAA) do
        begin
          if ((GetSystemTime - T) > 15000) then
            Break;
          B := GetTPABounds(TPAA[I]);
          P := MiddleTPA(TPAA[I]);
          if (Distance(MSCX, MSCY, P.X, P.Y) < 16) then
            Continue;
          if (Length(TPAA[I]) < 21) then
            Continue;
          if ((not (InRange((B.X2 - B.X1), 5, 10))) or (not (InRange((B.X2 - B.X1), 5, 10)))) then
            Continue;
          MMouse(P.X, P.Y, 0, 0);
          Wait(200 + Random(50));
          if (InRange(CountColorTolerance(648165, 7, 7, 100, 25, 50), 100, 200)) then
          begin
            ClickMouse2(false);
            Wait(200 + Random(50));
            if (ChooseOptionMulti(['ank B', 'nk B', 'k Ba'])) then
            begin
              Wait(200 + Random(200));
              WaitWhileGameLoads;
              Flag;
              WaitWhileGameLoads;
              TTT := GetSystemTime;
              repeat
                Wait(100 + Random(50));
                if (Length(Players[CurrentPlayer].Pin) = 4) then
                  if (PinScreen) then
                  begin
                    InPin(Players[CurrentPlayer].Pin);
                    Wait(2000 + Random(200));
                    ClickToContinue;
                  end;
                Result := BankScreen;
              until (((GetSystemTime - TTT) >  6000) or (Result));
              if (Result) then
                Break;
            end;
          end;
        end;
      until (((GetSystemTime - T) > 30000) or (Result));
      if (Result) then
      begin
        WriteLn('Opened bank.');
        Inc(Players[CurrentPlayer].Banked);
        Inc(Banks);
        FixBank;
        Exit;
      end;
      WriteLn('Failed to open bank');
      LogOut;
    end;

    {*******************************************************************************
    procedure Banking;
    By: IceFire908.
    Description: Everything for banking
    *******************************************************************************}


    function Banking : boolean;
    var
      T: LongInt;
      x,y : integer;
    begin
      result := false;
      if (not (LoggedIn)) then
        Exit;
      if (InvCount = 28) then
      begin
        result := true;
        Exit;
      end;
      WriteLn('Beggining everything for banking...');
      Players[CurrentPlayer].Loc := 'Banking...';
      if (not (OpenGEBank)) then
        Exit;
      Wait(500 + Random(160));
      Deposit(2, 28, True);
      if not FindDTM(logDTM,x,y,30, 85,75, 126) then
        exit;

      T := GetSystemTime;
      while (((GetSystemTime - T) < 2000) and (InvCount < 2)) do
      begin
        Wait(300 + Random(160));
        Mouse(53, 107, 5, 5, False);
        Wait(200 + Random(100));
        ChooseOption('draw-All');
        while ((GetSystemTime - T) < 2000) and not FindBlackChatMessage('enough') do
          Wait(200 + Random(50));
      end;
      WriteLn('Finished everything for banking.');
      Players[CurrentPlayer].Loc := 'GEB.';
      result := true;
    end;

    {*******************************************************************************
    function Select(Slot: integer): integer;
    By: IceFire908.
    Description: Selects tinderbox or log, which ever is closer.
    *******************************************************************************}


    function Select(CurSlot,NextSlot: integer;var AlreadyPos : boolean): integer;
    var
      CurM, TB, SB, P: TPoint;
      T: LongInt;
      B: TBox;
      I: integer;
    begin
    {  if AlreadyPos then
        mouse(CurM.x,curm.y,random(2),random(2),true);}

      GetMousePos(CurM.X, CurM.Y);
      TB := ItemCoords(1);
      SB := ItemCoords(CurSlot);
      if (Distance(CurM.X, CurM.Y, SB.X, SB.Y) < Distance(CurM.X, CurM.Y, TB.X, TB.Y)) then
      begin
        Result := 1;
        I := CurSlot;
      end
      else
      begin
        Result := CurSlot;
        I := 1;
      end;
      MouseItem(I, True);
      B := InvBox(I);
      T := GetSystemTime;
      while ((not (FindColor(P.X, P.Y, 16777215, B.X1, B.Y1, B.X2, B.Y2))) and ((GetSystemTime - T) < 2500)) do
        Wait(100 + Random(50));
      MouseItem(result,true);
    end;

    {*******************************************************************************
    function Ref_GetAnimation: Integer;
    By: IceFire908.
    Description: Gets the current player animation using smart's reflection
    *******************************************************************************}


    function Ref_GetAnimation: Integer;
    var
      I: Integer;
    begin
      I := SmartGetFieldObject(0, MyPlayer);
      Result := SmartGetFieldInt(I, CharAnim);
      SmartFreeObject(I);
    end;

    {*******************************************************************************
    procedure Ref_WaitWhileLighting(var IncTimeIn: LongInt);
    By: IceFire908.
    Description: Waits while your player is animating the fire lighting motion.
    *******************************************************************************}


    procedure Ref_WaitWhileLighting(var IncTimeIn: LongInt);
    var
      T: LongInt;
    begin
      T := GetSystemTime;
      while ((Ref_GetAnimation = Animation_Fire) and ((GetSystemTime - T) < 30000)) do
      begin
        Randoms(150 + Random(50), IncTimeIn);
      end;
    end;

    function NextLog(Exc: TIntegerArray; CurLog : integer) : integer;
    var
      x,y : integer;
      pts : TPointArray;
      i,j : integer;
    begin
      result := -1;
      if not FindDTMs(logdtm,pts,MIX1,MIY1,MIX2,MIY2) then
        exit;
      GetMousePos(x,y);
      SortTPAFrom(pts,point(x,y));
      for j := 0 to high(pts) do
      begin
        i := CoordsToItem(pts[j].x,pts[j].y);
        if not InIntArray(exc,i) and (i <> 0) and (i <> curlog) then
        begin
          result := i;
          exit;
        end;
      end;
    end;

    function ClickTwoItems(item1,item2 : integer; ClickSecond : boolean) : boolean;
    var
      x,y,first,second : integer;
      t : longword;
      t1,t2 : TPoint;
    begin
      GetMousePos(x,y);
      t1 := ItemCoords(item1);
      t2 := ItemCoords(item2);
      first := item1;
      second := item2;
      if Distance(x,y,t1.x,t1.y) > Distance(x,y,t2.x,t2.y) then
      begin
        first := item2;
        second := item1;
      end;
      result := true;
      T := GetSystemTime;
      mouseitem(first,true);
      while not ItemActivated(first) and ((GetSystemTime - T) < 2500) do
        Wait(100 + Random(50));
      if (GetSystemTime - t) >= 2500 then
        result := false;
      if result then
      begin
        if ClickSecond then
          mouseitem(second,true)
        else
          mmouseitem(second);
      end;
    end;

    function CurrentItem : integer;
    var
      x,y : integer;
    begin
      GetMousePos(x,y);
      result := CoordsToItem(x,y);
    end;

    function ClickNextLog(Exc: TIntegerArray;var JustClick : boolean; var CurrLog,NexttLog : integer) : boolean;
    var
      Next,selItem : integer;
      t : integer;
      Clicked : boolean;
    begin
      Result := false;
      Clicked := false;
      if JustClick then
      begin
        selItem := ActivatedItem;
        if (CurrentItem > 0) and (CurrentItem <> selItem) and (SelItem > 0) then
        begin
          ClickMouse2(true);
          randoms(100 + random(50),t);
          Clicked := true;
          result := true;
          CurrLog := NexttLog;
        end else
        begin
          if SelItem < 1 then //No item is selected.. Just follow the normal method!
            Writeln('No item is selected.. Yet JustClick was true, weird..')
          else
          begin
            if selitem = 1 then //we just need to find a log!
            begin
              Writeln('Whoops! Mouse is not on the correct selected item, fixing that stuff now!');
              t := NextLog(exc,-1);
              if t = -1 then
                exit;
              mouseitem(t,true);
              randoms(300+random(150),t);
              clicked := true;
              result := true;
              currlog := t;
            end else
            begin //We just need to click the tinderbox
              Writeln('Whoops! Mouse is not on the correct selected item, fixing that stuff now!');
              mouseItem(1,true);
              randoms(300+random(150),t);
              clicked := true;
              result := true;
              currlog := nexttlog;
            end;
          end;
        end;
      end;
      JustClick := false;
      Next := NextLog(exc,currlog);
      if next = -1 then
        exit;
      Result := ClickTwoItems(next,1,not Clicked);
      if Clicked then
      begin
        nexttlog := next;
        justclick := result;
        exit;//We already clicked a log, so this time we just exit here to make sure it hovers on the nex tlog
      end else
        Randoms(100+random(50),t);
      CurrLog := next;
      Next := NextLog(exc,currlog);
      if next = -1 then
        exit;
      result := ClickTwoItems(next,1,false);//We already clicked a log, so just hover the next one
      justclick := result;
      NexttLog := next;
    end;
    function SetFires : boolean;
    var
      TPA, bTPA: TPointArray;
      Exps: TExtendedArray;
      Logs: TStringArray;
      Exc: TIntegerArray;
      T, TT, W: LongInt;
      OutPut: string;
      CurrLog,NexttLog : integer;
      Next,JustClick: Boolean;
      P, WB: TPoint;
      B: TBox;
      CantLight : integer;
    begin
      if (not (LoggedIn)) then
        Exit;
      Result := true;
      Players[CurrentPlayer].Loc := 'Setting fires...';
      WriteLn('Setting fires...');
      TPA := TPAFromBox(IntToBox(MMX1, MMY1, MMX2, MMY2));
      bTPA := TPA;
      FilterPointsPie(TPA, 45, 65, 55, 65, MMCX, MMCY);
      FilterPointsPie(bTPA, 91, 135, 55, 65, MMCX, MMCY);
      TPA := CombineTPA(TPA, bTPA);
      P := TPA[Random(Length(TPA))];
      WB := Point(P.X, (MMCY * 2) - P.Y);
      Walk(P.X, P.Y, 0, 0);
      Randoms(500 + Random(500), T);
      CantLight := 0;
      T := GetSystemTime;
      JustClick := false;
      repeat
        if not ClickNextLog(exc,justclick,currlog,nexttlog) then
          break;
        if (Next) then
        begin
          Randoms(800 + Random(250), T);
          Ref_WaitWhileLighting(T);
        end
        else
          Randoms(650 + random(100), T);
        Next := False;
        TT := GetSystemTime;
        OutPut := '';
        while ((ExistsItem(currlog)) and ((GetSystemTime - TT) < 5000)) do
          if (InChatMulti(['othing', 'appens', 'nteres', 'can', 'an''t', 'here'], OutPut)) then
            case OutPut of
              'othing', 'appens', 'nteres': begin
                                              WriteLn('These are not logs!!');
                                              SetLength(Exc, Length(Exc) + 1);
                                              Exc[High(Exc)] := currlog;
                                              Next := True;
                                              Break;
                                            end;
              'can', 'an''t', 'here': begin
                                        WriteLn('You can''t light a fire here!');
                                        WriteLn('Moving position...');
                                        JustClick := false;
                                        if (WB.Y > MMCY) then
                                          B := IntToBox(240, 110, 270, 130)
                                        else
                                          B := IntToBox(240, 240, 270, 260);
                                        MouseBox(B.X1, B.Y1, B.X2, B.Y2, 3);
                                        GetMousePos(P.X, P.Y);
                                        Wait(200 + Random(50));
                                        if (IsUpTextMultiCustom(['Walk', 'alk her', 'k here'])) then
                                          Mouse(P.X, P.Y, 0, 0, True)
                                        else
                                        begin
                                          Mouse(P.X, P.Y, 0, 0, False);
                                          Wait(200 + Random(50));
                                          if (not (ChooseOptionMulti(['Walk', 'alk her', 'k here']))) then
                                            Walk(MMCX, MMCY - 10, 3, 0)
                                          else
                                            Flag;
                                        end;
                                        inc(CantLight);
                                        Randoms(1000 + Random(500), T);
                                        Next := True;
                                        Break;
                                      end;
            end
            else
              Randoms(100, T);
        if (CantLight > 10) then
        begin
          result := false;
          exit;
        end;
        if (Next) then
          Continue;
        Inc(Total[Script_Fires]);
        Inc(Stats_CustomVars[Script_Fires]);
        Inc(TotalScript[Script_Fires]);
        WriteINI('GEArsonist', IntToStr(Script_Fires), IntToStr(TotalScript[Script_Fires]), AppPath + 'GE_Arson.INI');
        Inc(Players[CurrentPlayer].Integers[Player_Fires_Made]);
        Exps := [Logs_Regular_EXP, Logs_Oak_EXP, Logs_Willow_EXP, Logs_Teak_EXP, Logs_Arctic_EXP,
              Logs_Maple_EXP, Logs_Mahogany_EXP, Logs_Eucalyptus_EXP, Logs_Yew_EXP, Logs_Magic_EXP];
        Logs := ['Regular', 'Oak', 'Willow', 'Teak', 'Arctic', 'Maple', 'Mahogany', 'Eucalyptus', 'Yew', 'Magic'];
        if (InStrArrEx(Players[CurrentPlayer].Strings[Player_Log_Type], Logs, W)) then
          Inc(Stats_CustomVars[W + 6]);
        IncEx(Total[Script_EXP], Round(Exps[W]));
        IncEx(Stats_CustomVars[Script_EXP], Round(Exps[W]));
        IncEx(TotalScript[Script_EXP], Round(Exps[W]));
        WriteINI('GEArsonist', IntToStr(Script_EXP), IntToStr(TotalScript[Script_EXP]), AppPath + 'GE_Arson.INI');
        Players[CurrentPlayer].Extendeds[Player_EXP] := Players[CurrentPlayer].Extendeds[Player_EXP] + Exps[W];
        Randoms(100 + Random(100), T);
        Ref_WaitWhileLighting(T);
        AntiBan(AntiBanChance * 4);
      until (((GetSystemTime - T) > (5 * 60 * 1000)) or ((InvCount - Length(Exc)) < 2));
      if (Length(Exc) > 3) and (InvCount > 3) then
        if (InvCount - 1) = Length(Exc) then
        begin
          result := false;
          exit;
        end;
      WriteLn('Back to bank...');
      Randoms(800 + Random(500), T);
      if (FindBankersMM(P)) then
        Walk(P.X, P.Y, 0, 0)
      else
      begin
        Walk(WB.X, WB.Y, 0, 0);
        Randoms(800 + Random(500), T);
        if (FindBankersMM(P)) then
          Walk(P.X, P.Y, 0, 0)
        else
        begin
          Walk(WB.X, WB.Y, 0, 0);
          if (FindBankersMM(P)) then
            Walk(P.X, P.Y, 0, 0)
          else
            result := false;
        end;
      end;
      Randoms(700 + Random(300), T);
    end;

    {*******************************************************************************
    function DecRet(E: Extended): Extended;
    By: IceFire908.
    Description: returns the decimal part of an extended value
    *******************************************************************************}


    {$IFDEF Simba}
    function DecRet(E: Extended): Extended;
    begin
      Result := E - Floor(E);
    end;
    {$ENDIF}

    {*******************************************************************************
    function FloatToStrEx(E: Extended): string;
    By: IceFire908.
    Description: converts a float to smaller float string length wise.
    *******************************************************************************}


    function FloatToStrEx(E: Extended): string;
    begin
      Result := (IntToStr(Floor(E)) + Copy(FloatToStr(DecRet(E)), 2, 3));
    end;

    {*******************************************************************************
    procedure ProgressReport;
    By: IceFire908.
    Description: An elaborate progrees report.
    *******************************************************************************}


    procedure ProgressReport;
    var
      WeAreActive, PlayerRand, PlayerRands: string;
      I, T, TCounter: LongInt;
      LI: Boolean;
    begin
      if (Total[Script_Loads] = 1) then
      begin
        Inc(Stats_CustomVars[Script_Starts]);
        Inc(TotalScript[Script_Starts]);
        WriteINI('GEArsonist', IntToStr(Script_Starts), IntToStr(TotalScript[Script_Starts]), AppPath + 'GE_Arson.INI');
      end;
      SRLRandomsReport;
      Stats_SendReport;
      Stats_ManageAccounts;
      WriteLn('Displaying progress report...');
      TCounter := (1 + ((GetSystemTime - TimeStarted) / 1000));
      WriteLn('');
      WriteLn('<------===== GE Arsonist ver ' + Script_Version + ' Progress Report =====------>');
      WriteLn('           Script run # ' + IntToStr(TotalScript[Script_Starts]) + ' - ' + TheDate(1) + ' - ' + TheTime + '.');
      WriteLn('  Total run time:                        ' + TimeRunning);
      WriteLn('  Total fires made:                      ' + IntToStr(Total[Script_Fires]));
      WriteLn('  Total fires using script made:         ' + IntToStr(TotalScript[Script_Fires]));
      WriteLn('  Fires per hour:                        ' + FloatToStrEx((3600 * Total[Script_Fires]) / TCounter));
      WriteLn('  Total trips made:                      ' + IntToStr(Total[Script_Loads]));
      WriteLn('  Total trips using script made:         ' + IntToStr(TotalScript[Script_Loads]));
      WriteLn('  Trips per hour:                        ' + FloatToStrEx((3600 * Total[Script_Loads]) / TCounter));
      WriteLn('  Total FM EXP gained:                   ' + FloatToStr(Total[Script_EXP]));
      WriteLn('  Total FM EXP gained using script:      ' + FloatToStr(TotalScript[Script_EXP]));
      WriteLn('  FM EXP per hour:                       ' + FloatToStrEx((3600 * Total[Script_EXP]) / TCounter));
      if (TotalScript[Script_Randoms] > 0) then
      begin
        WriteLn('  Total randoms found:                   ' + IntToStr(Total[Script_Randoms]));
        WriteLn('  Total randoms found using script:      ' + IntToStr(TotalScript[Script_Randoms]));
        WriteLn('  Randoms per hour:                      ' + FloatToStrEx((3600 * Total[Script_Randoms]) / TCounter));
      end;
      WriteLn('  Current player:                        ' + Capitalize(Players[CurrentPlayer].Name));
      WriteLn('  Player currently:                      ' + Players[CurrentPlayer].Loc);
      WriteLn('[ ----------------------------------------------------------------------- ]');
      WriteLn('');
      WriteLn('<------===== GE Arsonist ver ' + Script_Version + ' Player''s Report =====------>');
      for I := 0 to (HowManyPlayers - 1) do
      begin
        PlayerRand := '';
        PlayerRands := '';
        if (Players[I].Active) then
          WeAreActive := '  (Active) '
        else
          WeAreActive := ' (InActive)';
         if (not (Players[I].Rand = '')) then
          PlayerRand := ' -- Rand: ' + Players[I].Rand;
        if (Players[I].Integers[Player_Randoms] > 0) then
          PlayerRands := ' -- Randoms: ' + IntToStr(Players[I].Integers[Player_Randoms]);
        WriteLn('  ' + Capitalize(Players[I].Name) + WeAreActive + ' -- Fires: ' + IntToStr(Players[I].Integers[Player_Fires_Made]) + ' ' + Players[I].Strings[Player_Log_Type] + ' logs -- Trips: ' + IntToStr(Players[I].Integers[Player_Trips]) + ' -- Loc: ' + Players[I].Loc);
        WriteLn('   -- EXP: ' + FloatToStrEx(Players[I].Extendeds[Player_EXP]) + ' -- Banks: ' + IntToStr(Players[I].Banked) + ' -- FM LVL: ' + IntToStr(Players[I].Level[Skill_FireMaking]) + ' -- LVLs Gained: ' + IntToStr(Players[I].Level[Skill_FireMaking] - Players[I].Integers[Player_InitLevel]) + PlayerRand + PlayerRands);
      end;
      WriteLn('[ ----------------------------------------------------------------------- ]');
      WriteLn('');
      WriteLn('Displayed progress report.');
      if (TakeBreaks) then
        if (Total[Script_Loads] > 0) then
          if ((Total[Script_Loads] mod TakeBreaksEvery) = 0) then
          begin
            T := GetSystemTime;
            WriteLn(TheTime + ' Taking a break for ' + IntToStr(BreakFor) + ' minute(s)...');
            LI := LoggedIn;
            if (LI) then
              LogOut;
            Sleep(BreakFor * 60000);
            WriteLn('Done breaking.');
            if (LI) then
              InitPlayer;
            IncEx(TimeStarted, GetSystemTime - T);
          end;
    end;

    {*******************************************************************************
                                       MAIN LOOP
    *******************************************************************************}


    procedure BurnItDown;
    var
      IndividualLoads: LongInt;
    begin
      {$IFNDEF SRL_SMART}
        WriteLn('Sorry but you need to use SMART for now.');
        TerminateScript;
      {$ENDIF}
      InitScript;
      repeat

        IndividualLoads := 0;
        if (AllPlayersInActive) then
          Break;
        if (Players[CurrentPlayer].Active) then
          InitPlayer;
        repeat
          if Banking then
            Players[CurrentPlayer].Active := SetFires
          else
            Players[CurrentPlayer].Active := false;
          Players[CurrentPlayer].active := Players[CurrentPlayer].active and LoggedIn;
          if (Players[CurrentPlayer].Active) then
          begin
            Inc(IndividualLoads);
            Inc(Total[Script_Loads]);
            Inc(Stats_CustomVars[Script_Loads]);
            Inc(TotalScript[Script_Loads]);
            WriteINI('GEArsonist', IntToStr(Script_Loads), IntToStr(TotalScript[Script_Loads]), AppPath + 'GE_Arson.INI');
            Inc(Players[CurrentPlayer].Integers[Player_Trips]);
          end;
          if ((Players[CurrentPlayer].Integers[Player_Fires_Made] >=
               Players[CurrentPlayer].Integers[Player_Fires_ToMake]) and (Players[CurrentPlayer].Active)) then
          begin
            Players[CurrentPlayer].Loc := 'Finished!';
            Players[CurrentPlayer].Active := False;
            LogOut;
          end;
          ProgressReport;
        until ((IndividualLoads >= Players[CurrentPlayer].Integers[Player_Loads]) or (not (Players[CurrentPlayer].Active)));
        if (AllPlayersInActive) then
          Break;
        NextPlayer(Players[CurrentPlayer].Active);
      until (AllPlayersInActive);
      WriteLn('All players exhausted.');
      TerminateScript;
    end;

    begin
      BurnItDown;
    end.

    E: It seems to make Simba crash (randomly)
    E2: Yay; Fixed the random crash in Simba (I guess..)
    Last edited by mastaraymond; 05-12-2010 at 11:07 AM.
    Verrekte Koekwous

  2. #127
    Join Date
    Dec 2006
    Location
    Houston, TX USA
    Posts
    4,791
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Can't you just post a diff or something?

  3. #128
    Join Date
    May 2006
    Location
    Amsterdam
    Posts
    3,620
    Mentioned
    5 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by IceFire908 View Post
    Can't you just post a diff or something?
    S00r

    Code:
    --- C:/Remake/Scripts/Original.scar	wo mei 12 13:09:12 2010
    +++ C:/Remake/Scripts/IceFire908s GE Arsonist 1.12.scar	wo mei 12 13:15:26 2010
    @@ -17,7 +17,7 @@
     
     program FireMaker;
     
    -{.Include SRL\SRL\Misc\SMART.SCAR}
    +{$define smart}
     {.Include SRL\SRL.SCAR}
     
     {*******************************************************************************
    @@ -27,21 +27,22 @@
     const
       YourStatsUserID     = '';        // User UID from scriptmanager.freehostia.com
       YourStatsPass       = '';        // Your pass from scriptmanager.
    -  AntiBanChance       = 20;        // Larger the less likely it is for Anti-Ban to occur.
    +  AntiBanChance       = 30;        // Larger the less likely it is for Anti-Ban to occur.
       BreakFor            = 10;        // Minutes you want to break for.
       TakeBreaksEvery     = 100;       // Takes breaks every X amount of loads.
       TakeBreaks          = False;     // Takes regular breaks.
       PlayRandomSound     = True;      // Plays sound when a random is found.
    +  Smart_World         = 49; //109 Australia, 49 New Sealand, 118 Sweden
       
     {*******************************************************************************
                                         INDEXES
     *******************************************************************************}
    -  
    +
     const                              // Don't change these
       Script_Version      = '1.12';
    -  Ref_CurrentBuild    = '602';     // Increase build # to current to overide server
    -  Ref_MyPlayer        = 'kk.i';    // Overrides
    -  Ref_Animation       = 'nc';
    +  Ref_CurrentBuild    = '604';     // Increase build # to current to overide server
    +  Ref_MyPlayer        = 'cn.n';    // Overrides
    +  Ref_Animation       = 'mb';
       Ref_Animation_Fire  = 733;
       Script_Fires        = 1;
       Script_EXP          = 2;
    @@ -66,6 +67,8 @@
       Logs_Eucalyptus_EXP = 193.5;
       Logs_Yew_EXP        = 202.5;
       Logs_Magic_EXP      = 303.8;
    +var
    +  logDTM : integer;
     
     {*******************************************************************************
     procedure DeclarePlayers;
    @@ -113,7 +116,7 @@
         Pin := '';                     // Bank Pin
         Nick := '';                    // 3 consecutive non-caps letters of char's RS username.
         Skill := 'Firemaking';         // Skill to choose for genie lamp
    -    Strings[Player_Log_Type] := 'Regular'; //See chart above
    +    Strings[Player_Log_Type] := 'Willow'; //See chart above
         Integers[Player_Loads] := 99999;       //Loads to do before switching players.
         Integers[Player_Fires_ToMake] := 1000; //Amount of logs you want to burn
         Active := True;                // Use player?
    @@ -459,18 +462,22 @@
     var
       UseDefaultHooks: Boolean;
       S: string;
    -  I: Byte;
    +  I: integer;
     begin
    -  ClearDeBug;
    +  logDTM := DTMFromString('78DA6354636060286440034C609211CA63740' +
    +       '1127904D418008972026AEC81443A01355A44AA29C1AF0600DC6A' +
    +       '03DE');
    +  SetScriptProp(SP_WriteTimeStamp,[true]);
    +//  ClearDeBug;
       WriteLn('Checking hooks...');
    -  Wait(1000);
    +//  Wait(1000);
       S := GetPage('http://icefire908.netai.net/Hooks');
       if (not (Pos('RSBuild', S) > 0)) then
       begin
         WriteLn('********WARNING could not retrieve reflection hooks from server.');
         WriteLn('Script will run improperly if you are not using up to date hooks.');
         UseDefaultHooks := True;
    -    Wait(4000);
    +//    Wait(4000);
       end
       else
         if (StrToIntDef(Between('RSBuild = ', ';', S), 0) > StrToIntDef(Ref_CurrentBuild, 0)) then
    @@ -487,13 +494,13 @@
           WriteLn('Animation_Fire = ' + IntToStr(Animation_Fire) + ';');
           WriteLn('');
           WriteLn('Updated hooks! Hopefully they are up to date now.');
    -      Wait(3000);
    +//      Wait(3000);
         end
         else
         begin
           UseDefaultHooks := True;
           WriteLn('Your hooks are probably up to date.');
    -      Wait(2000);
    +//      Wait(2000);
         end;
       if (UseDefaultHooks) then
       begin
    @@ -502,11 +509,11 @@
         CharAnim := Ref_Animation;
         Animation_Fire := Ref_Animation_Fire;
       end;
    -  ClearDeBug;
    +//  ClearDeBug;
       Disguise('GE Arsonist by IceFire908');
       for I := 1 to 5 do
         TotalScript[I] := StrToIntDef(ReadINI('GEArsonist', IntToStr(I), AppPath + 'GE_Arson.INI'), 0);
    -  WriteLn('  ___________________    _____                            .__          __');
    +{  WriteLn('  ___________________    _____                            .__          __');
       Wait(100);
       WriteLn(' /  _____/\_   _____/   /  _  \_______  __________   ____ |__| _______/  |_');
       Wait(100);
    @@ -519,9 +526,9 @@
       WriteLn('        \/        \/          \/           \/           \/        \/');
       Wait(100);
       WriteLn('   Grand Exchange Arsonist        version ' + Script_Version + '             by IceFire908');
    -  Wait(200);
    +  Wait(200);}
       WriteLn('Total script starts : ' + IntToStr(TotalScript[Script_Starts]) + '|| ||Total fires made : ' + IntToStr(TotalScript[Script_Fires]) + '||  ||Total EXP gained : ' + IntToStr(TotalScript[Script_EXP]) + '||');
    -  Smart_Server := 38;
    +  Smart_Server := Smart_World;
       Smart_Members := False;
       Smart_Signed := True;
       Smart_SuperDetail := False;
    @@ -536,7 +543,7 @@
       SRLRandomsReport;
       Stats_SendReport;
       Stats_ManageAccounts;
    -  Wait(1000 + Random(1000));
    +//  Wait(1000 + Random(1000));
     end;
     
     {*******************************************************************************
    @@ -590,6 +597,7 @@
         end;
         if (FindNormalRandoms) then
         begin
    +
           Inc(Total[Script_Randoms]);
           Inc(Stats_CustomVars[Script_Randoms]);
           Inc(TotalScript[Script_Randoms]);
    @@ -609,6 +617,7 @@
           if (LoggedIn) then
             Ab := 'Performing anti-ban. ';
           WriteLn('Random found! ' + Ab + S);
    +      gametab(tab_inv);
           if (Ab <> '') then
             AntiBan(1);
           if (UseRewardBox) then
    @@ -617,7 +626,7 @@
             FindLamp(LampSkill);
             Wait(1000 + Random(1000));
           end;
    -      Break;
    +      //Break;
         end;
         Wait(RandomRange(250, 500));
       end;
    @@ -633,7 +642,7 @@
     function CurrentChat: string;
     var
       Ch: TStringArray;
    -  I: Byte;
    +  I: integer;
     begin
       Result := 'unknown';
       for I := 0 to 6 do
    @@ -657,7 +666,7 @@
       C: TIntegerArray;
       I: Integer;
       P: TPoint;
    -  II: Byte;
    +  II: integer;
       S: TBox;
     begin
       Result := 'unknown';
    @@ -762,7 +771,7 @@
     var
       MemberLogs: TStringArray;
       M: Boolean;
    -  I: Byte;
    +  I: integer;
     begin
       if (not (LoggedIn)) then
       begin
    @@ -832,6 +841,7 @@
     function Walk(X, Y, R, FD: Integer): Boolean;
     var
       T: LongInt;
    +  Dist : Integer;
     begin
       if (PointInBox(Point(X, Y), IntToBox(MMCX, MMCY, MMCX + 3, MMCY + 3))) then
         Exit;
    @@ -839,9 +849,10 @@
         Exit;
       Result := True;
       WaitWhileGameLoads;
    +  Dist := Distance(x,y,MMCX,MMCY);
       Mouse(RandomRange(X - R, X + R), RandomRange(Y - R, Y + R), 0, 0, True);
       SetRun(True);
    -  Randoms(100, T);
    +  Randoms(100 + Dist * RandomRange(10,15), T);
       Wait(200 + Random(200));
       WaitWhileGameLoads;
       FFlag(FD);
    @@ -856,13 +867,44 @@
     
     function FindBankersMM(var P: TPoint): Boolean;
     var
    -  Angle: Extended;
    +  Angles: T2DExtendedArray;
       dtmGE: Integer;
    +  ptsg,pts,ptsw : TPointArray;
    +  atpa : T2DPointArray;
    +  pt : TPoint;
    +  b : TBox;
    +label
    +  endzor;
     begin
    +  result := false;
       dtmGE := DTMFromString('78DA632C6662600865400179AD710CFF81342310FF0702C63CA09A10881C3354CD9F3F4C0C92503520C0980554E34B404D1A504D04013549403501F8D500008B89126A');
    -  if (FindDTMRotated(dtmGE, P.X, P.Y, MMX1, MMY1, MMX2, MMY2, -Pi/8.0, Pi/8.0, Pi/90.0, Angle)) then
    -    Result := InCircle(P.X, P.Y, MMCX, MMCY, 75);
    -  FreeDTM(dtmGE);
    +  if (FindDTMsRotatedAlternating(dtmGE,pts,MMX1, MMY1, MMX2, MMY2, -Pi/8.0, Pi/8.0, Pi/90.0, angles)) then
    +  begin
    +    filterpointsdist(pts,0,73,MMCX,MMCY);
    +    if length(pts) < 1 then
    +      goto endzor;
    +    FindColorsTolerance(ptsg,7829883,MMX1,MMY1,MMX2,MMY2,25);
    +    FindColorsTolerance(ptsw,16711422 ,MMX1,MMY1,MMX2,MMY2,40);
    +    AppendTPA(ptsg,ptsw);
    +    ATPA := FloodFillTPA(ptsg);
    +    SortATPASize(atpa,true);
    +    if length(ATPA) < 1 then
    +      goto endzor;
    +    if length(ATPA[0]) < 900 then
    +      goto endzor;
    +    b := GetTPABounds(ATPA[0]);
    +    pt := Point((b.x2+b.x1)/2,(b.y2+b.y1)/2);
    +    pt.x := pt.x + distance(pt.x,pt.y,mmcx,mmcy);
    +    SortTPAFrom(pts,pt);
    +    pt := Point((b.x2+b.x1)/2,(b.y2+b.y1)/2);
    +    if Distance(pts[0].x,pts[0].y,pt.x,pt.y) > 30 then
    +      goto endzor;
    +    result := true;
    +    p := pts[0];
    +  end;
    +  endzor:
    +  freedtm(dtmGE);
    +  WriteLn('FindBankersMM: ' + booltostr(result));
     end;
     
     {*******************************************************************************
    @@ -884,6 +926,7 @@
       WriteLn('Opening bank...');
       T := GetSystemTime;
       repeat
    +    Randoms(50,t);
         ColorToleranceSpeed(2);
         SetColorSpeed2Modifiers(0.03, 0.23);
         FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1337487, MSX1, MSY1, MSX2, MSY2, 6);
    @@ -912,8 +955,7 @@
           Wait(200 + Random(50));
           if (InRange(CountColorTolerance(648165, 7, 7, 100, 25, 50), 100, 200)) then
           begin
    -        GetMousePos(P.X, P.Y);
    -        Mouse(P.X, P.Y, 0, 0, False);
    +        ClickMouse2(false);
             Wait(200 + Random(50));
             if (ChooseOptionMulti(['ank B', 'nk B', 'k Ba'])) then
             begin
    @@ -957,20 +999,27 @@
     Description: Everything for banking
     *******************************************************************************}
     
    -procedure Banking;
    +function Banking : boolean;
     var
       T: LongInt;
    +  x,y : integer;
     begin
    +  result := false;
       if (not (LoggedIn)) then
         Exit;
       if (InvCount = 28) then
    +  begin
    +    result := true;
         Exit;
    +  end;
       WriteLn('Beggining everything for banking...');
       Players[CurrentPlayer].Loc := 'Banking...';
       if (not (OpenGEBank)) then
         Exit;
       Wait(500 + Random(160));
       Deposit(2, 28, True);
    +  if not FindDTM(logDTM,x,y,30, 85,75, 126) then
    +    exit;
       T := GetSystemTime;
       while (((GetSystemTime - T) < 2000) and (InvCount < 2)) do
       begin
    @@ -978,46 +1027,15 @@
         Mouse(53, 107, 5, 5, False);
         Wait(200 + Random(100));
         ChooseOption('draw-All');
    -    Wait(200 + Random(50));
    +    while ((GetSystemTime - T) < 2000) and (not FindBlackChatMessage('enough') and (InvCount <2)) do
    +      Wait(200 + Random(50));
       end;
       WriteLn('Finished everything for banking.');
       Players[CurrentPlayer].Loc := 'GEB.';
    +  result := true;
     end;
     
     {*******************************************************************************
    -function Select(Slot: Byte): Byte;
    -By: IceFire908.
    -Description: Selects tinderbox or log, which ever is closer.
    -*******************************************************************************}
    -
    -function Select(Slot: Byte): Byte;
    -var
    -  CurM, TB, SB, P: TPoint;
    -  T: LongInt;
    -  B: TBox;
    -  I: Byte;
    -begin
    -  GetMousePos(CurM.X, CurM.Y);
    -  TB := ItemCoords(1);
    -  SB := ItemCoords(Slot);
    -  if (Distance(CurM.X, CurM.Y, SB.X, SB.Y) < Distance(CurM.X, CurM.Y, TB.X, TB.Y)) then
    -  begin
    -    Result := 1;
    -    I := Slot;
    -  end
    -  else
    -  begin
    -    Result := Slot;
    -    I := 1;
    -  end;
    -  MouseItem(I, True);
    -  B := InvBox(I);
    -  T := GetSystemTime;
    -  while ((not (FindColor(P.X, P.Y, 16777215, B.X1, B.Y1, B.X2, B.Y2))) and ((GetSystemTime - T) < 2500)) do
    -    Wait(100 + Random(50));
    -end;
    -
    -{*******************************************************************************
     function Ref_GetAnimation: Integer;
     By: IceFire908.
     Description: Gets the current player animation using smart's reflection
    @@ -1027,9 +1045,11 @@
     var
       I: Integer;
     begin
    +  {$IFDEF SMART}
       I := SmartGetFieldObject(0, MyPlayer);
       Result := SmartGetFieldInt(I, CharAnim);
       SmartFreeObject(I);
    +  {$ENDIF}
     end;
     
     {*******************************************************************************
    @@ -1049,27 +1069,152 @@
       end;
     end;
     
    -{*******************************************************************************
    -procedure SetFires;
    -By: IceFire908.
    -Description: Everything for setting fires and walking back.
    -*******************************************************************************}
    +function NextLog(Exc: TIntegerArray; CurLog : integer) : integer;
    +var
    +  x,y : integer;
    +  pts : TPointArray;
    +  i,j : integer;
    +begin
    +  result := -1;
    +  if not FindDTMs(logdtm,pts,MIX1,MIY1,MIX2,MIY2) then
    +    exit;
    +  GetMousePos(x,y);
    +  SortTPAFrom(pts,point(x,y));
    +  for j := 0 to high(pts) do
    +  begin
    +    i := CoordsToItem(pts[j].x,pts[j].y);
    +    if not InIntArray(exc,i) and (i <> 0) and (i <> curlog) then
    +    begin
    +      result := i;
    +      exit;
    +    end;
    +  end;
    +end;
     
    -procedure SetFires;
    +function ClickTwoItems(item1,item2 : integer; ClickSecond : boolean) : boolean;
     var
    +  x,y,first,second : integer;
    +  t : longword;
    +  t1,t2 : TPoint;
    +begin
    +  GetMousePos(x,y);
    +  t1 := ItemCoords(item1);
    +  t2 := ItemCoords(item2);
    +  first := item1;
    +  second := item2;
    +  if Distance(x,y,t1.x,t1.y) > Distance(x,y,t2.x,t2.y) then
    +  begin
    +    first := item2;
    +    second := item1;
    +  end;
    +  result := true;
    +  T := GetSystemTime;
    +  mouseitem(first,true);
    +  while not ItemActivated(first) and ((GetSystemTime - T) < 2500) do
    +    Wait(100 + Random(50));
    +  if (GetSystemTime - t) >= 2500 then
    +    result := false;
    +  if result then
    +  begin
    +    if ClickSecond then
    +      mouseitem(second,true)
    +    else
    +      mmouseitem(second);
    +  end;
    +end;
    +
    +function CurrentItem : integer;
    +var
    +  x,y : integer;
    +begin
    +  GetMousePos(x,y);
    +  result := CoordsToItem(x,y);
    +end;
    +
    +function ClickNextLog(Exc: TIntegerArray;var JustClick : boolean; var CurrLog,NexttLog : integer) : boolean;
    +var
    +  Next,selItem : integer;
    +  t : integer;
    +  Clicked : boolean;
    +begin
    +  Result := false;
    +  Clicked := false;
    +  if JustClick then
    +  begin
    +    selItem := ActivatedItem;
    +    if (CurrentItem > 0) and (CurrentItem <> selItem) and (SelItem > 0) then
    +    begin
    +      ClickMouse2(true);
    +      randoms(100 + random(50),t);
    +      Clicked := true;
    +      result := true;
    +      CurrLog := NexttLog;
    +    end else
    +    begin
    +      if SelItem < 1 then //No item is selected.. Just follow the normal method!
    +        WriteLn('No item is selected.. Yet JustClick was true, weird..')
    +      else
    +      begin
    +        if selitem = 1 then //we just need to find a log!
    +        begin
    +          WriteLn('Whoops! Mouse is not on the correct selected item, fixing that stuff now!');
    +          t := NextLog(exc,-1);
    +          if t = -1 then
    +            exit;
    +          mouseitem(t,true);
    +          randoms(300+random(150),t);
    +          clicked := true;
    +          result := true;
    +          currlog := t;
    +        end else
    +        begin //We just need to click the tinderbox
    +          WriteLn('Whoops! Mouse is not on the correct selected item, fixing that stuff now!');
    +          mouseItem(1,true);
    +          randoms(300+random(150),t);
    +          clicked := true;
    +          result := true;
    +          currlog := nexttlog;
    +        end;
    +      end;
    +    end;
    +  end;
    +  JustClick := false;
    +  Next := NextLog(exc,currlog);
    +  if next = -1 then
    +    exit;
    +  Result := ClickTwoItems(next,1,not Clicked);
    +  if Clicked then
    +  begin
    +    nexttlog := next;
    +    justclick := result;
    +    exit;//We already clicked a log, so this time we just exit here to make sure it hovers on the nex tlog
    +  end else
    +    Randoms(100+random(50),t);
    +  CurrLog := next;
    +  Next := NextLog(exc,currlog);
    +  if next = -1 then
    +    exit;
    +  result := ClickTwoItems(next,1,false);//We already clicked a log, so just hover the next one
    +  justclick := result;
    +  NexttLog := next;
    +end;
    +function SetFires : boolean;
    +var
       TPA, bTPA: TPointArray;
       Exps: TExtendedArray;
       Logs: TStringArray;
       Exc: TIntegerArray;
       T, TT, W: LongInt;
       OutPut: string;
    -  Next: Boolean;
    +  CurrLog,NexttLog : integer;
    +  Next,JustClick: Boolean;
       P, WB: TPoint;
    -  I, TB: Byte;
       B: TBox;
    +  CantLight : integer;
     begin
       if (not (LoggedIn)) then
         Exit;
    +  Result := true;
       Players[CurrentPlayer].Loc := 'Setting fires...';
       WriteLn('Setting fires...');
       TPA := TPAFromBox(IntToBox(MMX1, MMY1, MMX2, MMY2));
    @@ -1081,41 +1226,36 @@
       WB := Point(P.X, (MMCY * 2) - P.Y);
       Walk(P.X, P.Y, 0, 0);
       Randoms(500 + Random(500), T);
    +  CantLight := 0;
       T := GetSystemTime;
    +  JustClick := false;
       repeat
    -    if (not (InRange(I, 2, 28))) then
    -      I := 2;
    -    if ((not (ExistsItem(I))) or (InIntArray(Exc, I))) then
    -    begin
    -      Inc(I);
    -      Continue;
    -    end;
    -    TB := Select(I);
    -    MouseItem(TB, True);
    +    if not ClickNextLog(exc,justclick,currlog,nexttlog) then
    +      break;
         if (Next) then
         begin
           Randoms(800 + Random(250), T);
           Ref_WaitWhileLighting(T);
         end
         else
    -      Randoms(100 + Random(100), T);
    +      Randoms(650 + random(100), T);
         Next := False;
         TT := GetSystemTime;
         OutPut := '';
    -    while ((ExistsItem(I)) and ((GetSystemTime - TT) < 5000)) do
    +    while ((ExistsItem(currlog)) and ((GetSystemTime - TT) < 5000)) do
           if (InChatMulti(['othing', 'appens', 'nteres', 'can', 'an''t', 'here'], OutPut)) then
             case OutPut of
               'othing', 'appens', 'nteres': begin
                                               WriteLn('These are not logs!!');
                                               SetLength(Exc, Length(Exc) + 1);
    -                                          Exc[High(Exc)] := I;
    -                                          Inc(I);
    +                                          Exc[High(Exc)] := currlog;
                                               Next := True;
                                               Break;
                                             end;
               'can', 'an''t', 'here': begin
                                         WriteLn('You can''t light a fire here!');
                                         WriteLn('Moving position...');
    +                                    JustClick := false;
                                         if (WB.Y > MMCY) then
                                           B := IntToBox(240, 110, 270, 130)
                                         else
    @@ -1134,6 +1274,7 @@
                                           else
                                             Flag;
                                         end;
    +                                    inc(CantLight);
                                         Randoms(1000 + Random(500), T);
                                         Next := True;
                                         Break;
    @@ -1141,9 +1282,13 @@
             end
             else
               Randoms(100, T);
    +    if (CantLight > 10) then
    +    begin
    +      result := false;
    +      exit;
    +    end;
         if (Next) then
           Continue;
    -    Inc(I);
         Inc(Total[Script_Fires]);
         Inc(Stats_CustomVars[Script_Fires]);
         Inc(TotalScript[Script_Fires]);
    @@ -1163,6 +1308,12 @@
         Ref_WaitWhileLighting(T);
         AntiBan(AntiBanChance * 4);
       until (((GetSystemTime - T) > (5 * 60 * 1000)) or ((InvCount - Length(Exc)) < 2));
    +  if (Length(Exc) > 3) and (InvCount > 3) then
    +    if (InvCount - 1) = Length(Exc) then
    +    begin
    +      result := false;
    +      exit;
    +    end;
       WriteLn('Back to bank...');
       Randoms(800 + Random(500), T);
       if (FindBankersMM(P)) then
    @@ -1172,7 +1323,15 @@
         Walk(WB.X, WB.Y, 0, 0);
         Randoms(800 + Random(500), T);
         if (FindBankersMM(P)) then
    -      Walk(P.X, P.Y, 0, 0);
    +      Walk(P.X, P.Y, 0, 0)
    +    else
    +    begin
    +      Walk(WB.X, WB.Y, 0, 0);
    +      if (FindBankersMM(P)) then
    +        Walk(P.X, P.Y, 0, 0)
    +      else
    +        result := false;
    +    end;
       end;
       Randoms(700 + Random(300), T);
     end;
    @@ -1290,6 +1449,7 @@
     procedure BurnItDown;
     var
       IndividualLoads: LongInt;
    +  pt : TPoint;
     begin
       {$IFNDEF SRL_SMART}
         WriteLn('Sorry but you need to use SMART for now.');
    @@ -1303,9 +1463,11 @@
         if (Players[CurrentPlayer].Active) then
           InitPlayer;
         repeat
    -      Banking;
    -      SetFires;
    -      Players[CurrentPlayer].Active := LoggedIn;
    +      if Banking then
    +        Players[CurrentPlayer].Active := SetFires
    +      else
    +        Players[CurrentPlayer].Active := false;
    +      Players[CurrentPlayer].active := Players[CurrentPlayer].active and LoggedIn;
           if (Players[CurrentPlayer].Active) then
           begin
             Inc(IndividualLoads);
    @@ -1334,4 +1496,4 @@
     
     begin
       BurnItDown;
    -end.
    \ No newline at end of file
    +end.
    Verrekte Koekwous

  4. #129
    Join Date
    May 2007
    Location
    Tasmania, Aus
    Posts
    898
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    just going to put it out there, still works very good

    PHP Code:
    <------===== GE Arsonist ver 1.12 Progress Report =====------>
               
    Script run # 59 - May 16th, 2010 - 11:58:03 PM.
      
    Total run time:                        1 Hours12 Minutes and 8 Seconds
      Total fires made
    :                      1101
      Total fires using script made
    :         50528
      Fires per hour
    :                        918.98
      Total trips made
    :                      41
      Total trips using script made
    :         1885
      Trips per hour
    :                        34.22
      Total FM EXP gained
    :                   99090
      Total FM EXP gained using script
    :      4547520
      FM EXP per hour
    :                       82709.01
      Total randoms found
    :                   0
      Total randoms found using script
    :      10
      Randoms per hour
    :                      0
      Current player
    :                        fire making
      Player currently
    :                      Setting fires...
    [ ----------------------------------------------------------------------- ]

    <------===== 
    GE Arsonist ver 1.12 Player's Report =====------>
      firemkaing  (Active)  -- Fires: 1101 Willow logs -- Trips: 41 -- Loc: Setting fires...
       -- EXP: 99090 -- Banks: 41 -- FM LVL: 89 -- LVLs Gained: 0
    [ ----------------------------------------------------------------------- 

  5. #130
    Join Date
    Dec 2006
    Location
    Houston, TX USA
    Posts
    4,791
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Updated hooks to #607

  6. #131
    Join Date
    May 2007
    Location
    Tasmania, Aus
    Posts
    898
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    PHP Code:
    <------===== GE Arsonist ver 1.12 Progress Report =====------>
               
    Script run # 10 - May 20th, 2010 - 10:06:44 PM.
      
    Total run time:                        3 Hours48 Minutes and 7 Seconds
      Total fires made
    :                      3677
      Total fires using script made
    :         9711
      Fires per hour
    :                        968.19
      Total trips made
    :                      137
      Total trips using script made
    :         420
      Trips per hour
    :                        36.07
      Total FM EXP gained
    :                   330930
      Total FM EXP gained using script
    :      873990
      FM EXP per hour
    :                       87137.79
      Total randoms found
    :                   0
      Total randoms found using script
    :      1
      Randoms per hour
    :                      0
      Current player
    :                        fireman
      Player currently
    :                      Banking...
    [ ----------------------------------------------------------------------- ]

    <------===== 
    GE Arsonist ver 1.12 Player's Report =====------>
      fireman (InActive) -- Fires: 3677 Willow logs -- Trips: 137 -- Loc: Banking...
       -- EXP: 330930 -- Banks: 137 -- FM LVL: 91 -- LVLs Gained: 0
    [ ----------------------------------------------------------------------- ] 
    Best proggy from this script I have got so far <3

    EDIT
    PHP Code:
    <------===== GE Arsonist ver 1.12 Progress Report =====------>
               
    Script run # 13 - May 21st, 2010 - 02:30:15 AM.
      
    Total run time:                        3 Hours45 Minutes and 24 Seconds
      Total fires made
    :                      3024
      Total fires using script made
    :         13003
      Fires per hour
    :                        806.45
      Total trips made
    :                      116
      Total trips using script made
    :         546
      Trips per hour
    :                        30.93
      Total FM EXP gained
    :                   272160
      Total FM EXP gained using script
    :      1170270
      FM EXP per hour
    :                       72581.37
      Total randoms found
    :                   0
      Total randoms found using script
    :      1
      Randoms per hour
    :                      0
      Current player
    :                        %%%%
      
    Player currently:                      Banking...
    [ ----------------------------------------------------------------------- ]

    <------===== 
    GE Arsonist ver 1.12 Player's Report =====------>
      %%%% (InActive) -- Fires: 3024 Willow logs -- Trips: 116 -- Loc: Banking...
       -- EXP: 272160 -- Banks: 115 -- FM LVL: 92 -- LVLs Gained: 0
    [ ----------------------------------------------------------------------- ] 
    another great proggy
    Last edited by Sgt Soul; 05-20-2010 at 04:32 PM.

  7. #132
    Join Date
    Jul 2009
    Posts
    206
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    this usually stops infront of the banker and terminates after a hour or two

  8. #133
    Join Date
    Dec 2006
    Location
    Houston, TX USA
    Posts
    4,791
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Updated to #609 hooks

    Thanks for the progress guys, I'll be releasing another version using some of ray0md's feedback to hopefully improve this script in early June.

  9. #134
    Join Date
    May 2007
    Location
    Tasmania, Aus
    Posts
    898
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    PHP Code:
    <------===== GE Arsonist ver 1.12 Progress Report =====------>
               
    Script run # 20 - May 22nd, 2010 - 12:29:31 AM.
      
    Total run time:                        3 Hours41 Minutes and 25 Seconds
      Total fires made
    :                      3441
      Total fires using script made
    :         19790
      Fires per hour
    :                        934.34
      Total trips made
    :                      128
      Total trips using script made
    :         808
      Trips per hour
    :                        34.75
      Total FM EXP gained
    :                   309690
      Total FM EXP gained using script
    :      1781100
      FM EXP per hour
    :                       84091.41
      Total randoms found
    :                   0
      Total randoms found using script
    :      1
      Randoms per hour
    :                      0
      Current player
    :                        sailer
      Player currently
    :                      Banking...
    [ ----------------------------------------------------------------------- ]

    <------===== 
    GE Arsonist ver 1.12 Player's Report =====------>
      sailer (InActive) -- Fires: 3441 Willow logs -- Trips: 128 -- Loc: Banking...
       -- EXP: 309690 -- Banks: 128 -- FM LVL: 93 -- LVLs Gained: 1
    [ ----------------------------------------------------------------------- ] 
    I feel as if the script moves a lot smoother from the hooks, as I use to find in the game the player would struggle lighting the first one but the script would try to light another fire. but now it is perfect love it!!! hehe

  10. #135
    Join Date
    Aug 2008
    Location
    !!LOL!!
    Posts
    247
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    could you please explain what is happening here?


    SCAR Code:
    Players[CurrentPlayer].Loc := 'Setting fires...';
      WriteLn('Setting fires...');
      TPA := TPAFromBox(IntToBox(MMX1, MMY1, MMX2, MMY2));
      bTPA := TPA;
      FilterPointsPie(TPA, 45, 65, 55, 65, MMCX, MMCY);
      FilterPointsPie(bTPA, 91, 135, 55, 65, MMCX, MMCY);
      TPA := CombineTPA(TPA, bTPA);
      P := TPA[Random(Length(TPA))];
      WB := Point(P.X, (MMCY * 2) - P.Y);  <---- This Line
      Walk(P.X, P.Y, 0, 0);

    and how from there you proceed to reposition the player, and thanks
    Last edited by hackncrack1; 05-23-2010 at 10:05 AM.

  11. #136
    Join Date
    Jul 2009
    Posts
    206
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    it seems to always get stuck banking
    Code:
    Fires: 809 Maple logs -- Trips: 30 -- Loc: Banking...
       -- EXP: 109215 -- Banks: 30 -- FM LVL: 87 -- LVLs Gained: 0
    [ ----------------------------------------------------------------------- ]
    EDIT: i just watched what it did and it click right beside and ran to the banker and then clicked log out
    Last edited by kevinconklin; 05-23-2010 at 05:06 PM.

  12. #137
    Join Date
    Dec 2006
    Location
    Houston, TX USA
    Posts
    4,791
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by kevinconklin View Post
    it seems to always get stuck banking
    Code:
    Fires: 809 Maple logs -- Trips: 30 -- Loc: Banking...
       -- EXP: 109215 -- Banks: 30 -- FM LVL: 87 -- LVLs Gained: 0
    [ ----------------------------------------------------------------------- ]
    EDIT: i just watched what it did and it click right beside and ran to the banker and then clicked log out
    Thanks for the feedback, 30 trips before fail looks pretty good though. There should be a good failsafe to prevent that for next time.

    Quote Originally Posted by sgt soul View Post
    PHP Code:
    <------===== GE Arsonist ver 1.12 Progress Report =====------>
               
    Script run # 20 - May 22nd, 2010 - 12:29:31 AM.
      
    Total run time:                        3 Hours41 Minutes and 25 Seconds
      Total fires made
    :                      3441
      Total fires using script made
    :         19790
      Fires per hour
    :                        934.34
      Total trips made
    :                      128
      Total trips using script made
    :         808
      Trips per hour
    :                        34.75
      Total FM EXP gained
    :                   309690
      Total FM EXP gained using script
    :      1781100
      FM EXP per hour
    :                       84091.41
      Total randoms found
    :                   0
      Total randoms found using script
    :      1
      Randoms per hour
    :                      0
      Current player
    :                        sailer
      Player currently
    :                      Banking...
    [ ----------------------------------------------------------------------- ]

    <------===== 
    GE Arsonist ver 1.12 Player's Report =====------>
      sailer (InActive) -- Fires: 3441 Willow logs -- Trips: 128 -- Loc: Banking...
       -- EXP: 309690 -- Banks: 128 -- FM LVL: 93 -- LVLs Gained: 1
    [ ----------------------------------------------------------------------- ] 
    I feel as if the script moves a lot smoother from the hooks, as I use to find in the game the player would struggle lighting the first one but the script would try to light another fire. but now it is perfect love it!!! hehe
    Yes, the hooks are important =P that's why some people are having problems, you absolutely need them in order to get a good script run.

    Quote Originally Posted by hackncrack1 View Post
    could you please explain what is happening here?


    SCAR Code:
    Players[CurrentPlayer].Loc := 'Setting fires...';
      WriteLn('Setting fires...');
      TPA := TPAFromBox(IntToBox(MMX1, MMY1, MMX2, MMY2));
      bTPA := TPA;
      FilterPointsPie(TPA, 45, 65, 55, 65, MMCX, MMCY);
      FilterPointsPie(bTPA, 91, 135, 55, 65, MMCX, MMCY);
      TPA := CombineTPA(TPA, bTPA);
      P := TPA[Random(Length(TPA))];
      WB := Point(P.X, (MMCY * 2) - P.Y);  <---- This Line
      Walk(P.X, P.Y, 0, 0);

    and how from there you proceed to reposition the player, and thanks
    Reflect P across the X axis (or maybe it was Y axis), been a long time since I wrote that.

  13. #138
    Join Date
    Aug 2007
    Posts
    140
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Code:
    Status: /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
    [4:20:21]: Status: |     SRL 38 Randoms Report    |
    [4:20:21]: Status: |       www.villavu.com        |
    [4:20:22]: Status: |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
    [4:20:22]: Status: | SRL Logs          :        1 |
    [4:20:22]: Status: | Lamps Solved      :        1 |
    [4:20:22]: Status: | Molly's Solved    :        1 |
    [4:20:22]: Status: \~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/
    [4:20:22]: Displaying progress report...
    [4:20:22]: 
    [4:20:22]: <------===== GE Arsonist ver 1.12 Progress Report =====------>
    [4:20:22]:            Script run # 13 - May 23rd, 2010 - 09:38:12 PM.
    [4:20:22]:   Total run time:                        4 Hours, 20 Minutes and 22 Seconds
    [4:20:22]:   Total fires made:                      3927
    [4:20:22]:   Total fires using script made:         6977
    [4:20:22]:   Fires per hour:                        908
    [4:20:22]:   Total trips made:                      148
    [4:20:22]:   Total trips using script made:         260
    [4:20:22]:   Trips per hour:                        34
    [4:20:22]:   Total FM EXP gained:                   353430
    [4:20:22]:   Total FM EXP gained using script:      627930
    [4:20:22]:   FM EXP per hour:                       81749
    [4:20:22]:   Total randoms found:                   1
    [4:20:22]:   Total randoms found using script:      1
    [4:20:22]:   Randoms per hour:                      0
    [4:20:22]:   Current player:                        *******
    [4:20:22]:   Player currently:                      Setting fires...
    [4:20:22]: [ ----------------------------------------------------------------------- ]
    [4:20:22]: 
    [4:20:22]: <------===== GE Arsonist ver 1.12 Player's Report =====------>
    [4:20:22]:   *******  (Active)  -- Fires: 3927 Willow logs -- Trips: 148 -- Loc: Setting fires...
    [4:20:22]:    -- EXP: 353430 -- Banks: 148 -- FM LVL: 70 -- LVLs Gained: 8 -- Randoms: 1
    [4:20:22]: [ ----------------------------------------------------------------------- ]
    New hooks worked like a charm
    Last edited by sylvawarrior; 05-24-2010 at 01:51 AM.
    Quote Originally Posted by Hobbit View Post
    ...i had faulty ram....they told me to format my hard drive...im like HOW TO F*** IS THAT GONNA HELP MY F***ING RAM??? YOU STUPID IDIOT!! then i hung up...lol

  14. #139
    Join Date
    Jul 2009
    Posts
    206
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by IceFire908 View Post
    Thanks for the feedback, 30 trips before fail looks pretty good though. There should be a good failsafe to prevent that for next time.
    ya that was a good run, sometimes it happens after 4 -8 loads or so

  15. #140
    Join Date
    Oct 2006
    Location
    USA
    Posts
    304
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Got this error: Line 773: [Error] (21993:24): Unknown identifier 'WORLDINFO' in script

  16. #141
    Join Date
    Jun 2008
    Posts
    68
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    <------===== GE Arsonist ver 1.12 Progress Report =====------>
    Script run # 15 - May 24th, 2010 - 06:02:30 PM.
    Total run time: 1 Hours, 13 Minutes and 16 Seconds
    Total fires made: 1163
    Total fires using script made: 9708
    Fires per hour: 1024.92
    Total trips made: 43
    Total trips using script made: 362
    Trips per hour: 37.89
    Total FM EXP gained: 157005
    Total FM EXP gained using script: 1310580
    FM EXP per hour: 138364.25
    Total randoms found: 0
    Total randoms found using script: 3
    Randoms per hour: 0
    <3 RISK, <3 P1nky

  17. #142
    Join Date
    Jul 2009
    Posts
    206
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    where are you guys getting these big proggy's mine looks like
    Code:
    Fires: 1184 Maple logs -- Trips: 44 -- Loc: Setting fires...
       -- EXP: 159840 -- Banks: 44 -- FM LVL: 91 -- LVLs Gained: 0 -- Randoms: 1
    [ ----------------------------------------------------------------------- ]

  18. #143
    Join Date
    Aug 2007
    Posts
    140
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Change your hooks... They're needed for the function where it makes sure it's at the bank. You NEED reflection
    Quote Originally Posted by Hobbit View Post
    ...i had faulty ram....they told me to format my hard drive...im like HOW TO F*** IS THAT GONNA HELP MY F***ING RAM??? YOU STUPID IDIOT!! then i hung up...lol

  19. #144
    Join Date
    May 2007
    Location
    Tasmania, Aus
    Posts
    898
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    PHP Code:
    <------===== GE Arsonist ver 1.12 Progress Report =====------>
               
    Script run # 28 - May 25th, 2010 - 02:43:26 PM.
      
    Total run time:                        3 Hours43 Minutes and 36 Seconds
      Total fires made
    :                      3243
      Total fires using script made
    :         32935
      Fires per hour
    :                        871.25
      Total trips made
    :                      121
      Total trips using script made
    :         1297
      Trips per hour
    :                        32.50
      Total FM EXP gained
    :                   291870
      Total FM EXP gained using script
    :      2964150
      FM EXP per hour
    :                       78412.83
      Total randoms found
    :                   0
      Total randoms found using script
    :      3
      Randoms per hour
    :                      0
      Current player
    :                        mighty fire
      Player currently
    :                      Banking...
    [ ----------------------------------------------------------------------- ]

    <------===== 
    GE Arsonist ver 1.12 Player's Report =====------>
      mighty fire (InActive) -- Fires: 3243 Willow logs -- Trips: 121 -- Loc: Banking...
       -- EXP: 291870 -- Banks: 121 -- FM LVL: 94 -- LVLs Gained: 0
    [ ----------------------------------------------------------------------- ] 
    almost lvl 95 now

  20. #145
    Join Date
    Jul 2009
    Posts
    206
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by sylvawarrior View Post
    Change your hooks... They're needed for the function where it makes sure it's at the bank. You NEED reflection
    How do i do that please help!

  21. #146
    Join Date
    Aug 2007
    Posts
    140
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Search button is your friend.
    Quote Originally Posted by Hobbit View Post
    ...i had faulty ram....they told me to format my hard drive...im like HOW TO F*** IS THAT GONNA HELP MY F***ING RAM??? YOU STUPID IDIOT!! then i hung up...lol

  22. #147
    Join Date
    Jul 2009
    Posts
    206
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    i dont know whats going on but recently its been failing alot and it is just standing ontop of where it cant light a fire and it just keeps trying to light it there and it doesnt move

  23. #148
    Join Date
    Sep 2008
    Location
    Not here.
    Posts
    5,422
    Mentioned
    13 Post(s)
    Quoted
    242 Post(s)

    Default

    Quote Originally Posted by kevinconklin View Post
    i dont know whats going on but recently its been failing alot and it is just standing ontop of where it cant light a fire and it just keeps trying to light it there and it doesnt move
    runescape updated today, so you need the new hooks.

  24. #149
    Join Date
    Jun 2008
    Posts
    68
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    dang... need these new hooks and btw rs updated sooo close to 99 firemaking on this tyvm update soon or ill have to kill myself
    tyvm
    <3 RISK, <3 P1nky

  25. #150
    Join Date
    Jul 2009
    Posts
    206
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by phantom1 View Post
    dang... need these new hooks and btw rs updated sooo close to 99 firemaking on this tyvm update soon or ill have to kill myself
    tyvm
    same im at 94 and its failng on me! please fix

Page 6 of 12 FirstFirst ... 45678 ... LastLast

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
  •