irollon10s
2007-11-18 13:23:30
<!– BEGIN TEMPLATE: formanswers –>
irollon10s - SRL Member Application Form
irollon10s
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
none at the moment would like to learn thats why im joining
Other Communitys
sythe.org, the tech guide
How Long have You Played Runescape
4 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Hi its irollon10s ive been playing runescape for about 4 years now have been autoing for 2 years i auto mine i play on my pure staker alot i love autoing im i would really appreciate it if you would allow me to become a member and if there is anything i can do to help out the site or anyone let me know and ill be glad to help out. the script that i have included is one that was originally made by pwnazor but i have used it for awhile and i have edited it and changed some things so that it will run more efficiently
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
{=========================================================================]
[ [SRL]Powerminer Free Version by irollon10s ]
[ Complaint with SRL Rev. 4 and SCAR 3.12c ]
[ ]
[ NAME : [SRL]Powerminer ]
[ WRITER : irollon10s ]
[ CATEGORY : power Miner ]
[ DESCRIPTION : Powermines Ores and Drops them. ]
[ USAGE : See Instructions. ]
[ AUTOCOLOR : Yes, the ores are autocolored. ]
[ NOTES : [email]dostuffearlier@yahoo.com[/email] ]
[ SRL REV. : 4 Scar 3.12c ]
[ FEATURES : AutoColor, HSL Tolerances, Player Array ]
[ ]
[ ]
[=========================================================================]
[ Description. ]
[=========================================================================]
[ ]
[ This Script Mines Ores at most locations in Runescape. ]
[ It Gains Constant Mining Experience ]
[ The More Players you use, the longer it runs! ]
[ ]
[=========================================================================]
[ Instructions. ]
[=========================================================================]
[ ]
[ 1. USE Runescape with Low Detail, Very Bright, UnSigned Client ]
[ 2. Set your Screen to 32 bit TRUE color. ]
[ 3. Position your characters at the mining spots. ]
[ 4. Insert SRL ID and Password if you have one ]
[ 5. Click Run! ]
[ ** Note - If Script cannot find rocks, please refer to FAQ on thread ** ]
[=========================================================================}
{Note to ALL Users: if your player is logged in more than player
time (in minutes), your player will NOT be counted un active.
When the form pops up, for the rock type, put a correct rock
name:
- Clay - Copper - Tin
- Iron - Mithril - Silver
- Gold - Coal
This script uses the best SRL knowledge, but I DO NOT accept
responsibility for any lost accounts (howevfer slim that chance
may be).
}program Powerminer_Free;
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Mining.scar}
const Loads = 500;// Loads for each player to do before switching
RTimeout = 8;// Max time to wait before changing rocks(Seconds)
LTimeout = 4;// Max time for Load(Minutes);
PTimeout = 25;// Max time for Player(Minutes); He will not go inactive,just change
RunDir = 'N';// Direction to run if fight found
RunWaitTime = 20;// Time in seconds to wait if run away
var
HeadColors: array [1..5] of integer;
RocksMined, GasesHandled, OreMask, OreFinds, OreTime, ClientHandle, RCheck, InvalidCount, LevelChecker: integer;
Recall: boolean;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
Procedure DeclarePlayers;
By: SRL
Description: Fill in with your players information.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
Procedure DeclarePlayers;
begin
SRLID := '';
SRLPassword := '';
SRLPlayerForm(True, [], [], ['Rock Type'], []);
Writeln(IntToStr(HowManyPlayers)+' Player(s);');
CheckUserNicks;
end;
const
GTX1 = 546; GTY1 = 202; GTX2 = 737; GTY2 = 466;
V = '3.03';
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure Loc(where: string);
By: Pwnaz0r
Description: Changes CurrentPlayers Location identifier.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure Loc(where: string);
begin
Players[CurrentPlayer].Loc:= where;
Players[CurrentPlayer].Rand:= where;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
function AllPlayersInactive: boolean;
By: Pwnaz0r
Description: Returns true if all players are inactive.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function AllPlayersInactive: boolean;
var
p: integer;
begin
for p:= 0 to HowManyPlayers - 1 do
if Players[p].Active then exit;
result:= true;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure LoginWhich(Player: integer);
By: Pwnaz0r
Description: Starts up the script.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure LoginWhich(Player: integer);
begin
if LoggedIn then exit;
if Players[Player].Active = false then
begin
writeln('Changing player to active…');
Players[Player].Active:= true;
end;
CurrentPlayer:= Player;
LoginPlayer;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
Function FindFastRandoms: Boolean;
By: WT-Fakawi
Description: Finds all the fast randoms.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function FindFastRandoms: Boolean; // By WT-Fakawi.
var
i: Integer;
begin
for i:=1 to 10 do
begin
case I of
1: If FindDead then
begin
Result := True;
Loc('Dead');
Logout;
end;
2: If FindTalk Then Result := True;
3: If FindMime then
begin
Result := True;
Loc('Mime');
Logout;
end;
4: If FindMaze then
begin
result:= true;
Loc('Maze');
logout;
end;
5: If FindQuiz then
begin
Result := True;
Loc('Quiz');
Logout;//Solve quiz in next SRL
end;
6: If FindDemon then
begin
Result := True;
Loc('Demon');
end;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].rand := 'No GameTab';
Logout;
Exit;
end;
end;
8: begin
If InBlack then
begin
Result := True;
Players[CurrentPlayer].rand := 'InBlack';
Logout;
Exit;
end;
end;
9 : If FindTalk Then Result := True;
10: if FindFight then
begin
RunTo(RunDir, false);
FTWait(RunWaitTime);
RunBack;
end;
end;
Wait(1);
end;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure GoToNextPlayer(IsPlayerActive: boolean);
By: Pwnaz0r
Description: Will go to Next Player in Order.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure ConvertMiningVarsToMyVars; forward;
procedure GoToNextPlayer(IsPlayerActive: boolean);
var
i: integer;
begin
NextPlayerOrder(IsPlayerActive);
Loc('Working');
if not loggedin then LoginPlayer;
FindPickHeadColor;
SetBar('brightness', 4);
SetRun(False);
if WearingItem(5) then
begin
Writeln('Please do not wield pick, it could mess up player''s mining.');
Takeoff(5);
wait(400);
end;
if WearingItem(7) then
begin
Writeln('Please Take off player''s shields. They can mess up mining.');
Takeoff(7);
wait(400);
end;
ConvertMiningVarsToMyVars;
GetAllLevels;
for i:= 0 to 2 do
ArrangeInv;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure ConvertMiningVarsToMyVars;
By: Pwnaz0r
Description: Turns HC 1 - 5 into an array of HeadColors
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure ConvertMiningVarsToMyVars;
begin
HeadColors[1]:= HC1;
HeadColors[2]:= HC2;
HeadColors[3]:= HC3;
HeadColors[4]:= HC4;
HeadColors[5]:= HC5;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
function HoldingPick: boolean;
By: Pwnaz0r
Description: Checks to see if the player is holding the pickaxe
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function HoldingPick: boolean;
var
tab, cts, hcCount, px, py, PickCount: integer;
begin
PickCount:= 0;
cts:= GetColorToleranceSpeed;
ColorToleranceSpeed(1);
for tab:= 4 to 5 do
begin
Gametab(tab);
Case Tab of
4:begin
for hcCount:= 1 to 5 do
begin
if FindColor(px, py, HeadColors[hcCount], GTX1, GTY1, GTX2, GTY2) then
begin
Inc(PickCount);
if PickCount >= 4 then
begin
result:= true;
exit;
end;
end;
end;
break;
end;
5:begin
for hcCount:= 1 to 5 do
begin
if FindColor(px, py, HeadColors[hcCount], GTX1, GTY1, GTX2, GTY2) then
begin
Inc(PickCount);
if PickCount >= 4 then
begin
result:= true;
Mouse(px, py, 0, 0, true);
GameTab(4);
exit;
end;
end;
end;
break;
end;
end;
end;
ColorToleranceSpeed(cts);
Writeln('PICK LOST!');
Loc('Pick Lost');
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure HandleGas;
By: Pwnaz0r
Description: Handles Gas random.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure HandleGas;
begin
MouseSpeed:= 12;
Mouse(MMCX, MMCY, 3, 3, true);
FFlag(0);
Inc(GasesHandled);
Inc(Players[CurrentPlayer].integers[1]);
Loc('Waiting out for Gas');
ReportVars[2]:= 1;
SendSRLReport;
FTWait(40);
Loc('Working');
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
function FindPick2: Boolean;
By: Pwnaz0r
Description: Handles A Broken Pickaxe
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function FindPick2: Boolean;
var
HeadDTM, HandleDTM, BrokenDTM, AxeDTM, hx, hy, mx, my, i, c, x, y: integer;
Lost, Wielded: boolean;
begin
BrokenDTM:= DTMFromString('78DA63CC62626098C0C8800A189148209D045' +
'4D347404D1E504D170135E540359388503385809A2A22D45403D5' +
'4C26C21C42EE4907AA994B404D2A50CD2222C2701901358940354' +
'B8950438C5D0B8870F32C026A328808C354C2E9070005DF1192');
HandleDTM:= DTMFromString('78DA634C676260F0656440058C482490CE00A' +
'A0921A02605A82686809A4422D42401D54410615730116EF626A0' +
'260FA8C69D809A2CA01A0FDC6AD8417436508D1B0135394035AE4' +
'498E347400DC83D0144A80924A02613A82608BF1A007DFD0B4F');
HeadDTM:= DTMFromString('78DA8DD2390E80300C44D198E39250B0738AB' +
'043071C15D34183BF0BBB79D2C8D2C89E38978BFB8EBCB6DE434D' +
'6B980598494D6798084CAFA60159B561066046609EDF2BC3CCC0A' +
'CC06CD094C0148621DDB8D40460BC614E3529E86100C60393FD9B' +
'1B6F23174D');
AxeDTM:= DTMFromString('78DA6374606260B8C38006189148206D0954F' +
'389801A6BA09A67B8D530C2CC7945408D0550CD5B026ACC816A3E' +
'1050E30454F380801A67A09AFB04D47800D5DC26A0C60DA8E6161' +
'16AAE13E19E6B44F8FD260135A684DD0300CC7D1006');
Lost:= false;
if FindDTM(BrokenDTM, hx, hy, 546, 203, 737, 466) then
begin
Writeln('Broken Pick Found!');
if FindDTM(AxeDTM, hx, hy, 546, 203, 737, 466) then
begin
Writeln('Found a new pickaxe.');
end else
begin
result:= true;
Writeln('No More picks found! Logging out.');
LogOut;
end;
end;
if not FindDTM(AxeDTM, hx, hy, 546, 203, 737, 466) then
for i:= 4 to 5 do
begin
GameTab(i);
if FindDTM(HandleDTM, hx, hy, 546, 203, 737, 466) then
begin
Writeln('Handle Found!');
Lost:= true
if i = 5 then
begin
Wielded:= true;
Mouse(hx, hy, 0 ,0, true);
end;
end;
end;
GameTab(4);
if not Lost then exit else Writeln('Lost!');
repeat
if not (LoggedIn) then Exit;
c := c + 1;
x := Random(510) + 5;
y := Random(330) + 5;
if (FindColorSpiral(x, y, hc1, 3, 3, 515, 338)) or
(FindColorSpiral(x, y, hc2, 3, 3, 515, 338)) or
(FindColorSpiral(x, y, hc3, 3, 3, 515, 338)) or
(FindColorSpiral(x, y, hc4, 3, 3, 515, 338)) or
(FindColorSpiral(x, y, hc5, 3, 3, 515, 338)) then
begin
MMouse(x, y, 2, 2);
if IsUpTextMulti('Take', 'pick', 'head') then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
end;
Flag;
Wait(1000 + Random(100));
lost:= not FindDTM(HeadDTM, hx, hy, 546, 203, 737, 466);
end;
until(c >= 10) or (Lost = false);
if (c >= 10) then
begin
Writeln('Could not find pick!');
exit;
end else
Writeln('Pick Head Found!');
for c:= 0 to 10 do
begin
if FindDTM(HandleDTM, hx, hy, 546, 203, 737, 466) then
if FindDTM(HeadDTM, mx, my, 546, 203, 737, 466) then
begin
Mouse(mx, my, 0, 0, true);
wait(500+random(600));
Mouse(hx, hy, 0, 0, true);
wait(1000+random(500));
result:= not FindDTM(AxeDTM, hx, hy, 546, 203, 737, 466);
if not result then
begin
Writeln('Pick Attached!');
break;
end;
end;
end;
FreeDTM(BrokenDTM);
FreeDTM(HandleDTM);
FreeDTM(HeadDTM);
FreeDTM(AxeDTM);
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
function FindMiningRandoms: boolean;
By: Pwnaz0r
Description: Finds if Pick is lost or if Gas is found.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function FindMiningRandoms(x, y: integer): boolean;
var
rCount: integer;
begin
for rCount:= 0 to 5 do
begin
Case rCount of
0: if GasFound(x, y) then
begin
result:= true;
HandleGas;
end;
1: result:= FindPick2;
2: if FindFight then
begin
RunTo(RunDir, false);
FTWait(RunWaitTime);
RunBack;
end;
3: if FindFastRandoms then result:= true;
4: if ((TimeFromMark(LevelChecker)) > (15 * 60000))then
begin
GetAllLevels;
Writeln('Got all levels.');
end;
end;
if result then
Writeln('Random Found!');
if result then exit;
end;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure StartScript;
By: Pwnaz0r
Description: Starts up the script.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure StartScript;
var
i: integer;
begin
SetupSRL;
rCheck:= 0;
ScriptId:= '287';
RocksMined:= 0; OreFinds:= 0; OreTime:= 0; InvalidCount:= 0; Recall:= False;
OreMask:= BitmapFromString(18, 16, 'beNpjYMAF/v//D2fA2fjBfyTA' +
'QBxAU4lVI0E1uKzD7wU8uuDqybCLSF/g14U/GDEDhJgwJz5SKNdIn' +
'l10s4h+AABnp3GP');
if SRLId = '' then
begin
SRLId:= '2776';
SRLPassword:= 'pwnscripts';
end;
SendSRLReport;
ClearDebug;
Writeln('|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|');
Writeln('| This Script was made by: ______ |');
Writeln('| .—–.–.–.–.—–.—.-.—–.| |.—-. |');
Writeln('| | _ | | | | | _ |– __|| – || _| |');
Writeln('| | __|________|__|__|___._|_____||______||__| |');
Writeln('| |__| [email]Pwnaz0r@hotmail.com[/email] |');
Writeln('|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|');
Writeln('');
DeclarePlayers;
if not FindRS then
begin
writeln('Could not find Runescape');
TerminateScript;
end else
begin
ActivateClient;
wait(500);
ClientHandle:= GetClientWindowHandle;
end;
if not LoggedIn then LoginWhich(CurrentPlayer);
MarkTime(LevelChecker);
FindPickHeadColor;
SetBar('brightness', 4);
SetRun(False);
if WearingItem(5) then
begin
Writeln('Please do not wield pick, it could mess up player''s mining.');
Takeoff(5);
wait(400);
end;
if WearingItem(7) then
begin
Writeln('Please Take off player''s shields. They can mess up mining.');
Takeoff(7);
wait(400);
end;
GetAllLevels;
ConvertMiningVarsToMyVars;
for i:= 0 to 2 do
ArrangeInv;
ReportVars[1]:= 1;
SendSRLReport;
end;
procedure ProgressReport; forward;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure DropAndReportStatus;
By: Pwnaz0r
Description: Drops all rocks in inventory and reports status
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure DropAndReportStatus;
begin
Gametab(4);
IncEx(Players[CurrentPlayer].Integers[0], CountItemBmpMaskTol(OreMask, 5, 5));
IncEx(RocksMined, CountItemBmpMaskTol(OreMask, 5, 5));
ProgressReport;
ScriptId:= '287';
ReportVars[0]:= CountItemBmpMaskTol(OreMask, 5, 5);
SendSRLReport;
ClickAllItemsBmpMaskTolWait(OreMask, 'rop', 5, 5, 850);
ArrangeInv;
end;
function MineRock(var x, y, Color: integer): boolean;
var
RockType, i: integer;
rPoints: TPointArray;
srPoints: TPointArrayArray;
begin
RockType:= -1;
case Lowercase(Players[CurrentPlayer].Strings[0]) of
'copper': RockType:= 4879778;
'tin': RockType:= 5794159;
'iron': RockType:= 2569302;
'silver': RockType:= 9277080;
'gold': RockType:= 4566465;
'coal': RockType:= 2703167;
'mithril', 'mith': RockType:= 6307904;
'clay': RockType:= 4883618;
end;
if RockType = -1 then
begin
writeln('Invalid Rock Name! Logging out to change players');
Logout;
end;
wait(700);
x:= MSCX;
y:= MSCY;
FindColorsSpiralTolerance(x, y, rPoints, RockType, 5, 5, 500, 320, 4);
if Length(rPoints) <= 0 then
begin
Writeln('No Rocks Found!');
exit;
end;
srPoints:= TPAtoATPA(rPoints, 30);
SetArrayLength(rPoints, Length(srPoints));
for i:= 0 to Length(srPoints) - 1 do
rPoints:= MiddleTPA(srPoints);
for i:= 0 to Length(rPoints) - 1 do
begin
MMouse(rPoints.x, rPoints.y, 4, 4);
if IsUpTextMulti('ine', 'Mine', 'Rocks')then
begin
result:= true;
GetMousePos(x, y);
Color:= RockType;
Mouse(x, y, 1, 2, true);
wait(200);
exit;
end;
end;
end;
function FollowRock(var x, y, Color : integer): boolean;
begin
result:= FindColorSpiralTolerance(x, y, Color, x - 25, y - 25, x + 25, y + 25, 2);
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
function TimeOver(TimeBase, TimeCheck, TimeModifier: integer): boolean;
By: Pwnaz0r
Description: Returns true if the time from mark base is over the time check
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function TimeOver(TimeBase, TimeCheck, TimeModifier: integer): boolean;
begin
result:= TimeFromMark(TimeBase) >= TimeCheck * TimeModifier;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
function LoadsDone(Int: integer): boolean;
By: Pwnaz0r
Description: Returns true if the loads are done.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function LoadsDone(Int: integer): boolean;
begin
result:= Int >= (Loads * 28);
if result then Logout;
end;
function FFlag2(var x, y, Color: integer): boolean;
var
XK, YK, XL, YL: Integer;
var
T1, T2: Extended;
begin
T1 := GetTickCount;
repeat
T2 := GetTickCount;
Wait(100);
result:= FindColorSpiralTolerance(x, y, Color, x - 25, y - 25, x + 25, y + 25, 2);
if HumanCircleFlag(0) then
Break;
Wait(100);
if T2 - T1 > 10000 then
begin
if FindColor(XL, YL, 255, MMX1, MMY1, MMX2, MMY2) then
MouseFindFlag(XL, YL, 1, 1)
else Mouse(MMCX, MMCY, 0, 0, True);
Break;
end;
if Random(20) = 1 then IdleTime(500, 1000, 0.01);
until (not FindColor(XK, YK, 255, MMX1, MMY1, MMX2, MMY2));
end;
function RockGone(var x, y, Color: integer): boolean;
begin
result:= not FindColorSpiralTolerance(x, y, Color, x - 25, y - 25, x + 25, y + 25, 2);
if result then exit else
result := FindColorSpiral(x, y, 5460825, x - 10, y - 10, x + 10, y + 10);
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure PlayerLoop(MaxplayerTime, MaxLoadTime, MaxRockTime: integer);
By: Pwnaz0r
Description: Executes the player loop
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure PlayerLoop(MaxplayerTime, MaxLoadTime, MaxRockTime: integer);
var
PlayerTime, LoadTime, RockTime, rx, ry, Col: integer; //Failsafe vars. Timers.
begin
repeat
if not LoggedIn then LoginPlayer;
begin
MarkTime(PlayerTime);
repeat
if not LoggedIn then break;
begin
MarkTime(LoadTime);
repeat
if not LoggedIn then break;
HighestAngle;
begin
MarkTime(RockTime);
repeat
if InvFull then break;
if not LoggedIn then break;
if TimeOver(RockTime, MaxRockTime, 1000) then break;
FindFastRandoms;
if MineRock(rx, ry, Col) then
begin
FindNormalRandoms;
if FFlag2(rx, ry, Col) then
begin
repeat
if InvFull then break;
if not LoggedIn then break;
Loc('Mining');
FindMiningRandoms(rx, ry);
if TimeOver(RockTime, MaxRockTime, 1000) then break;
wait(1);
FindTalk;
until(RockGone(rx, ry, Col));
end;
FindFastRandoms;
if not LoggedIn then break;
end;
until(TimeOver(RockTime, MaxRockTime, 1000));
end;
if TimeOver(LoadTime, MaxLoadTime, 60000) then break;
Until(InvFull);
end;
DropAndReportStatus;
ProgressReport;
FindNormalRandoms;
if TimeOver(PlayerTime, MaxPlayerTime, 60000) then break;
Until(LoadsDone(Players[CurrentPlayer].Integers[0]));// <– Must log you out!!!
end;
if AllPlayersInActive then break;
if Not Loggedin then GoToNextPlayer(false) else
GoToNextPlayer(true);
Until(AllplayersInactive);
end;
procedure ProgressReport;
var
H, M, S, I : integer;
begin
SRLRandomsReport;
ClearDebug;
Writeln(' /=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\');
Writeln(' | [SRL]Powerminer Version '+V+' |');
Writeln(' | By : Pwnaz0r |');
Writeln(' \-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=/');
Writeln('');
ConvertTime(GetTimeRunning,H,M,S);
Writeln(' Worked For ' + InttoStr(H) + ' hours, ' + IntToStr(M) + ' minutes and '+ IntToStr(S) + ' seconds ');
Writeln(' Mined '+IntToStr(RocksMined)+' rock(s)');
Writeln(' Handled '+IntToStr(GasesHandled)+' gas(es)');
Writeln('');
Writeln(' # | Nick | MiningLevel | RocksMined | Gases Encountered | Loc');
For I := 0 to HowManyPlayers - 1 do
begin
Writeln(' '+IntToStr(I)+' | '+Players.Nick+' | ML = '+IntToStr(Players.Level[13])+' | Mined '+IntToStr(Players.Integers[0])+' rocks | Handled '+IntToStr(Players[CurrentPLayer].integers[1])+' gases | Loc: '+Players.Loc);
end;
end;
begin
StartScript;
PlayerLoop(PTimeout, LTimeout, RTimeout);;
end.
——————————————————
<!– END TEMPLATE: formanswers –>
irollon10s - SRL Member Application Form
irollon10s
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
none at the moment would like to learn thats why im joining
Other Communitys
sythe.org, the tech guide
How Long have You Played Runescape
4 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Hi its irollon10s ive been playing runescape for about 4 years now have been autoing for 2 years i auto mine i play on my pure staker alot i love autoing im i would really appreciate it if you would allow me to become a member and if there is anything i can do to help out the site or anyone let me know and ill be glad to help out. the script that i have included is one that was originally made by pwnazor but i have used it for awhile and i have edited it and changed some things so that it will run more efficiently
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
{=========================================================================]
[ [SRL]Powerminer Free Version by irollon10s ]
[ Complaint with SRL Rev. 4 and SCAR 3.12c ]
[ ]
[ NAME : [SRL]Powerminer ]
[ WRITER : irollon10s ]
[ CATEGORY : power Miner ]
[ DESCRIPTION : Powermines Ores and Drops them. ]
[ USAGE : See Instructions. ]
[ AUTOCOLOR : Yes, the ores are autocolored. ]
[ NOTES : [email]dostuffearlier@yahoo.com[/email] ]
[ SRL REV. : 4 Scar 3.12c ]
[ FEATURES : AutoColor, HSL Tolerances, Player Array ]
[ ]
[ ]
[=========================================================================]
[ Description. ]
[=========================================================================]
[ ]
[ This Script Mines Ores at most locations in Runescape. ]
[ It Gains Constant Mining Experience ]
[ The More Players you use, the longer it runs! ]
[ ]
[=========================================================================]
[ Instructions. ]
[=========================================================================]
[ ]
[ 1. USE Runescape with Low Detail, Very Bright, UnSigned Client ]
[ 2. Set your Screen to 32 bit TRUE color. ]
[ 3. Position your characters at the mining spots. ]
[ 4. Insert SRL ID and Password if you have one ]
[ 5. Click Run! ]
[ ** Note - If Script cannot find rocks, please refer to FAQ on thread ** ]
[=========================================================================}
{Note to ALL Users: if your player is logged in more than player
time (in minutes), your player will NOT be counted un active.
When the form pops up, for the rock type, put a correct rock
name:
- Clay - Copper - Tin
- Iron - Mithril - Silver
- Gold - Coal
This script uses the best SRL knowledge, but I DO NOT accept
responsibility for any lost accounts (howevfer slim that chance
may be).
}program Powerminer_Free;
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Mining.scar}
const Loads = 500;// Loads for each player to do before switching
RTimeout = 8;// Max time to wait before changing rocks(Seconds)
LTimeout = 4;// Max time for Load(Minutes);
PTimeout = 25;// Max time for Player(Minutes); He will not go inactive,just change
RunDir = 'N';// Direction to run if fight found
RunWaitTime = 20;// Time in seconds to wait if run away
var
HeadColors: array [1..5] of integer;
RocksMined, GasesHandled, OreMask, OreFinds, OreTime, ClientHandle, RCheck, InvalidCount, LevelChecker: integer;
Recall: boolean;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
Procedure DeclarePlayers;
By: SRL
Description: Fill in with your players information.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
Procedure DeclarePlayers;
begin
SRLID := '';
SRLPassword := '';
SRLPlayerForm(True, [], [], ['Rock Type'], []);
Writeln(IntToStr(HowManyPlayers)+' Player(s);');
CheckUserNicks;
end;
const
GTX1 = 546; GTY1 = 202; GTX2 = 737; GTY2 = 466;
V = '3.03';
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure Loc(where: string);
By: Pwnaz0r
Description: Changes CurrentPlayers Location identifier.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure Loc(where: string);
begin
Players[CurrentPlayer].Loc:= where;
Players[CurrentPlayer].Rand:= where;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
function AllPlayersInactive: boolean;
By: Pwnaz0r
Description: Returns true if all players are inactive.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function AllPlayersInactive: boolean;
var
p: integer;
begin
for p:= 0 to HowManyPlayers - 1 do
if Players[p].Active then exit;
result:= true;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure LoginWhich(Player: integer);
By: Pwnaz0r
Description: Starts up the script.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure LoginWhich(Player: integer);
begin
if LoggedIn then exit;
if Players[Player].Active = false then
begin
writeln('Changing player to active…');
Players[Player].Active:= true;
end;
CurrentPlayer:= Player;
LoginPlayer;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
Function FindFastRandoms: Boolean;
By: WT-Fakawi
Description: Finds all the fast randoms.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function FindFastRandoms: Boolean; // By WT-Fakawi.
var
i: Integer;
begin
for i:=1 to 10 do
begin
case I of
1: If FindDead then
begin
Result := True;
Loc('Dead');
Logout;
end;
2: If FindTalk Then Result := True;
3: If FindMime then
begin
Result := True;
Loc('Mime');
Logout;
end;
4: If FindMaze then
begin
result:= true;
Loc('Maze');
logout;
end;
5: If FindQuiz then
begin
Result := True;
Loc('Quiz');
Logout;//Solve quiz in next SRL
end;
6: If FindDemon then
begin
Result := True;
Loc('Demon');
end;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].rand := 'No GameTab';
Logout;
Exit;
end;
end;
8: begin
If InBlack then
begin
Result := True;
Players[CurrentPlayer].rand := 'InBlack';
Logout;
Exit;
end;
end;
9 : If FindTalk Then Result := True;
10: if FindFight then
begin
RunTo(RunDir, false);
FTWait(RunWaitTime);
RunBack;
end;
end;
Wait(1);
end;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure GoToNextPlayer(IsPlayerActive: boolean);
By: Pwnaz0r
Description: Will go to Next Player in Order.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure ConvertMiningVarsToMyVars; forward;
procedure GoToNextPlayer(IsPlayerActive: boolean);
var
i: integer;
begin
NextPlayerOrder(IsPlayerActive);
Loc('Working');
if not loggedin then LoginPlayer;
FindPickHeadColor;
SetBar('brightness', 4);
SetRun(False);
if WearingItem(5) then
begin
Writeln('Please do not wield pick, it could mess up player''s mining.');
Takeoff(5);
wait(400);
end;
if WearingItem(7) then
begin
Writeln('Please Take off player''s shields. They can mess up mining.');
Takeoff(7);
wait(400);
end;
ConvertMiningVarsToMyVars;
GetAllLevels;
for i:= 0 to 2 do
ArrangeInv;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure ConvertMiningVarsToMyVars;
By: Pwnaz0r
Description: Turns HC 1 - 5 into an array of HeadColors
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure ConvertMiningVarsToMyVars;
begin
HeadColors[1]:= HC1;
HeadColors[2]:= HC2;
HeadColors[3]:= HC3;
HeadColors[4]:= HC4;
HeadColors[5]:= HC5;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
function HoldingPick: boolean;
By: Pwnaz0r
Description: Checks to see if the player is holding the pickaxe
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function HoldingPick: boolean;
var
tab, cts, hcCount, px, py, PickCount: integer;
begin
PickCount:= 0;
cts:= GetColorToleranceSpeed;
ColorToleranceSpeed(1);
for tab:= 4 to 5 do
begin
Gametab(tab);
Case Tab of
4:begin
for hcCount:= 1 to 5 do
begin
if FindColor(px, py, HeadColors[hcCount], GTX1, GTY1, GTX2, GTY2) then
begin
Inc(PickCount);
if PickCount >= 4 then
begin
result:= true;
exit;
end;
end;
end;
break;
end;
5:begin
for hcCount:= 1 to 5 do
begin
if FindColor(px, py, HeadColors[hcCount], GTX1, GTY1, GTX2, GTY2) then
begin
Inc(PickCount);
if PickCount >= 4 then
begin
result:= true;
Mouse(px, py, 0, 0, true);
GameTab(4);
exit;
end;
end;
end;
break;
end;
end;
end;
ColorToleranceSpeed(cts);
Writeln('PICK LOST!');
Loc('Pick Lost');
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure HandleGas;
By: Pwnaz0r
Description: Handles Gas random.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure HandleGas;
begin
MouseSpeed:= 12;
Mouse(MMCX, MMCY, 3, 3, true);
FFlag(0);
Inc(GasesHandled);
Inc(Players[CurrentPlayer].integers[1]);
Loc('Waiting out for Gas');
ReportVars[2]:= 1;
SendSRLReport;
FTWait(40);
Loc('Working');
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
function FindPick2: Boolean;
By: Pwnaz0r
Description: Handles A Broken Pickaxe
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function FindPick2: Boolean;
var
HeadDTM, HandleDTM, BrokenDTM, AxeDTM, hx, hy, mx, my, i, c, x, y: integer;
Lost, Wielded: boolean;
begin
BrokenDTM:= DTMFromString('78DA63CC62626098C0C8800A189148209D045' +
'4D347404D1E504D170135E540359388503385809A2A22D45403D5' +
'4C26C21C42EE4907AA994B404D2A50CD2222C2701901358940354' +
'B8950438C5D0B8870F32C026A328808C354C2E9070005DF1192');
HandleDTM:= DTMFromString('78DA634C676260F0656440058C482490CE00A' +
'A0921A02605A82686809A4422D42401D54410615730116EF626A0' +
'260FA8C69D809A2CA01A0FDC6AD8417436508D1B0135394035AE4' +
'498E347400DC83D0144A80924A02613A82608BF1A007DFD0B4F');
HeadDTM:= DTMFromString('78DA8DD2390E80300C44D198E39250B0738AB' +
'043071C15D34183BF0BBB79D2C8D2C89E38978BFB8EBCB6DE434D' +
'6B980598494D6798084CAFA60159B561066046609EDF2BC3CCC0A' +
'CC06CD094C0148621DDB8D40460BC614E3529E86100C60393FD9B' +
'1B6F23174D');
AxeDTM:= DTMFromString('78DA6374606260B8C38006189148206D0954F' +
'389801A6BA09A67B8D530C2CC7945408D0550CD5B026ACC816A3E' +
'1050E30454F380801A67A09AFB04D47800D5DC26A0C60DA8E6161' +
'16AAE13E19E6B44F8FD260135A684DD0300CC7D1006');
Lost:= false;
if FindDTM(BrokenDTM, hx, hy, 546, 203, 737, 466) then
begin
Writeln('Broken Pick Found!');
if FindDTM(AxeDTM, hx, hy, 546, 203, 737, 466) then
begin
Writeln('Found a new pickaxe.');
end else
begin
result:= true;
Writeln('No More picks found! Logging out.');
LogOut;
end;
end;
if not FindDTM(AxeDTM, hx, hy, 546, 203, 737, 466) then
for i:= 4 to 5 do
begin
GameTab(i);
if FindDTM(HandleDTM, hx, hy, 546, 203, 737, 466) then
begin
Writeln('Handle Found!');
Lost:= true
if i = 5 then
begin
Wielded:= true;
Mouse(hx, hy, 0 ,0, true);
end;
end;
end;
GameTab(4);
if not Lost then exit else Writeln('Lost!');
repeat
if not (LoggedIn) then Exit;
c := c + 1;
x := Random(510) + 5;
y := Random(330) + 5;
if (FindColorSpiral(x, y, hc1, 3, 3, 515, 338)) or
(FindColorSpiral(x, y, hc2, 3, 3, 515, 338)) or
(FindColorSpiral(x, y, hc3, 3, 3, 515, 338)) or
(FindColorSpiral(x, y, hc4, 3, 3, 515, 338)) or
(FindColorSpiral(x, y, hc5, 3, 3, 515, 338)) then
begin
MMouse(x, y, 2, 2);
if IsUpTextMulti('Take', 'pick', 'head') then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
end;
Flag;
Wait(1000 + Random(100));
lost:= not FindDTM(HeadDTM, hx, hy, 546, 203, 737, 466);
end;
until(c >= 10) or (Lost = false);
if (c >= 10) then
begin
Writeln('Could not find pick!');
exit;
end else
Writeln('Pick Head Found!');
for c:= 0 to 10 do
begin
if FindDTM(HandleDTM, hx, hy, 546, 203, 737, 466) then
if FindDTM(HeadDTM, mx, my, 546, 203, 737, 466) then
begin
Mouse(mx, my, 0, 0, true);
wait(500+random(600));
Mouse(hx, hy, 0, 0, true);
wait(1000+random(500));
result:= not FindDTM(AxeDTM, hx, hy, 546, 203, 737, 466);
if not result then
begin
Writeln('Pick Attached!');
break;
end;
end;
end;
FreeDTM(BrokenDTM);
FreeDTM(HandleDTM);
FreeDTM(HeadDTM);
FreeDTM(AxeDTM);
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
function FindMiningRandoms: boolean;
By: Pwnaz0r
Description: Finds if Pick is lost or if Gas is found.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function FindMiningRandoms(x, y: integer): boolean;
var
rCount: integer;
begin
for rCount:= 0 to 5 do
begin
Case rCount of
0: if GasFound(x, y) then
begin
result:= true;
HandleGas;
end;
1: result:= FindPick2;
2: if FindFight then
begin
RunTo(RunDir, false);
FTWait(RunWaitTime);
RunBack;
end;
3: if FindFastRandoms then result:= true;
4: if ((TimeFromMark(LevelChecker)) > (15 * 60000))then
begin
GetAllLevels;
Writeln('Got all levels.');
end;
end;
if result then
Writeln('Random Found!');
if result then exit;
end;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure StartScript;
By: Pwnaz0r
Description: Starts up the script.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure StartScript;
var
i: integer;
begin
SetupSRL;
rCheck:= 0;
ScriptId:= '287';
RocksMined:= 0; OreFinds:= 0; OreTime:= 0; InvalidCount:= 0; Recall:= False;
OreMask:= BitmapFromString(18, 16, 'beNpjYMAF/v//D2fA2fjBfyTA' +
'QBxAU4lVI0E1uKzD7wU8uuDqybCLSF/g14U/GDEDhJgwJz5SKNdIn' +
'l10s4h+AABnp3GP');
if SRLId = '' then
begin
SRLId:= '2776';
SRLPassword:= 'pwnscripts';
end;
SendSRLReport;
ClearDebug;
Writeln('|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|');
Writeln('| This Script was made by: ______ |');
Writeln('| .—–.–.–.–.—–.—.-.—–.| |.—-. |');
Writeln('| | _ | | | | | _ |– __|| – || _| |');
Writeln('| | __|________|__|__|___._|_____||______||__| |');
Writeln('| |__| [email]Pwnaz0r@hotmail.com[/email] |');
Writeln('|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|');
Writeln('');
DeclarePlayers;
if not FindRS then
begin
writeln('Could not find Runescape');
TerminateScript;
end else
begin
ActivateClient;
wait(500);
ClientHandle:= GetClientWindowHandle;
end;
if not LoggedIn then LoginWhich(CurrentPlayer);
MarkTime(LevelChecker);
FindPickHeadColor;
SetBar('brightness', 4);
SetRun(False);
if WearingItem(5) then
begin
Writeln('Please do not wield pick, it could mess up player''s mining.');
Takeoff(5);
wait(400);
end;
if WearingItem(7) then
begin
Writeln('Please Take off player''s shields. They can mess up mining.');
Takeoff(7);
wait(400);
end;
GetAllLevels;
ConvertMiningVarsToMyVars;
for i:= 0 to 2 do
ArrangeInv;
ReportVars[1]:= 1;
SendSRLReport;
end;
procedure ProgressReport; forward;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure DropAndReportStatus;
By: Pwnaz0r
Description: Drops all rocks in inventory and reports status
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure DropAndReportStatus;
begin
Gametab(4);
IncEx(Players[CurrentPlayer].Integers[0], CountItemBmpMaskTol(OreMask, 5, 5));
IncEx(RocksMined, CountItemBmpMaskTol(OreMask, 5, 5));
ProgressReport;
ScriptId:= '287';
ReportVars[0]:= CountItemBmpMaskTol(OreMask, 5, 5);
SendSRLReport;
ClickAllItemsBmpMaskTolWait(OreMask, 'rop', 5, 5, 850);
ArrangeInv;
end;
function MineRock(var x, y, Color: integer): boolean;
var
RockType, i: integer;
rPoints: TPointArray;
srPoints: TPointArrayArray;
begin
RockType:= -1;
case Lowercase(Players[CurrentPlayer].Strings[0]) of
'copper': RockType:= 4879778;
'tin': RockType:= 5794159;
'iron': RockType:= 2569302;
'silver': RockType:= 9277080;
'gold': RockType:= 4566465;
'coal': RockType:= 2703167;
'mithril', 'mith': RockType:= 6307904;
'clay': RockType:= 4883618;
end;
if RockType = -1 then
begin
writeln('Invalid Rock Name! Logging out to change players');
Logout;
end;
wait(700);
x:= MSCX;
y:= MSCY;
FindColorsSpiralTolerance(x, y, rPoints, RockType, 5, 5, 500, 320, 4);
if Length(rPoints) <= 0 then
begin
Writeln('No Rocks Found!');
exit;
end;
srPoints:= TPAtoATPA(rPoints, 30);
SetArrayLength(rPoints, Length(srPoints));
for i:= 0 to Length(srPoints) - 1 do
rPoints:= MiddleTPA(srPoints);
for i:= 0 to Length(rPoints) - 1 do
begin
MMouse(rPoints.x, rPoints.y, 4, 4);
if IsUpTextMulti('ine', 'Mine', 'Rocks')then
begin
result:= true;
GetMousePos(x, y);
Color:= RockType;
Mouse(x, y, 1, 2, true);
wait(200);
exit;
end;
end;
end;
function FollowRock(var x, y, Color : integer): boolean;
begin
result:= FindColorSpiralTolerance(x, y, Color, x - 25, y - 25, x + 25, y + 25, 2);
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
function TimeOver(TimeBase, TimeCheck, TimeModifier: integer): boolean;
By: Pwnaz0r
Description: Returns true if the time from mark base is over the time check
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function TimeOver(TimeBase, TimeCheck, TimeModifier: integer): boolean;
begin
result:= TimeFromMark(TimeBase) >= TimeCheck * TimeModifier;
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
function LoadsDone(Int: integer): boolean;
By: Pwnaz0r
Description: Returns true if the loads are done.
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
function LoadsDone(Int: integer): boolean;
begin
result:= Int >= (Loads * 28);
if result then Logout;
end;
function FFlag2(var x, y, Color: integer): boolean;
var
XK, YK, XL, YL: Integer;
var
T1, T2: Extended;
begin
T1 := GetTickCount;
repeat
T2 := GetTickCount;
Wait(100);
result:= FindColorSpiralTolerance(x, y, Color, x - 25, y - 25, x + 25, y + 25, 2);
if HumanCircleFlag(0) then
Break;
Wait(100);
if T2 - T1 > 10000 then
begin
if FindColor(XL, YL, 255, MMX1, MMY1, MMX2, MMY2) then
MouseFindFlag(XL, YL, 1, 1)
else Mouse(MMCX, MMCY, 0, 0, True);
Break;
end;
if Random(20) = 1 then IdleTime(500, 1000, 0.01);
until (not FindColor(XK, YK, 255, MMX1, MMY1, MMX2, MMY2));
end;
function RockGone(var x, y, Color: integer): boolean;
begin
result:= not FindColorSpiralTolerance(x, y, Color, x - 25, y - 25, x + 25, y + 25, 2);
if result then exit else
result := FindColorSpiral(x, y, 5460825, x - 10, y - 10, x + 10, y + 10);
end;
{<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
procedure PlayerLoop(MaxplayerTime, MaxLoadTime, MaxRockTime: integer);
By: Pwnaz0r
Description: Executes the player loop
<-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> }
procedure PlayerLoop(MaxplayerTime, MaxLoadTime, MaxRockTime: integer);
var
PlayerTime, LoadTime, RockTime, rx, ry, Col: integer; //Failsafe vars. Timers.
begin
repeat
if not LoggedIn then LoginPlayer;
begin
MarkTime(PlayerTime);
repeat
if not LoggedIn then break;
begin
MarkTime(LoadTime);
repeat
if not LoggedIn then break;
HighestAngle;
begin
MarkTime(RockTime);
repeat
if InvFull then break;
if not LoggedIn then break;
if TimeOver(RockTime, MaxRockTime, 1000) then break;
FindFastRandoms;
if MineRock(rx, ry, Col) then
begin
FindNormalRandoms;
if FFlag2(rx, ry, Col) then
begin
repeat
if InvFull then break;
if not LoggedIn then break;
Loc('Mining');
FindMiningRandoms(rx, ry);
if TimeOver(RockTime, MaxRockTime, 1000) then break;
wait(1);
FindTalk;
until(RockGone(rx, ry, Col));
end;
FindFastRandoms;
if not LoggedIn then break;
end;
until(TimeOver(RockTime, MaxRockTime, 1000));
end;
if TimeOver(LoadTime, MaxLoadTime, 60000) then break;
Until(InvFull);
end;
DropAndReportStatus;
ProgressReport;
FindNormalRandoms;
if TimeOver(PlayerTime, MaxPlayerTime, 60000) then break;
Until(LoadsDone(Players[CurrentPlayer].Integers[0]));// <– Must log you out!!!
end;
if AllPlayersInActive then break;
if Not Loggedin then GoToNextPlayer(false) else
GoToNextPlayer(true);
Until(AllplayersInactive);
end;
procedure ProgressReport;
var
H, M, S, I : integer;
begin
SRLRandomsReport;
ClearDebug;
Writeln(' /=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\');
Writeln(' | [SRL]Powerminer Version '+V+' |');
Writeln(' | By : Pwnaz0r |');
Writeln(' \-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=/');
Writeln('');
ConvertTime(GetTimeRunning,H,M,S);
Writeln(' Worked For ' + InttoStr(H) + ' hours, ' + IntToStr(M) + ' minutes and '+ IntToStr(S) + ' seconds ');
Writeln(' Mined '+IntToStr(RocksMined)+' rock(s)');
Writeln(' Handled '+IntToStr(GasesHandled)+' gas(es)');
Writeln('');
Writeln(' # | Nick | MiningLevel | RocksMined | Gases Encountered | Loc');
For I := 0 to HowManyPlayers - 1 do
begin
Writeln(' '+IntToStr(I)+' | '+Players.Nick+' | ML = '+IntToStr(Players.Level[13])+' | Mined '+IntToStr(Players.Integers[0])+' rocks | Handled '+IntToStr(Players[CurrentPLayer].integers[1])+' gases | Loc: '+Players.Loc);
end;
end;
begin
StartScript;
PlayerLoop(PTimeout, LTimeout, RTimeout);;
end.
——————————————————
<!– END TEMPLATE: formanswers –>