SRL Archive - Archive

Yanhua - SRL Member Application


Yanhua

2011-12-23 21:34:34




program AutoTabsPro;

{$DEFINE SMART}
{$i SRL\SRL.scar}
{$i SRL/SRL/Misc/stats.simba}
{$i SRL/SRL/misc/paintsmart.scar}
{$i srl/srl/misc/debug.scar}

//Auto Tabs Pro V2 by Yanhua
//http://villavu.com/forum/showthread.php?t=70231
//*****************************************************
//MAKE SURE YOUR HOUSE IS IN BUILDING MODE!!!!*********
//*****************************************************

//INSTRUCTIONS ARE ON THE THREAD!


Const
//SRL Stats
SRLStats_Username = '';
SRLStats_Password = '';

//What tablets do you want to make? Varrock, Camelot, B2P, B2B, Ardougne, Falador, Lumbridge, House. Fill it in the ' and '.
WhatTab = '';


Var
Tabs_Made, XP_Gained:Integer;


Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
BoxRewards := ['XP','xp','lamp'];
LampSkill := 'Cooking';
Active := True;
end;
end;

Procedure StartScript;
Begin
SetUpSRL;
SetupSRLStats(405, SRLStats_Username, SRLStats_Password);
DeclarePlayers;
SmartSetRefresh(100);
If Not LoggedIn Then
TerminateScript;
SetAngle(True);

end;

Procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, Pic2, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
Pic2 := BitmapFromString(288, 51, 'meJztnQlYFEf2wGO8FRFFRW7wP' +
'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' +
'+N1SULr7poTEqVPixcM2eucvfuWAc1cfHlkpoKy5fky0SFzJdT6BL' +
'0xJCViwv27sB/t4mg0SXo1yOVazAEW42ZgDWEiJKaM7rgvNyc2f5W' +
'0fqNhgTki7qIIDp9uiYhU5W0MC4+rWBuJIRaEHCZO/icH/rCZ8P+w' +
'nXwufr0k6umh2gM6cqETC2SpY1NwvfIEmPUCQphfRttbq7it1+zHL' +
'SSiy+X1FQkH/8iJqzA2orJP6FC1tbbJn7fgf1CSjlj1MinUsjXVch' +
'S26J144oE3KpWp6efeMizCRfImc/SDAnpemu+qkAzpKtNAmgGXXLR' +
'jDlnXxz89fPPQSwWY8xQAVn4bgslCyyXsNRAjLAEYk5O+IM/FjpuJ' +
'RdfLqmpsN8nsofYCsui5RbK5N8q2oKDn6Xil4m2oGxGIWRtwA+Brc' +
'Ovg60RP0u0konOChxaNIscP55oTEgho4jg7BGJ06eyoMUa0qNNWdE' +
'JmdHGjGhwIONSBJuFcAl8aROJqJGvtesSnGklF18ueQRhTRhFjDqK' +
'ZLijUPyKJXqMgpAPVhaLnx+iUiwe+kD8Sz9LtJIZQlwqYpVvTRaFy' +
'3aAdvZcckp6EmPF0oWIjAqxZeAHosHSCAbLpItLiDcYE0yGpJT4+R' +
'n6Rdnxi/N0778fv3OHU3BxLr5c8kiSbQuxPGtDtkz8VizL2kqRGio' +
'rxL+FYmLyHVgKVL4IlPyDXzmOyaLy7a30vPzEBYuSc/OS8vJNBcsS' +
'Vqw0rikxbNxoKC9PqKhIOHQo4eTJpLNnky9fSrtxI/2f/8j48W7m7' +
'78teKgfaE9cfLnk0cQmYixlFDRWlonCQrSMMUwsShKaKFAsVnX0q2' +
'ouvlzyyMIiZpMyKvkyYY/miafYpKlOc2RPqsWXS1wikYYN61ukUYN' +
'GjRs2btIIpEnTxk2aNWnavClIM7dmzVs0b+7u5khaNIdkJD2cCKeT' +
'fCBDyJYWUesXWzNxki/X5tpsbvXY7fHHQR6vXx8EeCAChDRo1MiRI' +
'DxEyLkkHzbj2r5K1+baanmrJ9kIIwxx9oRNKcmjtq/Jtbm2Or1Job' +
'O/1XZNXZtrc22uzbW5Ntf28O3/AKCd7S4=');




TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1,8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
DrawBitmap(Pic2, Canvas, 5, 5);
FreeBitmap(Pic);
FreeBitmap(Pic2);
end;

Procedure Progress;
Begin
PrintOnSmart(['Auto Tabs Pro', '', 'Version V2 By Yanhua', '', 'Time Running: ' +MsToTime(GetTimeRunning, Time_Bare), '', 'Tabs Made: ' +ToStr(Tabs_Made), '', 'Magic Exp Gained: ' +ToStr(XP_Gained)], Point(25, 200), 63231);

end;

Procedure DebugProgress;
Begin
ClearDebug;
WriteLn('*****************************************');
WriteLn('********* Auto Tabs Pro V2 **********');
WriteLn('********* Time Ran: ' +MsToTime(GetTimeRunning, Time_Bare));
WriteLn('********* Tele Tabs Made: ' +ToStr(Tabs_Made));
WriteLn('********* Magic Exp Gained: ' +ToStr(XP_Gained));
WriteLn('*****************************************');
end;


Procedure AntiBan;
begin
case Random(110) of
10: RandomRClick;
30: HoverSkill('Magic', False);
50: PickUpMouse;
70: RandomMovement;
90: BoredHuman;
110: ExamineInv;
end;
end;
Function Lectern : Boolean;
Var
TPA:TPointArray;
B:TBox;
X, Y:Integer;
DTM:Integer;


Begin
DTM := DTMFromString('mQwAAAHicY2ZgYNjBwsCwE4i3A7EjIwPDMZAYkK4tL2dITUgAYyOgGCsUMyJhIAAAWQsH7Q==');
Wait(RandomRange(1500,2500));
If InvCount > 4 Then
Begin
If Not LoggedIn Then
Exit;
SetColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.53, 0.16);
If FindColorsSpiralTolerance(MSCX, MSCY, TPA, 9409685, MSX1, MSY1, MSX2, MSY2, 3) Then
Begin
WriteLn('Found the lectern.');
B := GetTPABounds(TPA);
Smart_DrawBoxEx(False, B, 3182430);
MouseBox(B.X1, B.Y1, B.X2, B.Y2, 1);
Wait(RandomRange(3000,4000));
If FindDTM(DTM, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
Result := True;
WriteLN('The screen is up for selection. OK to continue.');
end;
end;

end;
end;

Procedure MakeTab;
Var
T:Integer;
Begin
MarkTime(T);
If Not LoggedIn Then
Exit;
Case (lowercase(WhatTab)) of
'varrock': MouseBox(255, 255, 278, 278, 2);
'camelot': MouseBox(308, 230, 361, 278, 2);
'b2p': MouseBox(395, 229, 443, 277, 2);
'b2b': MouseBox(395, 147, 445, 197, 2);
'ardougne': MouseBox(309, 148, 359, 197, 2);
'falador': MouseBox(223, 145, 276, 196, 2);
'lumbridge': MouseBox(141, 65, 193, 114, 2);
'house': MouseBox(394, 66, 446, 116, 2);
'': Begin ClearDebug; WriteLn('You have not filled out which tab to make! Please read the instructions and do so!'); TerminateScript; End;
end;
Wait(RandomRange(200,400));
ChooseOption('ll');
While (InvCount > 4) and (TimeFromMark(T) < 120000) Do
Begin
LevelUp;
Wait(1000);
Progress;
AntiBan;
end;
IncEx(Tabs_Made, 24);
IncEx(XP_Gained, 840);
stats_IncVariable('Varrock Tablets (Made)', 24);
stats_IncVariable('Magic EXP (Gained)', 840);
End;


Function GetClay(I:Integer) : Boolean;
Var
Demon, Clay:TPointArray;
D, C:TBox;
Begin
If (InvCount < 5) Then
Begin
If (FindColorsSpiralTolerance(MSCX, MSCY, Demon, 922670, MSX1, MSY1, MSX2, MSY2, 7)) and (FindColorsSpiralTolerance(MSCX, MSCY, Clay, 6851739, MIX1, MIY1, MIX2, MIY2, 10)) Then
Begin
C := GetTPABounds(Clay);
D := GetTPABounds(Demon);
Smart_DrawBoxEx(False, C, 3182430);
MouseBox(C.X1, C.Y1, C.X2, C.Y2, 1);
Wait(RandomRange(500,800));
Smart_DrawBoxEx(True, D, 3182430);
MouseBox(D.X1, D.Y1, D.X2, D.Y2, 1);
If (DidRedClick) Then
Begin
Wait(RandomRange(1000,1500));
If ClickContinue(True, True) Then
Begin
FindColorsSpiralTolerance(MSCX, MSCY, Demon, 922670, MSX1, MSY1, MSX2, MSY2, 7);
FindColorsSpiralTolerance(MSCX, MSCY, Clay, 6851739, MIX1, MIY1, MIX2, MIY2, 10);
Wait(RandomRange(2000,2500));
MouseBox(118, 387, 399, 395, 1);
Wait(RandomRange(1500,2000));
ClickContinue(True, True);
Smart_DrawBoxEx(True, C, 3182430);
MouseBox(C.X1, C.Y1, C.X2, C.Y2, 1);
Wait(RandomRange(500,800));
Smart_DrawBoxEx(True, D, 3182430);
MouseBox(D.X1, D.Y1, D.X2, D.Y2, 1);
end;
Wait(RandomRange(1000,1500));
Case I Of
1 : Begin
MouseBox(217, 392, 302, 400, 1);
Wait(RandomRange(1000,1500));
TypeSend('24');
Wait(RandomRange(1000,1500));
End;
2 : Begin
MouseBox(127, 386, 394, 398, 1);
Wait(RandomRange(1000,1500));
end;
end;
Wait(RandomRange(7000,10000));
If (InvCount > 4) Then
Result := True;
end
else WriteLn('Did not detect red click.');
end
else WriteLn('Did not find the demon or clay.');
end
else begin
Result := True;
WriteLn('We have a full inventory!');
end;

end;














begin
Smart_Server := 39;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
StartScript;
Progress;
GetClay(1)
Repeat
If Not LoggedIn then
Exit;
DebugProgress;
Stats_Commit;
If GetClay(2) Then
Begin
If Lectern Then
Begin
Progress;
MakeTab;
end;
end;

Until(AllPlayersInactive);
end.

Click here for the thread.


program EssenceMiner;

//{$DEFINE SMART}
{$i SRL\SRL.scar}
{$i sps/sps.simba}
{$i SRL/SRL/Misc/stats.simba}

//**************************************************************************************
//------------------------------------------------------------------------------------ *
// INSTRUCTIONS: Start at Varrock East Bank. WITH PICKAXE EQUIPPED! Inventory EMPTY. *
//Fill in your account details below! *
//-------------------------------------------------------------------------------------*
//-------------------------------------------------------------------------------------*
//**************************************************************************************

const
SRLStats_Username = '';
SRLStats_Password = '';

Var
Loads:Integer;

//**********************************************************************
//This procedure declares the player information for the script to use.*
//**********************************************************************

Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
BoxRewards := ['XP','xp','lamp'];
LampSkill := 'Farming';
Active := True;
end;
end;

//********************************************************************************
//This procedure starts up SRL and prepares the client ready to run then script..*
//********************************************************************************

Procedure Startup;
Begin
SetupSRL;
ActivateClient;
ClickNorth(True);
SetupSRLStats(389, SRLStats_Username, SRLStats_Password);
End;

procedure AntiBan;
begin
If FindNormalRandoms or Not LoggedIn then Exit;
case random(50) of
0: RandomRClick;
1: HoverSkill('Mining', False);
2: RandomMovement;
3: BoredHuman;
4: PickUpMouse;
end;
end;

procedure Progress;
Var
Essence:Integer;
begin
If FindNormalRandoms or Not LoggedIn then Exit;
if (InvCount = 28) then
begin
Essence:= Essence + 28;
ClearDebug;
Writeln('|=======================================|');
Writeln('| Flax | Loads | Time Running |# of Breaks|');
Writeln('|' + IntToStr(Essence) + ' |' + IntToStr(Loads) + ' |' + TimeRunning + '|');
Writeln('|=======================================|');
Writeln('');
stats_IncVariable('Flax (Picked)', 28);
stats_IncVariable('Loads Done', 1);
SRLRandomsReport;
Stats_Commit;
end;
end;


//**********************************************************************
//Autocolour function by ACA, finds the colour of Anbudy to teleport. *
//**********************************************************************

function AnburyColour: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 12435142, MSX1, MSY1, MSX2, MSY2, 16);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
//**********************************************************************
//AutoColour Function by ACA, used to find the Blue portal colour. *
//**********************************************************************

function Blue: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 13353374, MSX1, MSY1, MSX2, MSY2, 25);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Green portal colour. *
//**********************************************************************

function Green1: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 11914390, MSX1, MSY1, MSX2, MSY2, 10);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Green portal colour. *
//**********************************************************************

function Green2: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 11194270, MSX1, MSY1, MSX2, MSY2, 15);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Green portal colour. *
//**********************************************************************

function Green3: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 9745282, MSX1, MSY1, MSX2, MSY2, 11);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Green portal colour. *
//**********************************************************************

function Green4: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 11323834, MSX1, MSY1, MSX2, MSY2, 11);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Green portal colour. *
//**********************************************************************

function Green5: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 9882037, MSX1, MSY1, MSX2, MSY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Orange portal colour. *
//**********************************************************************

function Orange: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 12046821, MSX1, MSY1, MSX2, MSY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Orange portal colour. *
//**********************************************************************

function Orange2: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 10199746, MSX1, MSY1, MSX2, MSY2, 17);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Purple portal colour. *
//**********************************************************************

function Purple: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 13606079, MSX1, MSY1, MSX2, MSY2, 30);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Purple portal colour. *
//**********************************************************************

function Purple2: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 12293252, MSX1, MSY1, MSX2, MSY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Purple portal colour. *
//**********************************************************************


function Purple3: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 12687242, MSX1, MSY1, MSX2, MSY2, 9);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Red portal colour. *
//**********************************************************************

function Red: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 9472692, MSX1, MSY1, MSX2, MSY2, 5);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Yellow portal colour. *
//**********************************************************************

function Yellow: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 12836579, MSX1, MSY1, MSX2, MSY2, 18);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//AutoColour Function by ACA, used to find the Yellow portal colour. *
//**********************************************************************


function Yellow2: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 9684928, MSX1, MSY1, MSX2, MSY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;

ColorToleranceSpeed(tmpCTS);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

//**********************************************************************
//Walks to the portal so that the portal will be on the Main Screen. *
//Uses BitMap for the Portal symbol. *
//**********************************************************************


Function ToPortal:Boolean;
Var
X, Y, Portal:Integer;
Begin
If FindNormalRandoms or Not LoggedIn then Exit;
Portal := BitmapFromString(7, 11, 'meJw7cAABpNNuQ9ABVEGfIFesghB' +
'xZAQRJB4p6WoiIzxmLkACQEGIejQnAUUw3QlBAJu2ao4=');

If FindBitmapToleranceIn(Portal, X, Y, MMX1, MMY1, MMX2, MMY2, 10) Then
Begin
MMouse(X, Y, 5, 5);
Wait(100+RandomRange(20,50));
Mouse(X, Y, 0, 0, True);
FFlag(0);
Result := True;
End;
FreeBitMap(Portal);
End;

//**********************************************************************
//Uses the X, Y Co-ords from the FindOre function and Chooses *
//Mine Rune Essence. Will wait till Inventory is Full. *
//**********************************************************************

Function ClickOre:Boolean;
Var
X, Y, TooLong:Integer;
Begin
If FindNormalRandoms or Not LoggedIn then Exit;
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, False);
Wait(500+randomrange(200,300));
If ChooseOption('Mine Rune Essence') Then
Result := True;
MarkTime(TooLong);
while (Not InvFull)
Do
Begin
If TimeFromMark(TooLong) > 30000 Then
Exit;
AntiBan;
wait(100+randomrange(50,70));
Progress;
end;
End;

//***************************************************************************
//Looks for the Rune Essence ore(s) by rotating the camera, trial and error.*
//Mine Rune Essence. Will wait till Inventory is Full. *
//***************************************************************************

Function FindOre:Boolean;
Var
X, Y, T, TooLong:Integer;
Begin
If FindNormalRandoms or Not LoggedIn then Exit;
SetAngle(False);
T := 40;
Repeat
If Not Invfull Then
Begin
MakeCompass(T);
If FindObjCustom(X, Y, ['ssen'], [8750732, 11579576, 1243514, 8224130], 2) Then
Begin
writeln('Found ore!')
Result := True;
MMouse(X, Y, 3, 3);
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, False);
Wait(500+randomrange(200,300));
If ChooseOption('Mine Rune Essence') Then
Result := True;
MarkTime(TooLong);
while (Not InvFull) and (TimeFromMark(TooLong) < 30000)
Do
wait(1000+randomrange(50,70));
end;
Wait(500+randomrange(200,500));
end;

IncEx(T, +40);

Until(InvFull);



end;

//***************************************************************************
//Uses the colours given by AutoColour to locate the portals and clicks. *
//After this Function player will be teleported back to Main RS Surface. *
//***************************************************************************

Function ClickPortal:Boolean;
Var
X, Y:Integer;
P:TPoint;
Begin
If FindNormalRandoms or Not LoggedIn then Exit;
P := Point(4848, 3053);
ClickNorth(False);
SetAngle(True);
Wait(500+randomrange(100,300));
If FindObjEx(X, Y, ['ortal'], [Blue, Green1, Green2, Green3, Green4, Green5, Orange, Orange2, Purple, Purple2, Purple3, Red, Yellow, Yellow2], 3, 50, 130, 60, 402, 278) Then
begin
MMouse(X, Y, 3, 3);
Mouse(X, Y, 0, 0, False);
Wait(500);
ChooseOption('nter');
Wait(2000+randomrange(50,100));
Result := True;
End;
End;

//***************************************************************************
//Uses SPS to walk back to the bank *
//Very reliable area for SPS, works well. *
//***************************************************************************


Function WalkBank:Boolean;
Var
Path:TPointArray;
Begin
If FindNormalRandoms or Not LoggedIn then Exit;
SPS_Setup(RUNESCAPE_SURFACE, ['12_7']);
Path := [Point(4864, 3037), Point(4874, 3003), Point(4882, 2977), Point(4883, 2949), Point(4871, 2933), Point(4851, 2934), Point(4852, 2967)];
If SPS_WalkPath(Path) Then
begin
Wait(2000+Randomrange(100,500));
Result := True;
end;


end;

//***************************************************************************
//Finds the bank and deposits all essence *
//Closes the bank afterwards ready to walk back *
//***************************************************************************


Procedure Bank;
Begin
If FindNormalRandoms or Not LoggedIn then Exit;
MakeCompass('s');
OpenBankNPC;
Wait(2500+randomrange(200,400));
DepositAll;
wait(1000+randomrange(200,400));
CloseBank;
Loads:=Loads+1;
end;

//***************************************************************************
//Uses SPS_WalkPath to walk back to Anbury's house *
//Will stop outside the door for the next function *
//***************************************************************************

Function ToHouse:Boolean;
Var
Path:TPointArray;
Begin
If FindNormalRandoms or Not LoggedIn then Exit;
SPS_Setup(RUNESCAPE_SURFACE, ['12_7']);
Path := [Point(4851, 2945), Point(4885, 2939), Point(4884, 2984), Point(4870, 3018), Point(4849, 3063)];
If SPS_WalkPath(Path) Then
Result := True;
End;

//*******************************************************************************
//Walks into the center of Anbury's Rune Shop so we can locate him and teleport.*
//Uses one point of SPS. Very reliable *
//*******************************************************************************

Function InHouse:Boolean;
Var
Path:TPointArray;
Begin
If FindNormalRandoms or Not LoggedIn then Exit;
SPS_Setup(RUNESCAPE_SURFACE, ['12_7']);
Path := [Point(4847, 3047)];
If SPS_WalkPath(Path) Then
Begin
Result := True;
Wait(3000+randomrange(200,500));
end;
End;

//*******************************************************************************
//Looks for the door and checks the uptext to see if it is open or not. *
//If door is closed, the function will choose Open Door. *
//*******************************************************************************

Function FindDoorIn:Boolean;
Var
X, Y:Integer;
Begin
If FindNormalRandoms or Not LoggedIn then Exit;
ClickNorth(True);
If FindObjEx(X, Y, ['Open Door', 'Close Door'], [2773600, 3231320, 3363165, 3297115], 10, 40, 190, 24, 335, 200) Then
Begin
Result := True;
Mouse(X, Y, 0, 0, False);
If OptionsExist(['Open Door'], False) Then
Begin
ChooseOption('Open Door');
WriteLn('Opened the door.');
end else
If OptionsExist(['Close Door'], False) Then
Begin
writeln('The door is already open. We can go through.');
Result := True;
End;

End;
Wait(1000+randomrange(200,500));
end;

//*******************************************************************************
//Looks for the door and checks the uptext to see if it is open or not. *
//If door is closed, the function will choose Open Door. *
//*******************************************************************************

Function FindDoorOut:Boolean;
Var
X, Y, T:Integer;
Begin
If FindNormalRandoms or Not LoggedIn then Exit;
MakeCompass('s');
SetAngle(True);
MarkTime(T);
If (FindObjEx(X, Y, ['Open Door', 'Close Door'], [2773600, 3231320, 3363165, 3297115], 25, 40, 170, 15, 335, 200)) or (TimeFromMark(T) > 5000) Then
Begin
Mouse(X, Y, 0, 0, False);
If OptionsExist(['Open Door'], False) Then
Begin
ChooseOption('Open Door');
WriteLn('Opened the door.');
Result := True;
end else
If OptionsExist(['Close Door'], False) Then
Begin
writeln('The door is already open. We can go through.');
Result := True;
end;

End;
Wait(1000+randomrange(200,500));
end;

//*******************************************************************************
//Located Anbury and chooses Teleport. *
//Player will be teleported to the Rune Essence Miner after this. *
//*******************************************************************************

Function Teleport:Boolean;
Var
X, Y:Integer;
Begin
If FindNormalRandoms or Not LoggedIn then Exit;
If FindObjCustom(X, Y, ['ubu'], [AnburyColour], 3) Then
Begin
Mouse(X, Y, 0, 0, False);
Wait(Randomrange(5,10));
ChooseOption('elep');
Wait(100+randomrange(20,40));
Result := True;
end;
Wait(1500+randomrange(200,500));
end;









//*******************************************************************************
//Main Loop. *
// *
//*******************************************************************************


begin
Startup;
DeclarePlayers;
If Not LoggedIn Then
LoginPlayer;
repeat
Stats_Commit;
If InvFull Then
Begin
ToPortal;
If ClickPortal Then
Begin
If FindDoorOut Then
Begin
If WalkBank Then
Bank;
end;
end;
end;

If ToHouse Then
Begin
If FindDoorIn Then
Begin
If InHouse Then
If Teleport Then
Begin
If FindOre Then
end;
end;
end;
until(false)
end.

Hero

2011-12-23 23:32:47

Is this meant to be another script that you wanted to add to your original application? If so can we please have a mod move it and close this second application?

Yanhua

2011-12-23 23:42:53

From: MrDerp
Is this meant to be another script that you wanted to add to your original application? If so can we please have a mod move it and close this second application?


MrDerp, I was told by a Mod (BraK) that since no one was voting on my old application, I should start a new one.

mika

2011-12-23 23:46:57

well u certainly have been a member longer than i. A soulwars script sounds impressive. Very nicely commented script here, not that it's necessary to get it to run, but the neatness gives a good first impression. You show knowledge of SPS, and bitmaps. (you migt want to use that as a failsafe as it won't work under any angle and you can also use symbol walking if u want to use the portal symbol(i use it as a failsafe))
ill give it a yes, as far as standards not perfect but i cant complain.

Yanhua

2011-12-23 23:49:54

From: mika
well u certainly have been a member longer than i. A soulwars script sounds impressive. Very nicely commented script here, not that it's necessary to get it to run, but the neatness gives a good first impression. You show knowledge of SPS, and bitmaps. (you migt want to use that as a failsafe as it won't work under any angle and you can also use symbol walking if u want to use the portal symbol(i use it as a failsafe))
ill give it a yes, as far as standards not perfect but i cant complain.


Thank you very much mika.

Clearly you have taken the time to look over my script. Well done.

Currently I am using Symbol walking (my custom one) to get to the portal, as the pre-built bitmaps with Symbol Walking on SRL seem to be broken.

Hobbit

2011-12-24 01:31:50

Please stop posting multiple member applications. Wait until the current one has closed. And if you get denied, you must wait 2 weeks to 1 months to reapply. I will let it slide because it is Christmas, but if you reapply again while another application is still open or within the gap between applications, it will be closed.

P.S. Yes

Yanhua

2011-12-24 01:35:10

From: Hobbit
Please stop posting multiple member applications. Wait until the current one has closed. And if you get denied, you must wait 2 weeks to 1 months to reapply. I will let it slide because it is Christmas, but if you reapply again while another application is still open or within the gap between applications, it will be closed.


Sorry about this, Hobbit.

Thank you for the exception this time, Merry Christmas to you and everybody else! :)

I was unaware of the rule, I didn't know that applications had to be closed.

Hobbit

2011-12-24 01:40:03

From: Rules And Regulations Thread
Applying for SRL Membership


In order to become SRL-Member, you will need to Apply with a well-written Simba/SRL Script. This Appliance will create an Autopoll allowing Members to judge your abilities and vote against or in favour. You can only apply once a month.

For more information please read: http://www.villavu.com/wiki/index.php/SRL_Membership and http://www.villavu.com/forum/showthread.php?t=19941


Now you do :)

Cheers

Yanhua

2011-12-24 17:27:59

Hey guys, its Christmas Day here and just checking out my application.

If you voted no; please also post why you did so. There's no point in voting no without stating what you thought I could have done better.

Cheers :D :) :p

cycrosism

2011-12-24 18:52:44

I voted no because you have been a member for almost 3 years and you have just over 130 posts, and your script is not complex enough.

First of all


What I have:
&#8226; Anti-randoms


Really? Where? Could you please point out where in your script you call for the checking of random events?


// INSTRUCTIONS: Start at Varrock East Bank. WITH PICKAXE EQUIPPED! Inventory EMPTY. *

That really is not a good idea. Some of my characters have over 40 mining and cannot weild a rune pickaxe.


stats_IncVariable('Flax (Picked)', 28);

If this is an essence miner, why do you do this? A simple mistake. Also, if the person is NOT weilding the pickaxe the variable would be 27, as the pickaxe takes up an inventory spot. I understand you want the user to weild the pickaxe, but not all people can do this.

Around 40 percent of your script is from ACA, not actually written by yourself.


while (Not InvFull) and (TimeFromMark(TooLong) < 30000)
Do
wait(1000+randomrange(50,70));
end;

Infinite loops are not good, what if you were stuck in a random event? You would just be waiting there forever.

Your only walking methods are SPS, what if that fails? Do you have any backup walking methods? Failsafes are always a good idea.

Also, try adding some custom TPA's in your script instead of using FindObjEx all the time.

Yanhua

2011-12-24 19:24:15

From: cycrosism
I voted no because you have been a member for almost 3 years and you have just over 130 posts, and your script is not complex enough.

First of all



Really? Where? Could you please point out where in your script you call for the checking of random events?


// INSTRUCTIONS: Start at Varrock East Bank. WITH PICKAXE EQUIPPED! Inventory EMPTY. *

That really is not a good idea. Some of my characters have over 40 mining and cannot weild a rune pickaxe.


stats_IncVariable('Flax (Picked)', 28);

If this is an essence miner, why do you do this? A simple mistake. Also, if the person is NOT weilding the pickaxe the variable would be 27, as the pickaxe takes up an inventory spot. I understand you want the user to weild the pickaxe, but not all people can do this.

Around 40 percent of your script is from ACA, not actually written by yourself.


while (Not InvFull) and (TimeFromMark(TooLong) < 30000)
Do
wait(1000+randomrange(50,70));
end;

Infinite loops are not good, what if you were stuck in a random event? You would just be waiting there forever.

Your only walking methods are SPS, what if that fails? Do you have any backup walking methods? Failsafes are always a good idea.

Also, try adding some custom TPA's in your script instead of using FindObjEx all the time.


Thank you for pointing out these simple mistakes I had.

Also, that is not an infinite loop. If you looked closely I had a failsafe there, if time > 30 seconds then it wouldn't wait.

I look forward to seeing the opinions of other members, so far the voting is going good! Let's keep that going. :)

Dynamite

2011-12-24 21:51:56

while (Not InvFull) and (TimeFromMark(TooLong) < 30000)
Do
wait(1000+randomrange(50,70));
end;

That is an infinite loop because it would loop through the while do without doing anything above / beneath that code.
So you would effectively be waiting until 30 seconds have passed.

-Boom

Kyle Undefined

2011-12-24 21:54:59

Yes because it's Christmas.

Yanhua

2011-12-24 22:11:26

From: Dynamite
while (Not InvFull) and (TimeFromMark(TooLong) < 30000)
Do
wait(1000+randomrange(50,70));
end;

That is an infinite loop because it would loop through the while do without doing anything above / beneath that code.
So you would effectively be waiting until 30 seconds have passed.

-Boom


Oh, I see what you mean.

Thanks for explaining that, learnt something new today! :)

From: Kyle Undefined
Yes because it's Christmas.


Thank you Camo! :wow:

Have a great Christmas. :spot:

Kyle Undefined

2011-12-24 22:12:53

From: Yanhua
Thank you Camo! :wow:

Have a great Christmas. :spot:



You too bud, keep it up :)

Gu3st...

2011-12-25 10:50:11

From: Dynamite
while (Not InvFull) and (TimeFromMark(TooLong) < 30000)
Do
wait(1000+randomrange(50,70));
end;

That is an infinite loop because it would loop through the while do without doing anything above / beneath that code.
So you would effectively be waiting until 30 seconds have passed.

-Boom
it would only do "Wait(…)" if both "not InvFull" *and* "TimeFromMark(…) < 30000" so no, it is not an infinite loop as it would break out at either InvFull = True or TimeFromMark(…) >= 30000


E: I voted yes, by the way.

Yanhua

2011-12-25 21:17:15

From: Zyt3x
it would only do "Wait(…)" if both "not InvFull" *and* "TimeFromMark(…) < 30000" so no, it is not an infinite loop as it would break out at either InvFull = True or TimeFromMark(…) >= 30000


E: I voted yes, by the way.


Thank you Zyt3x. I was pretty sure I was right about it not being an infinite loop, thank you for verifying this.

Sure you clicked Yes? All I see is an extra vote for No. :confused:

Also, could this application now be closed? Yes > No so I guess that means I'll be accepted in SRL Member this time. :) Excited!

Would be a nice Christmas present from you.

Gu3st...

2011-12-25 23:59:45

Yes I am sure I voted "yes". I actually voted a long time ago, just didn't feel like posting ;)

It's still up to the admins to decide if you get in or not since the amount of yes votes is not a lot higher than the amount of no votes. There is still a higher amount of yes votes, so you're more likely to get accepted.
Let's just hope the admin that sees this is in a happy mood or is named "WT-Fakawi", eh? :)

Yanhua

2011-12-26 07:27:05

It is now a 6-6 tie between Yes / No.

Out of the 6 "No" votes only one person has actually left a comment about why he/she did so.

If you do vote no, please remember to leave a reply so that I know what to improve on in the future.

Cheers! :D Also created a flash new thread layout.

Sabzi

2011-12-26 08:19:29

Maybe I am blind but where is the "Use of TPA and ATPA"?

And the new colorful thing looks good but it's too yes-whoreish for me, I am not used to something like this at srl(completely my fault, didn't affected vote).
Most of the other techniques you point out are very basic things that doesn't really show skill(imo).

When I am voting I try to vote like this(this is solely the script part of the voting, other factors are not mentioned here):
  • Does the application script has the basics? Using srl, srls mouse, antiban, things like that - auto no if this is missing(you passed this of course).
  • Then I (try to)measure how advanced the script is then I compare this to other application scripts/what a usual member (should be)capable of. In my eyes your script doesn't quiet hit that level. I think most current member got in with more advanced scripts hence I don't think you should be a member currently. This does not mean in any way that I don't want you to become a member, simply be patient and come back with a better script than I will gladly vote yes.
It was a little 'no' if that means anything to you, not a capitalized n 'no'. But not yes 'enough'.

I want to mention that this community is just as great as an online programming/scripting/learning community while being a registered user. I don't think we hide any knowledge programming/scripting/learning wise in the member sections.

Also the whole technique list now that I think about it is not required, the voters should see what the script does/does not. (I have been thinking about this post for ~15 minutes now)

Attitude? I didn't see enough of you to vote based on that so I voted on the script only.
However if you become a member you will see(in this section) that I have voted numerously based only on attitude not even looking at the script. But those(currently members) people were not rushing to become a member, they were participating in the community while helping/contributing for months/years then some cases they were even told to apply because they felt good the way they were and they didn't applied themselves.

Post bot-nuke applications (for me at least) seems more like they are rushing members, maybe because other communities worked in a different way.(I was never really part of those)
All I can say, take your time, member section will wait.

p.s.: Haha this turned out to be much more text then I wanted to, hope it's not entirely bs, tho.

Wizzup?

2011-12-26 08:32:09

Wow, you put a lot of effort into this. Script does seem like a lot of ACA… It needs more standards and perhaps a bit more code that you've written to show off your knowledge? :)

Dynamite

2011-12-26 08:49:26

From: Yanhua
If you do vote no, please remember to leave a reply so that I know what to improve on in the future.


A lot of (mainly) SRL members, don't like being told what to do :P

I voted no because you don't show enough of your actual scripting knowledge.

-Boom

hamster31

2011-12-27 00:53:55

I voted yes, your script is not to advanced but to be honest, neither was mine. The reason why i voted Yes is simple, you took the initiative to go out and learn, you made use of your resources and did not stop when everyone here is saying No.

Yanhua

2011-12-27 17:29:53

Updated the thread with the link to my new script. :)

RISK

2011-12-27 17:30:29

Please post it in Simba tags on the first post. :) It's easier for others to judge it that way.

Yanhua

2011-12-27 17:37:08

From: RISK
Please post it in Simba tags on the first post. :) It's easier for others to judge it that way.


All done.

RISK

2011-12-27 17:47:19

Your standards are a 'bit whacky. You have improper spacing. I think you need to check out a tutorial on standards. :)

Other than that, your abilities have improved and I am all for voting yes.

Oh and promise me if you get SRL members that you'll move your script to SRL members only, lol. At least until tab creating is less than 100k/h profit.

Yanhua

2011-12-27 17:50:24

From: RISK
Your standards are a 'bit whacky. You have improper spacing. I think you need to check out a tutorial on standards. :)

Other than that, your abilities have improved and I am all for voting yes.

Oh and promise me if you get SRL members that you'll move your script to SRL members only, lol. At least until tab creating is less than 100k/h profit.


Awesome, thanks! :)

If I do get in SRL Member and the prices get too bad then most certainly, I will move it into the members only section.

Hobbit

2012-01-07 15:09:15

In!