• Log in or sign up for an account here: https://www.sythe.org/login

[SRL] Fours PowerChopper X

sweet, is this script better than your power chopper unlimited?
 
well it works fine but it kinda is getting stuck on losing the axe head

<---------------------------------------------------------->
Progress Thus Far
Run Time : 53 Minutes and 31 Seconds
Logs Chopped : 189
XP Gained : 0
Good Job! : Fourscape RULES! - lol
<---------------------------------------------------------->

ERROR! cannot find axe in screen, please put axe in inventory or your equip page and restart the script!

Woodcutting = 39765
NextPlayer
Found Compass
Successfully executed

but therwise nice job
 
Just wondering is he gona post the fixed version here, where the antirandom should work?
Works pretty well even whitout antirandom, but you can't run it hours.

...
 
Hello guys, i actually want to just let only 1 account cut logs. The scar says :

HowManyPlayers := 4; //LEAVE THIS THE SAME!
NumberOfPlayers( HowManyPlayers );
CurrentPlayer := 0;

It says leave this the same, how DO I fix this then?

plz help me, thx Flamedog
Code:
{   ______________
   |    | || |  __|
  F| () | || | |S
   |____|____|_|PowerChopper Version X Released 3/18/07
  Don't copy this script in whole or in Part... you do not have permision.
}


//-------------------------------------------------------------------------//
//Fourscape's Powerchopper Version X (Not Version 10, I just don't know...)
//Do setup lines 28-71 and then that's it.
//----------------------------------------//

//Credits to CharmZ, for the AutoResponder, and to YoHoJo8, for all the help.
//WT-Fakawi for FastRandoms.

Program FPowerCutter;
{.include SRL\SRL.SCAR}
{.include SRL\SRL\Skill\Woodcutting.SCAR}

Var
  LoadNumber : Integer;
  LogDTM, BrokenAxeDTM, AxeHandleDTM, RegularAxeDTM, AxeHeadMask : Integer;
  StartXP, EndXP, TotalXP, TotalLogs : Integer;
  TheTreeName : String;
  TreeColor, AutoTreeColor : Integer;

Const
  //---------------------------------------------------------------------------
 //                               SETUP
//-----------------------------------------------------------------------------
  AmmountOfLoads = 3; //Ammount of loads you want to chop before
                      //switching players.
                      //They will chop again!
  Boxy           = True; // Use Box Solver?
  Sandy          = True; // Use Sandwich Solver?
//-----------------------------------------------------------------------------

//->Declare Players<-//
Procedure DeclarePlayers;
begin
  Status('Loading Players')

  HowManyPlayers  := 1;
  NumberOfPlayers( HowManyPlayers );
  CurrentPlayer := 0;

  Players[0].Name      := 'UserName';
  Players[0].Pass      := 'Password';
  Players[0].Nick      := 'Nickname'; // 2-4 letters of username
  Players[0].String1   := 'Tree'     ; // Tree name. Tree, Oak, or Willow
  Players[0].Active    := True;

end;


//->Load Dtm's<-//
Procedure LoadDTMs;

begin
Status('Loading DTM''s')

LogDTM := DTMFromString('78DA632C666260E0646440067921460CFF813' +
       '448F43F103066314179C880118904D2354035FF19F0AB2905AA11' +
       '22604E23500D0F0135C94035DCF8D50000507909F5');

BrokenAxeDTM := DTMFromString('78DA633CCAC4C090C1C8800C9A127919FE036' +
       '990E87F2060BC0C54938CAA06220B2381F445A09A04026A8E01D5' +
       'C41050B31FA8A698809AB384CD0100CBBD0D20');

AxeHandleDTM := DTMFromString('78DA637CCFC4C0E0C6C8800CCA227819FE036' +
       '990E87F2060FC06546389AA06220B2381F473A09A00026ADE00D5' +
       'F81350F316A8C685809A97403541F8D50000D0090D3C');

RegularAxeDTM := DTMFromString('78DA637461626060676440060DF1BC0CFF813' +
       '448F43F10300601D5FC6740038C482490F604AAF94D408D13500D' +
       '2B237E35F640358204D4F813618E1F50CD1F02EE0906AA61C26F0' +
       'E0099720B7E');

AxeHeadMask := BitmapFromString(12, 8, 'z78DA3330200CDC3080018900' +
       '972E62CC24D55E4C9594BB993C13C8733FB5DCE3860310AF92185' +
       'B008E3078E5');     // Not mine, I don't remember where I got it.
end;

Procedure LoadTreeName;
Begin
  Case (LowerCase(Players[CurrentPlayer].String1)) of
    'oak'    : TheTreeName  := 'Oak';
    'oak'    : TreeColor    := 876624;
    'tree'   : TheTreeName  := 'Tree';
    'tree'   : TreeColor    := 876624;
    'willow' : TheTreeName  := 'Willow';
    'willow' : TreeColor    := 5535856;
  end;
end;


Function FAutoColor : Boolean;
Var
  TCX, TCY : Integer;
Begin
  If FindObj(TCX, TCY, TheTreeName, TreeColor, 12) then
  Begin
    AutoTreeColor := GetColor(TCX, TCY)
  end;
  Result := True;
end;

//->Setup<-//
Procedure MySetupScript; //Fourscape!!!
Begin
  Status('Set-Up')
  SetupSRL;
  ActivateClient;
  DeclarePlayers;
  LoadDTMs;
  UseSandwichSolver := Sandy;
  UseBoxSolver      := Boxy;
  Begin
    If (Not(LoggedIn)) then
    Begin
      Status('Logging In')
      Loginplayer;
    end;
  end;
end;


//->GetRandomLoad-//
Var
  RandomLoad : Integer;

Procedure GetRandomLoad;
Begin
  RandomLoad := (AmmountOfLoads + Random (3))
end;


//->Anti Randoms<-//
Function TheAntiRandoms : Boolean;     //WT-Fakawi
var
  i: Integer;
begin
  for I := 1 to 9 do
  begin
    case I of
       1:  if FindDead then
             Result := True;

       2:  if FindMod then
             Result := True;

       3:  if FindMime then
             Result := True;

       4:  if FindMaze then
             Result := True;

       5:  if FindQuiz then
             Result := True;

       6:  if FindDemon then
             Result := True;

       7: begin
             if NoGameTab then
             begin
               Result := True;
               Players[CurrentPlayer].loc := 'No GameTab';
               Logout;
               Exit;
             end;
           end;


       8 : if FindFight then
              begin
                Result := True;
                RunAwayDirection('E')
                Flag;
                Wait(10000 + Random(10000))
                RunBack;
                SetRun(False)
              end;

       9: if FindTalk then
             Result := True;
    end;
    Wait(1);
  end;
end;



//->Anti Ban<-//

Function GetChatMessage(Text: String): Boolean;
Var
TX, TY: Integer;
Chat: String;
Begin

  If(IsTextInAreaEx(40, 415, 130, 415, TX, TY, ':', 0, SmallChars, False, True, 0, 0, 0))then
   Begin
    Chat:= Lowercase(Trim(GetTextAtEx(TX + 8, 415, 0, SmallChars, False, False, 0, 1, 16711680, 40, False, TR_AllChars)));

     If(Pos(Text, Chat) <> 0)then
      Begin
       Result:= True;
      End

   End

End;

Function GetChatName(Name: String): Boolean;
Var
I : Integer;
ChatName : String;
Begin

  ChatName := Lowercase(Trim(GetTextAtEx(21, 415, 0, SmallChars, False, False, 0, 0, 0, 50, False, TR_AllChars)));

  I:= Pos(':', ChatName);
  If(I <> 0)then
   Begin
     Delete(ChatName, I, I);
   End

  If(Pos(Name, ChatName) <> 0)then
   Begin
     Result:= True;
   End

End;

Function TheAntiBan: Boolean;
Var
Responce, Lvl: String;
RandomReply: Integer;
Chat,Name,ChatName: String;
Begin
begin

  OldLine:= TheLine;
  TheLine:= Lowercase(Trim(GetTextAtEx(20, 415, 0, SmallChars, False, False, 0, 1, 16711680, 40, False, TR_AllChars)));
  NewLine:= TheLine;

 If(GetChatName(Players[CurrentPlayer].Name))then
  Begin
   Exit;
  End

 If(OldLine=NewLine)then
  Begin
   Exit;
  End

  If(GetChatMessage(Players[CurrentPlayer].Name)) or
  (GetChatMessage(Players[CurrentPlayer].Nick))then
   Begin
     WriteLn(''+ChatName+': '+Chat);
     RandomReply:= Random(10)+1;
    Case (RandomReply) of
      0 : Responce:= ('?');
      1 : Responce:= ('what');
      2 : Responce:= ('yes');
      3 : Responce:= ('no');
      4 : Responce:= ('what do you want');
      5 : Responce:= ('me?');
      6 : Responce:= ('Yah?');
      7 : Responce:= ('who?');
      8 : Responce:= ('wha?');
      9 : Responce:= ('?');
      10 : Responce:= ('???');
    End
   TypeSend(Responce+' '+Name);
   Result:= True;
  End

  If(GetChatMessage('lol')) or (GetChatMessage('lmao')) or (GetChatMessage('rofl')) or (GetChatMessage('haha'))then
   Begin
    WriteLn(''+ChatName+': '+Chat);
    RandomReply:= Random(24)+1;
    Case (RandomReply) of
     0 : Responce:= ('heh');
     1 : Responce:= ('loll');
     2 : Responce:= ('lol');
     3 : Responce:= ('haha');
     4 : Responce:= ('hihi');
     5 : Responce:= ('ehe');
     6 : Responce:= ('lmao');
     7 : Responce:= ('lmfao');
     8 : Responce:= ('rofls');
     9 : Responce:= ('fun');
     10 : Responce:= ('nice');
     11 : Responce:= ('lolz');
     12 : Responce:= ('yep');
     13 : Responce:= ('hola');
     14 : Responce:= ('wow');
     15 : Responce:= ('i bet');
     16 : Responce:= ('rofl');
     17 : Responce:= ('ghehehghehighhe');
     18 : Responce:= ('cool');
     19 : Responce:= ('...');
     20 : Responce:= ('???');
     21 : Responce:= ('wow');
     22 : Responce:= ('grr..');
     23 : Responce:= ('rowr');
     24 : Responce:= ('lolololololol');
     25 : Responce:= ('ha ha ha!!!');
    End
   TypeSend(Responce);
   Result:= True;
  End

  If(GetChatMessage('auto')) or (GetChatMessage('autoing')) or
  (GetChatMessage('macro')) or (GetChatMessage('autoin'))then
   Begin
    WriteLn(''+ChatName+': '+Chat);
    RandomReply:= Random(11)+1;
    Case (RandomReply) of
     0 : Responce:= ('lol... ');
     1 : Responce:= ('you would think that wouldn''t you');
     2 : Responce:= ('your a funny one');
     3 : Responce:= ('yep, i sure am lol');
     4 : Responce:= ('you wish man');
     5 : Responce:= ('if i was i would still own u');
     6 : Responce:= ('lmao');
     7 : Responce:= ('very funny yet not true');
     8 : Responce:= ('hmph.. you wish');
     9 : Responce:= ('i guess i could be doin that... lol');
     10 : Responce:= ('whatever nub... you wish');
     11 : Responce:= ('uh.. yeah right');
    End
   TypeSend(Responce);
   Result:= True;
  End


  If(GetChatMessage('wc')) or (GetChatMessage('woodcutting')) or (GetChatMessage('woodcuttin')) And
    (GetChatMessage('lvl')) or (GetChatMessage('level')) or (GetChatMessage('lvls')) or (GetChatMessage('levels'))then
   Begin
    WriteLn(''+ChatName+': '+Chat);
    Lvl:= IntToStr(GetSkillLevel('woodcutting'));
    RandomReply:= Random(5)+1;
     Case (RandomReply) of
      0 : Responce:= ('i''m lvl '+Lvl+' woodcuttin');
      1 : Responce:= ('level '+Lvl+' wc');
      2 : Responce:= ('lvl '+Lvl+' woodcut!');
      3 : Responce:= (+Lvl);
      4 : Responce:= ('i''m level '+lvl);
      5 : Responce:= (+Lvl+' here :P');
     End
    TypeSend(Responce);
    Result:= True;
   End

  If(GetChatMessage('wat')) or (GetChatMessage('what')) and (GetChatMessage('doin')) or (GetChatMessage('doing'))then
   Begin
   WriteLn(''+ChatName+': '+Chat);
   RandomReply:= Random(9)+1;
    Case RandomReply of
     0 : Responce:= ('not much');
     1 : Responce:= ('nothing');
     2 : Responce:= ('bored');
     3 : Responce:= ('aye?');
     4 : Responce:= ('emmm..nothin');
     5 : Responce:= ('nope');
     6 : Responce:= ('booo');
     7 : Responce:= ('no ty');
     8 : Responce:= ('what');
     9 : Responce:= ('....');
     10 : Responce:= ('nothin');
    End;
   TypeSend(Responce);
   Result:= True;
  End;

  If(GetChatMessage('hey')) or (GetChatMessage('hi')) or (GetChatMessage('hello')) or (GetChatMessage('wats up')) or (GetChatMessage('whats up')) or (GetChatMessage('yo'))then
   Begin
   WriteLn(''+ChatName+': '+Chat);
   RandomReply:= random(9)+1;
    Case RandomReply of
      0 : Responce:= ('hello');
      1 : Responce:= ('wassup');
      2 : Responce:= ('yo');
      3 : Responce:= ('whats up everyone');
      4 : Responce:= ('whats up');
      5 : Responce:= ('welcome');
      6 : Responce:= ('hello hello');
      7 : Responce:= ('wat up');
      8 : Responce:= ('yo');
      9 : Responce:= ('sup?');
      10 : Responce:= ('whats up');
    end
   TypeSend(Responce);
   Result:= True;
  end
 end;
end;



//->Get Axe Colors<-//
Procedure GetAxeColors;
Begin
  FindAxeHeadColor;
end;

//->Axe Head Finder<-//

Procedure TheFindAxe;
Begin
  FindHead;
end;

//->Everything Put Together2<-//
Procedure CompleteFix2;
Begin
  TheAntiRandoms;
  Wait(10)
  TheFindAxe;
  Wait(10)
  TheAntiBan;
end;

//->Ent Finder<-// Yohojo8
Var
  EX, EY : integer;
  FX, FY : integer;
  SafeEntWait : LongInt;
Procedure EntChecker;
Begin
  Status('Checking For Ent')
  If (FindObjMultiText(EX, EY, TheTreeName, TheTreeName, TheTreeName, Treecolor, 4)) then
  Begin
    MMouse(EX, EY, 0, 0)
    If FindColorTolerance( FX, FY, 55769, 85, 15, 115, 15, 20) then
    Begin
      Status('Ent Found');
      MouseFindFlag(645, 83, 2, 2);
      MarkTime(SafeEntWait)
      Repeat
        CompleteFix2;
        Wait(10)
        If Random(100) = 80 then
        Begin
          RandomRClick;
        end;
      Until TimeFromMark(SafeEntWait) > 18000 + Random(10000)
      EntsAvoided := EntsAvoided + 1
    end;
  end;
end;


//->Check for Broken Axe<-//
Var
  BX, BY, NX, NY : integer;

Procedure IsAxeBroken;
Begin
  Status('Checking for broken axe')
  GameTab(4)
  Wait(400 + Random (100))
  If (Not(FindDTM(BrokenAxeDTM, BX, BY, MIX1, MIY1, MIX2, MIY2 ))) then
  Begin
    Status('Axe Not Broken')
    Exit;
  end;
  Begin
    If (FindDTM(BrokenAxeDTM, BX, BY, MIX1, MIY1, MIX2, MIY2 )) and
       (Not(FindDTM(RegularAxeDTM, NX, NY, MIX1, MIY1, MIX2, MIY2))) then
    Begin
      Status('Broke an Axe')
      NextPlayer(False)
      end;
   end;
end;



Procedure CompleteFix;
Begin
  TheAntiRandoms;
  Wait(10)
  //InLumby;
  Wait(10)
  EntChecker;
  Wait(10)
  TheFindAxe;
  Wait(10)
  IsAxeBroken;
  Wait(10)
  TheAntiBan;
end;


//->Start Chopping<-//
Var
  TX, TY : Integer;
  TreeTime, SafeWaiting : LongInt;


Procedure StartChopping;
Begin
  MakeCompass('N')
  MarkTime(TreeTime)
  If ( Not (LoggedIn) ) Then
  Begin
    NextPlayer (False)
    Exit;
  end;
  Repeat
  Begin
    IsAxeBroken;
    Status('Looking for ' + TheTreeName)
    If (InvFull) then
    Begin
      Exit;
    end;
    EntChecker;
    MakeCompass('W')
    If (FindObjMultiText(TX, TY, TheTreeName, TheTreeName, TheTreeName, AutoTreecolor, 4)) then
    Begin
      Mouse(TX, TY, 1, 1, True)
      Wait( 1400 + Random (200))
      MarkTime(SafeWaiting)
      Repeat
        CompleteFix; //THIS SCRIPT IS BY FOURSCAPE!
        If InvFull then
        Begin
          Exit;
        end;
        Wait(10)
        If Not (LoggedIn) then NextPlayer(False)
      Until (TimeFromMark(SafeWaiting) > 5000 + Random(5000))
    end;
  end;
  If Not (LoggedIn) then NextPlayer(False)
 Until (InvFull) or (TimeFromMark(TreeTime)>60000 * 7)
end;

//->Start Dropping<-//
Var
  LX, LY, DroppedLogsCount : Integer;
//DO NOT REMOVE THIS LINE! By Fourscape
Procedure StartDropping;
Begin
  If (InvFull) then
  Begin
    GameTab(4)
    DroppedLogsCount := CountItemDtm(LogDTM) + 6
    Repeat
     GameTab(4)
     If (FindDTM(LogDTM, LX, LY, MIX1, MIY1, MIX2, MIY2)) then
     begin
       Mouse(LX, LY, 8, 8, false)
       ChooseOption(x,y,'Drop')
       TheAntiRandoms;
     end;
     If Not (LoggedIn) then NextPlayer(False)
    Until (Not(FindDTM(LogDTM, LX, LY, MIX1, MIY1, MIX2, MIY2)))
  end;
end;

//->Progress Report<-//
Procedure ReportIt;
Begin
  SRLRandomsReport;
  WriteLn('')//Fourscape Progress
  WriteLn('<---------------------------------------------------------->')
  WriteLn('                      Progress Thus Far                     ')
  WriteLn('  Run Time     : ' + (TimeRunning) + '')
  WriteLn('  Logs Chopped : ' + IntToStr (TotalLogs) + '')
  WriteLn('  XP Gained    : ' + IntToStr (EndXP - StartXP + TotalXP) + '')
  WriteLn('  Good Job!    : Fourscape RULES! - lol')
  WriteLn('<---------------------------------------------------------->')
end;

//->Main Stuff<-//
begin
  wait(1200)
  MySetupScript;
  //By Fourscape
  HighestAngle;
  Repeat
    If Not (LoggedIn) then LogInPlayer;
    GetRandomLoad;
    Repeat
      DisguiseScar('[' + IntToStr(LoadNumber) + '/'
      +IntToStr(RandomLoad) + '] '
      +(Players[CurrentPlayer].name))
      HighestAngle;
      GetAxeColors;
      StartXP := GetXp('Woodcutting')
      LoadTreeName;
      FAutoColor;
      StartChopping;
      StartDropping;
      EndXP := GetXp('Woodcutting')
      TotalLogs:= TotalLogs + DroppedLogsCount
      ReportIt;
    Until (LoadNumber >= RandomLoad)
    LogOut;
    NextPlayer(True);
    HighestAngle;
    If Not (LoggedIn) then NextPlayer(False)
  Until False;
end.

{   ______________
   |    | || |  __|
  F| () | || | |S
   |____|____|_|PowerChopper Version X Released 3/18/07
  Don't copy this script in whole or in Part... you do not have permision.
}

Dat should work
 
Can some1 help me going through the searching in the internet cuz my computer dosnt know what created it and needs to know... Plz help me
 
i hate these dumb scripts...have no idea wat to do when i get them.

Sorry to say this but he scripts isn't dumb, you are... plz read the stickies, if you can't work with scar don't blame the script but look in the mirror.

EDIT: Fours nice script btw but why this:
Code:
DroppedLogsCount := CountItemDtm(LogDTM) + 6
why that +6 ? :P
 
Line 265: [Error] (14981:8): Identifier expected in script C:\Documents and Settings\HP_Owner\Desktop\New Folder\Fourscape PowerChopper.scar how do i fix that?


ok i fixed that now i Line 343: [Error] (6187:1): Unknown identifier 'tmpTPA3' in script C:\Program Files\SCAR 3.06\includes\srl\srl\core\DoorProfiles.scar
 
Runescape Gamblingrunescape gambling
Back
Top