SRL Archive - Archive

TheVoiceInYourHead - SRL Member Application Form


TViYH

2008-11-07 16:19:34

<!– BEGIN TEMPLATE: formanswers –>
TheVoiceInYourHead - SRL Member Application Form
TheVoiceInYourHead

What is the meaning to life?


Where you Referred to SRL? If yes, by whom?
no


Programming Knowledge
GIMP xD, PHP, CSS, HTML, Some Java, VB

Other Communitys
RuneScape Cheating, ScuneRape, Sythe, Sp0rk

How Long have You Played Runescape
2 years

Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.

Hmmmm. I'm Alex. More details are in my 1000th post.

But. I currently have a 3.924/4.000 GPA in my first year of high school.

I'm educated, and yes, I argue. I try to prove my point. What's the point in having a point if you don't believe in it?

So anyways. I've been working for this SRL members since…a year ago. Lol.

And hopefully this script will help me. Thanks to Nicbaz and all the other people that helped me along the way.

——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted


{.Script Info:
# ScriptName = Banana Runner
# Author = TViYH
# Description = Picks bananas at Karamja
# Version = 1
# Date = Today
# Comments = Thanks to Nicbaz for help!
/Script Info}
program Naw;
{.include SRL\SRL.scar}

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
end;

var
BananasPicked, PlayersSwitched: Integer;

function FindKaramjaRoadColor: Integer;
var
R, G, B, MyColor, TestColor, i, c2: Integer;
H, S, L, X, Y, Z: Extended;
Colors: TPointArray;
C1: TIntegerArray;
begin
MyColor := 1276824;
FindColorsSpiralTolerance(MSCX, MSCY, Colors, MyColor, MMX1, MMY1, MMX2, MMY2, 5);
C1 := GetColors(Colors);
C2 := High(C1);
for i := 0 to C2 do
begin
if RS_OnMinimap(Colors[i].X, Colors[i].Y) then
begin
TestColor := GetColor(Colors[i].X, Colors[i].Y);
if SimilarColors(TestColor, MyColor, 15) then
begin
ColorToRGB(TestColor, R, G, B);
ColorToHSL(TestColor, H, S, L);
ColorToXYZ(TestColor, X, Y, Z);
if InRange(R - G, 9, 49) then
if InRange(R - B, 113, 153) then
if InRange(G - B, 84, 124) then
if InRange(Round(S) - Round(H), 50, 80) then
if InRange(Round(L) - Round(H), 6, 36) then
if InRange(Round(S) - Round(L), 27, 57) then
if InRange(Round(X) - Round(Y), - 8, 6) then
if InRange(Round(Y) - Round(Z), 10, 24) then
if GetColor(Colors[i].X + 2, Colors[i].Y + 2) = TestColor then
if GetColor(Colors[i].X + 1, Colors[i].Y + 1) = TestColor then
begin
Writeln('MyColor = ' + Inttostr(TestColor));
Result := TestColor;
Exit;
end;
end;
end;
end;
Writeln('Couldnt find My Color!');
Result := 0;
end;

function FirstStepDDTM: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 817;
dtmMainPoint.y := 242;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FindKaramjaRoadColor;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 817;
dtmSubPoints[0].y := 242;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FindKaramjaRoadColor;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 835;
dtmSubPoints[1].y := 241;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := FindKaramjaRoadColor;
dtmSubPoints[1].Tolerance := 5;

dtmSubPoints[2].x := 812;
dtmSubPoints[2].y := 246;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := FindKaramjaRoadColor;
dtmSubPoints[2].Tolerance := 5;

dtmSubPoints[3].x := 807;
dtmSubPoints[3].y := 240;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := FindKaramjaRoadColor;
dtmSubPoints[3].Tolerance := 5;

dtmSubPoints[4].x := 860;
dtmSubPoints[4].y := 251;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := FindKaramjaRoadColor;
dtmSubPoints[4].Tolerance := 5;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;

function WalkToBananas: boolean;
var
x, y: integer;
begin
if not LoggedIn then
Players[CurrentPlayer].Loc := 'Not Logged In';
if Players[CurrentPlayer].Loc = 'Not Logged In' then
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' not logged in at function WalkToBananas.');
Result := False;
NextPlayer(False);
Exit;
end;
if not RadialRoadWalk(FindKaramjaRoadColor, 245, 295, 48, 0, 0) then
begin
if not DTMRotated(FirstStepDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Result := False;
Players[CurrentPlayer].Loc := 'Lost Near Luthas';
WriteLn('Player ' + Players[CurrentPlayer].Name + ' ' + Players[CurrentPlayer].Loc);
NextPlayer(False);
Exit;
end
else
begin
Mouse(x, y, 3, 3, True);
Flag;
WriteLn('Used DDTM to find Above Pub');
Result := True;
Players[CurrentPlayer].Loc := 'Above Pub';
end;
end
else
begin
WriteLn('Used RRW to find Above Pub');
Flag;
Result := True;
Players[CurrentPlayer].Loc := 'Above Pub';
end;
Flag;
FindNormalRandoms;
if Players[CurrentPlayer].Loc = 'Above Pub' then
begin
if not RadialWalk(4498322, 290, 360, 70, 0, 0) then
begin
if not RadialWalk(RandomRange(4498000, 4499000), 290, 360, 70, 0, 0) then
begin
Result := False;
Players[CurrentPlayer].Loc := 'Lost Above Pub';
WriteLn('Player ' + Players[CurrentPlayer].Name + ' ' + Players[CurrentPlayer].Loc);
NextPlayer(False);
Exit;
end
else
begin
WriteLn('Used RRW to find Karamja Tree Spot 2');
Flag;
Result := True;
Players[CurrentPlayer].Loc := 'Karamja Tree Spot';
end;
end
else
begin
WriteLn('Used RRW to find Karamja Tree Spot 1');
Flag;
Result := True;
Players[CurrentPlayer].Loc := 'Karamja Tree Spot';
end;
end;
end;

function FindBanana(var bx, by: integer): boolean;
var
i: Integer;
TPA: TPointArray;
ATPA: T2DPointArray;
PP: TPoint;
begin
if not LoggedIn then
Players[CurrentPlayer].Loc := 'Not Logged In';
if Players[CurrentPlayer].Loc = 'Not Logged In' then
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' not logged in at function FindBanana.');
Result := False;
NextPlayer(False);
Exit;
end;
FindColorsSpiralTolerance(MSCX, MSCX, TPA, 3465969, MSX1, MSY1, MSX2, MSY2, 8);
if Length(TPA) = 0 then
FindColorsSpiralTolerance(MSCX, MSCX, TPA, 3465969, MSX1, MSY1, MSX2, MSY2, 15);
if Length(TPA) = 0 then
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' No banana colors found.');
Result := False;
Players[CurrentPlayer].Loc := 'No Banana Colors';
NextPlayer(False);
Exit;
end;
ATPA := SplitTPA(TPA, 3);
SortATPASize(ATPA, True);
for i := 0 to High(ATPA) do
begin
if not LoggedIn then
Players[CurrentPlayer].Loc := 'Not Logged In';
if Players[CurrentPlayer].Loc = 'Not Logged In' then
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' not logged in at loop Search Bananas.');
Result := False;
NextPlayer(False);
Exit;
end;
FindNormalRandoms;
PP := MiddleTPA(ATPA[i]);
MMouse(PP.x, PP.y, 1, 1);
Wait(525 + Random(750));
if IsUpText('Pick') then
begin
GetMousePos(bx, by);
Result := True;
Exit;
end;
end;
end;

function PickBananas: boolean;
var
rx, ry, BananaDTM: Integer;
begin
if not LoggedIn then
Players[CurrentPlayer].Loc := 'Not Logged In';
if Players[CurrentPlayer].Loc = 'Not Logged In' then
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' not logged in at function PickBanana.');
Result := False;
NextPlayer(False);
Exit;
end;
FindNormalRandoms;
BananaDTM := DTMFromString('78DA639CC1C4C0F0800105ECD9EDCCF01F483' +
'302F17F206004A979C6800618914820DD0D547397809A7EA09ADB' +
'04D4CC04AAB94340CD7CA09A4704D42C04AA794E84396F8870CF5' +
'BFC6A00F4FA1439');

repeat
if not LoggedIn then
Players[CurrentPlayer].Loc := 'Not Logged In';
if Players[CurrentPlayer].Loc = 'Not Logged In' then
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' not logged in at function PickBanana.');
Result := False;
NextPlayer(False);
Exit;
end;
FindNormalRandoms;
if FindBanana(rx, ry) then
begin
Mouse(rx, ry, 0, 0, True);
Flag;
Result := True;
Inc(BananasPicked);
end
else
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' couldnt find any bananas.');
Result := False;
Players[CurrentPlayer].Loc := 'No Bananas';
NextPlayer(False);
Exit;
end;
until (CountItems(BananaDTM, 'dtm', [0]) = 10);
Players[CurrentPlayer].Loc := 'Done Bananas';
if Players[CurrentPlayer].Loc = 'Done Bananas' then
Result := True;
end;

function FindLuthas(var bx, by: integer): boolean;
var
i: Integer;
TPA: TPointArray;
ATPA: T2DPointArray;
PP: TPoint;
begin
if not LoggedIn then
Players[CurrentPlayer].Loc := 'Not Logged In';
if Players[CurrentPlayer].Loc = 'Not Logged In' then
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' not logged in at function FindLuthas.');
Result := False;
NextPlayer(False);
Exit;
end;
FindNormalRandoms;
MakeCompass('N');
FindColorsSpiralTolerance(MSCX, MSCX, TPA, 737879, MSX1, MSY1, MSX2, MSY2, 8);
if Length(TPA) = 0 then
FindColorsSpiralTolerance(MSCX, MSCX, TPA, 737879, MSX1, MSY1, MSX2, MSY2, 15);
if Length(TPA) = 0 then
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' no Luthas colors found.');
Result := False;
Players[CurrentPlayer].Loc := 'No Luthas Colors';
NextPlayer(False);
Exit;
end;
ATPA := SplitTPA(TPA, 3);
SortATPASize(ATPA, True);
for i := 0 to High(ATPA) do
begin
if not LoggedIn then
Players[CurrentPlayer].Loc := 'Not Logged In';
if Players[CurrentPlayer].Loc = 'Not Logged In' then
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' not logged in at loop Search Luthas.');
Result := False;
NextPlayer(False);
Exit;
end;
FindNormalRandoms;
PP := MiddleTPA(ATPA[i]);
MMouse(PP.x, PP.y, 1, 1);
Wait(525 + Random(750));
if IsUpText('Talk') then
begin
GetMousePos(bx, by);
Result := True;
Exit;
end;
end;
end;

function TalkLuthas: boolean;
var
rx, ry: Integer;
begin
if not LoggedIn then
Players[CurrentPlayer].Loc := 'Not Logged In';
if Players[CurrentPlayer].Loc = 'Not Logged In' then
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' not logged in at function TalkLuthas.');
Result := False;
NextPlayer(False);
Exit;
end;
if Players[CurrentPlayer].Loc = 'At Luthas' then
begin
FindNormalRandoms;
if FindLuthas(rx, ry) then
begin
Mouse(rx, ry, 0, 0, False);
Wait(125 + Random(125));
if ChooseOption('Talk') then
begin
Result := True;
Players[CurrentPlayer].Loc := 'Luthas';
Exit;
end
else
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' could not find Luthas.');
Result := False;
Players[CurrentPlayer].Loc := 'No Luthas';
NextPlayer(False);
Exit;
end;
end;
end
else
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' not at luthas.');
Result := False;
Players[CurrentPlayer].Loc := 'No Luthas';
NextPlayer(False);
Exit;
end;
end;

function HandleLuthasTalk: boolean;
var
x, y: Integer;
begin
if not LoggedIn then
Players[CurrentPlayer].Loc := 'Not Logged In';
if Players[CurrentPlayer].Loc = 'Not Logged In' then
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' not logged in at function HandleLuthasTalk.');
Result := False;
NextPlayer(False);
Exit;
end;
FindNormalRandoms;
Wait(1250 + Random(750));
if ClickContinue(True, True) then
begin
if FindNPCChatText('you offer', ClickLeft) then
begin
ChatWait;
if ClickContinue(True, True) then
begin
if ClickContinue(True, True) then
begin
if ClickContinue(True, True) then
begin
if ClickContinue(True, True) then
begin
if not FindText(x, y, 'Luthas', NPCChars, 522, 500, 585, 530) then
begin
Result := True;
Players[CurrentPlayer].Loc := 'Ready Quest';
Exit;
end;
end;
end;
end;
end;
end
else
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' has already started the quest.');
Result := False;
Players[CurrentPlayer].Loc := 'Already Started Quest';
NextPlayer(False);

Exit;
end;
end
else
begin
WriteLn('Player ' + Players[CurrentPlayer].Name + ' could not find Luthas Talk.');
Result := False;
Players[CurrentPlayer].Loc := 'Failed Luthas Talk';
NextPlayer(False);
Exit;
end;
end;

procedure Proggy;
begin
WriteLn('-----------------------');
WriteLn('TViYHs Banana Runner');
WriteLn('-----------------------');
WriteLn('');
WriteLn('Time Running: ' + IntToStr(GetTimeRunning / 1000) + ' seconds.');
WriteLn('Bananas Picked: ' + IntToStr(BananasPicked));
WriteLn('Players Switched: ' + IntToStr(PlayersSwitched));
WriteLn('');
WriteLn('-----------------------');
WriteLn('TViYHs Banana Runner');
WriteLn('-----------------------');
end;

procedure LoopIt;
begin
LoginPlayer;
SetRun(True);
Players[CurrentPlayer].Loc := 'At Luthas';
if TalkLuthas then
begin
if HandleLuthasTalk then
if Players[CurrentPlayer].Loc = 'Ready Quest' then
if WalkToBananas then
if Players[CurrentPlayer].Loc = 'Karamja Tree Spot' then
if PickBananas then
if Players[CurrentPlayer].Loc = 'Done Bananas' then
WriteLn(Players[CurrentPlayer].Loc);
end;
Proggy;
if Players[CurrentPlayer].Loc = 'Done Bananas' then
begin
Writeln(' Next Player True ');
NextPlayer(True);
Inc(PlayersSwitched);
end;
end;

begin
SetupSRL;
DeclarePlayers;
LoginPlayer;
MouseSpeed := 27;
ActivateClient;
repeat
Loopit;
until (allplayersinactive);
end.

——————————————————
<!– END TEMPLATE: formanswers –>

TravisV10

2008-11-07 16:24:24

Good script, I've seen you around the forums, 1000+ posts. I dont see why not.

YES!

NiCbaZ

2008-11-07 16:24:58

Good app ;)

DTM's Tick
DDTM's Tick
TPA's Tick
T2DPointArray Tick
MultiPlayer Tick
Autocolor Tick


Much better than your old app ,

your a good guy also ;)

YES

TViYH

2008-11-07 16:25:05

Thanks for the yes :)

And, btw, the 1k+ posts are all SPAM-tastic. Lol. J/k.

noidea

2008-11-07 16:39:19

Welcome, this is a wonderful application.

WT-Fakawi

2008-11-07 16:41:34

You have learned a lot!

Yes.

TViYH

2008-11-07 16:42:02

Thanks noidea.

I worked pretty hard on this script.

Nicbaz helped me with some stuff, as well.


Tried really hard not to use reflection. Lol. Which is why none is in it.

EDIT: :O I just shit my pants. WT-Fakawi himself posted on my app. Thanks! :O

noidea

2008-11-07 16:47:16

From: TheVoiceInYourHead
EDIT: :O I just shit my pants. WT-Fakawi himself posted on my app. Thanks! :O

Lol, what luck :)

R0b0t1

2008-11-07 16:53:20

No.

Magiic

2008-11-07 18:17:04

r0b0t was joking…yes from me, you write autocolor well :p and as nicbaz posted, youve ticked every checkbox on the list.
edit: if you know how to use GIMP fancy making me a sig? :P [/offtopic]

TViYH

2008-11-07 18:22:56

Thanks for the yeses guys.

I really appreciate it.

Is it 10 to get in?

Iron Man

2008-11-07 18:34:42

It's not 10 yes's, by Wizzup?'s rule it's 75+ % if I remember right. Keep in mind that applications pend for usually a few days, not 2 hours.

Didn't vote.

TViYH

2008-11-07 18:36:40

Mkai. Thanks.

I'll be patient then.

Thanks everyone who voted :)

P1nky

2008-11-08 00:51:53

yes. you been here too long, and time for you too move on to srl members :) and learned all the stuff required.

and now you can be able to boss juniors around.

JP forgot if it was you who got mad some of us or something nvm im so sleeeepy omg night.

WT-Fakawi

2008-11-08 02:04:09

TheVoiceInMyHead says In.