SCAR Code:
program Powerchopper;
{.include SRL/SRL.Scar}
{.include SRL/SRL/Skill/Woodcutting.Scar}
Var
Chat, Name, ChatName : String;
Const
WillowColorA = 2773056; // Color of the willow your cutting
WillowColorB = 4026472; // ''
WillowColorC = 3301456; // ''
IsAxeOn = True; // Is The Axe Equipted True is yes False is no
WaitTime = 4000; // Time to wait in mili seconds before chopping again
LogsToChop = 28; // Number of logs to chop before changing players
Procedure Declare_Players;
begin
HowManyPlayers:= 6;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:= 0;
Players[0].Name := 'Username'; //UserName
Players[0].Pass := 'Password'; //Password
Players[0].Nick := 'Nick'; //2-4 letters of username
Players[0].Active := true;
Players[1].Name := 'Username'; //UserName
Players[1].Pass := 'Password'; //Password
Players[1].Nick := 'Nick'; //2-4 letters of username
Players[1].Active := true;
Players[2].Name := 'Username'; //UserName
Players[2].Pass := 'Password'; //Password
Players[2].Nick := 'Nick'; //2-4 letters of username
Players[2].Active := true;
Players[3].Name := 'Username'; //UserName
Players[3].Pass := 'Password'; //Password
Players[3].Nick := 'Nick'; //2-4 letters of username
Players[3].Active := true;
Players[4].Name := 'Username'; //UserName
Players[4].Pass := 'Password'; //Password
Players[4].Nick := 'Nick'; //2-4 letters of username
Players[4].Active := true;
Players[5].Name := 'Username'; //UserName
Players[5].Pass := 'Password'; //Password
Players[5].Nick := 'Nick'; //2-4 letters of username
Players[5].Active := true;
end;
Function FindFastRandoms:Boolean;
Var i :integer;
begin
for i := 1 to 16 do
begin
case I of
1: CloseWindow;
2: if FindTalk then
Result := True;
3: if FindDead then
Result := True;
4: if FindMod then
Result := True;
5: if FindMime then
Result := True;
6: if FindMaze then
Result := True;
7: if FindQuiz then
Result := True;
8: if FindDemon then
Result := True;
9: if FindScapeRune then
Result := True;
10: if FindTalk then
Result := True;
11: if FindLamp(LampSkill) then
Result := True;
12: if (FindNewBox) then
begin
Result := True;
if (UseBoxSolver) then
SolveBox
else
GambleNewBox;
end;
14:
begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
end;
end;
16: if RC then
Result := True;
end;
Wait(1);
end;
end;
Procedure AntiBanner;
begin
RandomRClickEvery(2 +Random(13));
RotateEvery(20 +Random(10));
LeaveScreenEvery(7 + Random(5));
HoverEvery(20 +Random(4), 'woodcutting');
PickUpMouseEvery(21 +Random(7));
BoredEvery(7 +Random(30));
end;
Procedure FindRandoms;
begin
FindFastRandoms;
Wait(500);
FindNormalRandoms;
Wait(500);
if FindFight then
begin
RunawayDirection('N');
Wait(9000 +Random(1800));
RunBack;
end;
end;
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;
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 AutoRespond : Boolean;
Var
Responce, Lvl: String;
RandomReply: Integer;
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:= ('hehe');
1 : Responce:= ('lolol');
2 : Responce:= ('lol');
3 : Responce:= ('haha');
4 : Responce:= ('hihi');
5 : Responce:= ('ghehe');
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:= ('wowzers');
22 : Responce:= ('grrr...');
23 : Responce:= ('rowr');
24 : Responce:= ('lolololololol');
25 : Responce:= ('ha ha ha!!!');
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:= ('ello');
1 : Responce:= ('sup');
2 : Responce:= ('yo');
3 : Responce:= ('whats up everyone');
4 : Responce:= ('whats up');
5 : Responce:= ('welcome');
6 : Responce:= ('allo allo');
7 : Responce:= ('wat up');
8 : Responce:= ('y0o');
9 : Responce:= ('=P');
10 : Responce:= ('what is up');
End
TypeSend(Responce);
Result:= True;
end
end;
Procedure Chop;
begin
if(Not(LoggedIn))then
Exit;
repeat
If(FindColor(x, y, WillowColorA, 1, 1, 600, 600))or
(FindColor(x, y, WillowColorB, 1, 1, 600, 600))or
(FindColor(x, y, WillowColorC, 1, 1, 600, 600))then
MMouse(x, y, 2, 2);
Mouse(x, y, 1, 1, true);
Wait(WaitTime+Random(480));
FindRandoms;
Wait(520);
AutoRespond;
until(InvFull)
Chopped := Chopped + 27
end;
Procedure Drop;
begin
if(Not(LoggedIn))then
Exit;
if(IsAxeOn=True)then
dropAllLogs;
if(IsAxeOn=False)then
DropTo(2, 28);
end;
Procedure ProgressReport;
begin
Writeln('############Atmmasters PowerCutter############');
Writeln('Worked For ' +TimeRunning );
Writeln('Chopped ' +IntToStr(Chopped) +' willows ');
Writeln('###########Atmmasters PowerCutter#############');
end;
begin
SetupSRL;
Declare_Players;
DisguiseScar('Windows Live Messenger');
repeat
FindRandoms;
AntiBanner;
AutoRespond;
Chop;
Drop;
Until(Chopped >= LogsToChop);
Writeln('Done your loads, logging in next player');
NextPlayer(True);
ProgressReport;
end.