SCAR Code:
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
{/ \}
{/ Simple PowerCutter v0.3b \}
{/ \}
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
{/ \}
{/ # ScriptName = Simple PowerCutter \}
{/ # Author = NinjaTerrorist \}
{/ # Description = Simple powercutter for all f2p trees. \}
{/ # Version = v0.3b \}
{/ # Date = January 29, 2007 \}
{/ # Comments = Start where trees are. \}
{/ # Contact = [email]NinjaTerrorist@Gmail.com[/email] \}
{/ \}
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
{/ Script by NinjaTerrorist, like it and/or use it? Please leave \}
{/ a comment on my thread. \}
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
program SimplePowerCutter;
{.include SRL/SRL.scar}
{.include SRL/SRL/SKILL/Woodcutting.scar}
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
var
Choped, Tol, Responded : Integer;
Loads, Loggs : Integer;
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
const
TreeColor = 3553336; { - Ctrl+P to pick the color. - }
TreeName = 'Tree'; { - e.g Willow must be a string. - }
UsingAxe = False; { - Is your axe equiped? - }
Load = 100; { - Loads todo. Each player. - }
LogOutT = 5; { - Minutes to stay logged out for. - }
PanicKey = 12; { - 1 = F1, 2 = F2 ect. - }
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
CurrentPlayer:= 0;
NumberOfPlayers(HowManyPlayers);
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
{Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Active := True;
Players[2].Name := ''; // Remove comments if you are
Players[2].Pass := ''; // using more than one player.
Players[2].Nick := '';
Players[2].Active := True;
Players[3].Name := '';
Players[3].Pass := '';
Players[3].Nick := '';
Players[3].Active := True;}
end;
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
procedure CheckName;
begin
if(TreeName = '')then
begin
WriteLn('Invalid tree name..');
TerminateScript;
end;
if(TreeColor = )then
begin
WriteLn('Invalid tree color..');
TerminateScript;
end;
end;
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
procedure Setup;
begin
if(not(LoggedIn))then
begin
LoginPlayer;
Loggs := Loggs+1;
WriteLn('Logged player in.');
end;
if(LoggedIn)then
begin
SetupSRL;
ActivateClient;
MakeCompass('N');
HighestAngle;
FixChat;
WriteLn('Script started at: '+(TheTime));
FindAxeHeadColor;
Tol := 11;
Loads := 0;
end;
end;
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
procedure AutoRespond;
var
TalkBack : array [1..5] of string;
begin
OldLine := TheLine;
TheName := Lowercase(Trim(GetTextAtEx(20, 415, 45, SmallChars, False, False, 0, 2, 0, 40, True, tr_NormalChars)));
TheLine := Lowercase(Trim(GetTextAtEx(20, 415, 45, SmallChars, False, False, 0, 2, 16711680, 40, False, tr_NormalChars)));
NewLine := TheLine;
if(OldLine <> NewLine)then
begin
Exit;
end
if(pos('yo', TheName)<>0)or(pos(Players[CurrentPlayer].Nick, TheName) <> 0) then
begin
end
else
begin
repeat
if(InChatMulti('lol', 'lmao', 'rofl'))then
begin
TalkBack[1] := 'lol';
TalkBack[2] := 'lolz';
TalkBack[3] := 'lmao';
TalkBack[4] := 'rofl';
TalkBack[5] := 'rofl!!';
WriteLn('Responding to chat message.');
TypeSend(TalkBack[1+Random(5)]);
Responded := Responded+1;
end;
if(InChatMulti('hi', 'hey', 'sup'))then
begin
TalkBack[1] := 'hi';
TalkBack[2] := 'hey';
TalkBack[3] := 'sup';
TalkBack[4] := 'wassup?';
TalkBack[5] := 'who are you?';
WriteLn('Responding to chat message.');
TypeSend(TalkBack[1+Random(5)]);
Responded := Responded+1;
end;
if(InChatMulti('wc lvl', 'wc lvl?', 'woodcutting lvls?'))then
begin
TalkBack[1] := IntToStr(GetSkillLevel('Woodcutting'));
WriteLn('Responding to chat message.');
TypeSend(TalkBack[1]);
Responded := Responded+1;
end;
if(InChatMulti('****', '***', '**** you'))then
begin
TalkBack[1] := 'dont swear its naughty';
TalkBack[2] := 'didnt you mother teach you manners?';
WriteLn('Responding to chat message.');
TypeSend(TalkBack[1+Random(3)]);
Responded := Responded+1;
end;
if(not(LoggedIn))then
Break;
until(false);
end;
end;
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
procedure AntiStuff;
begin
FindNormalRandoms;
FindHead;
FindEnt(TreeColor);
AutoRespond;
if(FindFight)then
begin
RunAwayDirection('N');
Wait(4000+Random(2000));
RunBack;
end;
end;
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
procedure DropTheLogs;
begin
if(UsingAxe)
then
begin
DropAll;
end
else
begin
DropToPosition(2, 28);
end;
end;
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
procedure RandomizeClick;
begin
case Random(2) of
0 : PopUp2(x, y, 1, 1, 'Chop');
1 : Mouse(x, y, 1, 1, True);
end;
end;
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
procedure ChopTree;
begin
if(FindObj(x, y, TreeName, TreeColor, Tol))then
begin
MMouse(x, y, 2, 2);
Wait(200+Random(300));
end;
if(IsUpTextMulti('Cho', 'op dow', 'p down'))then
begin
RandomizeClick;
Choped := Choped+1;
Wait(3000+Random(3000));
end;
if(not(FindObj(x, y, TreeName, TreeColor, Tol)))then
begin
repeat
if(not(LoggedIn))then
begin
Break;
end;
LowestAngle;
Wait(2000+Random(3000));
WriteLn('Tree not found, increasing tolerance.');
Tol := Tol+2;
until(FindObj(x, y, TreeName, TreeColor, Tol))or
(Tol > 25)
end;
if(Tol > 25)then
begin
WriteLn('Maximum tolerance reached.. check your colors.');
NextPlayer(False);
Loggs := Logs+1;
end;
end;
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
procedure Report;
begin
WriteLn('');
WriteLn(' --------------------------------');
WriteLn(' Simple PowerChopper v0.12a ');
WriteLn(' --------------------------------');
WriteLn(' Logged in: '+IntToStr(Loggs)+' times.');
WriteLn(' Droped: '+IntToStr(Loads)+' loads.');
WriteLn(' Choped: '+IntToStr(Choped)+' logs.');
WriteLn(' Player: '+Players[CurrentPlayer].Name);
WriteLn(' ---------------------------------');
WriteLn('');
SRLRandomsReport;
end;
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
procedure MainLoop;
begin
repeat
AntiStuff;
ChopTree;
if(not(LoggedIn))then
begin
Break;
end;
until(InvFull)
DropTheLogs;
Loads := Loads+1;
Report;
if(LoggedIn)
and(Loads > Load)then
begin
LogOut;
Wait(LogOutT*60000);
NextPlayer(True);
Loggs := Logs+1;
end;
if(not(LoggedIn))
or(FindDead)
or(InBlack)then
begin
NextPlayer(False);
Loggs := Logs+1;
end
end;
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}
begin
DeclarePlayers;
Setup;
repeat
MainLoop;
until(IsFKeyDown(PanicKey))
WriteLn('Panic key pressed ending script..');
WriteLn('Script ended at: '+TheTime);
end.
{/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\}