Page 50 of 54 FirstFirst ... 404849505152 ... LastLast
Results 1,226 to 1,250 of 1345

Thread: OFFICIAL Social Slayer/SMART Not Working Thread

  1. #1226
    Join Date
    Apr 2012
    Posts
    46
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I updated Simba and everything else but while trying to run Flight's Livid Farm script I get the following error:


    [Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40

    I saw someone suggest to change

    {$i SRL/SRL/misc/paintsmart.simba}
    to
    {$i SRL/SRL/misc/smartgraphics.simba}

    but then I get the following error


    [Error] C:\Users\Tyler\Downloads\LividFarmer(1.2).Simba(31 0:40): Invalid number of parameters at line 309

    Anybody know how to fix this?

  2. #1227
    Join Date
    Jul 2012
    Location
    Australia
    Posts
    553
    Mentioned
    1 Post(s)
    Quoted
    4 Post(s)

    Default

    Okay, so I downloaded and updated Simba.
    What do I do now?
    (I think I know, but I want to make sure)
    Sinking. Always. Sinking.

  3. #1228
    Join Date
    May 2012
    Location
    Somewhere in, PA
    Posts
    1,810
    Mentioned
    9 Post(s)
    Quoted
    226 Post(s)

    Default

    Quote Originally Posted by Law and Justice View Post
    Okay, so I downloaded and updated Simba.
    What do I do now?
    (I think I know, but I want to make sure)
    And you have SMART v7.2 also? If not, you need to get that too.
    My First Build!, Selling Downloadable Games
    -------------------------------------

  4. #1229
    Join Date
    Jul 2012
    Location
    Australia
    Posts
    553
    Mentioned
    1 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by AustnW View Post
    And you have SMART v7.2 also? If not, you need to get that too.
    Oh yeah, thanks!
    Hmmm... Where do I put the contents of the .zip?
    Sinking. Always. Sinking.

  5. #1230
    Join Date
    May 2012
    Location
    Somewhere in, PA
    Posts
    1,810
    Mentioned
    9 Post(s)
    Quoted
    226 Post(s)

    Default

    Quote Originally Posted by Law and Justice View Post
    Oh yeah, thanks!
    Hmmm... Where do I put the contents of the .zip?
    Ha idk exactly, I didn't even do it myself yet lol
    My First Build!, Selling Downloadable Games
    -------------------------------------

  6. #1231
    Join Date
    Jul 2012
    Location
    Australia
    Posts
    553
    Mentioned
    1 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by AustnW View Post
    Ha idk exactly, I didn't even do it myself yet lol
    Lol Oh okay, thanks though!
    Sinking. Always. Sinking.

  7. #1232
    Join Date
    Apr 2012
    Location
    Australia
    Posts
    1,252
    Mentioned
    1 Post(s)
    Quoted
    22 Post(s)

    Default

    You unzip them into your Plugins folder, and allow them to override your existing plugins.

  8. #1233
    Join Date
    Jul 2012
    Location
    Australia
    Posts
    553
    Mentioned
    1 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by P1ng View Post
    You unzip them into your Plugins folder, and allow them to override your existing plugins.
    Ohhh, I downloaded the wrong version, that's why I was confused.
    Thanks buddy!

    What is there to do now?
    Sinking. Always. Sinking.

  9. #1234
    Join Date
    Jan 2012
    Posts
    74
    Mentioned
    0 Post(s)
    Quoted
    5 Post(s)

    Default

    Here is Simba 991 it should be working thanks to all the people who put in work on coding and testing hope this helps

    http://villavu.com/forum/showthread.php?t=87258

  10. #1235
    Join Date
    Jul 2012
    Location
    Australia
    Posts
    553
    Mentioned
    1 Post(s)
    Quoted
    4 Post(s)

    Default

    So.. How do I get the scripts working?
    Just as before, or is there something that needs to be done?
    Sinking. Always. Sinking.

  11. #1236
    Join Date
    Dec 2011
    Location
    Ontario, Canada
    Posts
    1,735
    Mentioned
    5 Post(s)
    Quoted
    89 Post(s)

    Default

    Pretty much just as before. Use this instead of /Smart ( at the top of your script) :
    {$Define Smart}
    and at the bottom of scripts where it declares Smart stuff like Smart_Server and what not, you must change it to this:

    {$IFDEF SIMBAMAJOR980}//<--- THIS
    Smart_Server := 0;
    Smart_Members := False;
    Smart_Signed := True;
    Smart_SuperDetail := False;
    {$ELSE}//<--- THIS
    SRL_SIXHOURFIX := TRUE;
    SMART_FIXSPEED := TRUE;
    {$ENDIF}

    Dont know if you need all of it but you do need most of it. Also if there is a thing at the top for paintsmart, you must change it to this:

    {$I SRL/SRL/Misc/SmartGraphics.Simba}
    FEEL FREE TO PM ME ABOUT ANYTHING! Will help over Teamviewer...just ask!! "WITH A NEW QUESTION COMES A NEW CHALLENGE"
    Silentcore's AIO Service team !!! Pm me if you want questing done or service done or post on thread ofc

  12. #1237
    Join Date
    May 2012
    Location
    Somewhere in, PA
    Posts
    1,810
    Mentioned
    9 Post(s)
    Quoted
    226 Post(s)

    Default

    Quote Originally Posted by kevin33 View Post
    Pretty much just as before. Use this instead of /Smart ( at the top of your script) :
    {$Define Smart}
    and at the bottom of scripts where it declares Smart stuff like Smart_Server and what not, you must change it to this:

    {$IFDEF SIMBAMAJOR980}//<--- THIS
    Smart_Server := 0;
    Smart_Members := False;
    Smart_Signed := True;
    Smart_SuperDetail := False;
    {$ELSE}//<--- THIS
    SRL_SIXHOURFIX := TRUE;
    SMART_FIXSPEED := TRUE;
    {$ENDIF}

    Dont know if you need all of it but you do need most of it. Also if there is a thing at the top for paintsmart, you must change it to this:

    {$I SRL/SRL/Misc/SmartGraphics.Simba}
    Yeah this gives some more info about it too:

    http://villavu.com/forum/showthread.php?t=84334
    My First Build!, Selling Downloadable Games
    -------------------------------------

  13. #1238
    Join Date
    Jul 2012
    Location
    Australia
    Posts
    553
    Mentioned
    1 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by kevin33 View Post
    Pretty much just as before. Use this instead of /Smart ( at the top of your script) :
    {$Define Smart}
    and at the bottom of scripts where it declares Smart stuff like Smart_Server and what not, you must change it to this:

    {$IFDEF SIMBAMAJOR980}//<--- THIS
    Smart_Server := 0;
    Smart_Members := False;
    Smart_Signed := True;
    Smart_SuperDetail := False;
    {$ELSE}//<--- THIS
    SRL_SIXHOURFIX := TRUE;
    SMART_FIXSPEED := TRUE;
    {$ENDIF}

    Dont know if you need all of it but you do need most of it. Also if there is a thing at the top for paintsmart, you must change it to this:

    {$I SRL/SRL/Misc/SmartGraphics.Simba}
    Sorry, I'm really dopey right now, I haven't slept too well...
    Do you think you could spoon-feed me?

    I'm trying to get this script working:
    Simba Code:
    program new;
    {$DEFINE SMART}
    {$I SRL/SRL.simba}
    //{$I srl/srl/misc/debug.simba}
    {$IFDEF SMART}
      {$I srl/srl/misc/PaintSmart.simba}
    {$ENDIF}
    var
      a,b:TBox;
      StartTime, StartExp, angleOne, angleTwo:integer;
      firsttime, detected:boolean;
      STime, breakTimeS :integer;

    const
      breakTime= 55;   // break after X amount of minutes
      breakLength= 12;  // break for X amount of minutes
      totalTimeOnPlayer= 200;   // play for a total amount of minutes
      detectionType= 1;  //if you have issues with 0 (detects when stopped chopping), use 1.

    procedure declareplayers;
    begin
      HowManyPlayers := 1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;

      Players[0].Name := '';
      Players[0].Pass := '';
      Players[0].Active := True;
      Players[0].Strings[0] := 'VE';   // Location: VN,VE,CW
    end;

    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    //                        DONT GO PAST HERE                  //
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////

    function AutoColorIvy: Integer;
    var
      arP: TPointArray;
      arC: TIntegerArray;
      tmpCTS, i, arL: Integer;
      X, Y, Z: Extended;
    begin
      tmpCTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      SetColorSpeed2Modifiers(0.06, 0.15);

      FindColorsSpiralTolerance(MSCX, MSCY, arP, 4421725, MSX1, MSY1, MSX2, MSY2, 5);
      if (Length(arP) = 0) then
      begin
        Writeln('Failed to find the color, no result.');
        ColorToleranceSpeed(tmpCTS);
        SetColorSpeed2Modifiers(0.2, 0.2);
        Exit;
      end;

      arC := GetColors(arP);
      ClearSameIntegers(arC);
      arL := High(arC);

      for i := 0 to arL do
      begin
        ColorToXYZ(arC[i], X, Y, Z);

        if (X >= 9.11) and (X <= 15.81) and (Y >= 11.95) and (Y <= 20.87) and (Z >= 5.94) and (Z <= 10.05) then
        begin
          Result := arC[i];
          Writeln('AutoColor = ' + IntToStr(arC[i]));
          Break;
        end;
      end;

      ColorToleranceSpeed(tmpCTS);
      SetColorSpeed2Modifiers(0.2, 0.2);

      if (i = arL + 1) then
        Writeln('AutoColor failed in finding the color.');
    end;

    function AutoColorNest: Integer;
    var
      arP: TPointArray;
      arC: TIntegerArray;
      tmpCTS, i, arL: Integer;
      X, Y, Z: Extended;
    begin
      tmpCTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      SetColorSpeed2Modifiers(0.47, 1.24);

      FindColorsSpiralTolerance(MSCX, MSCY, arP, 3885645, MSX1+1, MSY1+1, MSX2-1, MSY2-1, 8);
      if (Length(arP) = 0) then
      begin
        Writeln('Failed to find the color, no result.');
        ColorToleranceSpeed(tmpCTS);
        SetColorSpeed2Modifiers(0.2, 0.2);
        Exit;
      end;

      arC := GetColors(arP);
      ClearSameIntegers(arC);
      arL := High(arC);

      for i := 0 to arL do
      begin
        ColorToXYZ(arC[i], X, Y, Z);

        if (X >= 4.22) and (X <= 8.40) and (Y >= 4.48) and (Y <= 8.83) and (Z >= 2.94) and (Z <= 8.01) then
        begin
          Result := arC[i];
          Writeln('AutoColor = ' + IntToStr(arC[i]));
          Break;
        end;
      end;

      ColorToleranceSpeed(tmpCTS);
      SetColorSpeed2Modifiers(0.2, 0.2);

      if (i = arL + 1) then
        Writeln('AutoColor failed in finding the color.');
    end;

    procedure antiban();
    begin
      case random(200) of
        1: begin MakeCompass(RandomRange(angleOne-20,angleTwo+20)); makeCompass(RandomRange(angleOne,angleTwo)); end;
        2: PickUpMouse;
        3: begin RandomAngle(True); setangle(SRL_Angle_Low);  end;
        4: begin HoverSkill(skill_Woodcutting,false); mmouse(50,50, 300,200); end;
        5..10: mmouse(50,50, 300,200);
      end;
    end;

    procedure findIvy();
    var
      i, highATPA : integer;
      x, y : integer;
      TPA : TPointArray;
      ATPA : T2DPointArray;
    begin
      FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorIvy, MSX1, MSY1, MSX2, MSY2, 2);
      ATPA := splitTPA(TPA,6);
      //debugATPAbounds(ATPA);
      //SMART_DebugATPA(false, ATPA);

      highATPA := high(ATPA);
      for i := 0 to highATPA do
      begin
        MiddleTPAEx(ATPA[i], x, y);
        MMouse(x-2, y-2, 4, 4);
        getmousepos(x,y);
        wait(300 + random(400));
        if isUpText('Ivy') then
        begin
          mouse(x,y,0,0,true);
          case random(4) of
            1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
          end;
          break;
        end;
      end;
    end;

    function findNest():boolean;
    var
      i, highATPA : integer;
      x, y : integer;
      TPA : TPointArray;
      ATPA : T2DPointArray;
    begin
      result:=false;
      FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorNest,54, 193, 506, 261, 2);
      ATPA := splitTPA(TPA,10);
      //debugATPAbounds(ATPA);
      //SMART_DebugATPA(false, ATPA);

      highATPA := high(ATPA);
      for i := 0 to highATPA do
      begin
        MiddleTPAEx(ATPA[i], x, y);
        MMouse(x-2, y-2, 4, 4);
        getmousepos(x,y);
        wait(300 + random(400));
        if isUpText('nest') then
        begin
          mouse(x,y,0,0,true);
          case random(4) of
            1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
          end;
          result:=true;
          break;
        end;
      end;
    end;

    function detectBirdNestMessage():boolean;
    var
      x,y:integer;
    begin
      result:=false;
      if(findcolor(x,y,255, 9, 428, 84, 457))then
      begin
        writeln('Detected Bird Nest');
        if(findNest)then
          result:=true;
      end;
    end;

    procedure PrintProggy();
    var
      background: TBox;
      x,y,i: Integer;
      Exp,ExpPerHour:integer;
      boxpoints: Array of TPoint;
    begin
      {$IFDEF SMART}
      Exp := GetXPBarTotal-StartExp;
      ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000+1);
      if(firsttime)then
      begin
        SMART_clearcanvas();
        background.X1:= MMx1-30;
        background.Y1:= MMy1-10;
        background.X2:= MMx2+62;
        background.Y2:= MMy2+7;
        setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
        i:=0;
        for x:= background.X1 to background.X2-1 do
        begin
          for y:= background.Y1 to background.Y2-1 do
          begin
            boxpoints[i]:= point(x,y);
            inc(i);
          end;
        end;
        SMART_DrawDotsEx(false, boxpoints, 3160642);
      end else
      begin
        background.X1:= 590;
        background.Y1:= 78;
        background.X2:= 723;
        background.Y2:= 122;
        setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
        i:=0;
        for x:= background.X1 to background.X2-1 do
        begin
          for y:= background.Y1 to background.Y2-1 do
          begin
            boxpoints[i]:= point(x,y);
            inc(i);
          end;
        end;
        SMART_DrawDotsEx(false, boxpoints, 3160642);
      end;

      SMART_DrawText(MMX1-20, MMY1, 'UpChars', 'Warrior''s IvyCutter', ClLime);
      SMART_DrawText(MMX1-20, MMY1+15, 'UpChars', 'By, x[Warrior]x3500', ClLime);
      SMART_DrawText(MMX1-20, MMY1+30, 'UpChars', '------------------------', ClLime);
      SMART_DrawText(MMX1-20, MMY1+55, 'UpChars', 'Player: ' + Players[CurrentPlayer].Name, ClLime);
      SMART_DrawText(MMX1-20, MMY1+70, 'UpChars', 'Total Exp: ' + inttostr(Exp), ClLime);
      SMART_DrawText(MMX1-20, MMY1+85, 'UpChars', 'Exp per Hour: ' + tostr(ExpPerHour), ClLime);
      SMART_DrawText(MMX1-20, MMY1+100, 'UpChars', 'Total Time: ' + inttostr(GetTimeRunning/1000/60) + ' minutes', ClLime);
      SMART_DrawText(MMX1-20, MMY1+110, 'UpChars', '------------------------', ClLime);
      {$ENDIF}
    end;

    procedure proggy();
    var
      Exp, ExpPerHour: integer;
    begin
      cleardebug();
      Exp := GetXPBarTotal-StartExp;
      ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000);
      writeLn('---------- Warrior''s -----------');
      writeLn('---------- IvyCutter  -----------');
      writeLn('Total Time: ' + TimeRunning);
      writeLn('Exp Earned: ' + IntToStr(Exp));
      writeLn('Exp Per Hour: ' + IntToStr(ExpPerHour));
      writeLn('--------------------------------');
    end;

    procedure initBreakTime();
    begin
      breakTimeS:= breakTime*60-((breakTime*60)*(1/10))+random((breakTime*60)*(2/10));
      STime:=GetSystemTime();
    end;

    function detectBreakTime():boolean;
    begin
      result:=false;
      if((Getsystemtime-STime)/1000>breakTimeS)then
        result:=true;
    end;

    function detectTotalRunTime():boolean;
    begin
      result:=false;
      if((Getsystemtime-StartTime)/1000/60>TotalTimeOnPlayer)then
        result:=true;
    end;

    procedure doBreak();
    var
      breakingFor:integer;
    begin
      breakingFor:= breaklength*60-((breaklength*60)*(1/10))+random((breaklength*60)*(2/10));
      writeln('Breaking for: '+inttostr(breakingFor/60)+' minutes.');
      writeln('Start Break Time: '+MStoTime(Getsystemtime,Time_Bare));
      logout();
      wait(breakingFor*1000);
      loginplayer();
      setangle(SRL_Angle_Low);
      makeCompass(RandomRange(angleOne,angleTwo));
    end;

    procedure setupPlayer();
    begin
      case Players[CurrentPlayer].Strings[0] of
       'VN','FN': begin angleOne:=180; angleTwo:=180; end;
       'VE','T': begin angleOne:=90; angleTwo:=90; end;
       'FS','CW': begin angleOne:=0; angleTwo:=0; end;
       'A': begin angleOne:=270; angleTwo:=270; end;
      end;
      if(not(LoggedIn))then
        LoginPlayer;
      setangle(SRL_Angle_Low);
      makeCompass(RandomRange(angleOne,angleTwo));
      if(not(IsXPBarOpen))then
        ToggleXPBar(true);
      if(StartExp=0)then
        StartExp := GetXPBarTotal;

      a.X1:= 243;
      a.X2:= 280;
      a.Y1:= 86;
      a.Y2:= 174;

      b.X1:= 242;
      b.X2:= 268;
      b.Y1:= 103;
      b.Y2:= 126;

    end;


    begin
      Smart_Server := 10;
      setupsrl;
      DeclarePlayers;
      StartTime := GetSystemTime;
      StartExp := GetXPBarTotal;
      firsttime := true;
      repeat
        setupPlayer();
        repeat
          initBreakTime();
          repeat
            printProggy();
            firsttime:=false;
            findIvy();
            wait(400+random(300));
            detected:=false;
            repeat
              antiban();
              proggy();
              if(findnormalrandoms)then
              begin
                setangle(SRL_Angle_Low);
                makeCompass(RandomRange(angleOne,angleTwo));
              end;
              case detectionType of
                0: detected:= (averagepixelshift(b,200,2000)<900);
                1: detected:= (averagepixelshift(a,200,2000)<1000);
              end;
            until(detected) or (detectBirdNestMessage);
            wait(random(400));
            findnormalrandoms();
          until(detectBreakTime);
          doBreak();
        until(detectTotalRunTime);
        nextplayer(false);
      until(allplayersinactive);

    end.
    Sinking. Always. Sinking.

  14. #1239
    Join Date
    Dec 2011
    Location
    Ontario, Canada
    Posts
    1,735
    Mentioned
    5 Post(s)
    Quoted
    89 Post(s)

    Default

    @LAW this compiles for you:

    Simba Code:
    program new;
    {$DEFINE SMART}
    {$I SRL/SRL.simba}
    //{$I srl/srl/misc/debug.simba}
    {$IFDEF SMART}
      {$I SRL/SRL/Misc/SmartGraphics.Simba}

    {$ENDIF}
    var
      a,b:TBox;
      StartTime, StartExp, angleOne, angleTwo:integer;
      firsttime, detected:boolean;
      STime, breakTimeS :integer;

    const
      breakTime= 55;   // break after X amount of minutes
      breakLength= 12;  // break for X amount of minutes
      totalTimeOnPlayer= 200;   // play for a total amount of minutes
      detectionType= 1;  //if you have issues with 0 (detects when stopped chopping), use 1.

    procedure declareplayers;
    begin
      HowManyPlayers := 1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;

      Players[0].Name := '';
      Players[0].Pass := '';
      Players[0].Active := True;
      Players[0].Strings[0] := 'VE';   // Location: VN,VE,CW
    end;

    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    //                        DONT GO PAST HERE                  //
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////

    function AutoColorIvy: Integer;
    var
      arP: TPointArray;
      arC: TIntegerArray;
      tmpCTS, i, arL: Integer;
      X, Y, Z: Extended;
    begin
      tmpCTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      SetColorSpeed2Modifiers(0.06, 0.15);

      FindColorsSpiralTolerance(MSCX, MSCY, arP, 4421725, MSX1, MSY1, MSX2, MSY2, 5);
      if (Length(arP) = 0) then
      begin
        Writeln('Failed to find the color, no result.');
        ColorToleranceSpeed(tmpCTS);
        SetColorSpeed2Modifiers(0.2, 0.2);
        Exit;
      end;

      arC := GetColors(arP);
      ClearSameIntegers(arC);
      arL := High(arC);

      for i := 0 to arL do
      begin
        ColorToXYZ(arC[i], X, Y, Z);

        if (X >= 9.11) and (X <= 15.81) and (Y >= 11.95) and (Y <= 20.87) and (Z >= 5.94) and (Z <= 10.05) then
        begin
          Result := arC[i];
          Writeln('AutoColor = ' + IntToStr(arC[i]));
          Break;
        end;
      end;

      ColorToleranceSpeed(tmpCTS);
      SetColorSpeed2Modifiers(0.2, 0.2);

      if (i = arL + 1) then
        Writeln('AutoColor failed in finding the color.');
    end;

    function AutoColorNest: Integer;
    var
      arP: TPointArray;
      arC: TIntegerArray;
      tmpCTS, i, arL: Integer;
      X, Y, Z: Extended;
    begin
      tmpCTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      SetColorSpeed2Modifiers(0.47, 1.24);

      FindColorsSpiralTolerance(MSCX, MSCY, arP, 3885645, MSX1+1, MSY1+1, MSX2-1, MSY2-1, 8);
      if (Length(arP) = 0) then
      begin
        Writeln('Failed to find the color, no result.');
        ColorToleranceSpeed(tmpCTS);
        SetColorSpeed2Modifiers(0.2, 0.2);
        Exit;
      end;

      arC := GetColors(arP);
      ClearSameIntegers(arC);
      arL := High(arC);

      for i := 0 to arL do
      begin
        ColorToXYZ(arC[i], X, Y, Z);

        if (X >= 4.22) and (X <= 8.40) and (Y >= 4.48) and (Y <= 8.83) and (Z >= 2.94) and (Z <= 8.01) then
        begin
          Result := arC[i];
          Writeln('AutoColor = ' + IntToStr(arC[i]));
          Break;
        end;
      end;

      ColorToleranceSpeed(tmpCTS);
      SetColorSpeed2Modifiers(0.2, 0.2);

      if (i = arL + 1) then
        Writeln('AutoColor failed in finding the color.');
    end;

    procedure antiban();
    begin
      case random(200) of
        1: begin MakeCompass(RandomRange(angleOne-20,angleTwo+20)); makeCompass(RandomRange(angleOne,angleTwo)); end;
        2: PickUpMouse;
        3: begin RandomAngle(True); setangle(SRL_Angle_Low);  end;
        4: begin HoverSkill(skill_Woodcutting,false); mmouse(50,50, 300,200); end;
        5..10: mmouse(50,50, 300,200);
      end;
    end;

    procedure findIvy();
    var
      i, highATPA : integer;
      x, y : integer;
      TPA : TPointArray;
      ATPA : T2DPointArray;
    begin
      FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorIvy, MSX1, MSY1, MSX2, MSY2, 2);
      ATPA := splitTPA(TPA,6);
      //debugATPAbounds(ATPA);
      //SMART_DebugATPA(false, ATPA);

      highATPA := high(ATPA);
      for i := 0 to highATPA do
      begin
        MiddleTPAEx(ATPA[i], x, y);
        MMouse(x-2, y-2, 4, 4);
        getmousepos(x,y);
        wait(300 + random(400));
        if isUpText('Ivy') then
        begin
          mouse(x,y,0,0,true);
          case random(4) of
            1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
          end;
          break;
        end;
      end;
    end;

    function findNest():boolean;
    var
      i, highATPA : integer;
      x, y : integer;
      TPA : TPointArray;
      ATPA : T2DPointArray;
    begin
      result:=false;
      FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorNest,54, 193, 506, 261, 2);
      ATPA := splitTPA(TPA,10);
      //debugATPAbounds(ATPA);
      //SMART_DebugATPA(false, ATPA);

      highATPA := high(ATPA);
      for i := 0 to highATPA do
      begin
        MiddleTPAEx(ATPA[i], x, y);
        MMouse(x-2, y-2, 4, 4);
        getmousepos(x,y);
        wait(300 + random(400));
        if isUpText('nest') then
        begin
          mouse(x,y,0,0,true);
          case random(4) of
            1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
          end;
          result:=true;
          break;
        end;
      end;
    end;

    function detectBirdNestMessage():boolean;
    var
      x,y:integer;
    begin
      result:=false;
      if(findcolor(x,y,255, 9, 428, 84, 457))then
      begin
        writeln('Detected Bird Nest');
        if(findNest)then
          result:=true;
      end;
    end;

    procedure PrintProggy();
    var
      background: TBox;
      x,y,i: Integer;
      Exp,ExpPerHour:integer;
      boxpoints: Array of TPoint;
    begin
      {$IFDEF SMART}
      Exp := GetXPBarTotal-StartExp;
      ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000+1);
      if(firsttime)then
      begin
        SMART_clearcanvas();
        background.X1:= MMx1-30;
        background.Y1:= MMy1-10;
        background.X2:= MMx2+62;
        background.Y2:= MMy2+7;
        setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
        i:=0;
        for x:= background.X1 to background.X2-1 do
        begin
          for y:= background.Y1 to background.Y2-1 do
          begin
            boxpoints[i]:= point(x,y);
            inc(i);
          end;
        end;
        SMART_DrawDotsEx(false, boxpoints, 3160642);
      end else
      begin
        background.X1:= 590;
        background.Y1:= 78;
        background.X2:= 723;
        background.Y2:= 122;
        setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
        i:=0;
        for x:= background.X1 to background.X2-1 do
        begin
          for y:= background.Y1 to background.Y2-1 do
          begin
            boxpoints[i]:= point(x,y);
            inc(i);
          end;
        end;
        SMART_DrawDotsEx(false, boxpoints, 3160642);
      end;

      SMART_DrawText(MMX1-20, MMY1, 'UpChars', 'Warrior''s IvyCutter', ClLime);
      SMART_DrawText(MMX1-20, MMY1+15, 'UpChars', 'By, x[Warrior]x3500', ClLime);
      SMART_DrawText(MMX1-20, MMY1+30, 'UpChars', '------------------------', ClLime);
      SMART_DrawText(MMX1-20, MMY1+55, 'UpChars', 'Player: ' + Players[CurrentPlayer].Name, ClLime);
      SMART_DrawText(MMX1-20, MMY1+70, 'UpChars', 'Total Exp: ' + inttostr(Exp), ClLime);
      SMART_DrawText(MMX1-20, MMY1+85, 'UpChars', 'Exp per Hour: ' + tostr(ExpPerHour), ClLime);
      SMART_DrawText(MMX1-20, MMY1+100, 'UpChars', 'Total Time: ' + inttostr(GetTimeRunning/1000/60) + ' minutes', ClLime);
      SMART_DrawText(MMX1-20, MMY1+110, 'UpChars', '------------------------', ClLime);
      {$ENDIF}
    end;

    procedure proggy();
    var
      Exp, ExpPerHour: integer;
    begin
      cleardebug();
      Exp := GetXPBarTotal-StartExp;
      ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000);
      writeLn('---------- Warrior''s -----------');
      writeLn('---------- IvyCutter  -----------');
      writeLn('Total Time: ' + TimeRunning);
      writeLn('Exp Earned: ' + IntToStr(Exp));
      writeLn('Exp Per Hour: ' + IntToStr(ExpPerHour));
      writeLn('--------------------------------');
    end;

    procedure initBreakTime();
    begin
      breakTimeS:= breakTime*60-((breakTime*60)*(1/10))+random((breakTime*60)*(2/10));
      STime:=GetSystemTime();
    end;

    function detectBreakTime():boolean;
    begin
      result:=false;
      if((Getsystemtime-STime)/1000>breakTimeS)then
        result:=true;
    end;

    function detectTotalRunTime():boolean;
    begin
      result:=false;
      if((Getsystemtime-StartTime)/1000/60>TotalTimeOnPlayer)then
        result:=true;
    end;

    procedure doBreak();
    var
      breakingFor:integer;
    begin
      breakingFor:= breaklength*60-((breaklength*60)*(1/10))+random((breaklength*60)*(2/10));
      writeln('Breaking for: '+inttostr(breakingFor/60)+' minutes.');
      writeln('Start Break Time: '+MStoTime(Getsystemtime,Time_Bare));
      logout();
      wait(breakingFor*1000);
      loginplayer();
      setangle(SRL_Angle_Low);
      makeCompass(RandomRange(angleOne,angleTwo));
    end;

    procedure setupPlayer();
    begin
      case Players[CurrentPlayer].Strings[0] of
       'VN','FN': begin angleOne:=180; angleTwo:=180; end;
       'VE','T': begin angleOne:=90; angleTwo:=90; end;
       'FS','CW': begin angleOne:=0; angleTwo:=0; end;
       'A': begin angleOne:=270; angleTwo:=270; end;
      end;
      if(not(LoggedIn))then
        LoginPlayer;
      setangle(SRL_Angle_Low);
      makeCompass(RandomRange(angleOne,angleTwo));
      if(not(IsXPBarOpen))then
        ToggleXPBar(true);
      if(StartExp=0)then
        StartExp := GetXPBarTotal;

      a.X1:= 243;
      a.X2:= 280;
      a.Y1:= 86;
      a.Y2:= 174;

      b.X1:= 242;
      b.X2:= 268;
      b.Y1:= 103;
      b.Y2:= 126;

    end;


    begin
      {$IFDEF SIMBAMAJOR980}//<--- THIS
    Smart_Server := 0;
    Smart_Members := False;
    Smart_Signed := True;
    Smart_SuperDetail := False;
    {$ELSE}//<--- THIS
    SRL_SIXHOURFIX := TRUE;
    SMART_FIXSPEED := TRUE;
    {$ENDIF}

      setupsrl;
      DeclarePlayers;
      StartTime := GetSystemTime;
      StartExp := GetXPBarTotal;
      firsttime := true;
      repeat
        setupPlayer();
        repeat
          initBreakTime();
          repeat
            printProggy();
            firsttime:=false;
            findIvy();
            wait(400+random(300));
            detected:=false;
            repeat
              antiban();
              proggy();
              if(findnormalrandoms)then
              begin
                setangle(SRL_Angle_Low);
                makeCompass(RandomRange(angleOne,angleTwo));
              end;
              case detectionType of
                0: detected:= (averagepixelshift(b,200,2000)<900);
                1: detected:= (averagepixelshift(a,200,2000)<1000);
              end;
            until(detected) or (detectBirdNestMessage);
            wait(random(400));
            findnormalrandoms();
          until(detectBreakTime);
          doBreak();
        until(detectTotalRunTime);
        nextplayer(false);
      until(allplayersinactive);

    end.
    FEEL FREE TO PM ME ABOUT ANYTHING! Will help over Teamviewer...just ask!! "WITH A NEW QUESTION COMES A NEW CHALLENGE"
    Silentcore's AIO Service team !!! Pm me if you want questing done or service done or post on thread ofc

  15. #1240
    Join Date
    Mar 2012
    Posts
    27
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Tried my best to update the script below, but I have not had much luck...

    Is anyone able to update this to work with the latest Simba (991) and Smart 7.2 please?

    The original code is below.

    Simba Code:
    program ChaosMossKiller;
    {$i srl/srl/misc/smart.simba}
    {$i srl/srl.simba}
    {$i sps/sps.simba}
    {$i srl/srl/misc/debug.simba}
    {$i srl/srl/misc/paintsmart.simba}
    const
    //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    //========================ChaosMossKiller by hunt3rx3=======================v6.0
    //READ THESE CAREFULLY!===================================================19 May
    //*YOU MUST SET UP XP COUNTER FOR TRAINED LEVEL, OTHERWISE SCRIPT WONT WORK!====
    //*FOOD:========================================================================
    //  -ONLY EATS LOBSTERS AND PEACHES=============================================
    //  -DONT USE B2P WITH BONECRUSHER! COMMON SENSE================================
    //*CHARM LOOTING:===============================================================
    //  -WILL PICK UP CHARMS WHAT YOU CAN SEE WITH YOUR EYES!=======================
    //  -WONT RIGHT CLICK ALL THE LOOT PILES!=======================================
    //  -HAVE 1+ OF EACH AT START!==================================================
    //*SPECIAL ATTACKS:=============================================================
    //  -ONLY PRIMARY WORN WEAPONS, WONT SWITCH WEAPONS!============================
    //  -KORASI NOT SUPPORTED! WOULD MESS UP THE SCRIPT!============================
    //==============================================================================
      SRLStats_User       =   '';                                                   // Your SRL Stats ID (If you dont have one then just leave it as it is)
      SRLStats_Password   =   '';                                                   // Your SRL Stats Password (If you dont have one then just leave it as it is)

      Username        =     '';
      Password        =     '';

      TrainedSkill    =     'Strength';                                             // Attack, Strength, Defence, Range
      XPCounter       =     2;                                                      // 1,2,3
      EatAt           =     700;                                                    // 100-999

      BonesToPeaches  =     True;
      PickUpCharms    =     True;

      UseSpecAttacks  =     False;                                                   // Only worn weapons. Not supported: Korasi.
      SpecUsage       =     55;                                                     // Spec usage of worn weapon. Supported: 25, 50, 55, 60, 100

      PaintStatus     =     True;                                                   // set Private Chat off for this
      PaintDebug      =     True;

      TakeScreenShots =     True;                                                   // (~100 kb jpeg, wont eat memory)
      ScreenShotsPath =     'C:\Simba\Screenshots\ChaosMossKiller\';


      DebugWindow = False;
      DebugLines  = False;
    //==============================================================================
    //===========UPDATES: [url]http://villavu.com/forum/showthread.php?t=74029===========[/url]
    //==============================================================================
    //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

      Version = 'v6.0';


    var
      X, Y: Integer;
      StartTime, StartXp, StartXPtillNext, TrainedLevel, HpLevel : Integer;
      WorldHops, B2PUsed, FoodUsed, GoldCharms, GreenCharms, BlueCharms, CrimsonCharms : Integer;
      SpecWait, SpecTime, SpecNumber : Integer;
      LastXP : Extended;
      LevelString : String;
      doreport, b2p : Boolean;



    procedure DeclarePlayers;
    begin
      NumberOfPlayers(1);
      CurrentPlayer := 0;
      with Players[0] do
      begin
        Name := UserName;
        Pass := Password;
        Active := True;
      end;
    end;



    procedure MakeScreenShot(const FilePath : String);                              //example: 'C:\Simba\Screenshots\ChaosMossKiller\levelups'
    var
      fileName : String;
      Year, Month, Day : Word;
      i : Integer;
    begin
      if TakeScreenShots then
      begin
        if not DirectoryExists(ScreenShotsPath) then
          CreateDirectory(ScreenShotsPath);
        if not DirectoryExists(FilePath) then
          CreateDirectory(FilePath);
        DecodeDate(Date,Year,Month,Day);
        i := 0;
        repeat
          i := i+1;
          FileName := ToStr(Year) + '-' + ToStr(Month) + '-' + ToStr(Day) + ' (' + IntToStr(i) + ').jpg';
        until not FileExists(FilePath + FileName)
        SaveScreenShot(FilePath + FileName);                                        //example: 2012-3-21 (1).jpg
      end;
    end;



    procedure OpenDebugWindow(TPA: TPointArray; ATPA: array Of TPointArray; PaintBox: Boolean; Box: TBox);  //box is for the dying Moss giant
    var
      BMP, x,y, i, Color : Integer;
      TPABox: TBox;
    begin
      BMP := BitmapFromClient(0,0,MSX2,MSY2);                                       //making a bitmap, adding the mainscreen image to it
      DrawTPABitmap(BMP,TPA,clRed);                                                 //adding TPA to the bitmap

      for i := 0 to high(ATPA) do
      begin
        if i = 0 then
          Color := clYellow
        else
          Color := clBlack;

        TPABox := getTPABounds(ATPA[i]);                                            //getting the box of the TPA
        for x := TPABox.x1 to TPABox.x2 do
        begin
          FastSetPixel(BMP, x, TPABox.y1, Color)                                    //drawing lines
          FastSetPixel(BMP, x, TPABox.y2, Color)                                    //drawing lines
        end;
        for y := TPABox.y1 to TPABox.y2 do
        begin
          FastSetPixel(BMP, TPABox.x1, y, Color)                                    //drawing lines
          FastSetPixel(BMP, TPABox.x2, y, Color)                                    //drawing lines
        end;
      end;

      if PaintBox then                                                              //this is for the dying Moss giant
      begin
        for x := Box.x1 to Box.x2 do
        begin
          FastSetPixel(BMP, x, Box.y1, ClRed)                                       //drawing lines
          FastSetPixel(BMP, x, Box.y2, ClRed)                                       //drawing lines
        end;
        for y := Box.y1 to Box.y2 do
        begin
          FastSetPixel(BMP, Box.x1, y, ClRed)                                       //drawing lines
          FastSetPixel(BMP, Box.x2, y, ClRed)                                       //drawing lines
        end;
      end;
      DebugBitmap(BMP);
      FreeBitmap(BMP);
    end;



    function CurrentTime: string;                                                   //function for time, example [17:53:59]
    var
      Hour, Mins, Sec, MSec: Word;
    begin
      DecodeTime(Now, Hour, Mins, Sec, MSec);
      Result := ('['+Padz(IntToStr(Hour), 2) + ':' + Padz(IntToStr(Mins), 2) + ':' + Padz(IntToStr(Sec), 2)+'] ');
    end;



    procedure EndScript(Reason : String);                                           //function for ending, message box will pop up
    begin
      MakeScreenShot(ScreenShotsPath + 'stops\');
      Disguise('Stopped');
      Writeln(CurrentTime + Reason);
      MessageBox(CurrentTime + Reason,'ChaosMossKiller',0);                         //message box as warning
      TerminateScript;
    end;



    procedure StatusWithPaint(What : String);                                       //Painting status on SMART
    begin
      Status(What);
      if PaintStatus then
      begin
        SMART_ClearCanvasArea(IntToBox(MSX1,320,MSX2,343));
        SMART_DrawTextEx(False,8,322,SmallChars,What,ClWhite);                      //drawing the text
      end;
    end;



    procedure Report;
    var
      XP, XPHour, PrayXP, XPtillNext, TimeRun : Extended;                           //i have no clue why, but integer with Round() wont work
      done : Boolean;
      fails : Integer;
    begin
      if not DoReport then Exit;
      fails := 0;
      done := True;
      repeat                                                                        //reading XPCounter for xp gained
        if (fails = 5) then
        begin
          Writeln(CurrentTime+'Failed to read XPBar. Turning off Reports.');
          DoReport := False;
          Exit;
        end;
        XP := GetXPBar(XPCounter)-StartXP;
        if (XP + StartXP = -1) then                                                 //if fails to read xpbar it gives -1
        begin
          done := False;
          fails := fails+1;
        end;
      until done

      TimeRun := TimeFromMark(StartTime);
      PrayXP := Round(XP / 240 * 15);
      XPHour := Round(XP * (3600000 / TimeRun));
      XPtillNext := StartXPtillNext - XP + LastXP;                                  //LastXP = 0 untill we get a levelup

      if (XPtillNext < 0) then                                                      //levelup check
      begin
        fails := 0;
        done := True;
        repeat                                                                      //getting new level and xp till next
          if (fails = 5) then
          begin
            Writeln(CurrentTime + 'Failed to get level/XPs. Turning off Reporting.');
            DoReport := False;
            Exit;
          end;
          TrainedLevel := GetSkillLevel(TrainedSkill);
          if (TrainedLevel = -1) then                                               //if fails to get level it gives -1
          begin
            done := False;
            fails := fails+1;
          end;
          StartXPtillNext := XPTillNextLevel(TrainedSkill);
          if (StartXPtillNext = -1) then                                            //if fails to read xp it gives -1
          begin
            done := False;
            fails := fails+1;
          end;
        until done

        XPtillNext := StartXPtillNext;
        LastXP := Round(XP);                                                        //we store the 'xp gained till now' (round is needed cause extended and integer)
        MakeScreenShot(ScreenShotsPath + 'levelups\');                              //this will make a screenshot of our levelup:)
        Wait(RandomRange(3000,5000));
      end;

      ClearDebug;
      Disguise('ChaosMossKiller [' + FloatToStr(XPHour) + ']');
      WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
      WriteLn(' ChaosMossKiller ' + Version);
      WriteLn(' * Time Running: ' + MsToTime(Round(TimeRun),Time_Formal));
      WriteLn(' * ' + LevelString + ' XP Gained: ' + FloatToStr(XP) + ' (' + FloatToStr(XPHour) + ')');
      Writeln(' * ' + LevelString + ' Level: ' + IntToStr(TrainedLevel) + ', XP till next: ' + FloatToStr(XPtillNext));
      Writeln(' * B2P: ' + IntToStr(B2PUsed) + '  Food: ' + IntToStr(FoodUsed))
      if PickUpCharms then
        Writeln(' * Charms: ' + IntToStr(GoldCharms) + '/' + IntToStr(GreenCharms) + '/' + IntToStr(BlueCharms) + '/' + IntToStr(CrimsonCharms))
      else
        Writeln(' * Not picking up charms.');
      WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
    end;



    procedure Antiban;                                                              //basic antibans
    begin
      case Random(2400) of
        1..2:
        begin
          StatusWithPaint('Checking trained level.');
          TrainedLevel := GetSkillLevel(TrainedSkill);
          HoverSkill(TrainedSkill,false);
          Wait(RandomRange(1000,3000));
          GameTab(tab_Inv);
          StatusWithPaint('Back to fighting.');
        end;
        3..4:
        begin
          StatusWithPaint('Checking hp level.');
          TrainedLevel := GetSkillLevel(TrainedSkill);
          HoverSkill(SKILL_HITPOINTS,false);
          Wait(RandomRange(1000,3000));
          GameTab(tab_Inv);
          StatusWithPaint('Back to fighting.');
        end;
        5..6:
        begin
          StatusWithPaint('Checking random level.');
          TrainedLevel := GetSkillLevel(TrainedSkill);
          HoverSkill('random',false);
          Wait(RandomRange(1000,3000));
          GameTab(tab_Inv);
          StatusWithPaint('Back to fighting.');
        end;
        7..8: PickUpMouse;
        9..14: CompassMovement(-180,180,false);
        180..460: SleepAndMoveMouse(RandomRange(300,1200));
      end;
    end;



    function BreakB2P : Boolean;
    var
      TabDTM : Integer;
      fails : Integer;
      done : Boolean;
    begin
      TabDTM := DTMFromString('78DA633CC4C4C070899101194CEEED65F802148289326E03AA398BAA868181894184014DCD0D026AF602D53C20A0E614116A2E01D55C2742CD79FC6A00BDB80E80');
      if not (GetCurrentTab = tab_Inv) then
        GameTab(tab_Inv);
      Wait(RandomRange(200,400));
      fails := 0;
      done := False;
      repeat
        if FindDTM(TabDTM,X,Y,MIX1,MIY1,MIX2,MIY2) then
        begin
          Mouse(X,Y,5,5,mouse_left);                                                //clickig on B2P tab
          Inc(B2PUsed);
          Wait(RandomRange(6000,8000));                                             //it takes long to break it
          Result := True;
          done := True;
        end else
        begin
          if not (GetCurrentTab = tab_Inv) then                                     //sometimes it fails to switch tabs for the first time
            GameTab(tab_Inv);
          fails := fails+1;
        end;
        if (fails = 5) then                                                         //trying to find DTM 5 times max
        begin
          Result := False;
          done := True;
        end;
      until done
      FreeDTM(TabDTM);
    end;



    function EatFood(var foodDTMString : String): boolean;
    var
      FoodDTM, EatTime, CurrentHP, fails : Integer;
      done : Boolean;
      colorstring : String;                                                         //this is for a return value, not using it
    begin
      FoodDTM := DTMFromString(foodDTMString);
      if not (GetCurrentTab = tab_Inv) then
        GameTab(tab_Inv);
      Wait(RandomRange(200,400));

      fails := 0;
      done := False;
      repeat
        if FindDTM(FoodDTM,X,Y,MIX1,MIY1,MIX2,MIY2) then
        begin
          CurrentHP := GetMMLevels('hp', colorstring);
          MarkTime(eatTime);
          repeat
            MultiMouse(X,Y,80,2,true);
            Wait(RandomRange(400,800));
            if ( GetMMLevels('hp', colorstring) > (CurrentHP + 30) ) then           //checking if HP is increased
            begin
              Inc(FoodUsed);
              done := True;
              Result := True;
            end;
            if (TimeFromMark(eatTime) > 10000) then
            begin
              Result := False;
              done := True;
            end;
          until done
        end
        else
        begin
          if not (GetCurrentTab = tab_Inv) then                                     //sometimes it fails to switch tabs for the first time
            GameTab(tab_Inv);
          fails := fails+1;
          Wait(500);
        end;

        if (fails = 5) then                                                         //trying to find DTM max 5 times
        begin
          Result := False;
          done := True;
        end;
      until done
      FreeDTM(FoodDTM);
    end;



    function ChooseOptionCharms(What : String) : Boolean;                           //modified SRL function, this will loot charms if possible
    var
       B: TBox;
       i, H, x: Integer;
       T: TPoint;
       Options: Array of TOptions;
    begin
      Result := False;
      Options := GetChooseOptions('action');
      if (Length(Options) < 1) then
        Exit;
      H := High(Options);

      for i := 0 to H do
      begin
        if PickUpCharms then                         //if charms looting is enabled
        begin
          if Pos('ake Gold', Options[i].Str) > 0 Then
          begin
            StatusWithPaint('Found a Gold charm!');
            Inc(GoldCharms);
            Report;
            Result := True;
            B := Options[i].Bounds;
            GetMousePos(T.x, T.y);
            if PointInBox(T, B) then
              ClickMouse2(true)
            else
              MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
            Exit;
          end;

          if Pos('ake Green', Options[i].Str) > 0 Then
          begin
            StatusWithPaint('Found a Green charm!');
            Inc(GreenCharms);
            Report;
            Result := True;
            B := Options[i].Bounds;
            GetMousePos(T.x, T.y);
            if PointInBox(T, B) then
              ClickMouse2(true)
            else
              MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
            Exit;
          end;

          if Pos('ake Blue', Options[i].Str) > 0 Then
          begin
            StatusWithPaint('Found a Blue charm!');
            Inc(BlueCharms);
            Report;
            Result := True;
            B := Options[i].Bounds;
            GetMousePos(T.x, T.y);
            if PointInBox(T, B) then
              ClickMouse2(true)
            else
              MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
            Exit;
          end;

          if Pos('ake Crims', Options[i].Str) > 0 Then
          begin
            StatusWithPaint('Found a Crimson charm!');
            Report;
            Inc(CrimsonCharms);
            Result := True;
            B := Options[i].Bounds;
            GetMousePos(T.x, T.y);
            if PointInBox(T, B) then
              ClickMouse2(true)
            else
              MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
            Exit;
          end;
        end;

        if Pos(What, Options[i].Str) > 0 Then                                       //this will check for 'attack' or 'take bones' (nowhere else using ChooseOptionCharms)
        begin
          Result := True;
          B := Options[i].Bounds;
          GetMousePos(T.x, T.y);
          if PointInBox(T, B) then
            ClickMouse2(true)
          else
            MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
          Exit;
        end;
      end;

      B := Options[0].BigBox;                                                       //to mmouse away
      x := Max(B.X1 - 52, 0);
      if x = 0 then
        x := B.X2+10;
      MMouse(x, Max(B.Y1 - 50, 0), 40, B.Y2-B.Y1);
      Wait(200 + Random(100));
    end;



    function FindMoss(ClickOnIt: Boolean) : Boolean;                                //returns true only if clicked on a Moss giant
    var
      RedX, RedY, ExcX, ExcY, i, MinPoints, DetectTime, UptextTime, RedHpBarDTMTime, RedHpBarDTM : Integer;
      TPA, MossTPA : TPointArray;
      ATPA : Array of TPointArray;
      MossColors, Tolerances : Array of Integer;
      ExcludeNearRedHpBar : Boolean;
    begin
      Result := False;
      MarkTime(DetectTime);
      //6257521 (8)   portal színe, tökéletes
      //2173227 (5)   nincs már sötét fal (eddig 7 jó volt)
      //2372406 (8)   nincs már (12 volt) nagyon kicsi barna fából
      //2309694 (7)   nincs nagyon nagyon kicsi barna fából
      //3303025 (14)  sárgásbarna, tökéletes
      //4482405 (13)
      MossColors := [6257521, 2173227, 2372406, 2309694, 3303025, 4482405];
      Tolerances := [8,       5,       8,       7,       15,      13];
      MinPoints := 200;

      for i:=0 to High(MossColors) do
      begin
        FindColorsTolerance(MossTPA,MossColors[i],MSX1,MSY1,MSX2,MSY2,Tolerances[i]);
        AppendTPA(TPA,MossTPA);
      end;

      ExcludeNearRedHpBar := False;
      RedHpBarDTM := DTMFromString('mWAAAAHicY2FgYNgCxOeh+AIQRwFxOBDHQtk7GTgYrNmZ4FgEKIaMGdEwCAAAoEoGcA==');
      if WaitFindDTMex(RedHpBarDTM,X,Y,MSX1,MSY1,MSX2,MSY2,10,100) then             //if found redbar then we will exclude points around it
      begin
        ExcludeNearRedHpBar := True;
        RedX := X;
        RedY := Y+50;
        ExcX := 35;
        ExcY := 60;
      end;
      FreeDTM(RedHpBarDTM);

      if (High(TPA)> 0) then
      begin

        if ExcludeNearRedHpBar then                                                 //excluding near RedHpBar
        begin
          SortTPAFrom(TPA,Point(redX,redY));
          InvertTPA(TPA);
          for i:=0 to High(TPA) do
            if (Abs(TPA[i].x - RedX) < ExcX) and (Abs(TPA[i].y - RedY) < ExcY) then
              Break;
          SetArrayLength(TPA,i);
        end;

        SortTPAFrom(TPA,Point(MSCX,MSCY));                                          //excluding points near middle
        InvertTPA(TPA);
        for i:=0 to High(TPA) do
        if (Abs(TPA[i].x - MSCX) <  25) and (Abs(TPA[i].y - MSCY) <  25) then
          Break;
        SetArrayLength(TPA,i);

        ATPA := SplitTPA(TPA,10);                                                   //splitting TPAs

        SortATPASize(ATPA,True);                                                    //excluding TPAs with less than MinPoints points
        for i:=0 to High(ATPA) do
        begin
          if High(ATPA[i]) < MinPoints then
            Break;
        end;
        if i = 0 then Inc(i);
        SetArrayLength(ATPA,i);

        SortATPAFromFirstPoint(ATPA,Point(MSCX,MSCY));                              //making the closest TPA the first in the array


        if DebugWindow then                                                         //DebugWindow
          OpenDebugWindow(TPA,ATPA,true,IntToBox(RedX-ExcX,RedY-ExcY,RedX+ExcX,RedY+ExcY));

        if High(ATPA[0]) < MinPoints then                                           //to avoid errors
          Exit;


        if ClickOnIt then
        begin
          if MiddleTPAEx(ATPA[0],X,Y) then                                          //getting the middle point of the TPA, moving mouse there then looking for uptext
          begin
            MMouse(X,Y,0,0);
            MarkTime(UptextTime);
            if WaitUpText('ttack',200) then
            begin
              if DebugLines then                                                    //DebugLines
                Writeln('Found Moss in ' + IntToStr(TimeFromMark(DetectTime)) + ' ms. Uptext was ' + IntToStr(TimeFromMark(UptextTime)) + ' ms.');
              case Random(6) of                                                     //random left or rigth click (5:1)
                0..4:
                begin
                  ClickMouse2(mouse_left);
                  if DidRedClick then
                    Result := True;                                                 //returns true = clicked on moss
                  Exit;
                end;
                5:
                begin
                  ClickMouse2(mouse_right);
                  if ChooseOption('ttack') then
                    Result := True;                                                 //returns true = clicked on moss
                  Exit;
                end;
              end;
            end else
              if DebugLines then                                                    //DebugLines
                Writeln('Found Moss in ' + IntToStr(TimeFromMark(DetectTime)) + ' ms, but failed to find UpText.');
          end;
        end;                                                    //PaintDebug: clearing the drawings on SMART
      end;
    end;



    function FindBones(X1,X2,X3,X4: Integer) : Boolean;                             //returns true if uptext is 'Take'
    var
      TPA : TPointArray;
      ATPA : Array of TPointArray;
      i : Integer;
      MinPoints, xmid, ymid : Integer;
    begin
      MinPoints := 50;
      FindColorsTolerance(TPA,11975103,X1,X2,X3,X4,25);

      SortTPAFrom(TPA,Point(MSCX,MSCY));                                            //excluding points near middle
      InvertTPA(TPA);
      for i:=0 to High(TPA) do
        if (Abs(TPA[i].x - MSCX) <  20) and (Abs(TPA[i].y - MSCY) <  25) then
          Break;
      SetArrayLength(TPA,i);

      if (High(TPA)> 0) then
      begin

        ATPA := SplitTPA(TPA,10);                                                   //splitting the TPA

        SortATPASize(ATPA,True);                                                    //excluding TPAs with less than MinPoints points
        for i:=0 to High(ATPA) do
        begin
          if High(ATPA[i]) < MinPoints then
            Break;
        end;
        if i = 0 then Inc(i);
        SetArrayLength(ATPA,i);

        if DebugWindow then                                                         //DebugWindow
          OpenDebugWindow(TPA,ATPA,false,IntToBox(0,0,0,0));

        if (High(ATPA[0]) < MinPoints) then                                         //to avoid errors
          Exit;

        if MiddleTPAEx(ATPA[0],xmid,ymid) then                                      //getting the middle point of the TPA, moving mouse there then looking for uptext
        begin
          MMouse(xmid,ymid,0,0);
          Wait(100);
          if IsUpTextEx('ake') then
          begin
            Result := True;                                                         //returning true
            GetMousePos(X,Y);
            Exit;
          end;
        end;
      end;
      Result := False;

    end;



    function FindCharm(Which: String; Colors, Tolerances: TIntegerArray; MinPoints: Integer) : Boolean;  //returns true if uptext is 'Take'
    var
      TPA, CharmTPA : TPointArray;
      ATPA : Array of TPointArray;
      i : Integer;
      xmid, ymid : Integer;
    begin
      for i:=0 to High(Colors) do
      begin
        FindColorsTolerance(CharmTPA,Colors[i],MSX1,MSY1,MSX2,MSY2,Tolerances[i]);
        if DebugLines then                                                          //DebugLines
          if (High(CharmTPA) > 0) then
            Writeln('[Charms] Found ' + IntToStr(High(CharmTPA)) + ' pixels for Color: ' +IntToStr(Colors[i]) + '. Tolerance is: ' + IntToStr(Tolerances[i]));
        AppendTPA(TPA,CharmTPA);
      end;

      SortTPAFrom(TPA,Point(MSCX,MSCY));                                            //excluding poinst near middle
      InvertTPA(TPA);
      for i:=0 to High(TPA) do
        if (Abs(TPA[i].x - MSCX) <  30) and (Abs(TPA[i].y - MSCY) <  30) then
          Break;
      SetArrayLength(TPA,i);


      if (High(TPA)> 0) then
      begin
        ATPA := SplitTPA(TPA,15);                                                   //splitting the TPA

        SortATPASize(ATPA,True);

        if High(ATPA[0]) < MinPoints then                                           //getting only the biggest TPA (it everything is fine, this function wont find any extra pixels)
          Exit;

        if DebugWindow then                                                         //DebugWindow
          OpenDebugWindow(TPA,ATPA,false,IntToBox(0,0,0,0));

        if MiddleTPAEx(ATPA[0],xmid,ymid) then                                      //getting the middle of the TPA, moving mouse there then looking for uptext
        begin
          MMouse(xmid,ymid,0,0);
          Wait(100);
          if PaintDebug then
              SMART_ClearCanvasArea(IntToBox(MSX1,MSY1,MSX2,MSY2));
          if IsUpTextEx('ake') then
          begin
            Result := True;                                                         //returning true
            GetMousePos(X,Y);
            Exit;
          end;
        end;
      end;
      Result := False;
    end;



    procedure FindAllCharms;                                                        //this will call the FindCharm() for all the charms with the given parameters
    var
      Colors, Tolerances : Array of Integer;
    begin
      if PickUpCharms then                                                          //if charms enabled
      begin
        StatusWithPaint('Looking for charms.');

        Colors     := [5804446,5935011,5344659,5735582,5472916];
        Tolerances := [10,10,10,10,10];
        if FindCharm('Gold',Colors,Tolerances,1) then
        begin
          Mouse(X,Y,0,0,mouse_right);
          if ChooseOption('ake Gold') then
          begin
            StatusWithPaint('Picking up gold charm.');
            Inc(GoldCharms);
            Report;
            Wait(1000);
            repeat until not IsMoving
            Wait(500);
          end;
        end;

        Colors     := [5010263,6982265,5471587,5730659];
        Tolerances := [10,5,5,4];
        if FindCharm('Green',Colors,Tolerances,1) then
        begin
          Mouse(X,Y,0,0,mouse_right);
          if ChooseOption('ake Green') then
          begin
            StatusWithPaint('Picking up green charm.');
            Inc(GreenCharms);
            Report;
            Wait(1000);
            repeat until not IsMoving
            Wait(500);
          end;
        end;

        Colors     := [6183977,8552249];
        Tolerances := [10,10];
        if FindCharm('Blue',Colors,Tolerances,1) then
        begin
          Mouse(X,Y,0,0,mouse_right);
          if ChooseOption('ake Blue') then
          begin
            StatusWithPaint('Picking up blue charm.');
            Inc(BlueCharms);
            Report;
            Wait(1000);
            repeat until not IsMoving
            Wait(500);
          end;
        end;

        Colors     := [3295859,2567297,3290481];
        Tolerances := [8,8,10];
        if FindCharm('Crimson',Colors,Tolerances,1) then
        begin
          Mouse(X,Y,0,0,mouse_right);
          if ChooseOption('ake Crims') then
          begin
            StatusWithPaint('Picking up crimson charm.');
            Inc(CrimsonCharms);
            Report;
            Wait(1000);
            repeat until not IsMoving
            Wait(500);
          end;
        end;

      end;
    end;



    function WaitInFight(Timeout: Integer) : Boolean;                               //waits until Timeout or till we get into a fight (will return true in this case)
    var
      X,Y,XP1,XP2,ShieldDTM,Time : Integer;
    begin
      XP1 := GetXPBar(XPCounter);
      MarkTime(Time);
      ShieldDTM := DTMFromString('mQwAAAHicY2ZgYGBlYWAQAmIOIJZmZGCQAmJ1IGax9mT4+/cvA9eCJwxcQHUwzIiEgQAAxXEFvA==');
      repeat
        XP2 := GetXPBar(XPCounter);
        if (XP2 > XP1) then
        begin
          if DebugLines then
            Writeln('XP is increased, we are fighting.');
          if PaintDebug then
          begin
            SMART_DrawBoxEx(false,IntToBox(524,54,543,73),ClYellow);
            Wait(100);
            SMART_ClearCanvasArea(IntToBox(520,50,547,77));
          end;
          Result := True;
          FreeDTM(ShieldDTM);
          Exit;
        end;
        if (TimeFromMark(Time) > 3000) and FindDTM(ShieldDTM,X,Y,MSX1,MSY1,MSX2,MSY2) then   //if xp is increased or shield dtm found (3000 seconds is for not the detect the blue shield of the previous fight)
        begin
          if DebugLines then
            Writeln('Blue shield found, we are fighting.');
          Result := True;
          FreeDTM(ShieldDTM);
          Exit;
        end;
      until (TimeFromMark(Time) > Timeout)
      FreeDTM(ShieldDTM);
      Result := False;
    end;



    function FindRedBar : Boolean;
    var
      X,Y,RedBarDTM : Integer;
    begin
      Result := False;
      RedBarDTM := DTMFromString('mlwAAAHicY2dgYDBnZmCQBWIZKB0ExQpA3AiUr2OA0C1QDOPvZOBgsGZnwsBdDIwM+AAjHgwFAAvPB5w=');
      if FindDTM(RedBarDTM,X,Y,MSX1,MSY1,MSX2,MSY2) then
      begin
        if DebugLines then
          Writeln('Found redbar, we killed it.');
        if PaintDebug then
        begin
          SMART_DrawBoxEx(false,IntToBox(X-30,Y-10,X+30,Y+10),ClYellow);            //drawing box around the redbar
          Wait(100);
          SMART_ClearCanvasArea(IntToBox(MSX1,MSY1,MSX2,MSY2));
        end;
        Result := True;
      end;
      FreeDTM(RedBarDTM);
    end;



    procedure HopWorld;
    var
      FailTime : Integer;
    begin
      StatusWithPaint('Hopping.');
      Inc(WorldHops);

      MarkTime(FailTime);
      repeat
        ExitToLobby;
        if TimeFromMark(FailTime) > 30000 then                                      //sometimes RS crashes when going to lobby (black screen)
          EndScript('Failed to exit to lobby when hopping.');
      until LobbyScreen;

      OpenWorldScreen;
      SelectWorld(RandomWorld(true,false));                                         //member world, not pvp

      MarkTime(FailTime);
      repeat
        LoginPlayer;
        if TimeFromMark(FailTime) > 60000 then                                      //sometimes RS crashes at login (black screen)
          EndScript('Failed to login after hopping.');
      until LoggedIn

      Wait(RandomRange(500,6000));
      ToggleXPBar(true);
      SetAngle(SRL_ANGLE_HIGH);
    end;



    procedure WalkToCenter;                                                         //simple SPS walking to center (will improve in the future)
    begin
      StatusWithPaint('Walking to center.');
      SPS_WalkToPos(Point(335, 374));                                               //no need randomness, because its not accurate
    end;



    procedure SpecialAttack;
    var
      X,Y,DTM100,DTM75,DTM60,DTM55,DTM50,DTM25,i,FailTime : Integer;
    begin
      if UseSpecAttacks and ((TimeFromMark(SpecTime) > SpecWait) or (SpecNumber > 0)) then //will enter if specials are turned on AND (if its time to check for special OR we have remaining specials to do)
      begin
        StatusWithPaint('Checking special attack.');
        DTM100 := DTMFromString('mWAAAAHicY2FgYHBgYmCwB+IjULyQkYFhHRAvAOI1QFyzIo9BSl+EwT/XkiGi2oGBC6gHGTOiYRAAAPnmCNY=');   //DTMS for 100%,75% ... special bars
        DTM75  := DTMFromString('mQwAAAHicY2ZgYLBnguAFIMzIwLAWiJcBsXOyIYOmpwJDep83AxdQHQwzImEgAAD6tQXo');
        DTM60  := DTMFromString('mQwAAAHicY2ZgYHBgYmCwB+IuIF7EyMCwhhFCt2wuZTDyUmWYcKSegQuoDoYZkTAQAAAooAdH');
        DTM55  := DTMFromString('mQwAAAHicY2ZgYGhmgeDjQCzNxMCgCcSyQOycbMggpS/CMOFIPQMXUB0MMyJhIAAA5cgFbA==');
        DTM50  := DTMFromString('mQwAAAHicY2ZgYHBgYmCwB+JaIF7EyMCwhhFCt2wuZTDyUmWYcKSegQuoDoYZkTAQAAAl1Qc6');
        DTM25  := DTMFromString('mQwAAAHicY2ZgYHBgYmCwB+IoIF7EyMCwhhFCt2wuZTDyUmWYcKSegQuoDoYZkTAQAAAeUAcX');
        SpecNumber := 0;
        MarkTime(FailTime);
        repeat
          if (TimeFromMark(FailTime) > 5000) then Exit;                             //if failed to switch tabs, then it exits
          GameTab(tab_Combat);
        until (GetCurrentTab = tab_Combat)
        SpecNumber := 0;                                                            //no matter if we have remaining specials to do, we will set it to 0 and determine it again
        case SpecUsage of                                                           //determining how many specials we can do
          100:
            if FindDTM(DTM100,X,Y,MIX1,MIY1,MIX2,MIY2) then
              SpecNumber := 1;
          60:
            if FindDTM(DTM60,X,Y,MIX1,MIY1,MIX2,MIY2) then
              SpecNumber := 1;
          55:
            if FindDTM(DTM55,X,Y,MIX1,MIY1,MIX2,MIY2) then
              SpecNumber := 1;
          50:
          begin
            if FindDTM(DTM50,X,Y,MIX1,MIY1,MIX2,MIY2) then
              SpecNumber := 1;
            if FindDTM(DTM100,X,Y,MIX1,MIY1,MIX2,MIY2) then
              SpecNumber := 2;
          end;
          25:
          begin
            if FindDTM(DTM25,X,Y,MIX1,MIY1,MIX2,MIY2) then
              SpecNumber := 1;
            if FindDTM(DTM50,X,Y,MIX1,MIY1,MIX2,MIY2) then
              SpecNumber := 2;
            if FindDTM(DTM75,X,Y,MIX1,MIY1,MIX2,MIY2) then
              SpecNumber := 3;
            if FindDTM(DTM100,X,Y,MIX1,MIY1,MIX2,MIY2) then
              SpecNumber := 4;
          end;
        end;
        MarkTime(SpecTime);
        SpecWait := RandomRange(15000,60000);                                       //next spec check in 15-60 seconds
        if SpecNumber > 0 then                                                      //if we can spec
        begin
          StatusWithPaint('Using special attack.');
          MouseBox(574,416,706,428,mouse_left);
          Dec(SpecNumber);
        end else                                                                    //it cant do spec
        begin
          StatusWithPaint('Not enough special.');
          Wait(RandomRange(500,4000));
          StatusWithPaint('Back to fighting.');
          MarkTime(FailTime);
          repeat
            if (TimeFromMark(FailTime) > 5000) then Exit;
            GameTab(tab_Inv);
          until (GetCurrentTab = tab_Inv)
        end;
        FreeDTM(DTM100);
        FreeDTM(DTM75);
        FreeDTM(DTM60);
        FreeDTM(DTM55);
        FreeDTM(DTM50);
        FreeDTM(DTM25);
      end;
    end;



    procedure LoginCheck;
    begin
      if not LoggedIn then
      begin
        StatusWithPaint('Logging in.');
        if not LoginPlayer then
          EndScript('We got logged out somehow and cant log in.');
      end;
    end;



    procedure HpCheck;
    var
      colorstring, lobs, peaches : String;
      FailTime, Amount : Integer;
      done : Boolean;
    begin
      if (GetMMLevels('hp', colorstring) < EatAt) then
      begin
        MarkTime(FailTime);
        repeat
          if not b2p then                                                           //if not using B2P yet then we eat a simple food (lobster)
          begin
            StatusWithPaint('Eating lobster.');
            Amount := 120;                                                          //healing amount for lobster
            lobs := 'mggAAAHicY2NgYPjPxMDAzczAwMcMYX8E4p9ALMbIwMAKxNxArMAI4fMC8f4EGaAuJgwsAiSxYUYcGAIAcgoGSA==';
            if not EatFood(lobs) then
            begin                                                                   //if out of food
              if not BonesToPeaches then                                            //if not using B2P, then we log out
                EndScript('Out of food.')
              else
                b2p := True;                                                        //lets start using B2P
            end;
          end;
          if b2p then
          begin
            StatusWithPaint('Eating peaches.');
            Amount := 80;                                                           //healing amount for peach
            peaches := '78DA632C60626070626440069B3B52194480344C94310FA8C60C550D030313AA9A32A01A0B026A6A806A1C08A8A906AA7127A006E4663F026A52883007A4C69E809A4CC2FE0200D76708C1'
            if not EatFood(peaches) then                                            //if out of peaches
            begin
              StatusWithPaint('Breaking B2P.');
              if not BreakB2P then                                                  //if out of tablets
                EndScript('Out of B2P tablets.');
              if not EatFood(peaches) then                                          //if broke tablet but cant eat peaches
                EndScript('Failed to eat peaches after broking B2P.');
            end;
          end;
          if (GetMMLevels('hp', colorstring) > (HpLevel * 10 - Amount)) or (TimeFromMark(FailTime) > 30000) then  //if we no need to eat more (current hp > (maxhp - healamout))       (30 seconds timeout for fail safe)
            done := True;
        until done
      end;
    end;



    procedure NoobCheck;
    begin
      if  Length(GetMinimapDotsin('player',592,49,662,120)) > 0 then
      begin
        StatusWithPaint('Found a noob, waiting.');
        MakeScreenShot('C:\Simba\Screenshots\ChaosMossKiller\noobs\');
        Wait(RandomRange(5000,10000));
        HopWorld;
      end;
    end;



    function BonesCheck : Boolean;
    var
      LookedForBones : Integer;
    begin
      Result := False;
      if BonesToPeaches then
      begin                                                                         //if using B2P then we need to collect bones
        if not InvFull then
        begin
          LookedForBones := 0;
          repeat
            if FindBones(MSX1,MSY1,MSX2,MSY2) then
            begin
              StatusWithPaint('Picking up bones.');
              Mouse(X,Y,0,0,mouse_right);
              ChooseOptionCharms('ake Big');
              Wait(1000);
              repeat until not IsMoving
              Result := True;
            end;
            Inc(LookedForBones);
          until (InvFull) or (LookedForBones = 5)                                   //looking for bones max 5 times (failsafe)
        end;
      end;
    end;



    procedure RandomsCheck;
    begin
      if FindNormalRandoms then
        EndScript('Random event found!');
    end;



    procedure AmmoCheck;                                                             //function for Ranging
    var
      i : Integer;
      done : Boolean;
    begin
      if LevelString = 'RNG' then
        if FindChatBoxText('You have no ammo',8,ClBlack) then                                //ammo check
        begin
          StatusWithPaint('Out of ammo.');
          Wait(1000);
          if srl_inFight then
          begin
            StatusWithPaint('Still fighting, removing weapon.');
            repeat until GameTab(tab_Inv)
            if InvFull then
            begin
              i := 5;
              done := False;
              repeat
                MMouseItem(i);
                if IsUpTextMultiCustom(['Bury','ury','Eat','at']) then
                begin
                  ClickMouse2(mouse_right);
                  if ChooseOptionMulti(['Drop','rop']) then
                    done := True;
                end;
                Inc(i);
              until done
            end;
            repeat until GameTab(tab_Equip);
            MouseBox(573,294,594,311,mouse_left);
            StatusWithPaint('Removed weapon.');
            EndScript('Out of ammo.');
          end;

        end;
    end;



    procedure SetupScript;
    begin
      ClearDebug;
      Disguise('ChaosMossKiller');
      Status('Starting script.');
      Smart_Server := 10;
      Smart_Members := True;
      Smart_Signed := True;
      Smart_SuperDetail := False;
      SetupSRL;
      ActivateClient;
      DeclarePlayers;
      SetupSRLStats(680, SRLStats_User, SRLStats_Password);
      SPS_Setup(RUNESCAPE_OTHER,['chaos_tunnels']);
      if PaintDebug then
        SMART_ClearCanvas;
      Status('Logging in.');
      LoginPlayer;
    end;



    procedure Startup;
    var
      fails, FailTime : Integer;
      done : Boolean;
    begin
      if srl_inFight then
      begin
        StatusWithPaint('Waiting till fight is over.');
        repeat until not srl_InFight
      end;

      fails := 0;
      done := True;
      MarkTime(FailTime);
      repeat
        ToggleXPBar(True);
        TrainedLevel := GetSkillLevel(TrainedSkill);
        if (TrainedLevel = -1) then
        begin
          done := False;
          fails := fails+1;
        end;
        HpLevel := GetSkillLevel('Hitpoints');
        if (HpLevel = -1) then
        begin
          done := False;
          fails := fails+1;
        end;
        StartXPtillNext := XPTillNextLevel(TrainedSkill);
        if (StartXPtillNext = -1) then
        begin
          done := False;
          fails := fails+1;
        end;
        StartXP := GetXPBar(XPCounter);
        if (StartXP = -1) then
        begin
          done := False;
          fails := fails+1;
        end;
        if (fails = 3) or (TimeFromMark(FailTime) > 30000) then
          EndScript('Startup fail. Cant get level/read xps.');
      until done

      case TrainedSkill of
        'Attack'   : LevelString := 'ATK';
        'Strength' : LevelString := 'STR';
        'Defence'  : LevelString := 'DEF';
        'Range'    : LevelString := 'RNG';
      end;

      case DebugLines of
        true:   doreport := False;
        false:  doreport := True;
      end;

      b2p := False;
      LastXP := 0;
      WorldHops := 0;
      B2PUsed := 0;
      FoodUsed := 0;
      GoldCharms := 0;
      GreenCharms := 0;
      BlueCharms := 0;
      CrimsonCharms := 0;

      if UseSpecAttacks then
      begin
        SpecNumber := 0;
        SpecWait := RandomRange(15000,45000);
        MarkTime(SpecTime);
      end;

      ClearDebug;
      WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
      WriteLn(' ChaosMossKiller ' + Version);
      WriteLn(' - HP level      : ' + IntToStr(HpLevel));
      Writeln(' - ' + LevelString + ' level     : ' + IntToStr(TrainedLevel));
      Writeln(' - XP till next  : ' + IntToStr(StartXPtillNext));
      Writeln(' - XP Bar        : ' + IntToStr(StartXP));
      WriteLn(' - Starting script...');
      WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');

      MarkTime(StartTime);
      SetAngle(SRL_ANGLE_HIGH);
    end;



    procedure Main;
    var
      DetectTime, KillTime : Integer;
      done : Boolean;
    begin
      repeat

        StatusWithPaint('Looking for Mosses.');
        done := False;
        MarkTime(DetectTime);
        repeat
          if (TimeFromMark(DetectTime) > 180000) then                               //180 seconds failsafe
            EndScript('Cant find Mosses.');
          if FindMoss(true) then                                                    //if clicked on moss
          begin
            if WaitInFight(4000) then                                               //checking if we are fighting
              done:=True
          end else
          begin                                                                     //if failed to attack moss
            StatusWithPaint(IntToStr(TimeFromMark(DetectTime))+'ms');
            case Random(20) of
              0: CompassMovement(-120,120,false);                                   //rotating camera for better view
            end;
            LoginCheck;
            RandomsCheck;
            if (TimeFromMark(DetectTime) > 10000) then                              //walking back to middle
              WalkToCenter;
          end;
        until done                                                                  //we are fighting now


        StatusWithPaint('Fighting.');
        MarkTime(KillTime);
        repeat
          Antiban;
          AmmoCheck;
          if (TimeFromMark(KillTime) < 5000) then                                   //we dont want to waste special attack, so we only using it in the first 5 seconds
            SpecialAttack;
          if ((TimeFromMark(KillTime) > 5000) and (FindRedBar)) then                //we are looking for redbar after 5 seconds of fighting
            Break;                                                                  //end of fight
          Wait(500);
        until ((TimeFromMark(KillTime) > 10000) and (not srl_inFight))              //failsafe is: 10 seconds and no hpbar above the player -> end of fight


        StatusWithPaint('Killed Moss. Took '+MsToTime(TimeFromMark(KillTime),Time_Formal)+'.');
        Report;
        stats_Commit;                                                               //committing stats (no variebles yet, only time)
        BonesCheck;                                                                 //this will look for bones if needed and pickst them up
        FindAllCharms;                                                              //this will look for charms and picks them up
        LoginCheck;
        NoobCheck;                                                                  //this will look for other players around
        HpCheck;                                                                    //this will check hp and eat (use b2p) if needed

      until False
    end;



    begin

      SetupScript;
      Startup;
      Main;

    end.

    Thanks in advance
    Last edited by bomzene; 07-27-2012 at 05:53 PM.

  16. #1241
    Join Date
    Jul 2012
    Location
    Australia
    Posts
    553
    Mentioned
    1 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by kevin33 View Post
    @LAW this compiles for you:

    Simba Code:
    program new;
    {$DEFINE SMART}
    {$I SRL/SRL.simba}
    //{$I srl/srl/misc/debug.simba}
    {$IFDEF SMART}
      {$I SRL/SRL/Misc/SmartGraphics.Simba}

    {$ENDIF}
    var
      a,b:TBox;
      StartTime, StartExp, angleOne, angleTwo:integer;
      firsttime, detected:boolean;
      STime, breakTimeS :integer;

    const
      breakTime= 55;   // break after X amount of minutes
      breakLength= 12;  // break for X amount of minutes
      totalTimeOnPlayer= 200;   // play for a total amount of minutes
      detectionType= 1;  //if you have issues with 0 (detects when stopped chopping), use 1.

    procedure declareplayers;
    begin
      HowManyPlayers := 1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;

      Players[0].Name := '';
      Players[0].Pass := '';
      Players[0].Active := True;
      Players[0].Strings[0] := 'VE';   // Location: VN,VE,CW
    end;

    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    //                        DONT GO PAST HERE                  //
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////

    function AutoColorIvy: Integer;
    var
      arP: TPointArray;
      arC: TIntegerArray;
      tmpCTS, i, arL: Integer;
      X, Y, Z: Extended;
    begin
      tmpCTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      SetColorSpeed2Modifiers(0.06, 0.15);

      FindColorsSpiralTolerance(MSCX, MSCY, arP, 4421725, MSX1, MSY1, MSX2, MSY2, 5);
      if (Length(arP) = 0) then
      begin
        Writeln('Failed to find the color, no result.');
        ColorToleranceSpeed(tmpCTS);
        SetColorSpeed2Modifiers(0.2, 0.2);
        Exit;
      end;

      arC := GetColors(arP);
      ClearSameIntegers(arC);
      arL := High(arC);

      for i := 0 to arL do
      begin
        ColorToXYZ(arC[i], X, Y, Z);

        if (X >= 9.11) and (X <= 15.81) and (Y >= 11.95) and (Y <= 20.87) and (Z >= 5.94) and (Z <= 10.05) then
        begin
          Result := arC[i];
          Writeln('AutoColor = ' + IntToStr(arC[i]));
          Break;
        end;
      end;

      ColorToleranceSpeed(tmpCTS);
      SetColorSpeed2Modifiers(0.2, 0.2);

      if (i = arL + 1) then
        Writeln('AutoColor failed in finding the color.');
    end;

    function AutoColorNest: Integer;
    var
      arP: TPointArray;
      arC: TIntegerArray;
      tmpCTS, i, arL: Integer;
      X, Y, Z: Extended;
    begin
      tmpCTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      SetColorSpeed2Modifiers(0.47, 1.24);

      FindColorsSpiralTolerance(MSCX, MSCY, arP, 3885645, MSX1+1, MSY1+1, MSX2-1, MSY2-1, 8);
      if (Length(arP) = 0) then
      begin
        Writeln('Failed to find the color, no result.');
        ColorToleranceSpeed(tmpCTS);
        SetColorSpeed2Modifiers(0.2, 0.2);
        Exit;
      end;

      arC := GetColors(arP);
      ClearSameIntegers(arC);
      arL := High(arC);

      for i := 0 to arL do
      begin
        ColorToXYZ(arC[i], X, Y, Z);

        if (X >= 4.22) and (X <= 8.40) and (Y >= 4.48) and (Y <= 8.83) and (Z >= 2.94) and (Z <= 8.01) then
        begin
          Result := arC[i];
          Writeln('AutoColor = ' + IntToStr(arC[i]));
          Break;
        end;
      end;

      ColorToleranceSpeed(tmpCTS);
      SetColorSpeed2Modifiers(0.2, 0.2);

      if (i = arL + 1) then
        Writeln('AutoColor failed in finding the color.');
    end;

    procedure antiban();
    begin
      case random(200) of
        1: begin MakeCompass(RandomRange(angleOne-20,angleTwo+20)); makeCompass(RandomRange(angleOne,angleTwo)); end;
        2: PickUpMouse;
        3: begin RandomAngle(True); setangle(SRL_Angle_Low);  end;
        4: begin HoverSkill(skill_Woodcutting,false); mmouse(50,50, 300,200); end;
        5..10: mmouse(50,50, 300,200);
      end;
    end;

    procedure findIvy();
    var
      i, highATPA : integer;
      x, y : integer;
      TPA : TPointArray;
      ATPA : T2DPointArray;
    begin
      FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorIvy, MSX1, MSY1, MSX2, MSY2, 2);
      ATPA := splitTPA(TPA,6);
      //debugATPAbounds(ATPA);
      //SMART_DebugATPA(false, ATPA);

      highATPA := high(ATPA);
      for i := 0 to highATPA do
      begin
        MiddleTPAEx(ATPA[i], x, y);
        MMouse(x-2, y-2, 4, 4);
        getmousepos(x,y);
        wait(300 + random(400));
        if isUpText('Ivy') then
        begin
          mouse(x,y,0,0,true);
          case random(4) of
            1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
          end;
          break;
        end;
      end;
    end;

    function findNest():boolean;
    var
      i, highATPA : integer;
      x, y : integer;
      TPA : TPointArray;
      ATPA : T2DPointArray;
    begin
      result:=false;
      FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorNest,54, 193, 506, 261, 2);
      ATPA := splitTPA(TPA,10);
      //debugATPAbounds(ATPA);
      //SMART_DebugATPA(false, ATPA);

      highATPA := high(ATPA);
      for i := 0 to highATPA do
      begin
        MiddleTPAEx(ATPA[i], x, y);
        MMouse(x-2, y-2, 4, 4);
        getmousepos(x,y);
        wait(300 + random(400));
        if isUpText('nest') then
        begin
          mouse(x,y,0,0,true);
          case random(4) of
            1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
          end;
          result:=true;
          break;
        end;
      end;
    end;

    function detectBirdNestMessage():boolean;
    var
      x,y:integer;
    begin
      result:=false;
      if(findcolor(x,y,255, 9, 428, 84, 457))then
      begin
        writeln('Detected Bird Nest');
        if(findNest)then
          result:=true;
      end;
    end;

    procedure PrintProggy();
    var
      background: TBox;
      x,y,i: Integer;
      Exp,ExpPerHour:integer;
      boxpoints: Array of TPoint;
    begin
      {$IFDEF SMART}
      Exp := GetXPBarTotal-StartExp;
      ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000+1);
      if(firsttime)then
      begin
        SMART_clearcanvas();
        background.X1:= MMx1-30;
        background.Y1:= MMy1-10;
        background.X2:= MMx2+62;
        background.Y2:= MMy2+7;
        setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
        i:=0;
        for x:= background.X1 to background.X2-1 do
        begin
          for y:= background.Y1 to background.Y2-1 do
          begin
            boxpoints[i]:= point(x,y);
            inc(i);
          end;
        end;
        SMART_DrawDotsEx(false, boxpoints, 3160642);
      end else
      begin
        background.X1:= 590;
        background.Y1:= 78;
        background.X2:= 723;
        background.Y2:= 122;
        setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
        i:=0;
        for x:= background.X1 to background.X2-1 do
        begin
          for y:= background.Y1 to background.Y2-1 do
          begin
            boxpoints[i]:= point(x,y);
            inc(i);
          end;
        end;
        SMART_DrawDotsEx(false, boxpoints, 3160642);
      end;

      SMART_DrawText(MMX1-20, MMY1, 'UpChars', 'Warrior''s IvyCutter', ClLime);
      SMART_DrawText(MMX1-20, MMY1+15, 'UpChars', 'By, x[Warrior]x3500', ClLime);
      SMART_DrawText(MMX1-20, MMY1+30, 'UpChars', '------------------------', ClLime);
      SMART_DrawText(MMX1-20, MMY1+55, 'UpChars', 'Player: ' + Players[CurrentPlayer].Name, ClLime);
      SMART_DrawText(MMX1-20, MMY1+70, 'UpChars', 'Total Exp: ' + inttostr(Exp), ClLime);
      SMART_DrawText(MMX1-20, MMY1+85, 'UpChars', 'Exp per Hour: ' + tostr(ExpPerHour), ClLime);
      SMART_DrawText(MMX1-20, MMY1+100, 'UpChars', 'Total Time: ' + inttostr(GetTimeRunning/1000/60) + ' minutes', ClLime);
      SMART_DrawText(MMX1-20, MMY1+110, 'UpChars', '------------------------', ClLime);
      {$ENDIF}
    end;

    procedure proggy();
    var
      Exp, ExpPerHour: integer;
    begin
      cleardebug();
      Exp := GetXPBarTotal-StartExp;
      ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000);
      writeLn('---------- Warrior''s -----------');
      writeLn('---------- IvyCutter  -----------');
      writeLn('Total Time: ' + TimeRunning);
      writeLn('Exp Earned: ' + IntToStr(Exp));
      writeLn('Exp Per Hour: ' + IntToStr(ExpPerHour));
      writeLn('--------------------------------');
    end;

    procedure initBreakTime();
    begin
      breakTimeS:= breakTime*60-((breakTime*60)*(1/10))+random((breakTime*60)*(2/10));
      STime:=GetSystemTime();
    end;

    function detectBreakTime():boolean;
    begin
      result:=false;
      if((Getsystemtime-STime)/1000>breakTimeS)then
        result:=true;
    end;

    function detectTotalRunTime():boolean;
    begin
      result:=false;
      if((Getsystemtime-StartTime)/1000/60>TotalTimeOnPlayer)then
        result:=true;
    end;

    procedure doBreak();
    var
      breakingFor:integer;
    begin
      breakingFor:= breaklength*60-((breaklength*60)*(1/10))+random((breaklength*60)*(2/10));
      writeln('Breaking for: '+inttostr(breakingFor/60)+' minutes.');
      writeln('Start Break Time: '+MStoTime(Getsystemtime,Time_Bare));
      logout();
      wait(breakingFor*1000);
      loginplayer();
      setangle(SRL_Angle_Low);
      makeCompass(RandomRange(angleOne,angleTwo));
    end;

    procedure setupPlayer();
    begin
      case Players[CurrentPlayer].Strings[0] of
       'VN','FN': begin angleOne:=180; angleTwo:=180; end;
       'VE','T': begin angleOne:=90; angleTwo:=90; end;
       'FS','CW': begin angleOne:=0; angleTwo:=0; end;
       'A': begin angleOne:=270; angleTwo:=270; end;
      end;
      if(not(LoggedIn))then
        LoginPlayer;
      setangle(SRL_Angle_Low);
      makeCompass(RandomRange(angleOne,angleTwo));
      if(not(IsXPBarOpen))then
        ToggleXPBar(true);
      if(StartExp=0)then
        StartExp := GetXPBarTotal;

      a.X1:= 243;
      a.X2:= 280;
      a.Y1:= 86;
      a.Y2:= 174;

      b.X1:= 242;
      b.X2:= 268;
      b.Y1:= 103;
      b.Y2:= 126;

    end;


    begin
      {$IFDEF SIMBAMAJOR980}//<--- THIS
    Smart_Server := 0;
    Smart_Members := False;
    Smart_Signed := True;
    Smart_SuperDetail := False;
    {$ELSE}//<--- THIS
    SRL_SIXHOURFIX := TRUE;
    SMART_FIXSPEED := TRUE;
    {$ENDIF}

      setupsrl;
      DeclarePlayers;
      StartTime := GetSystemTime;
      StartExp := GetXPBarTotal;
      firsttime := true;
      repeat
        setupPlayer();
        repeat
          initBreakTime();
          repeat
            printProggy();
            firsttime:=false;
            findIvy();
            wait(400+random(300));
            detected:=false;
            repeat
              antiban();
              proggy();
              if(findnormalrandoms)then
              begin
                setangle(SRL_Angle_Low);
                makeCompass(RandomRange(angleOne,angleTwo));
              end;
              case detectionType of
                0: detected:= (averagepixelshift(b,200,2000)<900);
                1: detected:= (averagepixelshift(a,200,2000)<1000);
              end;
            until(detected) or (detectBirdNestMessage);
            wait(random(400));
            findnormalrandoms();
          until(detectBreakTime);
          doBreak();
        until(detectTotalRunTime);
        nextplayer(false);
      until(allplayersinactive);

    end.
    Thanks buddy, much appreciated!
    However, I keep getting this error:
    Simba Code:
    Current player:
    Error: Exception: The Points you passed to DrawATPA exceed the bitmap's bounds at line 90
    The following DTMs were not freed: [SRL - Lamp bitmap, 1]
    The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, 4]
    Sinking. Always. Sinking.

  17. #1242
    Join Date
    Dec 2011
    Location
    Ontario, Canada
    Posts
    1,735
    Mentioned
    5 Post(s)
    Quoted
    89 Post(s)

    Default

    @LAW...not gonna lie, I have no idea how to fix the error your getting. Im not that familiar with TPA's and ATPA'a and such so Im not familiar with errors and how to properly use them. Perhaps someone else may be able to tell you what to do.
    FEEL FREE TO PM ME ABOUT ANYTHING! Will help over Teamviewer...just ask!! "WITH A NEW QUESTION COMES A NEW CHALLENGE"
    Silentcore's AIO Service team !!! Pm me if you want questing done or service done or post on thread ofc

  18. #1243
    Join Date
    Jul 2012
    Location
    Australia
    Posts
    553
    Mentioned
    1 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by kevin33 View Post
    @LAW...not gonna lie, I have no idea how to fix the error your getting. Im not that familiar with TPA's and ATPA'a and such so Im not familiar with errors and how to properly use them. Perhaps someone else may be able to tell you what to do.
    Ah well, I appreciate your effort very much.
    Sinking. Always. Sinking.

  19. #1244
    Join Date
    May 2012
    Location
    Somewhere in, PA
    Posts
    1,810
    Mentioned
    9 Post(s)
    Quoted
    226 Post(s)

    Default

    Quote Originally Posted by Law and Justice View Post
    Thanks buddy, much appreciated!
    However, I keep getting this error:
    Simba Code:
    Current player:
    Error: Exception: The Points you passed to DrawATPA exceed the bitmap's bounds at line 90
    The following DTMs were not freed: [SRL - Lamp bitmap, 1]
    The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, 4]
    Yeah, im getting that same error too with this one script, idk how to fix it, if i get an answer i'll share it with you though
    My First Build!, Selling Downloadable Games
    -------------------------------------

  20. #1245
    Join Date
    Jul 2012
    Location
    Australia
    Posts
    553
    Mentioned
    1 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by AustnW View Post
    Yeah, im getting that same error too with this one script, idk how to fix it, if i get an answer i'll share it with you though
    Well, I'm glad that I'm not the only one who's having that problem.
    Thanks, if I find a solution I'll share it with you too.
    Sinking. Always. Sinking.

  21. #1246
    Join Date
    Jul 2012
    Posts
    3
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Need help, so confused

    Ok literally I have spent hours trying to get Simba to work and whatever I do there is always a different error or something that doesnt work, and everything on this forum is scattered so it takes so long to find what I need. Someone needs to put together a youtube video with every single step in setting up Simba, with easily understandable words that people without computer degrees can understand... are there any of these videos or guides out there? sorry, just so frustrated

  22. #1247
    Join Date
    Dec 2011
    Location
    Ontario, Canada
    Posts
    1,735
    Mentioned
    5 Post(s)
    Quoted
    89 Post(s)

    Default

    Quote Originally Posted by ickcay View Post
    Ok literally I have spent hours trying to get Simba to work and whatever I do there is always a different error or something that doesnt work, and everything on this forum is scattered so it takes so long to find what I need. Someone needs to put together a youtube video with every single step in setting up Simba, with easily understandable words that people without computer degrees can understand... are there any of these videos or guides out there? sorry, just so frustrated
    Well what is it that you need help with exactly? I will help you with everything you just need to tell me exactly what your stuck on. No one can help you if you just say your utterly lost. We need details.
    FEEL FREE TO PM ME ABOUT ANYTHING! Will help over Teamviewer...just ask!! "WITH A NEW QUESTION COMES A NEW CHALLENGE"
    Silentcore's AIO Service team !!! Pm me if you want questing done or service done or post on thread ofc

  23. #1248
    Join Date
    Jul 2012
    Posts
    3
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by kevin33 View Post
    Well what is it that you need help with exactly? I will help you with everything you just need to tell me exactly what your stuck on. No one can help you if you just say your utterly lost. We need details.
    I PMed you

  24. #1249
    Join Date
    Jul 2012
    Posts
    279
    Mentioned
    5 Post(s)
    Quoted
    46 Post(s)

    Default

    ** Fatal Error: Pairing Clients; Terminating Script **

    I keep getting this error even though I downloaded smart 7.2 and pasted the files in my simba folder. However, I realized that all I had on that folder was the simba.exe and the uninstaller. Is that normal or I was also supposed to have other files/folders before adding the smart 7.2 files?

  25. #1250
    Join Date
    May 2012
    Location
    Somewhere in, PA
    Posts
    1,810
    Mentioned
    9 Post(s)
    Quoted
    226 Post(s)

    Default

    Quote Originally Posted by Wardancer View Post
    ** Fatal Error: Pairing Clients; Terminating Script **

    I keep getting this error even though I downloaded smart 7.2 and pasted the files in my simba folder. However, I realized that all I had on that folder was the simba.exe and the uninstaller. Is that normal or I was also supposed to have other files/folders before adding the smart 7.2 files?
    You're supposed to have Simba .991 and have extracted the SMART v7.2 contents to the plugins folder and allowed it to override them. Once you have that done it will work
    My First Build!, Selling Downloadable Games
    -------------------------------------

Page 50 of 54 FirstFirst ... 404849505152 ... LastLast

Thread Information

Users Browsing this Thread

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

Tags for this Thread

Posting Permissions

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