Heysus
2009-03-04 19:44:42
<!– BEGIN TEMPLATE: formanswers –>
Heysus - SRL Member Application Form
Heysus
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
Other Communitys
How Long have You Played Runescape
4 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I started macroing in runescape a few years ago (before SRL). When I failed at leeching (I couldn't get the scripts to compile cuz I didn't have the includes…but I didn't know that then), I started making my own scripts. After getting a few characters banned, I quit. A few months ago I decided to start playing again. When I found out about SRL I started scripting again. I made a few scripts (mostly reflection), and now I'm applying for members.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
——————————————————
<!– END TEMPLATE: formanswers –>
Heysus - SRL Member Application Form
Heysus
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
Other Communitys
How Long have You Played Runescape
4 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I started macroing in runescape a few years ago (before SRL). When I failed at leeching (I couldn't get the scripts to compile cuz I didn't have the includes…but I didn't know that then), I started making my own scripts. After getting a few characters banned, I quit. A few months ago I decided to start playing again. When I found out about SRL I started scripting again. I made a few scripts (mostly reflection), and now I'm applying for members.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
{ EDGEVILLE CLAY SOFTENER BY HEYSUS }
Program ClaySoftener;
{.Include SRL\SRL\Misc\Smart.Scar}
{.Include SRL\SRL.Scar}
{.Include SRL\SRL\Misc\Users.scar}
var
Time, Timer, ReportType: integer;
BMP_BucketEmpty, BMP_BucketFull: integer;
DTM_Clay, DTM_SoftClay, DTM_Bankers: integer;
const
SRL_ID = '';
SRL_Password = '';
MinTime = 10; //Time per player (minutes)
MaxTime = 20;
Procedure PlayerReport;
var
i, Width: integer;
s: string;
begin
ClearReport;
AddToReport(' Name Active Clay Status');
for i:=0 to High(Players) do
begin
s := ' ' + Players[i].Name;
While Length(s) < 15 do
s := s + ' ';
case Players[i].Active of
True: s := s + 'True';
False: s := s + 'False';
end;
While Length(s) < 25 do
s := s + ' ';
s := s + IntToStr(Players[i].Integers[0]);
While Length(s) < 35 do
s := s + ' ';
s := s + Players[i].Strings[0];
if Length(s) > Width then
Width := Length(s);
ChangeReportWidth(Width*9 + 4);
AddToReport(s);
end;
end;
Procedure ProgressReport(s: string);
var
i, n: integer;
begin
if s <> '' then
Players[CurrentPlayer].strings[0] := s;
SendSRLReport;
for i:=0 to High(Players) do
IncEx(n, Players[i].integers[0]);
ClearDebug;
Writeln('Heysus Clay Softener');
Writeln('Total Clay Softened: ' + IntToStr(n));
Writeln(TimeRunning);
Writeln('');
Writeln('Current Player: ' + Players[CurrentPlayer].Name);
Writeln('Status: ' + Players[CurrentPlayer].strings[0]);
Writeln('Next Player In ' + IntToStr( (Time - TimeFromMark(Timer))/60000) + ' Minutes');
if IsFKeyDown(11) then
if GetApplication.Messagebox('Setting All Players to Active', 'Heysus Clay Softener', 1) = 1 then
for i:=0 to High(Players) do
Players[i].Active := true;
if IsFKeyDown(12) then
case ReportType of
0: ReportType := 1;
1: ReportType := 0;
end;
case ReportType of
0: SRLRandomsReport;
1: PlayerReport;
end;
end;
Procedure AntiRandom;
begin
if not LoggedIn then
exit;
FindNormalRandoms;
if FindFight then
RunAway('s', false, 1, RandomRange(15000, 30000));
end;
Procedure AntiBan;
var
T: integer;
Angle: Extended;
begin
if not LoggedIn then
exit;
case Random(750) of
0..2: HoverSkill('random',false);
3: BoredHuman;
4: SleepAndMoveMouse(250+random(250));
5..6: RandomRClick;
7..10: begin
T := GetCurrentTab;
GameTab(Random(15) + 1);
Wait(RandomRange(500, 2500));
if RBool = true then
MouseBox(MIX1, MIY1, MIX2, MIY2, 3);
Wait(RandomRange(500, 2500));
GameTab(T);
Wait(RandomRange(150, 250));
end;
11..12: begin
Angle := Rs_GetCompassAngleDegrees - 45 + Random(90);
MakeCompass(IntToStr(Round(Angle)));
end;
end;
end;
Procedure Fail(s: string);
begin
Players[CurrentPlayer].Active := false;
ProgressReport(s);
if BankScreen then
CloseBank;
Logout;
end;
Function WalkToWell: boolean;
var
x, y, r: integer;
Angle: extended;
P: TPoint;
TPA: TPointArray;
s: string;
begin
Result := false;
if not LoggedIn then
exit;
if Random(4) = 0 then
if GetMMLevels('energy', s) > 25 then
SetRun(true);
for r:=1 to 5 do
begin
if not LoggedIn then
exit;
AntiRandom;
Angle := Rs_GetCompassAngleRadians;
SetArrayLength(TPA, 0);
if FindSymbol(x, y, 'cook') then
begin
x:= x + round(26*cos(Angle) - -12*sin(Angle));
y:= y + round(26*sin(Angle) + -12*cos(Angle));
SetArrayLength(TPA, GetArrayLength(TPA) + 1);
TPA[High(TPA)] := Point(x, y);
end;
if FindSymbol(x, y, 'store') then
begin
x:= x + round(22*cos(Angle) - 40*sin(Angle));
y:= y + round(22*sin(Angle) + 40*cos(Angle));
SetArrayLength(TPA, GetArrayLength(TPA) + 1);
TPA[High(TPA)] := Point(x, y);
end;
if FindSymbol(x, y, 'furnace') then
begin
x:= x + round(-75*cos(Angle) - 8*sin(Angle));
y:= y + round(-75*sin(Angle) + 8*cos(Angle));
SetArrayLength(TPA, GetArrayLength(TPA) + 1);
TPA[High(TPA)] := Point(x, y);
end;
if FindSymbol(x, y, 'tree') then
begin
x:= x + round(60*sin(Angle));
y:= y - round(60*cos(Angle));
SetArrayLength(TPA, GetArrayLength(TPA) + 1);
TPA[High(TPA)] := Point(x, y);
end;
x := 0;
y := 0;
if FindDTMRotated(DTM_Bankers, x, y, MMX1, MMY1, MMX2, MMY2, Angle - Radians(30), Angle + Radians(30), 0.05, Angle) then
begin
x:= x + round(-30*cos(Angle) - -24*sin(Angle));
y:= y + round(-30*sin(Angle) + -24*cos(Angle));
end;
if GetArrayLength(TPA) > 0 then
begin
P := MiddleTPA(TPA);
if Distance(x, y, P.x, P.y) > 20 then
begin
x := P.x;
y := P.y;
end;
end;
if Rs_OnMinimap(x, y) then
begin
if Distance(x, y, MMCX, MMCY) > 10 then
begin
Mouse(x, y, 3, 3, true);
FFlag(0);
Wait(RandomRange(200, 300));
end;
Result := true;
Players[CurrentPlayer].Loc := 'Well';
exit;
end;
end;
Fail('Failed To Find Well');
end;
Function WalkToBank: boolean;
var
x, y, r: integer;
Angle: extended;
s: string;
P: TPoint;
TPA: TPointArray;
begin
Result := false;
if not LoggedIn then
exit;
if Random(4) = 0 then
if GetMMLevels('energy', s) > 25 then
SetRun(true);
for r:=1 to 5 do
begin
if not LoggedIn then
exit;
AntiRandom;
Angle := Rs_GetCompassAngleRadians;
SetArrayLength(TPA, 0);
if FindSymbol(x, y, 'cook') then
begin
x:= x + round(60*cos(Angle) - 12*sin(Angle));
y:= y + round(60*sin(Angle) + 12*cos(Angle));
SetArrayLength(TPA, GetArrayLength(TPA) + 1);
TPA[High(TPA)] := Point(x, y);
end;
if FindSymbol(x, y, 'store') then
begin
x:= x + round(50*cos(Angle) - 70*sin(Angle));
y:= y + round(50*sin(Angle) + 70*cos(Angle));
SetArrayLength(TPA, GetArrayLength(TPA) + 1);
TPA[High(TPA)] := Point(x, y);
end;
if FindSymbol(x, y, 'furnace') then
begin
x:= x + round(-50*cos(Angle) - 34*sin(Angle));
y:= y + round(-50*sin(Angle) + 34*cos(Angle));
SetArrayLength(TPA, GetArrayLength(TPA) + 1);
TPA[High(TPA)] := Point(x, y);
end;
if FindSymbol(x, y, 'tree') then
begin
x:= x + round(20*cos(Angle) - -40*sin(Angle));
y:= y + round(20*sin(Angle) + -40*cos(Angle));
SetArrayLength(TPA, GetArrayLength(TPA) + 1);
TPA[High(TPA)] := Point(x, y);
end;
x := 0;
y := 0;
if FindDTMRotated(DTM_Bankers, x, y, MMX1, MMY1, MMX2, MMY2, Angle - Radians(30), Angle + Radians(30), 0.05, Angle) then
begin
x:= x + round(-8*cos(Angle) - 18*sin(Angle));
y:= y + round(-8*sin(Angle) + 18*cos(Angle));
end;
if GetArrayLength(TPA) > 0 then
begin
P := MiddleTPA(TPA);
if Distance(x, y, P.x, P.y) > 20 then
begin
x := P.x;
y := P.y;
end;
end;
if Rs_OnMinimap(x, y) then
begin
if Distance(x, y, MMCX, MMCY) > 10 then
begin
Mouse(x, y, 3, 3, true);
FFlag(0);
Wait(RandomRange(200, 300));
end;
Result := true;
Players[CurrentPlayer].Loc := 'Bank';
exit;
end;
end;
Fail('Failed To Find Bank');
end;
Function ClickWell: boolean;
var
x, y, i, r: integer;
Colors: TIntegerArray;
P: TPoint;
TPA, Well: TPointArray;
ATPA: T2DPointArray;
begin
if not LoggedIn then
exit;
Result := false;
Colors := [2966350, 4482166, 3098194, //wood
8753039, 2105890]; //stone
While r < 5 do
begin
Inc(r);
SetLength(Well, 0)
AntiRandom;
FFlag(0);
for i:=0 to High(Colors) do
begin
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Colors[i], MSX1, MSY1, MSX2, MSY2, 10);
Well := CombineTPA(Well, TPA);
end;
if GetArrayLength(Well) = 0 then
continue;
ATPA := TPAToATPAEx(Well, 75, 85);
SortATPAFrom(ATPA, Point(MSCX, MSCY));
SetLength(Well, 0);
for i:=0 to High(ATPA) do
begin
if not InRange(GetArrayLength(ATPA[i]), 1600 - r*200, 2200) then
continue;
P := MiddleTPA(ATPA[i]);
MMouse(P.x, P.y, 5, 5);
Wait(RandomRange(100, 150));
if IsUpText('ell') then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, true);
Result := true;
exit;
end;
end;
if not InRange(Round(FixD(Rs_GetCompassAngleDegrees + 20)), 0, 40) then
MakeCompass(IntToStr(RandomRange(-20, 20)));
SetAngle(true);
end;
Fail('Failed To Click Well');
end;
Procedure FillBuckets;
var
x, y, t: integer;
begin
if not LoggedIn then
exit;
GameTab(4);
if CountItemsIn('inv', 'bmp', BMP_BucketFull, [25]) > 0 then
exit;
if not FindBitmapToleranceIn(BMP_BucketEmpty, x, y, MIX1, MIY1, MIX2, MIY2, 25) then
exit;
AntiRandom;
ProgressReport('Filling Buckets');
if not WalkToWell then
exit;
if not (IsUpText('ucket') and IsUpText('->')) then
begin
if IsUpText('->') then
MouseBox(MIX1, MIY1, MIX2, MIY2, 0);
Mouse(x, y, 5, 5, true);
Wait(RandomRange(50, 100));
end;
if not ClickWell then
exit;
FFlag(0);
MarkTime(t);
While TimeFromMark(t) < 20000 do
begin
Wait(100);
AntiRandom;
AntiBan;
if CountItemsIn('inv', 'bmp', BMP_BucketEmpty, [25]) <= 1 then
break;
end;
Wait(RandomRange(50, 150));
end;
Procedure SoftenClay;
var
x, y, t: integer;
B, C: TPoint;
begin
if not LoggedIn then
exit;
AntiRandom;
GameTab(4);
if not FindBitmapToleranceIn(BMP_BucketFull, B.x, B.y, MIX1, MIY1, MIX2, MIY2, 25) then
exit;
if not FindDTM(DTM_Clay, C.x, C.y, MIX1, MIY1, MIX2, MIY2) then
exit;
ProgressReport('Softening Clay');
if not FindText(x, y, 'oft', NPCChars, MCX1, MCY1, MCX2, MCY2) then
begin
case Random(2) of
0: begin
Mouse(B.x, B.y, 5, 5, true);
Wait(RandomRange(50, 100));
Mouse(C.x, C.y, 5, 5, true);
end;
1: begin
Mouse(C.x, C.y, 5, 5, true);
Wait(RandomRange(50, 100));
Mouse(B.x, B.y, 5, 5, true);
end;
end;
end;
if (CountItemsIn('inv', 'dtm', DTM_Clay, [0]) > 1) and
(CountItemsIn('inv', 'bmp', BMP_BucketFull, [25]) > 1) then
begin
MarkTime(t);
While not FindText(x, y, 'oft', NPCChars, MCX1, MCY1, MCX2, MCY2) do
begin
Wait(100);
AntiRandom;
if TimeFromMark(t) > 3000 then
exit;
end;
Wait(RandomRange(250, 400));
Mouse(256, 413, 5, 5, false);
Wait(RandomRange(80, 140));
if ChooseOption('ll') then
begin
MarkTime(t);
While TimeFromMark(t) < 20000 do
begin
Wait(100);
AntiRandom;
AntiBan;
if not FindBitmapToleranceIn(BMP_BucketFull, x, y, MIX1, MIY1, MIX2, MIY2, 25) then
break;
if not FindDTM(DTM_Clay, x, y, MIX1, MIY1, MIX2, MIY2) then
break;
end;
end;
end;
end;
Function OpenBankTPA: boolean;
var
x, y, i, t, r: integer;
P: TPoint;
TPA: TPointArray;
Booth: T2DPointArray;
begin
Result := false;
if not LoggedIn then
exit;
While r < 5 do
begin
Inc(r);
FFlag(0);
AntiRandom;
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3230295, MSX1, MSY1, MSX2, MSY2, 15);
Booth := TPAToATPAEx(TPA, 20, 20);
for i:=0 to High(Booth) do
begin
if not InRange(GetArrayLength(Booth[i]), 200, 350) then
continue;
P := MiddleTPA(Booth[i]);
if not FindColorSpiralTolerance(x, y, 5029330, P.x - 40, P.y - 40, P.x + 40, P.y + 40, 15) then
continue;
if Distance(x, y, P.x, P.y) > 40 then
continue;
MMouse(P.x, P.y, 5, 5);
Wait(RandomRange(100, 150));
if not IsUpText('ooth') then
continue;
GetMousePos(x, y);
Mouse(x, y, 0, 0, false);
Wait(RandomRange(80, 140));
if ChooseOptionMulti(['e-q', 'uick']) then
begin
Result := true;
FFlag(0);
MarkTime(t);
While TimeFromMark(t) < 10000 do
begin
Wait(100);
AntiRandom;
if BankScreen then
exit;
end;
end;
end;
end;
Fail('Failed To Open Bank');
Result := false;
end;
Procedure Bank;
var
a, b, t, x, y: integer;
begin
if not LoggedIn then
exit;
ProgressReport('Banking');
if not BankScreen then
begin
if not WalkToBank then
exit;
if not OpenBankTPA then
exit;
end;
a := CountItemsIn('inv', 'dtm', DTM_Clay, [0]) + CountItemsIn('inv', 'dtm', DTM_SoftClay, [0]);
b := CountItemsIn('inv', 'bmp', BMP_BucketEmpty, [25]) + CountItemsIn('inv', 'bmp', BMP_BucketFull, [25]);
if InvCount > a + b then
begin
a := CountItemsIn('inv', 'dtm', DTM_SoftClay, [0]);
IncEx(Players[CurrentPlayer].Integers[0], a);
IncEx(ReportVars[0], a);
DepositAll;
Wait(RandomRange(1000, 1500));
a := CountItemsIn('inv', 'dtm', DTM_Clay, [0]) + CountItemsIn('inv', 'dtm', DTM_SoftClay, [0]);
b := CountItemsIn('inv', 'bmp', BMP_BucketEmpty, [25]) + CountItemsIn('inv', 'bmp', BMP_BucketFull, [25]);
end;
MarkTime(t);
While b <> 14 do
begin
if b > 14 then
begin
DepositAll;
Wait(RandomRange(1000, 1500));
b := CountItemsIn('inv', 'bmp', BMP_BucketEmpty, [25]) + CountItemsIn('inv', 'bmp', BMP_BucketFull, [25]);
end;
if b < 14 then
begin
if FindBitmapToleranceIn(BMP_BucketEmpty, x, y, MSX1, MSY1, MSX2, MSY2, 25) or
FindBitmapToleranceIn(BMP_BucketFull, x, y, MSX1, MSY1, MSX2, MSY2, 25) then
begin
Mouse(x, y, 5, 5, false);
Wait(RandomRange(80, 140));
ChooseOption('X');
Wait(RandomRange(1750, 2500));
Typesend(IntToStr(14-b));
Wait(RandomRange(1000, 1500));
b := CountItemsIn('inv', 'bmp', BMP_BucketEmpty, [25]) + CountItemsIn('inv', 'bmp', BMP_BucketFull, [25]);
end;
end;
if TimeFromMark(t) > 20000 then
begin
Fail('Failed to Withdraw Buckets');
exit;
end;
end;
if FindDTM(DTM_SoftClay, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
a := CountItemsIn('inv', 'dtm', DTM_SoftClay, [0]);
IncEx(Players[CurrentPlayer].Integers[0], a);
IncEx(ReportVars[0], a);
ProgressReport('');
Mouse(x, y, 5, 5, false);
Wait(RandomRange(80, 140));
ChooseOption('All');
Wait(RandomRange(80, 140));
end;
if FindDTM(DTM_Clay, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(x, y, 5, 5, false);
Wait(RandomRange(80, 140));
ChooseOption('All');
Wait(RandomRange(450, 650));
end else
Fail('No More Clay');
CloseBank;
end;
Procedure MainLoop;
begin
if CountItemsIn('inv', 'dtm', DTM_Clay, [0]) > 0 then
begin
if CountItemsIn('inv', 'bmp', BMP_BucketFull, [25]) > 0 then
begin
SoftenClay;
case Players[CurrentPlayer].Loc of
'Well': FillBuckets;
'Bank': Bank;
end;
end else
FillBuckets;
end else
Bank;
AntiRandom;
ProgressReport('');
end;
Procedure Next_Player;
begin
if BankScreen then
CloseBank;
if LoggedIn then
Logout;
if Players[CurrentPlayer].Active = true then
ProgressReport('Logged Out');
SetAudioOff;
RandomNextPlayer(Players[CurrentPlayer].Active);
ProgressReport('Logged In');
SetAngle(true);
Time := RandomRange(MinTime*60000, MaxTime*60000);
MarkTime(Timer);
AntiRandom;
end;
Procedure Setup;
var
i: integer;
begin
SetupSRL;
SRLPlayerForm(True, [], [], [], []);
for i:=0 to High(Players) do
Players[i].Strings[0] := 'Logged Out';
ReportType := 1;
ProgressReport('');
SMARTSetupEx(121, False, True, False);
Wait(1000);
SetTargetDC(SmartGetDC);
BMP_BucketEmpty:= SRL_GetBitmap(96);
BMP_BucketFull:= SRL_GetBitmap(97);
DTM_Clay := DTMFromString('78DA632C65646068674001F5391E0CFC409A1' +
'1CA6704A9E96340038CA86A7281AC4E026A0A81AC36026A2A8850' +
'53056475115043C0CDFF8100002C5A0CA5');
DTM_SoftClay := DTMFromString('78DA630C646260606664400679C17C0C5C401' +
'A26CAE80F54C385AAA62C921F554D28500D27AA9AAC005E543551' +
'9876F95973A1AA0902AAF98FA28421D507CD1C6FA01A1654738AC' +
'2106EFE0F040062260BF9');
DTM_Bankers := DTMFromString('78DA639CCEC4C0D0C88002DEBE7BC190F49D8' +
'D8111C8FE0F048C0B806ADA2172CC50357FFE30816946289F710E' +
'90DF4D849AC944A899835F0D005D6315F4');
ScriptID := '1088';
SRLid:= SRL_Id;
SRLpassword:= SRL_Password;
SRL_Procs[0] := @AntiRandom;
end;
begin
Setup;
repeat
Next_Player;
repeat
MainLoop;
if not LoggedIn then
break;
if Players[CurrentPlayer].Active = false then
break;
until(TimeFromMark(Timer) > Time);
until(false);
end.
——————————————————
<!– END TEMPLATE: formanswers –>