Read my tutorial on how to setup your players.
Printable View
Actually i have read it. But i used to get it to work. But when i started it today it didn't. I'm gonna read your tut again now
----------------------------------------------
Essence Miner by Wizzup?.
Version: 1.08
Rune Essence Mined and Banked : 56.
Worked for 6 Minutes and 51 Seconds
----------------------------------------------
0 : nobanplzmaybetoolonguser = T; Loc = Bank; Banked: 56 Ess; M lvl:11
1 : nobanplzmaybetoolonguser1 = T; Loc = Bank; Banked: 0 Ess; M lvl:0
2 : nobanplzmaybetoolonguser2 = T; Loc = Bank; Banked: 0 Ess; M lvl:0
----------------------------------------------
nobanplzmaybetoolonguser.
Mined 56 Essence.
Mining level is 11
Location is Bank.
----------------------------------------------
----------------------------------------------
Pick head colors... 1649206 2177354 2044481 2045510 2506834
RuneShopColor = 4947588
Found with FindColoredAreaTolerance.
Exact Color Found
Distance = 9
Spotted aubury text
[Runtime Error] : Exception: Access violation at address 00653F79 in module 'scar.exe'. Read of address 04F3BFFE in line 1084 in script C:\Program Files\SCAR 2.03\includes\srl\srl\core\AntiRandoms\AntiRandoms .scar
got any ideas?
Scar working fine
SRL working fine
Quick specs: P4 3,2Ghz/2GB DDR2-400/no other programs run at that time...
Someone told me that this wizups essence miner was really good.. i need to try it out ;)
when im mining the ess it doesnt click while im mining so i get logged out after i mine 14 rune ess.... so it doesnt bank any then it doesnt log me back in either
Thanks
ill go try this
Do i have to choose high or low detail ?
low detail for better script results...high u cant see inside a building ...low u can. helps find albury better =)
yes, wizzup, that didn't happen again.
Btw, it works quite good with high detail too. But low detail brings BEST results.
Wizzup, i heard your free essence miner works better then the one from starblaster100, si this really true? Because i already bought his one a time ago :) ist juist?
haha that'd be pretty funny -> free script beats 1m pay script in performance
I'd say they're about the same....
ill fix it for u lol... i used this for forever and it worked for forever until runescape got updated, i just changed one value that was really important, and i thinka couple unimportant things, but there it is for u lazy bums, it took me forever to figure out why it wouldnt work, but i noticed that they all logged with exactly 18 ess in their inventory at the mine, so i fixed it! yay! it should work, i just took out my macroers names there, so, (hopefullly) have fun!, and if not, too bad, ask wizzup
SCAR Code:program EssMiner;
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Mining.scar}
{
"Stars, Hide your fires, Let not light see my black and deep desires.
The eye wink at the hand; Yet let that be, Which the eye fears when it
is done to see"
Macbeth - Shakespeare
}
Const
FirstWorld = False;
// IF you first loaded a
// world and are too lazy to logout once.
StartPlayer = 0;
NumberOfUsers = 6;
MinutesPerLoad = 5;
Loads = 10000;
VersionNumber = '1.08';
YourSRLSTATSID = ''; // Stats ID.
YourSRLSTATSPASS = ''; // Stats Pass.
YourRCMASTER = ''; // Remote Control Master.
WizzyDebug = True;
Var
Position : String;
EssencePoint : Array [0..4] Of TPoint;
MiningMark, Abyss, NOAbyss, AuburyText, RuneShopColor,
RuneEssenceMined, PureEssenceMined, iMark, IdleMark, Doors: Integer;
PortalBool, PouchBool, PouchBool2 : Boolean;
Procedure DeclarePlayers;
Begin
HowManyPlayers:= NumberOfUsers;
NumberOfPlayers( HowManyPlayers );
CurrentPlayer := StartPlayer;
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Loc :='Bank';
Players[0].Active:=True;
Players[0].Boolean1 := True; // Is The Pick Equipped?
Players[0].Boolean2 := False; // False for brightness Check Once.
Players[0].String1 := ''; // Bank PIN, If any.
Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Loc :='Bank';
Players[1].Active:=True;
Players[1].Boolean1 := True; // Is The Pick Equipped?
Players[1].Boolean2 := False; // False for brightness Check Once.
Players[1].String1 := ''; // Bank PIN, If any.
Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Loc :='Bank';
Players[2].Active:=True;
Players[2].Boolean1 := True; // Is The Pick Equipped?
Players[2].Boolean2 := False; // False for brightness Check Once.
Players[2].String1 := ''; // Bank PIN, If any.
Players[3].Name :='';
Players[3].Pass :='';
Players[3].Nick :='';
Players[3].Loc :='Bank';
Players[3].Active:=True;
Players[3].Boolean1 := True; // Is The Pick Equipped?
Players[3].Boolean2 := False; // False for brightness Check Once.
Players[0].String1 := ''; // Bank PIN, If any.
Players[4].Name :='';
Players[4].Pass :='';
Players[4].Nick :='';
Players[4].Loc :='Bank';
Players[4].Active:=True;
Players[4].Boolean1 := True; // Is The Pick Equipped?
Players[4].Boolean2 := False; // False for brightness Check Once.
Players[4].String1 := ''; // Bank PIN, If any.
Players[5].Name :='';
Players[5].Pass :='';
Players[5].Nick :='';
Players[5].Loc :='Bank';
Players[5].Active:=True;
Players[5].Boolean1 := True; // Is The Pick Equipped?
Players[5].Boolean2 := False; // False for brightness Check Once.
Players[5].String1 := ''; // Bank PIN, If any.
Writeln( IntToStr ( NumberOfUsers ) + ' Players' );
End;
Function HighestBrightNess: Boolean;
Begin
GameTab(11);
Wait(400);
If GetColor(712, 226) <> 16777215 Then
Begin
Mouse(712, 226, 2, 2, True);
Result := True;
Wait(200);
End;
End;
Function GetUpTextBlue:String;
Var
iX, iY: Integer;
Begin
Result := Trim(GetTextAtEx(7, 7, 140, upchars, true,
true, 0, 2, 14277634, 50, True, tr_AllChars));
End;
Function IsUpTextBlue(Text: String): Boolean;
Begin
Result := (Pos(Text, GetUpTextBlue) <> 0)
End;
Function FindAuburyText: Boolean; // FindTalk by Renax, but adepted.
var
ExitCond, NoMoreYellow: Boolean;
Yint, Xmin, diff, difflast, Xmax, XmidRec, Xmid: Integer;
RawMenuText: string;
begin
x := 0;
y := 0;
Xmid := 0;
Xmin := 0;
Xmax := 0;
NoMoreYellow := False;
if (FindColor(x, y, 65535, 10, 25, 511, 334)) and (not (FindColor(x, y, 65280, 220, 130, 290, 165))) then
begin
Result := False;
if (not (FindBitmapMaskTolerance(AuburyText, x, y, 0, 0, 516, 338, 0, 40)))
then
Exit;
if (FindColorSpiral(x, y, 65535, x - 10, y - 10, x + 10, y + 10)) then
begin
Wait(10);
if (GetColor(x, y) = 65535) then
begin
If WizzyDebug Then WriteLn('Spotted aubury text');
Wait(10);
NoMoreYellow := False;
Yint := 0;
repeat
Yint := Yint + 1;
y := y + Yint;
x := 0;
repeat
ExitCond := False;
x := x + 1;
Xmin := x;
if (GetColor(x, y) = 65535) then
ExitCond := True;
if (x > 500) then
begin
x := 0;
ExitCond := True;
NoMoreYellow := True;
end;
until (ExitCond);
ExitCond := False;
x := 520;
while (NoMoreYellow = False) and (ExitCond = False) do
begin
x := x - 1;
Xmax := x;
if (GetColor(x, y) = 65535) then
ExitCond := True;
end;
diff := (Xmax - Xmin);
if (diff > difflast) and (diff > 25) then
begin
XmidRec := ((diff / 2) + Xmin);
end;
difflast := diff;
until (NoMoreYellow)
x := XmidRec;
MMouse(x, y + 6, 3, 0);
Wait(100);
if IsUpTextMulti('Talk', 'lk-to', 'to') Then
begin
GetMousePos(x, y);
Mouse(x, y + 6, 0, 0, False);
if (ChooseOptionGetMenuText(RawMenuText, x, y, 'Teleport')) then
begin
If WizzyDebug Then WriteLn('Found Aubury')
FFlag(1);
Wait(1000 + Random(500))
Result := True;
Exit;
end;
end;
end;
end;
end;
end;
Function AtMine: Boolean;
Var
iX, iY: Integer;
Begin
Result := FindColoredAreaTolerance(iX, iY, 0, MMX1, MMY1, MMX2, MMY2, 100, 0);
End;
Function ScanMiniMap(iFrom, iTo, Distance: Integer): Integer;
Var
I, iX,iY: Integer;
Begin
For I := iFrom To ITo Do
Begin
iX := Round(Distance * Sin(I * Pi / 180)) + 648;
iY := Round(-Distance * Cos(I * Pi / 180)) + 80;
If GetColor(iX, iY) = 0 Then
Begin
Result := Result + 1;
End;
End;
End;
Function InAbyss: Boolean;
Var
A : Integer;
Begin
A := ScanMiniMap(0, 359, 50);
If WizzyDebug Then WriteLn('In Abyss gave '+IntToStr(A)+'.');
If A = 360 Then
Begin
Result := True;
End
End;
Function GuessAbyssRandom: Boolean;
Var
AbyssalMark, iX, iY, I, ChosenColor, Tol, Tries: Integer;
WeirdColors: Array [0..3] Of Integer;
Operate: TPoint;
Begin
WeirdColors[0] := 13751777;
WeirdColors[1] := 4953873;
WeirdColors[2] := 2509833;
Repeat
Case Random(4) Of
0: Begin Operate.X := 252; Operate.Y := 150; End;
1: Begin Operate.X := 278; Operate.Y := 170; End;
2: Begin Operate.X := 238; Operate.Y := 200; End;
3: Begin Operate.X := 215; Operate.Y := 166; End;
End;
For I := 0 To 2 Do
Begin
Tol := 0;
Repeat
Tol := Tol + 1;
iX := MSCX;
iY := MSCY;
If FindColorSpiralTolerance(iX, iY, WeirdColors[I], MSX1, MSY1, MSX2, MSY2, Tol) Then
Begin
ChosenColor := WeirdColors[I];
If (Distance (iX, iY, MSCX, MSCY) < 120) Then Break;
End;
If ChosenColor <> 0 Then Break;
Until Tol > 9;
End;
If ChosenColor <> 0 Then
Begin
MMouse(iX, iY, 0, 0);
Wait(10);
If IsUpText('perate') Then
Begin
GetMousePos(iX, iY);
Mouse(iX, iY, 0, 0, True);
End;
End;
Wait(5000+Random(500));
If Not InAbyss Then
Begin
Abyss := Abyss + 1;
ReportVars[8] := ReportVars[8] + 1;
Result := True;
Wait(1000);
ClickToContinue;
SRLRandomsReport;
Exit;
End;
Tries := Tries + 1;
If TimeFromMark(AbyssalMark) > 60000 * 5 Then Break;
Until Tries > 30;
Tries := 0;
If InAbyss Then
Begin
Repeat
Case Random(4) Of
0: Begin Operate.X := 252; Operate.Y := 150; End;
1: Begin Operate.X := 278; Operate.Y := 170; End;
2: Begin Operate.X := 238; Operate.Y := 200; End;
3: Begin Operate.X := 215; Operate.Y := 166; End;
End;
iX := Operate.X;
iY := Operate.Y;
If FindColorSpiralTolerance(iX, iY, 3393, MSX1, MSY1, MSX2, MSY2, Tol)
Or FindColorSpiralTolerance(iX, iY, 2040150, MSX1, MSY1, MSX2, MSY2, Tol) Then
Begin
If (Distance (iX, iY, MSCX, MSCY) < 80) Then
Begin
MMouse(iX, iY, 0, 0);
Wait(10);
If IsUpText('perate') Then
Begin
GetMousePos(iX, iY);
Mouse(iX, iY, 0, 0, True);
Wait(5000+ Random(500));
If Not InAbyss Then
Begin
Abyss := Abyss + 1;
ReportVars[8] := ReportVars[8] + 1;
Result := True;
ClickToContinue;
SRLRandomsReport;
Exit;
End;
End;
End;
End;
Tries := Tries + 1;
Tol := Tol + 2;
If Tol > 20 Then Tol := 2;
Until Tries > 50;
End;
LogOut;
NOAbyss := NOAbyss + 1;
ReportVars[9] := ReportVars[9] + 1;
Players[CurrentPlayer].Loc := 'Abyss';
SRLRandomsReport;
WriteLn('Abyss Random Event.');
End;
Function GetPositionInMine: String;
Begin
MakeCompass('N');
If Not LoggedIn Then Exit;
If Not FindSymbol(x, y, 'transportation') Then
Begin
Result := 'Middle';
Exit;
End;
If ScanMiniMap(220, 240, 60) < 15 Then
Begin
Result := 'North-East';
ReportVars[5] := ReportVars[5] + 1;
EssencePoint[0].X := 340;
EssencePoint[0].Y := 61;
EssencePoint[1].X := 295;
EssencePoint[1].Y := 50;
EssencePoint[2].X := 395;
EssencePoint[2].Y := 120;
Exit;
End;
If ScanMiniMap(125,155, 60) < 20 Then
Begin
Result := 'North-West';
ReportVars[6] := ReportVars[6] + 1;
EssencePoint[0].X := 140;
EssencePoint[0].Y := 115;
EssencePoint[1].X := 18;
EssencePoint[1].Y := 70;
EssencePoint[2].X := 120;
EssencePoint[2].Y := 150;
Exit;
End;
If ScanMiniMap(290,330, 55) < 20 Then
Begin
Result := 'South-East';
ReportVars[7] := ReportVars[7] + 1;
EssencePoint[0].X := 350;
EssencePoint[0].Y := 160;
EssencePoint[1].X := 337;
EssencePoint[1].Y := 210;
EssencePoint[2].X := 362;
EssencePoint[2].Y := 125;
If (ScanMiniMap(140, 170, 55) <> 31) Then
Exit;
End;
Result := 'South-West';
ReportVars[2] := ReportVars[2] + 1;
EssencePoint[0].X := 190;
EssencePoint[0].Y := 60;
EssencePoint[1].X := 146;
EssencePoint[1].Y := 94;
EssencePoint[2].X := 285;
EssencePoint[2].Y := 54;
End;
Function GetMiddle:String;
Var
Ex, Ey: Integer;
Begin
If Not LoggedIn Then Exit;
If ScanMiniMap(330, 380, 55) < 35 Then
Begin
Result := 'MiddleSW';
ReportVars[4] := ReportVars[4] + 1;
Ex := 605;
Ey := 116;
EssencePoint[0].X := 170;
EssencePoint[0].Y := 240;
EssencePoint[1].X := 190;
EssencePoint[1].Y := 290;
EssencePoint[2].X := 254;
EssencePoint[2].Y := 274;
End
Else
Begin
Result := 'MiddleNE';
ReportVars[3] := ReportVars[3] + 1;
Ex := 690;
Ey := 30;
EssencePoint[0].X := 360;
EssencePoint[0].Y := 40;
EssencePoint[1].X := 450;
EssencePoint[1].Y := 100;
EssencePoint[2].X := 390;
EssencePoint[2].Y := 30;
End;
Mouse(Ex, Ey, 2, 2, True);
Wait(10);
FFlag(0);
Wait(100);
End;
Function FindEssence(Var iX, iY: Integer): Boolean;
Var
I, Tolerance : Integer;
Begin
If Not LoggedIn Then Exit;
For I := 0 To 2 Do
Begin
Tolerance := - 1;
While Tolerance < 10 Do
Begin
Tolerance := Tolerance + 1;
iX := EssencePoint[I].X;
iY := EssencePoint[I].Y;
If FindColorSpiralTolerance(iX, iY, 9539996, MSX1, MSY1, MSX2, MSY2, Tolerance) Then
Begin
If Distance(iX, iY, EssencePoint[I].X, EssencePoint[I].Y) < 80 Then
Begin
MMouse(iX, iY, 0, 0);
Wait(10);
If IsUpTextBlue('ssen') Then
// If IsUpTextMulti('Esse', 'une Es', 'ine') Then
Begin
GetMousePos(iX, iY);
Result := True;
If WizzyDebug Then WriteLn('Found Essence');
Exit;
End;
End;
End;
End;
End;
End;
Function ToPortal: Boolean;
Var
iX, iY, C : Integer;
Boolie : Boolean;
Begin
If Not LoggedIn Then Exit;
If FindSymbol(iX, iY, 'transportation') Then
Begin
Mouse(iX, iY, 2, 2, True);
Wait(10);
FFlag(0);
FindNormalRandoms;
iX := MSCX;
iY := MSCY;
Repeat
If Random(4) = 3 Then
Boolie := True;
If Boolie Then
Begin
Case Random(3) Of
0: MakeCompass('E');
1: MakeCompass('S');
2: MakeCompass('W');
End;
End;
Wait(50);
C := C + 1;
If FindObj(iX, iY, 'rtal', 12051688, 9) Then
Begin
Mouse(iX, iY, 0, 0, True);
Wait(10);
Result := True;
FFlag(0);
If Boolie Then MakeCompass('N');
Exit;
End;
Wait(1000);
Until C > 2;
If Boolie Then MakeCompass('N');
End;
End;
Function RunToPortal: Boolean;
Begin
MarkTime(iMark);
Repeat
If Not LoggedIn Then Break;
If (TimeFromMark(iMark) > 120000) Then
Begin
If WizzyDebug Then WriteLn('Portal Took too long..logging');
LogOut;
Players[CurrentPlayer].Loc := 'Portal';
End;
If ToPortal Then
Begin
FFlag(0);
Wait(6000);
End
Else Wait(100);
Until Not AtMine;
Result := True;
PortalBool := True;
End;
Function OpenDoor : Boolean;
Var iX, iY,DoorClosed : Integer;
Begin
DoorClosed := DTMFromString('78DA63FCCDC0C0309F01053426CB337001694' +
'620FE0F048C6F808C7E5435E97E520CFC503520C0C80E644D4055' +
'13E7218EAAE617A639E86A0097700CBE');
If Not LoggedIn Then Exit;
If FindDTM(DoorClosed, iX, iY, 140, 90, 425, 325) Then
Begin
MMouse(iX, iY, 2, 2);
GetMousePos(iX, iY);
If isUpText('pen') Then
Mouse(iX, iY, 0,0, True);
Result := True;
If Result Then Doors := Doors + 1;
End;
FreeDTM(DoorClosed);
If Result And WizzyDebug Then writeln('The door was closed, but now opened.')
Else If WizzyDebug Then WriteLn('The door is open');
End;
Function ToBank: Boolean;
Var
iX, iY, BankDTM, D, WalkMark, aMark : Integer;
AngleVar : Extended;
Begin
If Not LoggedIn Then Exit;
SetRun(True);
OpenDoor;
Mouse(687, 30, 4, 4, True);
Wait(100);
MarkTime(aMark);
Repeat
If Not FlagPresent Then
Begin
OpenDoor;
Mouse(687, 30, 4, 4, True);
MarkTime(WalkMark)
Repeat
FindColorSpiral(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2)
D := Distance(iX, iY, MMCX, MMCY);
Wait(100);
Until ((D > 15) Or (TimeFromMark(WalkMark) > 8000));
End
Else Break;
If TimeFromMark(aMark) > 120000 Then
Begin
WriteLn('ToBank took too long.. logging.');
LogOut;
Players[CurrentPlayer].Loc := 'ToBank2';
Exit;
End;
Until D > 15;
Wait(6000);
FFlag(10);
BankDTM:= DTMFromString('78DA636C666260486140016FDEBC61F80FA41' +
'981F83F1030B603D5E4A0AA79FB96814103AA060418EB816AB251' +
'D57CFD8AAA0600B6210EA4');
If FindDTMRotated(BankDTM, iX, iY, MMX1, MMY1, MMX2, MMY2, -1.0, 2.0, 1, AngleVar) Then
Begin
Result := True;
Mouse(iX, iY + 1, 0, 0, True);
Wait(3000);
FFlag(0);
End
Else
Begin
LogOut;
Players[CurrentPlayer].Loc := 'ToBank2';
WriteLn('Bank not found');
Exit;
End;
FreeDTM(BankDTM);
SetRun(False);
End;
Function FindAuburyFloorColor(Var iX, iY: Integer): Boolean;
Var
Tol, Floor3 : Integer;
Begin
If Not LoggedIn Then Exit;
Floor3 := BitmapFromString(3, 3, 'z78DA3377333735B1302791' +
'04004AD80BFE');
If FindColoredAreaTolerance(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2, 16, 9) Then
Begin
RuneShopColor := GetColor(iX , iY);
If WizzyDebug Then WriteLn('RuneShopColor = '+IntToStr(RuneShopColor));
If WIzzyDebug Then WriteLn('Found with FindColoredAreaTolerance.');
Result := True;
End;
Tol := 0;
Repeat
Wait(10);
If Result Then Break;
Tol := Tol + 2;
iX := 618;
iY := 127;
If FindBitMapSpiralTolerance(Floor3, iX, iY, MMX1, MMY1, 650, 150, Tol) Then
Begin
RuneShopColor := GetColor(iX , iY);
If WizzyDebug Then WriteLn('RuneShopColor = '+IntToStr(RuneShopColor));
If WizzyDebug Then WriteLn('Found with Floor3 bmp.');
Result := True;
Break;
End;
Until Tol > 39;
FreeBitMap(Floor3);
End;
Function ToDoor: Boolean;
Var
iX, iY: Integer;
Begin
If FindColorRightTol(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2, 0) Then
Begin
If WizzyDebug Then WriteLn('Door found');
Result := True;
Mouse(iX - 8, iY + 20, 0, 0, True);
FFlag(0);
End;
End;
Function SpotAubury: Boolean;
// 10855856, 3005947, 2998011
Var
iX, iY, C: Integer;
Begin
Repeat
CloseWindow;
Wait(50);
If FindAuburyText Then
Begin
Result := True;
Break;
End;
iX := MSCX;
iY := MSCY;
If AtMine Then
Begin
Result := True;
Exit;
End;
If FindColorSpiralTolerance(iX, iY, 2998011, MSX1, MSY1, MSX2, MSY2, 4)
Or FindColorSpiralTolerance(iX, iY, 1888494, MSX1, MSY1, MSX2, MSY2, 4) Then
Begin
MMouse(iX, iY, 0, 0);
Wait(10);
If IsupTextMulti('Talk','bury','alk-to') Then
Begin
Mouse(iX, iY, 0, 0, False);
Result := ChooseOption(iX, iY, 'eleport');
If Result Then Exit;
End;
End;
C := C + 1;
Until C > 5;
Wait(500);
If Not LoggedIn Then Exit;
End;
Function PreciseFlag(Var iX, iY: Integer):Boolean;
Begin
Result := FindColor(iX, iY, 255, 570, 5, 735, 166);
If Result Then iX := iX + 1;
If Result Then iY := iY + 14;
End;
Function ColorAroundFlag(iX, iY: Integer) : Boolean;
Begin
Result := FindColorSpiral(iX, iY, RuneShopColor, iX - 2, iY - 2, iX + 2, iY + 2)
End;
Function ToMine: Boolean;
Var
iX, iY, D, zMark : Integer;
Begin
If Not Players[CurrentPlayer].Boolean2 Then
Begin
HighestBrightness;
Players[CurrentPlayer].Boolean2 := True;
End;
If Not LoggedIn Then Exit;
FindPickHeadColor;
Mouse(663, 142, 6, 6, True);
Wait(15000+Random(4000));
FFlag(5);
If FindAuburyFloorColor(iX, iY) Then
Begin
If WizzyDebug Then WriteLn('Exact Color Found');
End
Else
Begin
LogOut;
WriteLn('Could not get the exact color.'+ Chr(13)+
'Wizzup, you should tweak your functions!');
Players[CurrentPlayer].Loc := 'NoColor';
End;
FindColorSpiral(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2);
D := Distance(iX, iY, MMCX, MMCY);
If WizzyDebug Then WriteLn('Distance = '+IntToStr(D));
If D > 15 Then
Begin
iX := MMCX;
iY := MMCY;
If FindColorSpiral2(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2) Then
Begin
Mouse(iX, iY, 0, 0, True);
If PreciseFlag(iX, iY) Then
Begin
If ColorAroundFlag(iX, iY) Then
Begin
If WizzyDebug Then WriteLn('Walking INTO the shop now...');
End;
End;
FFlag(0);
End;
End;
iX := MMCX;
iY := MMCY;
FindColorSpiral(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2)
If Distance(iX, iY, MMCX, MMCY) > 10 Then
Begin
ToDoor;
OpenDoor;
If FindColorSpiral2(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2) Then
Begin
Mouse(iX, iY, 0, 0, True);
If PreciseFlag(iX, iY) Then
Begin
If ColorAroundFlag(iX, iY) Then
Begin
If WizzyDebug Then WriteLn('Walking INTO the shop now...');
End;
End;
FFlag(0);
End;
End;
If Random(10) = 9 Then BoredHuman;
MarkTime(zMark);
Repeat
FindNormalRandoms;
If (TimeFromMark(zMark) > 240000) Then
Begin
WriteLn('Aubury Took too long..logging');
LogOut;
Players[CurrentPlayer].Loc := 'Aubury';
End;
If SpotAubury Then
Begin
FFlag(0);
Wait(4000);
End
Else
Begin
Wait(100);
ChooseOption(iX, iY, 'ancel');
End;
If Not LoggedIn Then Break;
Until AtMine;
Result := True;
If LoggedIn Then Players[CurrentPlayer].Loc := 'Mine';
End;
Function MyOpenBank: Boolean;
Begin
OpenBankGlass('veb',False,False);
FFlag(0);
Wait(2000);
If BankScreen Or PinScreen Then
Begin
Result := True;
If PinScreen Then InPin(Players[CurrentPlayer].String1);
Exit;
End;
If OpenBankQuiet('veb') Then Result := True;
If PinScreen Then InPin(Players[CurrentPlayer].String1);
End;
Function BankStuff: Boolean;
Var
RuneEss, PureEss: Integer;
Begin
If Not BankScreen Then Exit;
RuneEss := BitmapFromString(8, 12, 'z78DA8DCD3112C3200C44D1' +
'2BE1B02B9B1288B9FF91222315149107EFCCAFF4B08037BB584F0' +
'E0E6F9143D724EBAC5F79BE0F1BABF7DDCEB25374B3925858BCC1' +
'3BBC78E82AA1DBB07EBFAAC8DA3D3130BC1B8A191DFD8F8A6C424' +
'57515D945E1C685D35564973FA23DD4D48ED5ABACDB560092CED4' +
'BB9DF73F7ACE7D1F');
PureEss := BitmapFromString(11, 10, 'z78DAA5CF490E03211003C' +
'02FB1B56D8E0CCBFF9F1492CC012962B2B5251F4B6E451616192B' +
'ABC8CEA62CC771F6A120AFA638D39594B213841C342F27151536A' +
'6994110F214A59DB9D1783032FCE39018E8CCF474BF693434B48F' +
'9C555B1CBAF98A185050BED0963DE8B8DFA3DF689BEF90E1670EA' +
'4994F9C65D5D38159B736596763AB5D3A362C5B46B46AF5D4AE57' +
'BD3837C02891A6');
// FixBank;
RuneEssenceMined := RuneEssenceMined + CountItemBmpTol(RuneEss, 15);
PureEssenceMined := PureEssenceMined + CountItemBmpTol(PureEss, 15);
ReportVars[1] := ReportVars[1] + 1;
ReportVars[0] := CountItemBmpTol(RuneEss, 15) + CountItemBmpTol(PureEss, 15);
Players[CurrentPlayer].Integer1 := Players[CurrentPlayer].Integer1 + CountItemBmpTol(PureEss, 15) + CountItemBmpTol(RuneEss, 15);
ClickAllItemsBmpTolWait('All', RuneEss, 15, 1500);
ClickAllItemsBmpTolWait('All', PureEss, 15, 1500);
If EquipPick Then Deposit(1, 28, 2)
Else Deposit(2, 28, 2);
FreeBitMap(RuneEss);
FreeBitMap(PureEss);
If BankScreen Then CloseBank;
Players[CurrentPlayer].Banked := Players[CurrentPlayer].Banked + 1;
Banks := Banks + 1;
Result := True;
End;
Procedure PlayerReport;
Var
Active: String;
I:Integer;
Begin
For I := 0 to HowManyPlayers - 1 Do
Begin
If Players[i].Active=True Then Active := 'T' Else Active := 'F';
WriteLn( (IntToStr(I))+' : '+Players[I].nick+ ' = '+
Active+ +'; Loc = '+Players[I].Loc+'; Banked: '+IntToStr(Players[I].Integer1)
+' Ess; M lvl:'+IntToStr(Players[i].Level[15]));
End;
End;
Procedure CurrentPlayerReport;
Begin
WriteLn('----------------------------------------------')
WriteLn(Players[CurrentPlayer].Name+'.');
WriteLn('Mined ' + IntToStr(Players[CurrentPlayer].Integer1) + ' Essence.');
WriteLn('Mining level is ' + IntToStr(Players[CurrentPlayer].Level[15]));
WriteLn('Location is ' + Players[CurrentPlayer].Loc+ '.');
WriteLn('----------------------------------------------')
End;
Procedure ProgressReport;
Begin
WriteLn('----------------------------------------------')
WriteLn('')
WriteLn('Essence Miner by Wizzup?.')
WriteLn('Version: '+VersionNumber)
WriteLn('')
If RuneEssenceMined > 0 Then WriteLn('Rune Essence Mined and Banked : '+IntToStr(RuneEssenceMined)+'.');
If PureEssenceMined > 0 Then WriteLn('Pure Essence Mined and Banked : '+IntToStr(PureEssenceMined)+'.');
If Abyss > 0 Then WriteLn('Solved '+IntToStr(Abyss)+' Abyssal Random Events.');
If NOAbyss > 0 Then WriteLn('Missed '+IntToStr(NoAbyss)+' Abyssal Random Events.');
If Doors > 0 Then WriteLn('Door Opened : '+IntToStr(Doors)+'.');
Writeln('Worked for '+ TimeRunning);
WriteLn('')
WriteLn('----------------------------------------------')
WriteLn('')
PlayerReport;
CurrentPlayerReport;
SRLRandomsReport;
WriteLn('')
WriteLn('----------------------------------------------')
End;
Procedure ClearVars;
Var
I : Integer;
Begin
For I := 1 To 19 Do
ReportVars[I] := 0;
End;
Procedure DoChats;
Begin
SetChat('On', 1);
SetChat('On', 1);
SetChat('Friends', 2);
SetChat('Friends', 2);
SetChat('On', 3);
SetChat('On', 3);
End;
Procedure SetupScript;
Begin
ClearDebug;
SetupSRL;
SetupSRLMining;
DeclarePlayers;
RuneShopColor := 4551800; // Temp.
Rcmaster := YourRCMASTER;
RcLoc := 'Bank';
ScriptID := '51';
ClearVars;
SRLID := YourSRLstatsID;
SRLPassword := YourSRLstatsPASS;
CurrentPlayer := StartPlayer;
If FirstWorld Then LoginPlayer;
If FirstWorld Then Wait(1000);
If FirstWorld Then LogOut;
If FirstWorld Then Wait(1000);
LoginPlayer;
Wait(1000);
DoChats;
EquipPick := Players[CurrentPlayer].Boolean1;
AuburyText := CreateBitmapMaskFromText('isthine', upchars);
BenMouse := True;
GetAllLevels;
End;
begin
ActivateClient;
SetupScript;
Repeat
MakeCompass('N');
If Players[CurrentPlayer].Loc = 'Bank' Then
Begin
ToMine;
End;
If Players[CurrentPlayer].Loc = 'Mine' Then
Begin
Wait(500);
If InAbyss Then
Begin
GuessAbyssRandom;
BoredHuman;
End;
Wait(1000);
FindNormalRandoms;
SymbolAccuracy := 0.4;
Position := GetPositionInMine;
If Position = 'Middle' Then Position := GetMiddle;
WriteLn('Our position is '+ Position+'.');
Wait(1000);
If FindEssence(X, Y) Then
Begin
Mouse(X, Y, 0, 0, True);
Wait(10);
FFlag(0);
End
Else
Begin
RunToPortal;
End;
Wait(1000);
MarkTime(IdleMark);
MarkTime(MiningMark);
Repeat
If Not LoggedIn Then Break;
If PortalBool Then Break;
If TimeFromMark(IdleMark) > (65000+Random(5000)) Then
Begin
BoredHuman;
MarkTime(IdleMark);
End;
Wait(400);
If FindNormalRandoms Then
RunToPortal;
Wait(400);
RC;
Wait(400);
ClickToContinue;
If FindFight Then
Begin
RunToPortal;
Break;
End;
Wait(1);
Until ((InvFull) Or (TimeFromMark(MiningMark) > 1000 * 60 * MinutesPerLoad));
If Not PortalBool Then
Begin
MarkTime(iMark);
Repeat
If Not LoggedIn Then Break;
If (TimeFromMark(iMark) > 120000) Then
Begin
WriteLn('Portal Took too long..logging');
LogOut;
Players[CurrentPlayer].Loc := 'Portal';
End;
If ToPortal Then
Begin
FFlag(0);
Wait(3000);
End
Else Wait(100);
Until Not AtMine;
End
WriteLn('Through The portal');
SymbolAccuracy := 0.8;
PortalBool := False;
Wait(500);
ToBank;
MyOpenBank;
BankStuff;
If LoggedIn Then Players[CurrentPlayer].Loc := 'Bank';
End;
ProgressReport;
If ( LoggedIn And (Players[CurrentPlayer].Banked Mod Loads = 0 )) Then
Begin
DoChats;
LogOut;
Wait(1000);
NextPlayer(True);
EquipPick := Players[CurrentPlayer].Boolean1;
FindPickHeadColor;
GetAllLevels;
End;
If Not LoggedIn Then
Begin
DoChats;
NextPlayer(False);
EquipPick := Players[CurrentPlayer].Boolean1;
FindPickHeadColor;
GetAllLevels;
End;
Until False;
end.
This question isnt about the script but the game. Sometimes I see my charcters holding noted essence. Where does it come from? Event? If so which.
This is my proggrie. Sucks cause it was a few players.
Essence Miner by Wizzup?.
Version: 1.08
Rune Essence Mined and Banked : 915.
Solved 3 Abyssal Random Events.
Worked for 3 Hours, 20 Minutes and 47 Seconds
----------------------------------------------
0 : = F; Loc = ScapeRune; Banked: 108 Ess; M lvl:41
1 : = T; Loc = Mine; Banked: 807 Ess; M lvl:29
----------------------------------------------
Mined 807 Essence.
Mining level is 29
Location is Mine.
----------------------------------------------
what is rcm?? i dont kno what i means by my remote control master..help plz
guys can u send me the text wat i copy to get the auto??? i really weanna make millions and get thoughs of ess in 1 nite..>!
nvm fixed
hey wizzup one flaw ive noticed that occurs repeatdly for me is- i get my player report back and alot of em are Active:=F Loc:tobank; and this is caused most likely by by noobs closing the rune store door. ive watched when some1 closed the door and it thouhg it was open then it clicked north thought it was bank and mouse moved around looking for bank booth, i think if this was fixed it would last a LOT longer . =]
Sorry if this is redundant, but I didn't really feel like reading through 17 pages of replies...before you jump all over me, I did read the first 5.... So I'm sorry in advance.
Sometimes, I get a problem where my guy gets stuck between the bank and the rune store, just northeast of the rune store, and the debug just says "found aubury text" a lot of times...any ideas on what may be causing this?
EDIT: Hmm...just occured to me, might this be because I am running it on High Detail?
We have a winner! Ding ding ding:
----------------------------------------------
Essence Miner by Wizzup?.
Version: 1.08
Rune Essence Mined and Banked : 297.
Worked for 39 Minutes and 5 Seconds
----------------------------------------------
0 : rago = T; Loc = Bank; Banked: 297 Ess; M lvl:36
----------------------------------------------
Mined 297 Essence.
Mining level is 36
Location is Bank.
----------------------------------------------
----------------------------------------------
You totally own dude!
Ausome script Wizzup?.. ill try and get a good proggie, last time scar died on me before i could get it.
nice
just a short proggress report...it worked great! got a me a mining lvl and 548ess in one hour :o i just got 31 mining when i started it so not bad,i had to change the settings after like 4 trips cuz it wouldnt go staight to bank.
a bug that i found was it click to go to the bank but it didnt make it to the bank and store ess, it just click towards bank and after like not even a second it clicked back to the mage shop icon, but i changed a setting in this line,
FindColorSpiral(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2)
D := Distance(iX, iY, MMCX, MMCY);
Wait(5000);
I think it was that...but it waid Wait(100) and i changed it to (5000) and then it worked perfect! Sorry if this is already posted somewhere... new to forum :p
----------------------------------------------
Essence Miner by Wizzup?.
Version: 1.08
Rune Essence Mined and Banked : 432.
Worked for 59 Minutes and 56 Seconds
----------------------------------------------
the only thing i found was that when starting the the left (west) most bank slot, it click to the north west on the way to the rune shop. fixed it by starting in the one on the right :P.
Whenever it switches players, it waits for it to auto log out THEN logs onto the next character - is this supposed to happen?
Also, it has to wait for the first character to auto log out THEN start mining.
If this is supposed to happen, then nevermind the question, but if it isn't, why is it happening?
Totally cool wizzup? ! Works great for me, apart from when i had to stop and world hop cus of a door closing n00b :D still, awesome stuff man, thnx
Nice script, got a report:
Only one problem, the timeout problem while mining ess. Fixed it by using a addy pickaxe instead of steel.Code:Essence Miner by Wizzup?.
Version: 1.08
Rune Essence Mined and Banked : 380.
Worked for 46 Minutes and 52 Seconds
----------------------------------------------
0 : *** = T; Loc = Bank; Banked: 380 Ess; M lvl:48
----------------------------------------------
*****.
Mined 380 Essence.
Mining level is 48 //Now its 49, tnx to this script
Location is Bank.
----------------------------------------------
----------------------------------------------
Gotta love this script :p. It could have run a little longer but I decided to stop it manually.
Awesome man, it probably could of gone much longer but I wanted to get on :spot:Code:----------------------------------------------
Essence Miner by Wizzup?.
Version: 1.08
Rune Essence Mined and Banked : 4036.
Solved 7 Abyssal Random Events.
Missed 1 Abyssal Random Events.
Worked for 9 Hours, 18 Minutes and 35 Seconds
----------------------------------------------
0 : ncom = T; Loc = Bank; Banked: 559 Ess; M lvl:39
1 : eeld = T; Loc = Bank; Banked: 587 Ess; M lvl:34
2 : maum = T; Loc = Bank; Banked: 558 Ess; M lvl:37
3 : ynjr = T; Loc = Bank; Banked: 620 Ess; M lvl:36
4 : bany = F; Loc = Abyss; Banked: 112 Ess; M lvl:32
5 : ldch = T; Loc = Bank; Banked: 593 Ess; M lvl:32
6 : dopo = T; Loc = Bank; Banked: 560 Ess; M lvl:34
7 : erta = T; Loc = Bank; Banked: 447 Ess; M lvl:27
----------------------------------------------
i got a problem i thought it goes back and forth like from player a to player b and goes back to player a? or it doesnt ? Im confused cuz from an earlier post i thought it does...? cuz i wanted to switch back and fourth like every 30 mins to aviod randoms better =)
the miner seems to stop with 8 slots left in the inventory, then logs out and changed player. Any reason for this?
SCAR Code:Rune Essence Mined and Banked : 5001.
Solved 7 Abyssal Random Events.
Missed 1 Abyssal Random Events.
Door Opened : 3.
Worked for 11 Hours, 6 Minutes and 32 Seconds
very nice!
My players always get stuck either on "tobank" or "aubury" alot.. prolly cuz noobs close door as i posted on a couple of posts up well heres the player report- the o dear u are in lumby is wrong.. i was alive in the essence place. --.--
SCAR Code:0 : @@@ = F; Loc = Aubury; Banked: 0 Ess; M lvl:47
1 : r@@ = F; Loc = Oh Dear You Are in Lumby; Banked: 916 Ess; M lvl:44
2 : @@@ = F; Loc = ScapeRune; Banked: 81 Ess; M lvl:38
3 : @@@ = F; Loc = ScapeRune; Banked: 540 Ess; M lvl:43
4 : @@@ = F; Loc = Oh Dear You Are in Lumby; Banked: 269 Ess; M lvl:36
5 : @@@ = F; Loc = ToBank2; Banked: 795 Ess; M lvl:41
6 : @@@ = F; Loc = Bank; Banked: 195 Ess; M lvl:54
7 : @@@ = T; Loc = Abyss; Banked: 2205 Ess; M lvl:32
SCAR Code:program EssMiner;
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Mining.scar}
{
"Stars, Hide your fires, Let not light see my black and deep desires.
The eye wink at the hand; Yet let that be, Which the eye fears when it
is done to see"
Macbeth - Shakespeare
}
Const
FirstWorld = False;
// IF you first loaded a
// world and are too lazy to logout once.
StartPlayer = 0;
NumberOfUsers = 6;
MinutesPerLoad = 5;
Loads = 10000;
VersionNumber = '1.08';
YourSRLSTATSID = ''; // Stats ID.
YourSRLSTATSPASS = ''; // Stats Pass.
YourRCMASTER = ''; // Remote Control Master.
WizzyDebug = True;
Var
Position : String;
EssencePoint : Array [0..4] Of TPoint;
MiningMark, Abyss, NOAbyss, AuburyText, RuneShopColor,
RuneEssenceMined, PureEssenceMined, iMark, IdleMark, Doors: Integer;
PortalBool, PouchBool, PouchBool2 : Boolean;
Procedure DeclarePlayers;
Begin
HowManyPlayers:= NumberOfUsers;
NumberOfPlayers( HowManyPlayers );
CurrentPlayer := StartPlayer;
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Loc :='Bank';
Players[0].Active:=True;
Players[0].Boolean1 := True; // Is The Pick Equipped?
Players[0].Boolean2 := False; // False for brightness Check Once.
Players[0].String1 := ''; // Bank PIN, If any.
Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Loc :='Bank';
Players[1].Active:=True;
Players[1].Boolean1 := True; // Is The Pick Equipped?
Players[1].Boolean2 := False; // False for brightness Check Once.
Players[1].String1 := ''; // Bank PIN, If any.
Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Loc :='Bank';
Players[2].Active:=True;
Players[2].Boolean1 := True; // Is The Pick Equipped?
Players[2].Boolean2 := False; // False for brightness Check Once.
Players[2].String1 := ''; // Bank PIN, If any.
Players[3].Name :='';
Players[3].Pass :='';
Players[3].Nick :='';
Players[3].Loc :='Bank';
Players[3].Active:=True;
Players[3].Boolean1 := True; // Is The Pick Equipped?
Players[3].Boolean2 := False; // False for brightness Check Once.
Players[0].String1 := ''; // Bank PIN, If any.
Players[4].Name :='';
Players[4].Pass :='';
Players[4].Nick :='';
Players[4].Loc :='Bank';
Players[4].Active:=True;
Players[4].Boolean1 := True; // Is The Pick Equipped?
Players[4].Boolean2 := False; // False for brightness Check Once.
Players[4].String1 := ''; // Bank PIN, If any.
Players[5].Name :='';
Players[5].Pass :='';
Players[5].Nick :='';
Players[5].Loc :='Bank';
Players[5].Active:=True;
Players[5].Boolean1 := True; // Is The Pick Equipped?
Players[5].Boolean2 := False; // False for brightness Check Once.
Players[5].String1 := ''; // Bank PIN, If any.
Writeln( IntToStr ( NumberOfUsers ) + ' Players' );
End;
Function HighestBrightNess: Boolean;
Begin
GameTab(11);
Wait(400);
If GetColor(712, 226) <> 16777215 Then
Begin
Mouse(712, 226, 2, 2, True);
Result := True;
Wait(200);
End;
End;
Function GetUpTextBlue:String;
Var
iX, iY: Integer;
Begin
Result := Trim(GetTextAtEx(7, 7, 140, upchars, true,
true, 0, 2, 14277634, 50, True, tr_AllChars));
End;
Function IsUpTextBlue(Text: String): Boolean;
Begin
Result := (Pos(Text, GetUpTextBlue) <> 0)
End;
Function FindAuburyText: Boolean; // FindTalk by Renax, but adepted.
var
ExitCond, NoMoreYellow: Boolean;
Yint, Xmin, diff, difflast, Xmax, XmidRec, Xmid: Integer;
RawMenuText: string;
begin
x := 0;
y := 0;
Xmid := 0;
Xmin := 0;
Xmax := 0;
NoMoreYellow := False;
if (FindColor(x, y, 65535, 10, 25, 511, 334)) and (not (FindColor(x, y, 65280, 220, 130, 290, 165))) then
begin
Result := False;
if (not (FindBitmapMaskTolerance(AuburyText, x, y, 0, 0, 516, 338, 0, 40)))
then
Exit;
if (FindColorSpiral(x, y, 65535, x - 10, y - 10, x + 10, y + 10)) then
begin
Wait(10);
if (GetColor(x, y) = 65535) then
begin
If WizzyDebug Then WriteLn('Spotted aubury text');
Wait(10);
NoMoreYellow := False;
Yint := 0;
repeat
Yint := Yint + 1;
y := y + Yint;
x := 0;
repeat
ExitCond := False;
x := x + 1;
Xmin := x;
if (GetColor(x, y) = 65535) then
ExitCond := True;
if (x > 500) then
begin
x := 0;
ExitCond := True;
NoMoreYellow := True;
end;
until (ExitCond);
ExitCond := False;
x := 520;
while (NoMoreYellow = False) and (ExitCond = False) do
begin
x := x - 1;
Xmax := x;
if (GetColor(x, y) = 65535) then
ExitCond := True;
end;
diff := (Xmax - Xmin);
if (diff > difflast) and (diff > 25) then
begin
XmidRec := ((diff / 2) + Xmin);
end;
difflast := diff;
until (NoMoreYellow)
x := XmidRec;
MMouse(x, y + 6, 3, 0);
Wait(100);
if IsUpTextMulti('Talk', 'lk-to', 'to') Then
begin
GetMousePos(x, y);
Mouse(x, y + 6, 0, 0, False);
if (ChooseOptionGetMenuText(RawMenuText, x, y, 'Teleport')) then
begin
If WizzyDebug Then WriteLn('Found Aubury')
FFlag(1);
Wait(1000 + Random(500))
Result := True;
Exit;
end;
end;
end;
end;
end;
end;
Function AtMine: Boolean;
Var
iX, iY: Integer;
Begin
Result := FindColoredAreaTolerance(iX, iY, 0, MMX1, MMY1, MMX2, MMY2, 100, 0);
End;
Function ScanMiniMap(iFrom, iTo, Distance: Integer): Integer;
Var
I, iX,iY: Integer;
Begin
For I := iFrom To ITo Do
Begin
iX := Round(Distance * Sin(I * Pi / 180)) + 648;
iY := Round(-Distance * Cos(I * Pi / 180)) + 80;
If GetColor(iX, iY) = 0 Then
Begin
Result := Result + 1;
End;
End;
End;
Function InAbyss: Boolean;
Var
A : Integer;
Begin
A := ScanMiniMap(0, 359, 50);
If WizzyDebug Then WriteLn('In Abyss gave '+IntToStr(A)+'.');
If A = 360 Then
Begin
Result := True;
End
End;
Function GuessAbyssRandom: Boolean;
Var
AbyssalMark, iX, iY, I, ChosenColor, Tol, Tries: Integer;
WeirdColors: Array [0..3] Of Integer;
Operate: TPoint;
Begin
WeirdColors[0] := 13751777;
WeirdColors[1] := 4953873;
WeirdColors[2] := 2509833;
Repeat
Case Random(4) Of
0: Begin Operate.X := 252; Operate.Y := 150; End;
1: Begin Operate.X := 278; Operate.Y := 170; End;
2: Begin Operate.X := 238; Operate.Y := 200; End;
3: Begin Operate.X := 215; Operate.Y := 166; End;
End;
For I := 0 To 2 Do
Begin
Tol := 0;
Repeat
Tol := Tol + 1;
iX := MSCX;
iY := MSCY;
If FindColorSpiralTolerance(iX, iY, WeirdColors[I], MSX1, MSY1, MSX2, MSY2, Tol) Then
Begin
ChosenColor := WeirdColors[I];
If (Distance (iX, iY, MSCX, MSCY) < 120) Then Break;
End;
If ChosenColor <> 0 Then Break;
Until Tol > 9;
End;
If ChosenColor <> 0 Then
Begin
MMouse(iX, iY, 0, 0);
Wait(10);
If IsUpText('perate') Then
Begin
GetMousePos(iX, iY);
Mouse(iX, iY, 0, 0, True);
End;
End;
Wait(5000+Random(500));
If Not InAbyss Then
Begin
Abyss := Abyss + 1;
ReportVars[8] := ReportVars[8] + 1;
Result := True;
Wait(1000);
ClickToContinue;
SRLRandomsReport;
Exit;
End;
Tries := Tries + 1;
If TimeFromMark(AbyssalMark) > 60000 * 5 Then Break;
Until Tries > 30;
Tries := 0;
If InAbyss Then
Begin
Repeat
Case Random(4) Of
0: Begin Operate.X := 252; Operate.Y := 150; End;
1: Begin Operate.X := 278; Operate.Y := 170; End;
2: Begin Operate.X := 238; Operate.Y := 200; End;
3: Begin Operate.X := 215; Operate.Y := 166; End;
End;
iX := Operate.X;
iY := Operate.Y;
If FindColorSpiralTolerance(iX, iY, 3393, MSX1, MSY1, MSX2, MSY2, Tol)
Or FindColorSpiralTolerance(iX, iY, 2040150, MSX1, MSY1, MSX2, MSY2, Tol) Then
Begin
If (Distance (iX, iY, MSCX, MSCY) < 80) Then
Begin
MMouse(iX, iY, 0, 0);
Wait(10);
If IsUpText('perate') Then
Begin
GetMousePos(iX, iY);
Mouse(iX, iY, 0, 0, True);
Wait(5000+ Random(500));
If Not InAbyss Then
Begin
Abyss := Abyss + 1;
ReportVars[8] := ReportVars[8] + 1;
Result := True;
ClickToContinue;
SRLRandomsReport;
Exit;
End;
End;
End;
End;
Tries := Tries + 1;
Tol := Tol + 2;
If Tol > 20 Then Tol := 2;
Until Tries > 50;
End;
LogOut;
NOAbyss := NOAbyss + 1;
ReportVars[9] := ReportVars[9] + 1;
Players[CurrentPlayer].Loc := 'Abyss';
SRLRandomsReport;
WriteLn('Abyss Random Event.');
End;
Function GetPositionInMine: String;
Begin
MakeCompass('N');
If Not LoggedIn Then Exit;
If Not FindSymbol(x, y, 'transportation') Then
Begin
Result := 'Middle';
Exit;
End;
If ScanMiniMap(220, 240, 60) < 15 Then
Begin
Result := 'North-East';
ReportVars[5] := ReportVars[5] + 1;
EssencePoint[0].X := 340;
EssencePoint[0].Y := 61;
EssencePoint[1].X := 295;
EssencePoint[1].Y := 50;
EssencePoint[2].X := 395;
EssencePoint[2].Y := 120;
Exit;
End;
If ScanMiniMap(125,155, 60) < 20 Then
Begin
Result := 'North-West';
ReportVars[6] := ReportVars[6] + 1;
EssencePoint[0].X := 140;
EssencePoint[0].Y := 115;
EssencePoint[1].X := 18;
EssencePoint[1].Y := 70;
EssencePoint[2].X := 120;
EssencePoint[2].Y := 150;
Exit;
End;
If ScanMiniMap(290,330, 55) < 20 Then
Begin
Result := 'South-East';
ReportVars[7] := ReportVars[7] + 1;
EssencePoint[0].X := 350;
EssencePoint[0].Y := 160;
EssencePoint[1].X := 337;
EssencePoint[1].Y := 210;
EssencePoint[2].X := 362;
EssencePoint[2].Y := 125;
If (ScanMiniMap(140, 170, 55) <> 31) Then
Exit;
End;
Result := 'South-West';
ReportVars[2] := ReportVars[2] + 1;
EssencePoint[0].X := 190;
EssencePoint[0].Y := 60;
EssencePoint[1].X := 146;
EssencePoint[1].Y := 94;
EssencePoint[2].X := 285;
EssencePoint[2].Y := 54;
End;
Function GetMiddle:String;
Var
Ex, Ey: Integer;
Begin
If Not LoggedIn Then Exit;
If ScanMiniMap(330, 380, 55) < 35 Then
Begin
Result := 'MiddleSW';
ReportVars[4] := ReportVars[4] + 1;
Ex := 605;
Ey := 116;
EssencePoint[0].X := 170;
EssencePoint[0].Y := 240;
EssencePoint[1].X := 190;
EssencePoint[1].Y := 290;
EssencePoint[2].X := 254;
EssencePoint[2].Y := 274;
End
Else
Begin
Result := 'MiddleNE';
ReportVars[3] := ReportVars[3] + 1;
Ex := 690;
Ey := 30;
EssencePoint[0].X := 360;
EssencePoint[0].Y := 40;
EssencePoint[1].X := 450;
EssencePoint[1].Y := 100;
EssencePoint[2].X := 390;
EssencePoint[2].Y := 30;
End;
Mouse(Ex, Ey, 2, 2, True);
Wait(10);
FFlag(0);
Wait(100);
End;
Function FindEssence(Var iX, iY: Integer): Boolean;
Var
I, Tolerance : Integer;
Begin
If Not LoggedIn Then Exit;
For I := 0 To 2 Do
Begin
Tolerance := - 1;
While Tolerance < 10 Do
Begin
Tolerance := Tolerance + 1;
iX := EssencePoint[I].X;
iY := EssencePoint[I].Y;
If FindColorSpiralTolerance(iX, iY, 9539996, MSX1, MSY1, MSX2, MSY2, Tolerance) Then
Begin
If Distance(iX, iY, EssencePoint[I].X, EssencePoint[I].Y) < 80 Then
Begin
MMouse(iX, iY, 0, 0);
Wait(10);
If IsUpTextBlue('ssen') Then
// If IsUpTextMulti('Esse', 'une Es', 'ine') Then
Begin
GetMousePos(iX, iY);
Result := True;
If WizzyDebug Then WriteLn('Found Essence');
Exit;
End;
End;
End;
End;
End;
End;
Function ToPortal: Boolean;
Var
iX, iY, C : Integer;
Boolie : Boolean;
Begin
If Not LoggedIn Then Exit;
If FindSymbol(iX, iY, 'transportation') Then
Begin
Mouse(iX, iY, 2, 2, True);
Wait(10);
FFlag(0);
FindNormalRandoms;
iX := MSCX;
iY := MSCY;
Repeat
If Random(4) = 3 Then
Boolie := True;
If Boolie Then
Begin
Case Random(3) Of
0: MakeCompass('E');
1: MakeCompass('S');
2: MakeCompass('W');
End;
End;
Wait(50);
C := C + 1;
If FindObj(iX, iY, 'rtal', 12051688, 9) Then
Begin
Mouse(iX, iY, 0, 0, True);
Wait(10);
Result := True;
FFlag(0);
If Boolie Then MakeCompass('N');
Exit;
End;
Wait(1000);
Until C > 2;
If Boolie Then MakeCompass('N');
End;
End;
Function RunToPortal: Boolean;
Begin
MarkTime(iMark);
Repeat
If Not LoggedIn Then Break;
If (TimeFromMark(iMark) > 120000) Then
Begin
If WizzyDebug Then WriteLn('Portal Took too long..logging');
LogOut;
Players[CurrentPlayer].Loc := 'Portal';
End;
If ToPortal Then
Begin
FFlag(0);
Wait(6000);
End
Else Wait(100);
Until Not AtMine;
Result := True;
PortalBool := True;
End;
Function OpenDoor : Boolean;
Var iX, iY,DoorClosed : Integer;
Begin
DoorClosed := DTMFromString('78DA63FCCDC0C0309F01053426CB337001694' +
'620FE0F048C6F808C7E5435E97E520CFC503520C0C80E644D4055' +
'13E7218EAAE617A639E86A0097700CBE');
If Not LoggedIn Then Exit;
If FindDTM(DoorClosed, iX, iY, 140, 90, 425, 325) Then
Begin
MMouse(iX, iY, 2, 2);
GetMousePos(iX, iY);
If isUpText('pen') Then
Mouse(iX, iY, 0,0, True);
Result := True;
If Result Then Doors := Doors + 1;
End;
FreeDTM(DoorClosed);
If Result And WizzyDebug Then writeln('The door was closed, but now opened.')
Else If WizzyDebug Then WriteLn('The door is open');
End;
Function ToBank: Boolean;
Var
iX, iY, BankDTM, D, WalkMark, aMark : Integer;
AngleVar : Extended;
Begin
If Not LoggedIn Then Exit;
SetRun(True);
OpenDoor;
Mouse(687, 30, 4, 4, True);
Wait(100);
MarkTime(aMark);
Repeat
If Not FlagPresent Then
Begin
OpenDoor;
Mouse(687, 30, 4, 4, True);
MarkTime(WalkMark)
Repeat
FindColorSpiral(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2)
D := Distance(iX, iY, MMCX, MMCY);
Wait(100);
Until ((D > 15) Or (TimeFromMark(WalkMark) > 8000));
End
Else Break;
If TimeFromMark(aMark) > 120000 Then
Begin
WriteLn('ToBank took too long.. logging.');
LogOut;
Players[CurrentPlayer].Loc := 'ToBank2';
Exit;
End;
Until D > 15;
Wait(6000);
FFlag(10);
BankDTM:= DTMFromString('78DA636C666260486140016FDEBC61F80FA41' +
'981F83F1030B603D5E4A0AA79FB96814103AA060418EB816AB251' +
'D57CFD8AAA0600B6210EA4');
If FindDTMRotated(BankDTM, iX, iY, MMX1, MMY1, MMX2, MMY2, -1.0, 2.0, 1, AngleVar) Then
Begin
Result := True;
Mouse(iX, iY + 1, 0, 0, True);
Wait(3000);
FFlag(0);
End
Else
Begin
LogOut;
Players[CurrentPlayer].Loc := 'ToBank2';
WriteLn('Bank not found');
Exit;
End;
FreeDTM(BankDTM);
SetRun(False);
End;
Function FindAuburyFloorColor(Var iX, iY: Integer): Boolean;
Var
Tol, Floor3 : Integer;
Begin
If Not LoggedIn Then Exit;
Floor3 := BitmapFromString(3, 3, 'z78DA3377333735B1302791' +
'04004AD80BFE');
If FindColoredAreaTolerance(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2, 16, 9) Then
Begin
RuneShopColor := GetColor(iX , iY);
If WizzyDebug Then WriteLn('RuneShopColor = '+IntToStr(RuneShopColor));
If WIzzyDebug Then WriteLn('Found with FindColoredAreaTolerance.');
Result := True;
End;
Tol := 0;
Repeat
Wait(10);
If Result Then Break;
Tol := Tol + 2;
iX := 618;
iY := 127;
If FindBitMapSpiralTolerance(Floor3, iX, iY, MMX1, MMY1, 650, 150, Tol) Then
Begin
RuneShopColor := GetColor(iX , iY);
If WizzyDebug Then WriteLn('RuneShopColor = '+IntToStr(RuneShopColor));
If WizzyDebug Then WriteLn('Found with Floor3 bmp.');
Result := True;
Break;
End;
Until Tol > 39;
FreeBitMap(Floor3);
End;
Function ToDoor: Boolean;
Var
iX, iY: Integer;
Begin
If FindColorRightTol(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2, 0) Then
Begin
If WizzyDebug Then WriteLn('Door found');
Result := True;
Mouse(iX - 8, iY + 20, 0, 0, True);
FFlag(0);
End;
End;
Function SpotAubury: Boolean;
// 10855856, 3005947, 2998011
Var
iX, iY, C: Integer;
Begin
Repeat
CloseWindow;
Wait(50);
If FindAuburyText Then
Begin
Result := True;
Break;
End;
iX := MSCX;
iY := MSCY;
If AtMine Then
Begin
Result := True;
Exit;
End;
If FindColorSpiralTolerance(iX, iY, 2998011, MSX1, MSY1, MSX2, MSY2, 4)
Or FindColorSpiralTolerance(iX, iY, 1888494, MSX1, MSY1, MSX2, MSY2, 4) Then
Begin
MMouse(iX, iY, 0, 0);
Wait(10);
If IsupTextMulti('Talk','bury','alk-to') Then
Begin
Mouse(iX, iY, 0, 0, False);
Result := ChooseOption(iX, iY, 'eleport');
If Result Then Exit;
End;
End;
C := C + 1;
Until C > 5;
Wait(500);
If Not LoggedIn Then Exit;
End;
Function PreciseFlag(Var iX, iY: Integer):Boolean;
Begin
Result := FindColor(iX, iY, 255, 570, 5, 735, 166);
If Result Then iX := iX + 1;
If Result Then iY := iY + 14;
End;
Function ColorAroundFlag(iX, iY: Integer) : Boolean;
Begin
Result := FindColorSpiral(iX, iY, RuneShopColor, iX - 2, iY - 2, iX + 2, iY + 2)
End;
Function ToMine: Boolean;
Var
iX, iY, D, zMark : Integer;
Begin
If Not Players[CurrentPlayer].Boolean2 Then
Begin
HighestBrightness;
Players[CurrentPlayer].Boolean2 := True;
End;
If Not LoggedIn Then Exit;
FindPickHeadColor;
Mouse(663, 142, 6, 6, True);
Wait(15000+Random(4000));
FFlag(5);
If FindAuburyFloorColor(iX, iY) Then
Begin
If WizzyDebug Then WriteLn('Exact Color Found');
End
Else
Begin
LogOut;
WriteLn('Could not get the exact color.'+ Chr(13)+
'Wizzup, you should tweak your functions!');
Players[CurrentPlayer].Loc := 'NoColor';
End;
FindColorSpiral(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2);
D := Distance(iX, iY, MMCX, MMCY);
If WizzyDebug Then WriteLn('Distance = '+IntToStr(D));
If D > 15 Then
Begin
iX := MMCX;
iY := MMCY;
If FindColorSpiral2(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2) Then
Begin
Mouse(iX, iY, 0, 0, True);
If PreciseFlag(iX, iY) Then
Begin
If ColorAroundFlag(iX, iY) Then
Begin
If WizzyDebug Then WriteLn('Walking INTO the shop now...');
End;
End;
FFlag(0);
End;
End;
iX := MMCX;
iY := MMCY;
FindColorSpiral(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2)
If Distance(iX, iY, MMCX, MMCY) > 10 Then
Begin
ToDoor;
OpenDoor;
If FindColorSpiral2(iX, iY, RuneShopColor, MMX1, MMY1, MMX2, MMY2) Then
Begin
Mouse(iX, iY, 0, 0, True);
If PreciseFlag(iX, iY) Then
Begin
If ColorAroundFlag(iX, iY) Then
Begin
If WizzyDebug Then WriteLn('Walking INTO the shop now...');
End;
End;
FFlag(0);
End;
End;
If Random(10) = 9 Then BoredHuman;
MarkTime(zMark);
Repeat
FindNormalRandoms;
If (TimeFromMark(zMark) > 240000) Then
Begin
WriteLn('Aubury Took too long..logging');
LogOut;
Players[CurrentPlayer].Loc := 'Aubury';
End;
If SpotAubury Then
Begin
FFlag(0);
Wait(4000);
End
Else
Begin
Wait(100);
ChooseOption(iX, iY, 'ancel');
End;
If Not LoggedIn Then Break;
Until AtMine;
Result := True;
If LoggedIn Then Players[CurrentPlayer].Loc := 'Mine';
End;
Function MyOpenBank: Boolean;
Begin
OpenBankGlass('veb',False,False);
FFlag(0);
Wait(2000);
If BankScreen Or PinScreen Then
Begin
Result := True;
If PinScreen Then InPin(Players[CurrentPlayer].String1);
Exit;
End;
If OpenBankQuiet('veb') Then Result := True;
If PinScreen Then InPin(Players[CurrentPlayer].String1);
End;
Function BankStuff: Boolean;
Var
RuneEss, PureEss: Integer;
Begin
If Not BankScreen Then Exit;
RuneEss := BitmapFromString(8, 12, 'z78DA8DCD3112C3200C44D1' +
'2BE1B02B9B1288B9FF91222315149107EFCCAFF4B08037BB584F0' +
'E0E6F9143D724EBAC5F79BE0F1BABF7DDCEB25374B3925858BCC1' +
'3BBC78E82AA1DBB07EBFAAC8DA3D3130BC1B8A191DFD8F8A6C424' +
'57515D945E1C685D35564973FA23DD4D48ED5ABACDB560092CED4' +
'BB9DF73F7ACE7D1F');
PureEss := BitmapFromString(11, 10, 'z78DAA5CF490E03211003C' +
'02FB1B56D8E0CCBFF9F1492CC012962B2B5251F4B6E451616192B' +
'ABC8CEA62CC771F6A120AFA638D39594B213841C342F27151536A' +
'6994110F214A59DB9D1783032FCE39018E8CCF474BF693434B48F' +
'9C555B1CBAF98A185050BED0963DE8B8DFA3DF689BEF90E1670EA' +
'4994F9C65D5D38159B736596763AB5D3A362C5B46B46AF5D4AE57' +
'BD3837C02891A6');
// FixBank;
RuneEssenceMined := RuneEssenceMined + CountItemBmpTol(RuneEss, 15);
PureEssenceMined := PureEssenceMined + CountItemBmpTol(PureEss, 15);
ReportVars[1] := ReportVars[1] + 1;
ReportVars[0] := CountItemBmpTol(RuneEss, 15) + CountItemBmpTol(PureEss, 15);
Players[CurrentPlayer].Integer1 := Players[CurrentPlayer].Integer1 + CountItemBmpTol(PureEss, 15) + CountItemBmpTol(RuneEss, 15);
ClickAllItemsBmpTolWait('All', RuneEss, 15, 1500);
ClickAllItemsBmpTolWait('All', PureEss, 15, 1500);
If EquipPick Then Deposit(1, 28, 2)
Else Deposit(2, 28, 2);
FreeBitMap(RuneEss);
FreeBitMap(PureEss);
If BankScreen Then CloseBank;
Players[CurrentPlayer].Banked := Players[CurrentPlayer].Banked + 1;
Banks := Banks + 1;
Result := True;
End;
Procedure PlayerReport;
Var
Active: String;
I:Integer;
Begin
For I := 0 to HowManyPlayers - 1 Do
Begin
If Players[i].Active=True Then Active := 'T' Else Active := 'F';
WriteLn( (IntToStr(I))+' : '+Players[I].nick+ ' = '+
Active+ +'; Loc = '+Players[I].Loc+'; Banked: '+IntToStr(Players[I].Integer1)
+' Ess; M lvl:'+IntToStr(Players[i].Level[15]));
End;
End;
Procedure CurrentPlayerReport;
Begin
WriteLn('----------------------------------------------')
WriteLn(Players[CurrentPlayer].Name+'.');
WriteLn('Mined ' + IntToStr(Players[CurrentPlayer].Integer1) + ' Essence.');
WriteLn('Mining level is ' + IntToStr(Players[CurrentPlayer].Level[15]));
WriteLn('Location is ' + Players[CurrentPlayer].Loc+ '.');
WriteLn('----------------------------------------------')
End;
Procedure ProgressReport;
Begin
WriteLn('----------------------------------------------')
WriteLn('')
WriteLn('Essence Miner by Wizzup?.')
WriteLn('Version: '+VersionNumber)
WriteLn('')
If RuneEssenceMined > 0 Then WriteLn('Rune Essence Mined and Banked : '+IntToStr(RuneEssenceMined)+'.');
If PureEssenceMined > 0 Then WriteLn('Pure Essence Mined and Banked : '+IntToStr(PureEssenceMined)+'.');
If Abyss > 0 Then WriteLn('Solved '+IntToStr(Abyss)+' Abyssal Random Events.');
If NOAbyss > 0 Then WriteLn('Missed '+IntToStr(NoAbyss)+' Abyssal Random Events.');
If Doors > 0 Then WriteLn('Door Opened : '+IntToStr(Doors)+'.');
Writeln('Worked for '+ TimeRunning);
WriteLn('')
WriteLn('----------------------------------------------')
WriteLn('')
PlayerReport;
CurrentPlayerReport;
SRLRandomsReport;
WriteLn('')
WriteLn('----------------------------------------------')
End;
Procedure ClearVars;
Var
I : Integer;
Begin
For I := 1 To 19 Do
ReportVars[I] := 0;
End;
Procedure DoChats;
Begin
SetChat('On', 1);
SetChat('On', 1);
SetChat('Friends', 2);
SetChat('Friends', 2);
SetChat('On', 3);
SetChat('On', 3);
End;
Procedure SetupScript;
Begin
ClearDebug;
SetupSRL;
SetupSRLMining;
DeclarePlayers;
RuneShopColor := 4551800; // Temp.
Rcmaster := YourRCMASTER;
RcLoc := 'Bank';
ScriptID := '51';
ClearVars;
SRLID := YourSRLstatsID;
SRLPassword := YourSRLstatsPASS;
CurrentPlayer := StartPlayer;
If FirstWorld Then LoginPlayer;
If FirstWorld Then Wait(1000);
If FirstWorld Then LogOut;
If FirstWorld Then Wait(1000);
LoginPlayer;
Wait(1000);
DoChats;
EquipPick := Players[CurrentPlayer].Boolean1;
AuburyText := CreateBitmapMaskFromText('isthine', upchars);
BenMouse := True;
GetAllLevels;
End;
begin
ActivateClient;
SetupScript;
Repeat
MakeCompass('N');
If Players[CurrentPlayer].Loc = 'Bank' Then
Begin
ToMine;
End;
If Players[CurrentPlayer].Loc = 'Mine' Then
Begin
Wait(500);
If InAbyss Then
Begin
GuessAbyssRandom;
BoredHuman;
End;
Wait(1000);
FindNormalRandoms;
SymbolAccuracy := 0.4;
Position := GetPositionInMine;
If Position = 'Middle' Then Position := GetMiddle;
WriteLn('Our position is '+ Position+'.');
Wait(1000);
If FindEssence(X, Y) Then
Begin
Mouse(X, Y, 0, 0, True);
Wait(10);
FFlag(0);
End
Else
Begin
RunToPortal;
End;
Wait(1000);
MarkTime(IdleMark);
MarkTime(MiningMark);
Repeat
If Not LoggedIn Then Break;
If PortalBool Then Break;
If TimeFromMark(IdleMark) > (65000+Random(5000)) Then
Begin
BoredHuman;
MarkTime(IdleMark);
End;
Wait(400);
If FindNormalRandoms Then
RunToPortal;
Wait(400);
RC;
Wait(400);
ClickToContinue;
If FindFight Then
Begin
RunToPortal;
Break;
End;
Wait(1);
Until ((InvFull) Or (TimeFromMark(MiningMark) > 1000 * 60 * MinutesPerLoad));
If Not PortalBool Then
Begin
MarkTime(iMark);
Repeat
If Not LoggedIn Then Break;
If (TimeFromMark(iMark) > 120000) Then
Begin
WriteLn('Portal Took too long..logging');
LogOut;
Players[CurrentPlayer].Loc := 'Portal';
End;
If ToPortal Then
Begin
FFlag(0);
Wait(3000);
End
Else Wait(100);
Until Not AtMine;
End
WriteLn('Through The portal');
SymbolAccuracy := 0.8;
PortalBool := False;
Wait(500);
ToBank;
MyOpenBank;
BankStuff;
If LoggedIn Then Players[CurrentPlayer].Loc := 'Bank';
End;
ProgressReport;
If ( LoggedIn And (Players[CurrentPlayer].Banked Mod Loads = 0 )) Then
Begin
DoChats;
LogOut;
Wait(1000);
NextPlayer(True);
EquipPick := Players[CurrentPlayer].Boolean1;
FindPickHeadColor;
GetAllLevels;
End;
If Not LoggedIn Then
Begin
DoChats;
NextPlayer(False);
EquipPick := Players[CurrentPlayer].Boolean1;
FindPickHeadColor;
GetAllLevels;
End;
Until False;
end.
wizzup, just use this, u dont need to add anti log out, the only way it stops when u use this is if a random stops it, then it moves on to the next one, it has never logged in the mines before with this.
That is probably because your miner are high level mining, level 1's with iron picks do logout. :)
EDIT:
Wow:
SCAR Code:Essence Miner by Wizzup?.
Version: 1.08
Rune Essence Mined and Banked : 8956.
Solved 6 Abyssal Random Events.
Missed 4 Abyssal Random Events.
Door Opened : 1.
Worked for 24 Hours, 18 Minutes and 0 Seconds
----------------------------------------------
5 False, 4 Quiz. 1 Freaky Forester.
The Missed Abyssal Are quizzez, since it in facts, never missed abyss. :)
mh... somehow my computer thought it was a good idea to reboot... i only got like 2-3k in a night:'( and i dont have a progy for you:(:(:(:(:(:(:mad: