SRL Archive - Archive

Heysus - SRL Member Application Form


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

{ 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 –>

mormonman

2009-03-04 19:50:22

Yes. Very nice use of symbols, and I love your TPAs!!!

Edit: sorry for voting… i forgot about the two weeks thing

Cazax

2009-03-04 19:58:48

Yes, nice use with symbols. One thing:
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));
[Read my next post]

The_Shermanator

2009-03-04 20:26:34

Yes, VERY good job.

-The_Shermanator :garfield:

noidea

2009-03-04 20:37:08

No. Get a life bitch. Or am I kidding?

Rubix

2009-03-04 21:24:54

Yes, <3 you're use of Symbols

Tniffoc

2009-03-04 21:30:30

I've seen what you've written before.. don't need to look at app script.. yes.

EDIT: I think I'm the only un-cupped mem…

NCDS

2009-03-04 21:55:30

Definite Yes.


@Tniffoc, Same here.

markuska815

2009-03-04 22:38:56

Yes. Great use of TPA's and innovative use of symbols.

Sir R. M8gic1an

2009-03-05 02:29:36

That is one big fat yes for you.

Tniffoc, stop whinning.

~RM

Dervish

2009-03-05 04:10:43

Yes.

95/100.

Don't ask why -.-.

Gu3st...

2009-03-05 06:31:04

Oh, my.. A big PINK YES FOR YOU :)

Naike

2009-03-05 09:59:52

Yes, Nicely done.

Naum

2009-03-05 11:22:02

Yes, just a few ways of shortening,

1) An else statement

      case Players[CurrentPlayer].Loc of
'Well': FillBuckets;
'Bank': Bank;
end;

to:

If Players[CurrentPlayer].Loc = 'Well' Then
FillBuckets
Else
Bank;

2)You could have used arrays for your DTM's and bitmaps.

Thats all I could find, and your very consistant. Good Work!

ShowerThoughts

2009-03-05 12:13:43

God, impressive I have learned some stuff about sin cos and tan at school, and I am understanding some stuff of your symbol shizzle, might can you explain to me someday ;)

Yes.

Torrent of Flame

2009-03-05 12:19:26

From: Dr D. Dervish
Yes.

95/100.

Don't ask why -.-.



Lemme Guess! Personal Preference?

I think you should break down your scores. Seriousley.

Yes! The sin/cos shit is amazing, to be honest..

Sir R. M8gic1an

2009-03-05 16:34:13

From: Cazax
Yes, nice use with symbols. One thing:
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));
If you are searching in spiral, there is no need to sort them again. You should use normal search because they cost you few milliseconds, and it's useless to do that.



actually, it is necessary to sort it again. Any splitting method will make the ATPA be in a different order, no matter what the tpa looked like.

So it should have just been FindColorsTolerance instead of spiral with the ATPA sorting in it.

~RM

Cazax

2009-03-05 16:54:55

@RM: I confused things while I was editing my post. I was saying that it's useless to use spiral search if then he sorts the points, it'd better to use FindColorsTolerance. Forget what I said…

lordsaturn

2009-03-05 23:14:00

From: Rasta Magician
actually, it is necessary to sort it again. Any splitting method will make the ATPA be in a different order, no matter what the tpa looked like.

So it should have just been FindColorsTolerance instead of spiral with the ATPA sorting in it.

~RM


I'm almost 100% positive that the order of the ATPA is determined by distance from the first point. Either way, it would probably be best to sort again.

Back on topic, good job Heysus.

case Random(750) of
Maybe antiban a little more often?

if Random(4) = 0 then
if GetMMLevels('energy', s) > 25 then
SetRun(true);
Why would you not want to always have run set if > 25%?
Good job with the symbol walking.
Yes.

NiCbaZ

2009-03-06 00:50:55

From: NaumanAkhlaQ
Yes, just a few ways of shortening,

1) An else statement

      case Players[CurrentPlayer].Loc of
'Well': FillBuckets;
'Bank': Bank;
end;

to:

If Players[CurrentPlayer].Loc = 'Well' Then
FillBuckets
Else
Bank;

2)You could have used arrays for your DTM's and bitmaps.

Thats all I could find, and your very consistant. Good Work!


Thats no shorter?


Love your use of loops, while etc , like your sin,con math, good use of TPA's

Yes.

Naum

2009-03-06 12:52:34

Yes it is a Line shorter ;).

Dervish

2009-03-06 16:51:22

No, I'm sorry, it isn't Nauman…

Scaper

2009-03-06 17:12:08

yes nicely done m8 i like

n3ss3s

2009-03-06 17:22:35


Yes! The sin/cos shit is amazing, to be honest..


It rotates a point by the way. Good job at doing it, bad job at not using WizzyPlugin's RotatePoint to do it.

Heysus

2009-03-06 18:41:43

From: n3ss3s
It rotates a point by the way. Good job at doing it, bad job at not using WizzyPlugin's RotatePoint to do it.


:eek: I never knew about that…it's not listed in misc/WizzyPlugin.scar?

Cazax

2009-03-06 18:49:08

From: lordsaturn
I'm almost 100% positive that the order of the ATPA is determined by distance from the first point. Either way, it would probably be best to sort again.

No, it won't, it'll always start from the first point.

Sir R. M8gic1an

2009-03-06 19:27:34

Damn it heysus, you beat my app :/ it was only 19-1 :p

anyway, you'll probably get in very soon.

~RM

noidea

2009-03-06 19:31:49

Mine was 20-0.

Hobbit

2009-03-08 03:13:06

I think we've seen enough ;)

Welcome :)