SRL Archive - RS3 Outdated / Broken Scripts

Varrock East Miner by n3ss3s


n3ss3s

2008-02-03 08:37:22


If the image above doesn't show, tell me.


So, what it does -

You start the script in the Varrock East Bank, and the script walks to the Varrock East Mine. Then, it mines a full load of iron, walks to bank and banks it, and repeats that until it reaches the PlayerLoads amount of loads done on that player, or something unexpected happens.

NOTE: When it reaches the amount of loads you have set, it doesn't stop using that player, just switches for undetectability, and later switches back to that player.

When walking to mine, if there are more than the amount of players you set in the const, it switches worlds so you can mine in peace.

The script has got antirandoms including gas dodging, and very fast rockfinding.

If however it fails to dodge a gas, inventory full or not, it goes to the bank, and if you haven't set the Spare Picks to True in the SRL Player Form, it will set the player false and move on, but if you set it True, it will look for a new pickaxe in the bank, and if it finds one, everything goes on as supposed to.

Includes three progress report options and SRL Stats.


The script is fully autocolored.



Must use SRL Stats -

Get SRL Stats from www.stats.srl-forums.com, click Register in the left side of the page, and in the script's const fill in the SRL ID, it's a number, not your forum name, and the SRL Stats Password.

That way you will

a) Get your autoing stats up
b) My script's autoing stat's get up
c) I can see how well it works and keep quality up.


Have fun!

Remember to post progress reports and how the script went!

Post problems and bugs here!


SRL 4 Revision 11 and SCAR 3.14



[S]paz

2008-02-03 08:40:44

the pic shows, it looks good ill have to try it some time,
but if not do you want some miners for extensive testing??

~Spaz

n3ss3s

2008-02-03 08:46:01

Well thanks, I've got my main, my test dude and a 4 player army which's mining lvls hang around 20, so if you have something like over 40 mining lvl's then I'd love that.

PvH

2008-02-03 09:13:44

I'll test it right now,
expect a proggy from me soon ;)
uhh
theres a little problem..
it does not compile because i dont have rev #12
where can i download rev #12?

n3ss3s

2008-02-03 09:15:57

Ok, thanks, remember to not wield the pickaxes.

FEAR

2008-02-03 09:19:18

Yay a new script atlast:D I will test it later (haven't got time now) and post a proggy:D


Good job

Edit: On the other hand. I will run the script now, I am going out now and I will be back in three hours so I can give you a report soon.


~~ FEAR ~~

PvH

2008-02-03 09:23:51

problem is:
__________________________________________________________________
Include file C:\Program Files\SCAR 3.14\includes\SRL\SRL\Core\Users.scar does not exist.
Failed when compiling
__________________________________________________________________
when i remove this line:
{.include SRL/SRL/Core/Users.scar}
i get an error in worldswitcher.scar :
Line 54: [Error] (12937:1): Semicolon (';') expected in script C:\Program Files\SCAR 3.14\includes\SRL/SRL/Misc/WorldSwitcher.scar
_____________________________________________________________
what do i need to change?

FEAR

2008-02-03 09:36:40

From: pvh
problem is:
__________________________________________________________________
Include file C:\Program Files\SCAR 3.14\includes\SRL\SRL\Core\Users.scar does not exist.
Failed when compiling
__________________________________________________________________
when i remove this line:
{.include SRL/SRL/Core/Users.scar}
i get an error in worldswitcher.scar :
Line 54: [Error] (12937:1): Semicolon (';') expected in script C:\Program Files\SCAR 3.14\includes\SRL/SRL/Misc/WorldSwitcher.scar
_____________________________________________________________
what do i need to change?


I get the same error…the path to users should be
{.include SRL/SRL/Misc/Users.scar}

Not

{.include SRL/SRL/Core/Users.scar}

but then I get


Failed when compiling Line 432 [Hint] : Variable 'OLDMS' never used in script C:\Program Files\SCAR 3.14[/COLOR]\includes\SRL/SRL/Core/AntiRandoms/AntiRandoms.scar Line 
[Error]: Semicolon expected in script C:\Program Files\SCAR 3.14[/COLOR]\includes\SRL/SRL/Misc/WorldSwitcher.scar

:confused:

n3ss3s

2008-02-03 10:02:30

I told you to use SRL revision 11!

In rev 11 users.scar is in core, I have tested it.

For the semicolon thing, maybe add a semicolon there?

FEAR

2008-02-03 10:17:31

From: n3ss3s
I told you to use SRL revision 11!

In rev 11 users.scar is in core, I have tested it.

For the semicolon thing, maybe add a semicolon there?

No it isn't. Users is in Misc even in rev#11. I tested it with scar 3.14 rev 10 and 11. And scar 3.12c rev 10 and 11. I get the same errors. And there is already a semicolon.

 bmp := CreateBitmapMaskFromText(IntToStr(WorldNum), UpChars);

n3ss3s

2008-02-03 10:46:38

Yeah, there is a semicolon on that line, except for that the problem is on the line above that, the "end" needs a semicolon. I know what I'm talking about, I think.


About the Users.scar, why not then just edit it to include it from misc?

For me it's been in Core.

noob-2

2008-02-03 10:54:08

Looks Delicious ill try this out in about 5 mins after i finish fletching on meh skiller :D

FEAR

2008-02-03 11:00:35

From: n3ss3s
Yeah, there is a semicolon on that line, except for that the problem is on the line above that, the "end" needs a semicolon. I know what I'm talking about, I think.


About the Users.scar, why not then just edit it to include it from misc?

For me it's been in Core.


Ah so the problem was with WorldSwitcher.scar. Fixed it but I still get this.

Line 432: [Hint] (10405:1): Variable 'OLDMS' never used in script C:\Program Files\SCAR 3.14\includes\SRL/SRL/Core/AntiRandoms/AntiRandoms.scar
Line 692: [Error] (15859:1): Unknown identifier 'SetRetaliate' in script C:\Documents and Settings\user\Desktop\VEM.scar

n3ss3s

2008-02-03 11:21:29

Oopsie, its gonna be SetRetaliate in Rev 12. Make the line Retaliate instead of SetRetaliate

Timer

2008-02-03 11:22:04

Eak I Wasn't Quick Enuf…
Here…
For Teh Leachers, Or Who Wants It Done :p

When WorldSwitch.scar Opens, Replace With This, If You Deleted A Line, You BETTER Replace With This…
//-----------------------------------------------------------------//
//-- Scar Standard Resource Library --//
//-- ยป WorldSwitch routines --//
//-----------------------------------------------------------------//
//
// * Function WorldScreen: Boolean; // by Wizzup and WT-Fakawi.
// * Function WorldSwitchButton: Boolean; // by Wizzup and WT-Fakawi.
// * Function FindWorld(Var x, y: integer; WorldNum: Integer): Boolean; // by Wizzup and WT-Fakawi.
// * Function WorldPlayers(x, y: integer): String; // by Wizzup and WT-Fakawi.
// * Function SelectWorld(WorldNumber: Integer): Boolean; // by Wizzup and WT-Fakawi.


Function WorldScreen: Boolean;

Begin
Result := SimilarColors(GetColor(65, 17), 1340055, 14);
End;


Function WorldSwitchButton: Boolean;

Var
t: LongInt;
Begin
If SimilarColors(GetColor(58, 481), 4997697, 14) Then
Begin
t := GetSystemTime;
Result := True;
Mouse(58, 481, 5, 10, True);
Repeat
Wait(16);
If WorldScreen Then
Break;
Until GetSystemTime - t > 10000;
If GetSystemTime - t > 10000 Then
Result := False;
Wait(1000);
End
Else
Result := False;
End;

Function FindWorld(Var x, y: integer; WorldNum: Integer): Boolean;

Var
bmp, i: integer;

Begin
x := 750;
If WorldNum < 21 Then
Begin
x := 140;
End;
bmp := CreateBitmapMaskFromText(IntToStr(WorldNum), UpChars);
For I := 0 To 6 Do
If (FindBitmapMaskTolerance(bmp, x, y, 55 + (i * 93), 30, 147 + (i * 93), 491, 15, 15)) Then
Begin
Result := True;
Break;
End;
FreeBitmap(bmp);
End;

Function WorldPlayers(x, y: integer): String;

Begin
FindColor(x, y, 16777215, x, y, x + 100, y + 20);
Result := Trim(GetTextAtEx(x - 2, y - 1, 20, StatChars, True, True, 0, 2, 16777215, 10,
False, tr_Allchars));
If TrimLetters(Result) = '' Then
Result := 'FULL';
// If (Result = 'LL') Or (Result = '') Or (Result = 'OFF') Then Result := 'FULL';
End;

Function SelectWorld(WorldNumber: Integer): Boolean;

Var
x, y: Integer;
n: string;

Begin
If Not WorldSwitchButton Then
If Not WorldScreen Then
Begin
Exit;
WriteLn('No World Screen');
End;

FindWorld(x, y, WorldNumber);
n := WorldPlayers(x, y);
WriteLn('Searching for world ' + IntToStr(WorldNumber));
If N <> 'FULL' Then
Begin
Mouse(x, y, 5, 5, True);
Result := True;
WriteLn('Going to world ' + IntToStr(WorldNumber) +
' and has ' + n + ' players.');
End
Else
WriteLn('World is either Full or does not exist.');
End;
And The Working VEM…
{*****************************************]
||Players[x].Integers[0] = irons mined ||
||Players[x].Integers[1] = loads bankd ||
||Players[x].Integers[2] = gas avoided ||
||Players[x].Booleans[0] = spare picks ||
[*****************************************

Credits for ChatsBlueText to Wizzy, only changed the color for GetTextAtEx...
Credits for SelectWorld2 to Wizzy, I did just a slight modification...



--- INSTRUCTIONS ---

Place your players in Varrock East Bank, pickaxe's unequipped.
Make sure you are running RuneScape on highest brightness.
Start the script logged out.

Note: Do not use accounts with bank pins, I didn't put a pinner in \laziness

IF you use spare pickaxes, have them on top of your bank.

Fill in the form that pops up, and have fun! :}





Program New;

{.include SRL/SRL.scar}
{.include SRL/SRL/Misc/Users.scar}
{.include SRL/SRL/Skill/Mining.scar}
{.include SRL/SRL/Misc/WorldSwitcher.scar}
{.include SRL/SRL/Skill/Fighting.scar}


Const
RTimeOut = 5500;

// Max time to mine a rock? Will have a random value added.

SRLStatsID = '';
SRLStatsPW = '';

// SRL Stats Info

Hopper = 4;

// If there are over this amount of players, switches world.

WPlayers = 1200;

// If switching a world, give amount of players you want it switch to UNDER.

PlayerLoads = 4;

// Keep it low, this way you'll have good chance of avoiding
// usolvable randoms like EvilBob etc. It gets a random amount added.
// NOTE: Player does not stop autoing after 4 loads, it just switches
// to another player to keep the script running longer.

DebugWay = 1;

// 1: Print how the current player is doing
// 2: Print all players at a time
// 3: No special player(s), just overall.

AutoRespond = True;

// Do you wish to respond to people asking mining lvl?
// Set to False if you already have an auto responder.



Var
dtmOre, dtmPick, Pl, FN, WPLR: Integer;


// -------------------------------------------------------------------------- //

Function GetPlayers: Integer;
Var
TPAA: Array of TPointArray;
TPA: TPointArray;
I, CTS: Integer;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsTolerance(TPA, 16777215, MMCX - 35, MMCY - 35, MMCX + 35, MMCY + 35, 8);
TPAA := TPAToATPAEx(TPA, 4, 4);
For I := 0 To High(TPAA) Do
If GetArraylength(TPAA[i]) >= 10 Then
Result := Result + 1;
ColorToleranceSpeed(CTS);
End;

// -------------------------------------------------------------------------- //

Function SelectWorld2(WorldNumber: Integer): Boolean;
Var
x, y: Integer;
n: string;
Begin
If Not WorldSwitchButton Then
If Not WorldScreen Then
Begin
Exit;
End;
FindWorld(x, y, WorldNumber);
n := WorldPlayers(x, y);
WriteLn('Searching for world ' + IntToStr(WorldNumber));
If N <> 'FULL' Then
Begin
If StrToInt(N) <= WPLR Then
Begin
Mouse(x, y, 5, 5, True);
Result := True;
WriteLn('Going to world ' + IntToStr(WorldNumber) +
' and has ' + n + ' players.');
End;
End;
End;


// -------------------------------------------------------------------------- //

Procedure Hop;
Var
W: TIntegerArray;
I: Integer;
Begin
W := [1, 3, 4, 5, 7, 8, 10, 11, 13, 14, 15, 16, 17, 19, 20, 21, 25,
29, 30, 32, 33, 34, 35, 37, 38, 40, 41, 43, 47, 50, 51, 52, 55,
57, 61, 62, 63, 67, 68, 72, 75, 75, 80, 81, 85, 86, 87, 90, 93,
94, 95, 96, 101, 102, 105, 106, 107, 108, 109, 113, 117, 118, 119,
123, 125, 126, 127, 128, 133, 134, 136, 141, 142, 149, 152, 153,
154, 155];

While Not SelectWorld2(W[Random(GetArrayLength(W))]) Do
Begin
Wait(200 + Random(300));
I := I +1;
If I >= 50 Then Break;
End;
If WorldScreen Then
Mouse(729, 13, 2, 2, True);
LoginPlayer;
End;

// -------------------------------------------------------------------------- //

Procedure LoadDTMs;
Begin
dtmOre := DTMFromString('78DA632C60626078C48006189148205D45849' +
'A2CA09A9704D4A401D57C24A0A614A8E60D0135E540352F08A829' +
'02AAB98F5F0D00397C098D');

dtmPick := DTMFromString('78DA63F4606260B8CF800618914820ED06547' +
'383801A73A09A9B04D49801D5DC21A0C607A8E62E01357684DD03' +
'003C9306C5');
End;

// -------------------------------------------------------------------------- //

Procedure PlayerReport(i: Integer);
Begin
Writeln('-||------------------------------------------------||-');
Writeln('-||-------------- Player report: '+IntToStr(i)+' -----------------||-');
Writeln('-|| Irons mined: '+IntToStr(Players[i].Integers[0])+';');
Writeln('-|| Gas Avoided: '+IntToStr(Players[i].Integers[2])+';');
Writeln('-|| Loads banked: '+IntToStr(Players[i].Integers[1])+';');
Writeln('-|| Loc: '+Players[i].Loc+';');
Writeln('-|| Active: '+BoolToStr(Players[i].Active)+';');
Writeln('-||------------------------------------------------||-');
End;

// -------------------------------------------------------------------------- //

Procedure AllReport;
Var
I: Integer;
Begin
For I := 0 To High(Players) Do
PlayerReport(i);
Writeln('-||------------------------------------------------||-');
Writeln('-|| Time Ran: '+IntToStr(Round(GetTimeRunning / 60000)) +' min.');
Writeln('-||------------------------------------------------||-');
End;

// -------------------------------------------------------------------------- //

Procedure FullReport;
Var
X, Y, Z, I: Integer;
Begin
For I := 0 To High(Players) Do
Begin
X := X + Players[i].Integers[0];
Y := Y + Players[i].Integers[2];
Z := Z + Players[i].Integers[1];
End;
Writeln('-||------ Reppie ------- ||-');
Writeln('-|| Irons mined: '+IntToStr(X)+';');
Writeln('-|| Gas Avoided: '+IntToStr(Y)+';');
Writeln('-|| Loads banked: '+IntToStr(Z)+';');
Writeln('-||------------------------------------------------||-');
Writeln('-|| Time Ran: '+IntToStr(Round(GetTimeRunning / 60000)) +' min.');
Writeln('-||------------------------------------------------||-');
End;

// -------------------------------------------------------------------------- //

Function RadialTPAWalk(Color: Integer; MinPix, SR, ER, MinD, MaxD, M: Integer): Boolean;
Var
TPAA: Array of TPointArray;
X, Y, Z, I, S, E: Integer;
TPA: TPointArray;
Begin
FindColorsSpiralTolerance(MMCX, MMCY, TPA, Color, MMX1, MMY1, MMX2, MMY2, 0);
FilterPointsPie(TPA, 0, 359, MinD, MaxD, MMCX, MMCY);
TPAA := TPAToATPA(TPA, Round(Sqrt(MinPix)));
S := SR + Round(Rs_GetCompassAngleDegrees);
E := ER + Round(Rs_GetCompassAngleDegrees);
{ Z := E - S shr 1;
X := MMCX + Round(MaxD * Cos(Z - 90));
Y := MMCY + Round(MaxD * Sin(Z - 90));
SortATPAFrom(TPAA, Point(X, Y)); }
If S > 360 Then S := S - 315;
If E > 360 Then E := E - 315;
For I := High(TPAA) DownTo 0 Do
Begin
MiddleTPAEx(TPAA[i], X, Y);
If M <> 1 Then
Begin
Z := Round(Degrees(ArcTan2(MMCY - Y, MMCX - X))) - 90;
If Z < 0 Then
Z := Z + 360;
End Else
Z := Round(Degrees(ArcTan2(MMCY - Y, MMCX - X))) - 90;
If Z > SR Then
If Z < ER Then
Begin
MouseFindFlag(X, Y, 1, 1);
Flag;
Result := True;
Exit;
End;
End;
End;

// -------------------------------------------------------------------------- //

Function ToMineMiddle: Boolean;
Var
TPA: TPointArray;
X, Y: Integer;
Begin
FindColorsSpiralTolerance(MSCX, MSCY, TPA, FindStoneColor, MMX1, MMY1, MMX2, MMY2, 5);
Result := MiddleTPAEx(TPA, X, Y);
If Result Then
Begin
MouseFindFlag(X, Y, 1, 1);
Flag;
End;
End;

// -------------------------------------------------------------------------- //

Function ToMineUpRight: Boolean;
Var
TPA: TPointArray;
Begin
FindColorsSpiralTolerance(MSCX, MSCY, TPA, FindStoneColor, MMX1, MMY1, MMX2, MMY2, 5);
If GetArraylength(TPA) > 13 Then
Result := True;
SortTPAFrom(TPA, Point(MMX2, MMY1));
MouseFindFlag(TPA[0].X, TPA[0].Y, 1, 1);
Flag;
End;

// -------------------------------------------------------------------------- //

Procedure ChessMate;
Var
X, Y, Z, R, A: Integer;
Begin
Z := Round(Rs_GetCompassAngleDegrees);
A := 205 + Random(11) + Z;
R := 30 + Random(10);
X := MMCX + Round(R * Cos(Radians(A - 90)));
Y := MMCY + Round(R * Sin(Radians(A - 90)));
MouseFindFlag(X, Y, 1, 1);
Flag;
End;

// -------------------------------------------------------------------------- //

Function ToMine: Boolean;
Var
SR, ER: TIntegerArray;
I, X, Y, Z: Integer;
B: Boolean;
Begin
If Not LoggedIn Then Exit;
SetRun(True);
SR := [0, 84, 130, 105, 145, 140];
ER := [90, 115, 185, 185, 195, 190];
For I := 0 To High(SR) Do
If FindSymbol(X, Y, 'mining spot') Then
Begin
Z := Round(Degrees(ArcTan2(MMCY - Y, MMCX - X))) - 90;
Z := Z + Round(Rs_GetCompassAngleDegrees);
If InRange(Z, 0, 90) Then
Begin
B := True;
Writeln('mmo');
Break;
End;
End Else
// If Not ToMineMiddle Then
If Not RadialTPAWalk(FindVarrockRoadColor, 70, SR[i], ER[i], 25, 68, 2) Then
Exit;
If Not B Then
ChessMate;
If Not ToMineMiddle Then
If FindSymbol(X, Y, 'mining spot') Then
Begin
MouseFindFlag(X, Y, 1, 1);
Flag;
End;
Result := True;
End;

// -------------------------------------------------------------------------- //

Function ToBank: Boolean;
Var
TPAA: Array of TPointArray;
SR, ER: TIntegerArray;
TPA: TPointArray;
I, X, Y, M, Sx, Sy, R: Integer;
Begin
If Not LoggedIn Then Exit;
SetRun(True);
// If Not ToMineUpRight Then
// MouseFlag(MMCX + 10, MMCY - 10, 1, 1);
I := Round(Rs_GetCompassAngleDegrees);
X := MMCX + Round(12 * Cos(Radians(45 - 90 + i)));
Y := MMCY + Round(12 * Sin(Radians(45 - 90 + i)));
MouseFindFlag(X - 3 + Random(7), Y - 3 + Random(7), 1, 1);
Flag;
SR := [0, -25, 300, 300, 255, 255];
ER := [30, 20, 359, 340, 280, 280];
For I := 0 To High(SR) Do
Begin
If I = 1 Then
M := 1
Else
M := 2;
If I = 4 Then
R := 75
Else
If I = 5 Then
R := 38 + Random(8)
Else
R := 64;
If Not RadialTPAWalk(FindVarrockRoadColor, 73, SR[i], ER[i], 30, R, M) Then
Exit;
End;
Result := FindSymbol(X, Y, 'bank');
MouseFindFlag(X, Y, 1, 1);
Flag;
FindColorsSpiralTolerance(MMCX, MMCY, TPA, 195836, MMX1, MMCY, MMCX + 20, MMY2, 5);
If Not Result Then
Result := GetArrayLength(TPA) > 6;
TPAA := SplitTPA(TPA, 4);
SortATPASize(TPAA, True);
TPA := TPAA[0];
MiddleTPAEx(TPA, X, Y);
FindSymbol(Sx, Sy, 'training dummy');
TPA := [Point(X, Y - 10), Point(X, Y + 10)];
SortTPAFrom(TPA, Point(Sx, Sy));
MouseFindFlag(TPA[0].x, TPA[0].y, 1, 1);
Flag;
End;

// -------------------------------------------------------------------------- //

Function FindIrons: TPointArray;
Var
TPAA: Array of TPointArray;
TPA: TPointArray;
CTS, I: Integer;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.22, 0.23);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 2964577, 20, 20, MSX2 - 20, MSY2 - 20, 3);
TPAA := TPAToATPAEx(TPA, 20, 19);
For I := 0 To High(TPAA) Do
If GetArrayLength(TPAA[i]) > 7 Then
Begin
SetArrayLength(Result, GetArrayLength(Result) + 1);
Result[High(Result)] := MiddleTPA(TPAA[i]);
End;
SetColorSpeed2Modifiers(0.2, 0.2);
ColorToleranceSpeed(2);
End;

// -------------------------------------------------------------------------- //

Function FindIron(Var Ix, Iy: Integer): Boolean;
Var
TPA: TPointArray;
I: Integer;
Begin
TPA := FindIrons;
For I := 0 To High(TPA) Do
If Not GasFound(TPA[i].x, TPA[i].y) Then
Begin
Ix := TPA[i].x;
Iy := TPA[i].y;
Result := True;
Exit;
End;
End;

// -------------------------------------------------------------------------- //

Function ChatsBlueText: Array of String;
Var
I: Byte;
tpa: TPointArray;
Begin
SetArrayLength(tpa, 9);
For I := 1 To 8 Do
tpa[i] := TextCoords(i);

SetArrayLength(Result, 9);
For I := 1 To 8 Do
Result[I] := Trim(GetTextAtEx(tpa[i].x - 2, tpa[i].y - 2, 0, SmallChars, False,
False, 0, 1, 16711680, 80, False, tr_AllChars));
End;

// -------------------------------------------------------------------------- //

Procedure LevelRespond;
Var
Sa, Qu: Array of String;
C, I, Z: Integer;
Begin
Sa := ChatsBlueText;
Qu := ['mining lvl', 'mining lwl', 'mining lev'];
For I := 6 To 7 Do
For C := 0 To 2 Do
If Pos(Qu[c], LowerCase(Sa[i])) > 0 Then
Begin
Z := GetSkillInfo('mining', False);
If I = 6 Then
If Pos(IntToStr(z), LowerCase(Sa[7])) > 0 Then
Exit;
GameTab(4);
Case Random(4) Of
0: TypeSend('Me '+IntToStr(z));
1: TypeSend(IntToStr(z)+' here');
2: TypeSend(IntToStr(z));
3: TypeSend(IntToStr(z)+'...');
End;
Exit;
End;
End;

// -------------------------------------------------------------------------- //

Function MineRock: Boolean;
Var
X, Y, I, II, M, R: Integer;
B: Boolean;
Begin
If Not LoggedIn Then Exit;
If FindIron(X, Y) Then
Begin
Mouse(X, Y, 2, 2, False);
If Not ChooseOption('ine') Then
Exit;
Repeat
FindColorSpiralTolerance(X, Y, 2503506, X - 20, Y - 20, X + 20, Y + 20, 10);
Wait(10);
I := I + 1;
If Not FlagPresent Then
Begin
Repeat
FindColorSpiralTolerance(X, Y, 2503506, X - 20, Y - 20, X + 20, Y + 20, 10);
Wait(10);
II := II + 1;
If II Mod 10 = 0 Then
If FindTalk Then
Exit;
If II > 200 Then Exit;
If InChat('currently available') Then
Exit
Else
If InChat('swing') Then
Begin
B := True;
Break;
End;
Until(II > 200);
End;
If B Then Break;
Until(Not(FlagPresent)) Or (I > 500);
M := GetSystemTime;
R := RTimeOut + Random(750);
Repeat
If FindNormalRandoms Then
If Not LoggedIn Then
Exit;
Wait(150 + Random(50));
If Random(3) = 1 Then
If Random(3) = 1 Then
If Random(3) = 1 Then
MMouse(MSX1, MSY1, MIX2, MIY2);
If InChat('manage to') Then
Begin
Result := True;
Break;
End;
If GetSystemTime - M >= R Then
Break;
If GasFound(X, Y) Then
Begin
Inc(Players[CurrentPlayer].Integers[2]);
Inc(ReportVars[2]);
MouseFindFlag(MMCX + 2, MMCY + 2, 1, 1);
Flag;
Wait(18000 + Random(4000));
Exit;
End;
If Not FindColorSpiralTolerance(X, Y, 2503506, X - 15, Y - 15, X + 15, Y + 15, 10) Then
Break;
If FindFight Then
Begin
RunTo('e', True);
Exit;
End;
If AutoRespond Then
LevelRespond;
Until (Not(LoggedIn));
End;
End;

// -------------------------------------------------------------------------- //

Procedure MineRocks;
Var
X, Y: Integer;
Begin
If Not LoggedIn Then Exit;
SetRun(True);
Repeat
If MineRock Then
Wait(150 + Random(100));
Wait(50 + Random(100));
If FindNormalRandoms Then
If Not LoggedIn Then
Exit;
GameTab(4);
If Not FindDTM(dtmPick, x, y, MIX1, MIY1, MIX2, MIY2) Then
Begin
If Not FindPick Then
Begin
Players[CurrentPlayer].Loc := 'No pick';
If Not Players[CurrentPlayer].Booleans[0] Then
Logout;
End;
Exit;
End;
If Random(3) = 1 Then
If Random(3) = 1 Then
If Random(3) = 1 Then
MMouse(MSX1, MSY1, MSX2, MSY2);
Until(InvFull) Or (Not(LoggedIn));
End;

// -------------------------------------------------------------------------- //

Function OpenVEB: Boolean;
Var
TPAA: Array of TPointArray;
CTS, I, X, Y: Integer;
TPA: TPointArray;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 2955553, MSX1, MSY1, MSX2, MSY2, 10);
TPAA := TPAToATPAEx(TPA, 15, 20);
For I := 0 To High(TPAA) Do
If GetArrayLength(TPAA[i]) > 80 Then
Begin
MiddleTPAEx(TPAA[i], X, Y);
Mouse(X, Y, 3, 3, False);
Result := ChooseOption('ank B');
If Result Then
Begin
Flag;
Break;
End;
End;
ColorToleranceSpeed(CTS);
End;

// -------------------------------------------------------------------------- //

Procedure DropToPosition(From, tTo: Integer);
Var
I: Integer;
Begin
If Not LoggedIn Then Exit;
For I := From To tTo Do
If ExistsItem(i) Then
DropItem(i);
End;

// -------------------------------------------------------------------------- //

Procedure Bank;
Var
X, Y, Z: Integer;
Begin
If Not LoggedIn Then Exit;
If Not BankScreen Then
Begin
Logout;
Exit;
End;
Z := CountItems(dtmOre, 'dtm', []);
IncEx(Players[CurrentPlayer].Integers[0], Z);
ReportVars[0] := Z;
If FindDTM(dtmOre, x, y, mix1, miy1, mix2, miy2) Then
Begin
Mouse(X, Y, 2, 2, False);
ChooseOption('ll');
End Else
Deposit(2, 28, 2);
If Players[CurrentPlayer].Booleans[0] Then
If FN = 1 Then
If FindDTM(dtmPick, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
FixBank;
Mouse(X, Y, 2, 2, True);
Wait(500 + Random(100));
FN := 0;
End;
CloseBank;
FindNormalRandoms;
DropToPosition(2, 28);
If FN = 1 Then
Begin
FN := 0;
Logout;
End;
End;

// -------------------------------------------------------------------------- //

Procedure ScripTerminate;
Begin
FreeDTM(dtmPick);
FreeDTM(dtmOre);
End;

// -------------------------------------------------------------------------- //

begin
SetupSRL;
SetupMining;
ScriptID := '604';
SRLID := SRLStatsID;
SRLPassword := SRLStatsPW;
WPLR := WPlayers;
LoadDTMs;
SRLPlayerForm(True, ['Spare picks?'], [], [], []);
Repeat
LoginPlayer;
Pl := 0;
SetChat('on', 1);
SetChat('off', 2);
SetChat('off', 3);
SetAngle(True);
MakeCompass('n');
Retaliate(False);
Repeat
If Not ToMine Then
Begin
TerminateScript;
Players[CurrentPlayer].Loc := 'Lost';
Break;
End Else
Players[CurrentPlayer].Loc := 'Mine';
If GetPlayers > Hopper Then
Begin
Logout;
Hop;
SetAngle(True);
MakeCompass('n');
End;
MineRocks;
If Not LoggedIn Then Break;
If Players[CurrentPlayer].Loc = 'No pick' Then
FN := 1;
If Not ToBank Then
Begin
TerminateScript;
Players[CurrentPlayer].Loc := 'Lost';
Break;
End Else
Players[CurrentPlayer].Loc := 'Bank';
If FN = 1 Then
DropItem(1);
If Not OpenBankQuiet('veb') Then
Begin
Players[CurrentPlayer].Loc := 'Bank problems';
Logout;
Break;
End;
Bank;
ReportVars[1] := ReportVars[1] + 1;
SRLRandomsReport;
If Not LoggedIn Then Break;
Inc(Players[CurrentPlayer].Integers[1]);
Pl := Pl + 1;
Case DebugWay Of
1: PlayerReport(CurrentPlayer);
2: AllReport;
3: FullReport;
End;
Until(Pl > PlayerLoads + Random(3)) Or (Not(LoggedIn));
Case DebugWay Of
1: PlayerReport(CurrentPlayer);
2: AllReport;
3: FullReport;
End;
SRLRandomsReport;
NextPlayer(LoggedIn);
Until(False);
End.
-Enjoy!-
Timer

1337mining

2008-02-03 11:24:51

Yess,tysm n3ss3s. I cant wait to give u a progress report,ill test it out when im finished studying =]. Keep up your excellent work

n3ss3s

2008-02-03 11:25:08

For Teh Leachers, Or Who Wants It Done


Thanks, but I don't. If they can't fix something simple as the including / retaliate, they can do without. Thank for the WorldSwitcher though.

FEAR

2008-02-03 11:27:12

From: n3ss3s
Oopsie, its gonna be SetRetaliate in Rev 12. Make the line Retaliate instead of SetRetaliate



What rev 12?:confused:I thought there is only till 11.


I fixed the WorldSwitcher and the retaliate before you :p

I am gonna post a proggy:spot::D later

Timer

2008-02-03 11:30:57

Your Includes Were Rong Too…
Some Peeps Might Not Know They Move User.scar To Misc

n3ss3s

2008-02-03 11:48:08


What rev 12?I thought there is only till 11.


I said "gonna be in rev 12"

Scaper

2008-02-03 11:53:45

0 another script ill have to use to the max by n3 im jus on with mining now aswell so ill be using quiet a bit like the yew cutter :)

FEAR

2008-02-03 12:08:55

I ran it twice, both times it failed:(

1st time - went till the mine, mined 1 ore went halfway to bank and script got terminated.

2nd time - went till mine, logged out, logged back in, started going to bank and got terminated halfway to bank.

Got this in the debug box

Successfully compiled
Line 432: [Hint] (10405:1): Variable 'OLDMS' never used in script C:\Program Files\SCAR 3.14\includes\SRL/SRL/Core/AntiRandoms/AntiRandoms.scar
SRL Compiled in 16 msec
************
Creating the NickTPA.
Varrock RoadColor = 7634046
Varrock RoadColor = 7634046
Varrock RoadColor = 7634046
Varrock RoadColor = 7765632
Varrock RoadColor = 7765632
Stone Color = 2835836
*********
Varrock RoadColor = 7897218
Varrock RoadColor = 7897218
Varrock RoadColor = 7897218
Varrock RoadColor = 7897474
Successfully executed
Successfully compiled
Line 432: [Hint] (10405:1): Variable 'OLDMS' never used in script C:\Program Files\SCAR 3.14\includes\SRL/SRL/Core/AntiRandoms/AntiRandoms.scar
SRL Compiled in 16 msec
********
Creating the NickTPA.
Varrock RoadColor = 8028804
Varrock RoadColor = 8028804
Varrock RoadColor = 8028804
Varrock RoadColor = 7897218
Varrock RoadColor = 7897218
Varrock RoadColor = 7897218
Stone Color = 2835836
*******
Varrock RoadColor = 7897218
Varrock RoadColor = 7897218
Varrock RoadColor = 7897218
Varrock RoadColor = 7897474
Varrock RoadColor = 7897474
Successfully executed

Userkill

2008-02-03 12:54:06

Mine just goes to mine and bank continously… does not actually mine anything…

i found the problem… u cant wield the pick axe…

n3ss3s

2008-02-03 13:33:32

i found the problem… u cant wield the pick axe…


Isn't that what I'm saying, read the instructions.


SORRY PEOPLE I GOT ONE THING TO THE SCRIPT IN THE DEBUGGING PART, FIXING

Fixed.

Make sure you follow all instructions, I can't help other than that, works perfect for me.

MylesMadness

2008-02-03 13:55:26

I want to know how you know what is going to be different in #12.

Userkill

2008-02-03 13:56:37

now it only does 2 runs then terminates…

n3ss3s

2008-02-03 14:07:28

I want to know how you know what is going to be different in #12.


Because SetRetaliate is my procedure, but Wizzup put it to dev 4.12 and I forgot and thought it was 4.11.

Timer

2008-02-03 14:33:20

From: n3ss3s
Because SetRetaliate is my procedure, but Wizzup put it to dev 3.12 and I forgot and thought it was 3.11.


Dev 4.12
4.11
lol

Mariuswbz

2008-02-03 23:51:12

Nice script. I will test and post a proggie.

n3ss3s

2008-02-04 08:24:59

Thank you, I'll be waiting for it :)


Yay, by the SRL Stats it seems like people have gotten it to run atleast a few loads…

Userkill

2008-02-04 17:57:15

i got rev 12 and SetRetaliate is still unknkown…

n3ss3s

2008-02-05 08:14:22

Yeah, because Wizzup forgot to put it in. (np m8)

sweetleaf

2008-02-05 08:23:42

so would this work with just one char? i'm pretty sure i misread your instructions or somthing. can't test right now since its 6am and im about to leave tho lol.

FagetHax0r

2008-02-06 11:25:26

You should update it to REV 13 And Smart and i run it for 1-2 Hours and i post proggy :)

realrocker00

2008-02-06 16:54:27

looks nice

xhackxattackx

2008-02-08 09:25:13

Quote: Make sure you follow all instructions, I can't help other than that, works perfect for me. Yay, by the SRL Stats it seems like people have gotten it to run atleast a few loads…


[Runtime Error] : Exception: Access violation at address 021910AB in module 'Embedded SMART.dll'. Read of address 000006DC in line 47 in script C:\Program Files\SCAR 3.12\includes\SRL/SRL/Misc/SMART.scar

runs a load and gets a run time error in the above smart.scar

…but it works good for you???

n3ss3s

2008-02-08 09:53:28

Ya, or used to, now I've got a problem that I can't login to rs, but anyway, that problem is smart related, not my script… I think…

gillian

2008-02-13 14:08:34

n3ss .. are you still providing support for this script? If so, I will run my 11 Girlies on it until they are 50+ Mining .. they are all 40+ right now. Just need to know what version of SRL it is built for - I see both 11 and 12 mentioned .. I am running SCAR 3.14 with SRL 13. I know Runescape was just updated and things aren't working .. I will wait until you post to set myself up.

gillian

2008-02-15 08:28:55

Okies .. I know this is a double post, but it's like 2 days later :p .. still trying to figure out if you are active with this script because I will be done with my cooking today and will be setting a few Girlies up to mine overnight. I will use Masterkill's if you aren't working on this one anymore.

Thanks! :)

n3ss3s

2008-02-15 15:02:30

No, sorry, I am not active with it.

gillian

2008-02-16 16:48:38

No worries .. ty for the response! :)

exppo

2008-02-23 09:32:15

KOOOLIES post proggie in 2 mins :)

exppo

2008-02-23 09:34:49

Proggie wont paste sorry for the double post <

Griff

2008-02-28 10:03:18

looks like a great script i would try it put my scar sisnt working for somem reason…

n3ss3s

2008-02-28 10:40:44

It's not Rev 14, don't try it unless you don't know how to update to rev 14…

Griff

2008-02-29 18:58:37

it sais falied when complying for me :(

n3ss3s

2008-03-01 06:26:23

It's not Rev 14, don't try it unless you don't know how to update to rev 14…


!

justsh00t

2008-03-26 05:00:13

I am going to try it out , will edit later if i've get time.

Your script says there will pop up a form that you need to fill in , it doesn't pop up tome.