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
——————————————————
<!– END 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 –>