SCAR Code:
program HeavenzeyezFirstScript;
{.include SRL/SRL/Misc/Smart.scar}
{.include srl/srl.scar}
{.include srl/srl/skill/woodcutting.scar}
{.include srl/srl/misc/trade.scar}
var
LogsDropped, BrokenAxes,
TradesMade, PlayerTime, RPlayerTime,
MadeRespond, dtmaxe, loads: integer;
First: boolean;
{Heaven'z Powercutter v 0.9
*Cuts any f2p tree*
*Drops logs*
*Has multiplayers*
*antirandoms/antiban*
*Entfinder + avoider*
*Autoresponder*
*Autotrader*
*Use on your own resonse*
*Start logged out*
*Post proggies*
*Use Scar 3.14 SRL4 Rev12*
*Includes SMART*}
const
YourSRLId = '';
YourSRLPassword = '';
TimeForPlayer = 999999999999; // Time for Each Player In Minutes(Random 5 minutes will be added).
TreeToChop = 'willow'; // tree,oak,all(finds any tree),yew or willow.
World = 128; //Wich world to start S.m.a.r.t in?
procedure DeclarePlayers;
begin
CurrentPlayer := 0;
NumberOfPlayers(1);
Players[0].Name := 'username'; //your username between ''
Players[0].Pass := 'password'; //you password between''
Players[0].Nick := 'ser'; //nickname from you username between'' example 'ser'
Players[0].Active := True; //active->true or false.
{ Players[1].Name := 'username';
Players[1].Pass := 'password';
Players[1].Nick := 'ser';
Players[1].Active := True;
Players[2].Name := 'username';
Players[2].Pass := 'passowrd';
Players[2].Nick := 'ser';
Players[2].Active := True;}
end;
procedure FindRandoms;
begin
FindNormalRandoms;
if (Findfight) then
begin
RunAway('n', false, 1, 10000 + random(5000));
ftwait(20 + random(10));
end;
end;
procedure Sig;
begin
cleardebug;
writeln(' Hello!');
wait(1000 + random(1001));
writeln(' My Powercutter,');
wait(1000 + random(1001));
writeln(' Brought to you by Heavenzeyez1:) ,');
wait(1000 + random(1001));
writeln(' Hope U''re going to like it. :)');
wait(3000 + random(1001));
writeln(' _ _ ')
writeln('( ) ( ) ')
writeln('| |_| | __ _ _ _ _ __ __ ____ ')
writeln('| _ | / __`\ / _` )( ) ( ) / __`\/ _ `\ (_ ,) ')
writeln('| | | |( ___/( (_| || \_/ |( ___/| ( ) | / /_ ')
writeln('(_) (_)`\____)`\__,_)`\___/ `\____)(_) (_) (____) ')
Wait(1000);
writeln(' ___ ___ _ _ ')
writeln('( _`\ ( _`\ ( )_ ( )_ ')
writeln('| |_) ) _ _ _ _ __ _ __ | ( (_) _ _ | ,_)| ,_) __ _ __ ')
writeln('| ,__/ / _`\ ( ) ( ) ( ) / __`\( __)| | _ ( ) ( )| | | | / __`\( __) ')
writeln('| | ( (_) )| \_/ \_/ |( ___/| | | (_( )| (_) || |_ | |_ ( ___/| | ')
writeln('(_) `\___/ `\___x___/ `\____)(_) (____/ `\___/ `\__)`\__)`\____)(_) ')
Wait(3000);
end;
var
Axecolor: integer;
function searchaxe1: boolean;
var
x, y, dtmaxe: integer;
begin
if (not (loggedin)) then exit;
dtmAxe := DTMFromString('78DA63DCCDC4C0B09791011974660831FC07D' +
'220D1FF40C07800A86623AA1A882C8C04D23B806A4E1150B30DA8' +
'E6380135BB806A761150B39708F7EC07AAD9815F0D00F3891069');
begin
gametab(4);
wait(500 + random(501));
if finddtm(dtmAxe, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
result := true;
writeln('axe in bag.');
Freedtm(dtmaxe);
end
else
begin
dtmAxe := DTMFromString('78DA63DCCDC4C0B09791011974660831FC07D' +
'220D1FF40C07800A86623AA1A882C8C04D23B806A4E1150B30DA8' +
'E6380135BB806A761150B39708F7EC07AAD9815F0D00F3891069');
begin
if (not (finddtm(dtmaxe, x, y, MIX1, MIY1, MIX2, MIY2))) then
result := false;
writeln('axe not in bag.');
freedtm(dtmaxe);
end;
end;
end;
end;
function searchaxe2: boolean;
var
x, y, dtmaxe: integer;
begin
if (not (loggedin)) then exit;
dtmAxe := DTMFromString('78DA63DCCDC4C0B09791011974660831FC07D' +
'220D1FF40C07800A86623AA1A882C8C04D23B806A4E1150B30DA8' +
'E6380135BB806A761150B39708F7EC07AAD9815F0D00F3891069');
begin
gametab(5);
wait(500 + random(501));
if finddtm(dtmAxe, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
result := true;
writeln('axe wielded.');
end
else
begin
dtmAxe := DTMFromString('78DA63DCCDC4C0B09791011974660831FC07D' +
'220D1FF40C07800A86623AA1A882C8C04D23B806A4E1150B30DA8' +
'E6380135BB806A761150B39708F7EC07AAD9815F0D00F3891069');
begin
if (not (finddtm(dtmaxe, x, y, MIX1, MIY1, MIX2, MIY2))) then
result := false;
writeln('axe not wielded.');
end;
end;
end;
freedtm(dtmaxe);
Freedtm(dtmaxe);
end;
procedure check4axe;
begin
if not (loggedin) then exit;
if not (searchaxe1) and not (searchaxe2) then
begin
Logout;
writeln('didn''t find any axe.')
end
else
begin
writeln('All clear got axes.');
end;
end;
function CheckIfAxeIsBroken: boolean;
var
x, y, BrokenAxeDTM: Integer;
begin
BrokenAxeDTM := DTMFromString('78DA636C616260E0636440061D697C601A26C' +
'AD80354C38FAA06260B57D30754C34D404D2F508D080135CD4035' +
'5C04D4D400D5A8E05703008C0604B4');
GameTab(4);
Wait(200 + random(100));
if FindDTM(BrokenAxeDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
result := True;
Logout;
end
else
Result := false;
FreeDTM(BrokenAxeDTM);
end;
function FindTree(var x, y: Integer; Treetype: string; Click: Boolean): Boolean; //by Negaal
var
TPA: TpointArray;
ATPA: array of TPointArray;
MSCPoint: Tpoint;
i, CTS, Color: integer;
Uptext: string;
begin
x := mscx;
y := mscy;
MSCPoint.x := mscy;
MSCPoint.y := mscy;
Color := 2966339;
case lowercase(TreeType) of
'tree', 'usual': Uptext := 'Tree';
'oak': UpText := 'Oak';
'willow': UpText := 'illo';
'yew': UpText := 'Yew';
'all': uptext := 'hop d';
end;
CTS := GetColorToleRanceSpeed;
ColorToleranceSpeed(2);
SetColorspeed2Modifiers(0.3, 0.3);
FindColorsSpiralTolerance(x, y, TPA, Color, msx1, msy1, msx2, msy2, 10)
ColorToleranceSpeed(CTS);
SetColorspeed2Modifiers(0.2, 0.2);
if Length(TPA) >= 30 then
begin
ATPA := SplitTPA(TPA, 10);
SortATPAFrom(ATPA, MSCPoint);
for i := 0 to High(ATPA) do
if Length(ATPA[i]) >= 30 then
begin
MiddleTPAEx(ATPA[i], x, y);
if not Click then
begin
Result := True;
Exit;
end;
MMouse(x - 10, y - 10, 21, 21);
Wait(100 + random(100));
if IsUpText(UpText) then
begin
Result := True;
Getmousepos(x, y);
Exit;
end;
end;
end;
end;
function Check4Tree: boolean;
var
x, y: integer;
begin
if not (loggedin) then exit;
if findtree(x, y, treetochop, true) then
begin
result := true;
writeln('tree found.')
end
else
begin
if not (findtree(x, y, treetochop, true)) then
begin
writeln('didn''t find tree, going to look for it.');
wait(7500 + random(2500));
if not (findtree(x, y, treetochop, true)) then
writeln('still didn''t find it.');
wait(7500 + random(2500));
if not (findtree(x, y, treetochop, true)) then
writeln('OMFG!, get urself to the trees!!!');
result := false;
end;
end;
end;
procedure AutoResponder;
var
WcText: array of string;
i: integer;
begin
SetArrayLength(WcText, 3);
WcText[0] := 'wc';
WcText[1] := 'lvl';
WcText[2] := 'wc lvl';
for I := 0 to 2 do
if Inchat(WcText[i]) then
begin
Typesend('My wc lvl is ' + inttostr(GetSkillInfo('woodcutting', false)));
MadeRespond := MadeRespond + 1;
Break;
end;
end;
procedure AutoTrader;
begin
if (SomeoneTrades) then
begin
AcceptTrade;
Wait(4000 + random(1000));
Decline;
Trades := Trades + 1;
case random(10) of
0: Typesend('Maybe later.');
1: Typesend('No thanks, my friend.');
2: Typesend('Nvm.');
3: Typesend('I never needed that.');
4: Typesend('Thanks for offering.');
5: Typesend('You are so cool with your things.');
6: Typesend('Go and sell these to some1 else.');
7: Typesend('Sorry I already have it.');
8: Typesend('Leave me alone.');
9: Typesend('Nice.');
end;
end;
end;
procedure HoverToSkill;
begin
if (not (LoggedIn)) then exit;
case Random(50) of
0: HoverSkill('Woodcutting', false);
1: HoverSkill('Mining', false);
2: HoverSkill('Runecrafting', false);
3: HoverSkill('Magic', false);
4: HoverSkill('Smithing', false);
5: HoverSkill('Strenght', false);
6: HoverSkill('Attack', false);
7: HoverSkill('Defence', false);
8: HoverSkill('Hitpoints', false);
9: HoverSkill('Firemaking', false);
10: HoverSkill('Crafting', false);
end;
end;
procedure DropLogs;
var
i, logdtm, x, y: integer;
begin
if (not (LoggedIn)) then Exit;
if (not (InvFull)) then Exit;
FindRandoms;
if searchaxe1 or searchaxe2 then
writeln('Beginning to drop logs.');
repeat
logdtm := DTMFromString('78DA63FCC4C4C0F09291011954C69A33FC07D' +
'220D1FF40C0F81CA8E61EAA1A882C8C04D23F816A6E1350F30FA8' +
'E60D01359F816A3E1050F30AA8E63301350F816ADE1250F314A8E' +
'6297E35005A7C14EE');
gametab(4);
if finddtm(logdtm, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Wait(200 + random(50));
Mouse(x, y, 2, 2, false);
wait(300 + random(51));
Chooseoption('rop');
Inc(reportvars[0]);
LogsDropped := LogsDropped + 1
FTWait(1);
begin
if not(finddtm(logdtm, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
for i := 2 to 28 do
begin
if ExistsItem(i) then
begin
MMouseItem(i);
wait(100 + random(50));
DropItem(i)
Wait(100 + Random(100));
Inc(reportvars[0]);
LogsDropped := LogsDropped + 1
FTWait(1);
end;
end;
end;
end;
end;
until not (finddtm(logdtm, x, y, MIX1, MIY1, MIX2, MIY2));
findrandoms;
Freedtm(logdtm);
Writeln('Sucesfully dropped whole inventory.');
Loads := Loads +1;
end;
procedure RandomTalk;
begin
if (not (loggedin)) then exit;
case Random(75) of
0: Typesend('We love chopping trees.');
1: Typesend('Hello.');
2: Typesend('Hello ppl.');
3: Typesend('Hello fellos.');
4: Typesend('I''m Woodcutting.');
5: Typesend('I''m so happy.');
6: Typesend('Do you know Fred?');
7: Typesend('Can i have yor logs?');
8: Typesend('I have extremly great marks at school.');
9: Typesend('Do you love Runescape?(i do)');
10: Typesend('Can you speak english?');
11: Typesend('My favourite color is red.'); //pane 12-30 ka sama rea peale
12: Typesend('I''m bored.');
13: Typesend('I''m tired.');
14: Typesend('I''m lazy.');
15: Typesend('My fingers hurt already.');
16: Typesend('I want to sleep!');
17: Typesend('I will must finish playing soon.');
18: Typesend('My father wants to get to the internet.');
19: Typesend('We love runescape.');
20: Typesend('WC lvl?');
21: Typesend('WC lvls?');
22: Typesend('Woodcuttin lvl?');
23: Typesend('Woodcutting lvls?');
24: Typesend('I want candy.');
25: Typesend('I ate candy last time 5 days ago.');
26: Typesend('I must go to shop.');
27: Typesend('My father is insener.');
28: Typesend('Do u beleave in ghosts?');
29: Typesend('Have u met Santa?');
30: FTWait(4);
end;
end;
procedure ChopLogs;
var
x, y, chopstart, entfound: integer;
begin
if not (check4tree) then logout;
repeat
if (not (LoggedIn)) then exit;
if InvCount = 28 then Exit;
FindRandoms;
AutoTrader;
AutoResponder;
Wait(500 + random(500));
if FindTree(x, y, treetochop, true) then
begin
Mouse(x, y, 0, 0, True);
Getmousepos(x, y); //annab scarile teada, kus hiir on.
FFlag(0); //enne ei tee midagi kuni lipp ära kaob.
MarkTime(chopstart); //märgib ära puu klikkamise aja. käivitab aja.
repeat //kui leiab puu, aga ei kliki, ja leiab ka endi
if FindEnt(x, y, True) then FindRandoms;
EntFound := EntFound + 1;
FindRandoms;
FTWait(1); //otsib viimaselt realt.
if FindBlackChatMessage('cutting level of') then break;
Wait(250);
if FindBlackChatMessage('have an axe') then
begin
break;
end;
FTWait(1);
until (not loggedIn) or (not isuptext('hop')) or (TimeFromMark(Chopstart) > (30000 + random(15000)));
end;
until (InvFull) and (InvCount = 28) or (not loggedIn);
end;
//invcount-> asjad palju invis on.
procedure ProgressReport;
begin
SrlRandomsReport;
writeln('========================');
Writeln('Heavens''s AutoChopper');
Writeln('Worked:' + timerunning);
Writeln('Dropped ' + inttostr(LogsDropped) + ' logs.');
Writeln('Dropped ' + inttostr(Loads) + ' loads.');
Writeln('Talked ' + inttostr(MadeRespond) + ' times to other ppl.');
Writeln('Made ' + inttostr(Trades) + ' trades.');
writeln('Please post proggies at my script homepage.');
writeln('========================');
end;
procedure AntiBan;
begin
if (not (LoggedIn)) then exit;
case random(20) of
0: SetRun(true);
1: wait2(3000 + random(2000), true);
2: RandomMovement;
3: AlmostLogout;
4: PickUpMouse;
5: BoredHuman;
6: HoverSkill('woodcutting', false);
7: HoverSkill('random', false);
8: RandomTalk;
9: HoverToSkill;
10: DoEmote(1 + random(30));
end;
end;
procedure Playersetup;
var
lvlcomment, wclvl: integer;
begin
Loginplayer;
Wait(2000 + random(1000));
SetAngle(true);
MakeCompass('n');
FindRandoms;
Setrun(true);
RPlayerTime := TimeForPlayer + Random(5);
MarkTime(PlayerTime);
First := True;
Check4axe;
if loggedIn then
begin
WcLvl := GetSkillInfo('woodcutting', false);
if wclvl > 0 then
Writeln('Wc lvl = ' + inttostr(wclvl))
else
begin
Writeln('Error with getting wc lvl.')
Logout;
end;
if LoggedIn then
for lvlcomment := 0 to 3 do
case lvlcomment of
0:
begin
if (wclvl > 0) and (wclvl < 15) then
Writeln('Uhh, you can''t even cut oaks with wc lvl of' + inttostr(wclvl));
end;
1:
begin
if (wclvl > 14) and (wclvl < 30) then
Writeln('Pretty nice WC, best for chopping oaks, or ' + inttostr(wclvl) + ' isn''t enough for you? =]');
end;
2:
begin
if (wclvl > 29) and (wclvl < 60) then
Writeln('Nice WC level,' + inttostr(60 - wclvl) + ' levels more and you''re ready for yews!');
end;
3:
begin
if (wclvl >= 60) then
Writeln('Dude, you ROCK!...Wow, ' + inttostr(wclvl) + ' WC!');
end;
end;
end;
end;
function SwitchPlayers: Boolean;
begin
if (TimeFromMark(playertime) / 60 / 1000 > RPlayerTime) then
begin
Result := True;
WriteLn('Time is up');
end
else
Result := False;
end;
begin
SmartSetupEx(World, False, False);
SetTargetDC(SmartGetDC);
SRLId := YourSRLId;
SRLPassword := YourSRLPassword;
SetupSRL;
ScriptID := '592'; //592 on mu scripti ID.
Declareplayers;
Sig;
repeat
PlayerSetup;
repeat
Disguise('Dropped ' + inttostr(LogsDropped) +' Logs');
ChopLogs;
Droplogs;
AntiBan;
ProgressReport;
until (not loggedin) or (SwitchPlayers);
Nextplayer(Loggedin);
until False;
end.