'Toxin
2012-01-17 21:59:25
10 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
C++, C#, Java, Delphi/Pascal(Simba/Scar Scripting), HTML, CSS, some Perl/Python scripting…. And other non-significant others such as basic fortran…etc
Are you a member of any other communities?
Not actively as much as I am here at Villavu, I love it here, and even though I haven't been the biggest poster in the past, I have been contributing and am willing to contribute more as I go along my learning curve. I have always been around just browsing posts, scripts, modifying them… just in private, not really much of a people's person, but now I have matured and am willing to help out in any way I can.
Tell us about yourself…
From: XxX Toxin XxX
Well, I am in second year at the University of Waterloo for Software Engineering W/ Honors in Mathematics… Currently in my 3rd school term, completed 2 co-op terms. Life is busy as heck, but hey, I mean I signed up for it didn't I…
I'm originally from Romania, parents decided to leave the shithole of my home country which it was back then and still is now, and come over to Canada, which is where I'm established now, but away at Waterloo for studies.
I spend a lot of time on the computer browsing the forums, on facebook, living the social internet life as well as the social life. I go out too much to be honest with myself, being in engineering I really shouldn't be going out at all for enjoyment seeing as last thing I recall my father saying about engineering school is that it is by far the least fun you'll ever have. Programming is my life, I love it and breathe it, not much more to be said about my passion for it.
Please show us one (or multiple) of your scripts.
program FallyWestIron;
//This script is incomplete atm and it uses SRL4(i was busy at the time but will update to SRL5 and maintain shortly)
// Please read the instructions on how to start the script...
// -> Start in Falador West Bank
// -> Have Pickaxe on-hand
// -> Have NOTHING in your inventory
// -> Be sure to have iron ores NON visible in your bank, put them in tab 4,5,6 and have your first tab the current one when you open your bank.
// -> Be sure to enter your user information properly on the form below(Including SRL Stats)
// -> If the script is having issues finding iron ores, select your own colors
{$define SMART}
{$i srl/srl.scar}
{$i sps/sps.simba}
{$i SRL/SRL/Misc/stats.simba}
{$i SRL/SRL/misc/paintsmart.scar}
Const
//SRL Stats
SRLStats_Username = 'asdfasd';
SRLStats_Password = 'asdfasdf';
//Object Constants
IronOre1 = 3623549;//Iron Rock Color
IronOre2 = 2832737;//Iron Rock Color 2
IronOre3 = 1581111;//Iron Ore Color
IronOre4 = 131072;//Iron Ore Color 2
RunePick1 = 5064764;//Rune Pickaxe Color
RunePick2 = 5393471;//Rune Pickaxe Color 2
Wall1 = 3360333;//Climbing Wall Color
Wall2 = 12572894;//Climbing Wall Color 2
Wall1Back = 11453641;//Climbing Wall-Back Color
Wall2Back = 13362667;//Climbing Wall-Back Color 2
BankBooth = 4877190;//BankBooth Color
BankBooth2 = 2833997;//BankBooth Color 2
Var
I:Integer;
b : Boolean;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Pin := '1964';
BoxRewards := ['XP','xp','lamp'];
LampSkill := 'Farming';
Active := True;
end;
end;
procedure StartScript;
begin
if(not(LoggedIn))then
LogInPlayer;
Wait(RandomRange(1500,2000));
FindNormalRandoms;
SetAngle(True);
end;
function CheckIfIronMined : Boolean;
var
i, l : Integer;
b : Boolean;
begin
if not LoggedIn then Exit;
if(Pos('anage', GetBlackChatMessage) > 0) then
begin
WriteLn('We have successfully gathered some iron.');
end;
end;
function ChatCheck(s: string): Boolean;
var
i, l : Integer;
b : Boolean;
begin
if (Pos(s, GetBlackChatMessage) > 0)then
begin
Writeln('Checked Black Chat Message');
Result:=True;
end;
end;
function MineIronOre: Boolean;
var
x,y: Integer;
begin
if not LoggedIn then Exit;
repeat
if FindObjCustom(x, y, ['ine', 'ocks'], [IronOre1, IronOre2], 3) then
begin
Mouse(x, y, 1, 1, True);
WriteLn('We have found some iron ore.');
if WaitFunc( @IsMoving, 10, 3000) then
while IsMoving do
FindNormalRandoms;
end;
until (invfull())
end;
procedure CheckPickEquiped;
var
x,y:Integer;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
MouseEquippedItem('weapon',3);
Wait(1000+RandomRange(50,100));
if WaitUptext('ickaxe', 500) then
WriteLn('We have a pickaxe, continuing.')
else begin
WriteLn('We do not have a pickaxe, executing.');
Exit;
end;
end;
procedure WalkToWallHop;
var
WallHop : TPointArray;
Check : TPoint;
CheckPoint : TPoint;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
WallHop := [Point(3600, 3210), Point(3580, 3235)];
SPS_WalkPath(WallHop);
Wait(4000+RandomRange(400,200));
MakeCompass(270);
SetAngle(true);
end;
procedure WalkToIronOre;
var
IronOre : TPointArray;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
IronOre := [Point(3525, 3250), Point(3480, 3250), Point(3455, 3250)];
SPS_WalkPath(IronOre);
Wait(2000+RandomRange(50,100));
//SPS_GetMyPos();
end;
procedure ClimbWall;
var
x, y : Integer;
passedWall : Boolean;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
repeat
if FindColor(x, y, Wall1, MSCX - 30, MSY1, MSCX + 30, MSCY) then
begin
WriteLn('We found the wall, hopping over now.');
Mouse(x,y,0,0,false);
Wait(200+RandomRange(50,100))
passedWall := False;
end;
if ChooseOption('limb-over') then
begin
Wait(1000+RandomRange(50,100))
passedWall := True;
END;
until(passedWall);
end;
procedure ClimbWallBackwards;
var
x, y : Integer;
passedWall : Boolean;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
//MakeCompass(180);
repeat
MouseSpeed := 4;
if FindObjCustom(x,y,['rumbling','all'],[Wall1Back,Wall2Back],1) then // FindColor(x, y, Wall1Back, MSCX - 30, MSY1, MSCX + 30, MSCY)
begin
WriteLn('We found the wall, hopping over now.');
Mouse(x,y,0,0,false);
Wait(200+RandomRange(50,100))
passedWall := False;
end;
if ChooseOption('limb-over') then
begin
Wait(1000+RandomRange(50,100))
passedWall := True;
end;
until(passedWall);
MouseSpeed := 7;
end;
procedure LeaveIronOre;
var
LeaveIron : TPointArray;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
LeaveIron := [Point(3490, 3240),Point(3520, 3230),Point(3550, 3235),Point(3570, 3235)];
SPS_WalkPath(LeaveIron);
//SPS_GetMyPos();
end;
procedure WalkToBank;
var
BankPath : TPointArray;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
BankPath := [Point(3605, 3200), Point(3625, 3180)];
SPS_WalkPath(BankPath);
Wait(2000+RandomRange(50,100))
//SPS_GetMyPos();
end;
//This is a function from the Lite Naturez script, by Flight - All credits go to him.
function FindObjEx_F(ColorA, ColorB, Tol, Bounds, sX, sY: Integer; UpText: TStringArray; Var X, Y: Integer; Debug: Boolean): Boolean;
var
B: TBox;
TPA: TPointArray;
L,i,CTS: Integer;
ATPA,ATPA2: T2DPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(sX, sY, TPA, ColorA, MSX1, MSY1, MSX2, MSY2, Tol)
ColorToleranceSpeed(CTS);
if Length(TPA) < 1 then
Exit;
ATPA := TPAtoATPAEx(TPA, Bounds, Bounds);
L := High(ATPA);
SetArrayLength(ATPA2, L+1);
for i := 0 to L do
begin
B := GetTPABounds(ATPA[i]);
with B do
begin
FindColorsSpiralTolerance(sX, sY, ATPA2[i], ColorB, B.X1-Bounds, B.Y1-Bounds, B.X2+Bounds, B.Y2+Bounds, Tol)
if Length(ATPA2[i]) > 0 then
begin;
MiddleTPAEx(ATPA2[i], X, Y);
MMouse(X, Y, 5, 5);
if WaitUpTextMulti(UpText, 150) then
begin
Result := True;
if DeBug then
GetMousePos(X, Y);
Exit;
end;
end;
end;
end;
end;
procedure BankOres;
var
IronDTM,X,Y : Integer;
S : string;
begin
IronDTM := DTMFromString('mrAAAAHic42BgYBAHYkkgFgRiNiDmB2JZIFYGYkUgFgFiDqgciK0AxHJALAzE3EBsriABJJnwYPyAkQCGAQDqIAHX');
repeat
if FindObjEx_F(4877190, 2968935, 10, 10, MSCX, MSCY, ['Use','quickly','ank'], X, Y, False) then
begin
ClickMouse2(False);
ChooseOption('Use-');
Wait(2000+RandomRange(100,200));
if begin then
begin
InPin(Players[0].Pin);
end;
if BankScreen then
begin
IF FindObjCustom(x, y, ['ron', 're'], [1581368, 1515317], 5) then
begin
Wait(200);
Mouse(X,Y,0,0,true);
Wait(1000+RandomRange(100,200));
end;
end;
CloseBank;
end;
until not(invfull);
FreeDTM(IronDTM);
end;
begin
//SPS_Debug := True;
SPS_Setup(RUNESCAPE_SURFACE, ['8_7','8_8'])
Smart_Server := 115;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
ClearDebug;
SetUpSRL;
DeclarePlayers;
LogInPlayer;
CheckPickEquiped;
repeat
WalkToWallHop;
ClimbWall;
WalkToIronOre;
MineIronOre;
LeaveIronOre;
ClimbWallBackwards;
WalkToBank;
BankOres;
until(False);
END.
{ Gnome Stronghold Swamp Toad Collector
By XxX Toxin XxX
Please follow the instructions before posting on the script thread(Or the instructions below....)
1) Start the script at the bottom of the stairs of the southern bank in the gnome stronghold(near farming patches)
2) Make sure that you are directly under the stairs,(the landing tile after going down the stairs from the bank)
otherwise the script will not run properly
3) Do everyone a favor and sell the frogs above Grand Exchange market price. Keep them alive, and I will keep updating the script }
{$define SMART}
{$i SRL/SRL.simba}
{$i sps/sps.simba}
// {$i SRL/srl/Misc/stats.simba}
// {$i SRL/srl/misc/paintsmart.scar}
const
//SRL Stats
SRLStats_Username = 'toxin';
SRLStats_Password = 'lollollol';
gnomeFaceColor = 5988195;
gnomeFaceColor2 = 869471;
var
isUp, isDown : Boolean;
numToads : Integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
BoxRewards := ['XP','xp','lamp'];
LampSkill := 'Farming';
Active := True;
end;
end;
function FindObjEx_F(ColorA, ColorB, Tol, Bounds, sX, sY: Integer; UpText: TStringArray; Var X, Y: Integer; Debug: Boolean): Boolean;
var
B: TBox;
TPA: TPointArray;
L,i,CTS: Integer;
ATPA,ATPA2: T2DPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(sX, sY, TPA, ColorA, MSX1, MSY1, MSX2, MSY2, Tol)
ColorToleranceSpeed(CTS);
if Length(TPA) < 1 then
Exit;
ATPA := TPAtoATPAEx(TPA, Bounds, Bounds);
L := High(ATPA);
SetArrayLength(ATPA2, L+1);
for i := 0 to L do
begin
B := GetTPABounds(ATPA[i]);
WITH B DO
BEGIN
FindColorsSpiralTolerance(sX, sY, ATPA2[i], ColorB, B.X1-Bounds, B.Y1-Bounds, B.X2+Bounds, B.Y2+Bounds, Tol)
if Length(ATPA2[i]) > 0 then
begin;
MiddleTPAEx(ATPA2[i], X, Y);
MMouse(X, Y, 5, 5);
if WaitUpTextMulti(UpText, 150) then
begin
Result := True;
if DeBug then
GetMousePos(X, Y);
Exit;
end;
end;
end;
end;
end;
function isUpstairs : Boolean;
var
X, Y, blackSpace : Integer;
begin
blackSpace := PercentBlackMM();
if (blackSpace > 60) then
begin
isUp := true;
WriteLn('We made it upstairs.');
end;
end;
function isDownstairs : Boolean;
var
X, Y, blackSpace : Integer;
begin
blackSpace := PercentBlackMM();
if (blackSpace < 60) then
begin
isDown := true;
WriteLn('We made it downstairs.');
end;
end;
procedure climbStairs;
var
X,Y,stairs1, stairs2, blackSpace : Integer;
begin
SetAngle(SRL_ANGLE_HIGH);
stairs1 := 2645880;
stairs2 := 2380650;
repeat
if(FindObjEx_F(stairs1, stairs2, 10, 10, MSCX, MSCY, ['imb','up','ase'], X, Y, False) )then
ClickMouse2(true);
//ChooseOption('aircase');
Wait(2000+RandomRange(100,200));
isUpstairs;
until(isUp);
end;
procedure walkToFrogs;
var
X,Y : Integer;
pathToFrog : TPointArray;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
pathToFrog := [Point(1615, 2885), Point(1575, 2850),Point(1575, 2850),Point(1535, 2805),Point(1500, 2760),Point(1500, 2700),Point(1500, 2645),Point(1515, 2595)];
SPS_WalkPath(pathToFrog);
WriteLn('We are now at frogs... starting to pick full inventory.');
end;
procedure climbDownStairs;
var
X,Y,stairs1, stairs2, blackSpace : Integer;
begin
//walkToStairs;
MakeCompass('N');
stairs1 := 734288;
stairs2 := 667465;
SetAngle(SRL_ANGLE_LOW);
repeat
if(FindObjEx_F(stairs1, stairs2, 10, 10, MSCX, MSCY, ['imb','own','ase'], X, Y, False) )then
ClickMouse2(false);
ChooseOption('Climb-');
Wait(2000+RandomRange(100,200));
isDownstairs;
until(isDown);
end;
procedure walkToBank;
var
X,Y : Integer;
pathToBank : TPointArray;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
pathToBank := [Point(1515, 2595), Point(1535, 2645),Point(1535, 2700),Point(1535, 2770),Point(1555, 2830),Point(1580, 2885),Point(1625, 2900)];
SPS_WalkPath(pathToBank);
WriteLn('Reached the bottom stairs of bank.');
end;
procedure bankFrogs;
var
X, Y : Integer;
isDeposited : Boolean;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
SetAngle(SRL_ANGLE_LOW);
MakeCompass(180);
repeat
if FindObjEx_F(gnomeFaceColor, gnomeFaceColor2, 10, 10, MSCX, MSCY, ['ank','ome','anker'], X, Y, False) then
Mouse(x, y, 2, 2, false);
ChooseOption('uickly');
Wait(2000+RandomRange(100,200));
if PinScreen then
begin
InPin(Players[0].Pin);
end;
until (BankScreen);
DepositAll;
Wait(200+RandomRange(100,200));
if(InvCount = 0) then
begin
isDeposited := true;
WriteLn('Successfully deposited frogs.');
end else
begin
isDeposited := false;
WriteLn('Something happened while depositing... terminating script.');
Exit;
end;
CloseBank;
numToads := numToads + 28;
end;
function ClickSecondClosestDot :Boolean; //Might be used in a later day with script... if function gets updated
var
TPA :TPointArray;
begin
TPA := GetMiniMapDots('Red');
If Length(TPA) = 0 then Exit;
SortTPAFrom(TPA, Point(MMCX, MMCY));
Mouse(TPA[1].X, TPA[1].Y, 1, 1, True);
end;
procedure clickArea1;
var
X, Y : Integer;
area1 : TPoint;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
area1 := Point(1510, 2595);
SPS_WalkToPos(area1);
WriteLn('At area1');
end;
procedure clickArea2;
var
X, Y : Integer;
area2 : TPoint;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
area2 := Point(1480, 2595);
SPS_WalkToPos(area2);
WriteLn('At area2');
end;
procedure clickArea3;
var
X, Y : Integer;
area3 : TPoint;
begin
if not LoggedIn then
LogInPlayer;
FindNormalRandoms;
area3 := Point(1505, 2585);
SPS_WalkToPos(area3);
WriteLn('At area3');
end;
function waitForFrog : Boolean;
var
tempInvCount, t : Integer;
begin
tempInvCount := InvCount;
MarkTime(t);
while (tempInvCount = InvCount) do
begin
wait(100);
if (TimeFromMark(t) > 10000) then
Break;
end;
end;
function PickUpToad :Boolean;
var
ToadBox :TBox;
ColorsEx, ToadArr, Colors :TPointArray;
ATPAE, ATPA: T2DPointArray;
ToadPoint :TPoint;
TempCTS, C, HiArr, II, I :Integer;
begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.23, 0.16);
FindColorsSpiralTolerance(MMCX, MMCY, Colors, 1791796, MSX1, MSY1, MSX2, MSY2, 9);
ATPAE := TPAToATPAEx(Colors, 15, 15);
SortATPAFromFirstPoint(ATPAE, Point(MSCX, MSCY));
for I := 0 to High(ATPAE) do
begin
ToadPoint := MiddleTPA(ATPAE[I]);
FindColorsSpiralTolerance(ToadPoint.X, ToadPoint.Y, Colors, 1725746, ToadPoint.X - 30, ToadPoint.Y - 30, ToadPoint.X + 30, ToadPoint.Y + 30, 9);
If Not InRange(Length(Colors), 1, 50) then Continue;
ATPA := TPAToATPAEx(Colors, 10, 10);
Writeln(ToSTr(Length(Colors)));
for II := 0 to High(ATPA) do
begin
ToadPoint := MiddleTPA(ATPA[II]);
MMouse(ToadPoint.X, ToadPoint.Y, 0, 0);
If WaitUpTextMulti(['take', 'wamp'], 200) then
begin
Mouse(ToadPoint.X, ToadPoint.Y, 0, 0, True);
waitForFrog;
//ClickSecondClosestDot;
Result := True;
Exit;
end;
end;
end;
end;
procedure pickToads;
begin
SetAngle(SRL_ANGLE_HIGH);
PickUpToad;
end;
procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1,6904667);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
Procedure DoThePainting;
begin
PrintOnSmart(['XxX Toxin XxX''s Swamp Toad Picker', 'Number of Toads Collected : '+IntToStr(numToads)], Point(10, 290), 255);
end;
procedure progressReport;
begin
ClearDebug;
WriteLn('|| XxX Toxin XxX Swamp Toad Picker ||')
WriteLn('Number of Toads Collected :' + IntToStr(numToads));
end;
begin
SPS_Setup(RUNESCAPE_SURFACE, ['3_6','3_7'])
//SPS_Debug := True;
Smart_Server := 115;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
ClearDebug;
SetUpSRL;
DeclarePlayers;
LogInPlayer;
repeat
walkToFrogs;
Wait(2000);
repeat
if (invfull) then
break;
pickToads;
if (invfull) then
break;
pickToads;
if (invfull) then
break;
pickToads;
if (invfull) then
break;
clickArea1;
pickToads;
if (invfull) then
break;
pickToads;
if (invfull) then
break;
pickToads;
if (invfull) then
break;
clickArea2;
pickToads;
if (invfull) then
break;
pickToads;
if (invfull) then
break;
pickToads;
if (invfull) then
break;
clickArea3;
pickToads;
if (invfull) then
break;
pickToads;
if (invfull) then
break;
pickToads;
if (invfull) then
break;
until(invfull);
walkToBank;
Wait(2000+RandomRange(100,200));
climbStairs;
bankFrogs;
DoThePainting;
progressReport;
climbDownStairs;
until (false);
end.
Script I released today just for fun, and due to a request (1/19/2012)
{ Ardougne Iron Powerminer
By XxX Toxin XxX
Please follow the instructions before ON SCRIPT THREAD
}
program ArdyPwnr;
{$define SMART}
{$i SRL/SRL.simba}
{$i sps/sps.simba}
{$i SRL/srl/misc/paintsmart.scar}
const
ironExp = 35;
var
atMine : boolean;
ironMined : Integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
BoxRewards := ['XP','xp','lamp'];
LampSkill := 'Farming';
Active := True;
end;
end;
function Equiped :boolean;//returns true/false if pickaxe is worn
var
x ,y : Integer;
begin
If(Not(LoggedIn))then
LogInPlayer;
FindNormalRandoms;
MouseEquippedItem('weapon', 3);
if WaitUptext('ickaxe', 500) then
begin
result := true;
writeln('We have a pickaxe... continuing.');
end else
if WaitUptext('', 500) then
begin
result := false;
writeln('We do not have a pickaxe... exiting.');
exit;
end;
Wait(RandomRange(1000, 1500));
end;
function ChatCheck(s: string): Boolean;//Checks chat for black message
var
i, l : Integer;
b : Boolean;
begin
if (Pos(s, GetBlackChatMessage) > 0) then
begin
result := true;
end;
end;
function isAtMineCheck : boolean;//Checks to see if the mining icon is visible
var
x, y : Integer;
begin
if (FindSymbol(x, y, 'mine')) then
begin
writeln('We are at the mine');
atMine := true;
end else
atMine := false;
end;
procedure CrashSmart;//May include crashsmart later, for now... not using.
begin
{$IFDEF CRASHSMART}
Writeln('You are using CRASHSMART, we are going to reload your client after update!');
SmartgetFieldObject(1488,'crash'); // will crash SMART (and Simba).
Wait(5000);
WriteLn('CRASHSMART Failed: Make sure you are using the proper plugin!');
TerminateScript;
Exit;
{$ENDIF}
Writeln('You have no CRASHSMART enabled, so you can not reload RS. Sorry, bye!');
TerminateScript;
end;
function WaitUntilMined: Boolean;//This will wait till char is done mining
var
t, IC: Integer;
begin
IC := 0;
t := 0;
MarkTime(t);
repeat
Wait(10);
if (TimeFromMark(t) >= 6000) then Exit;
until (not FlagPresent) and FindBlackChatMessage('u swi');
IC := InvCount;
t := 0;
MarkTime(t);
repeat
Wait(10);
if (TimeFromMark(t) >= 12000) then Exit;
Wait(750); //was 500
if Levelup then
begin
writeln('We levelled');
end;
if IC <> InvCount then
Break;
until (FindBlackChatMessage('anage'));
Result := True;
end;
function mineIronOre: Boolean;//This will physically search for ores and mine
var
x,y: Integer;
begin
if not LoggedIn then Exit;
if FindObjCustom(x, y, ['ine', 'ocks'], [2635098, 3030374], 3) then
begin
Mouse(x, y, 2, 2, True);
if (WaitUntilMined) then
begin
Inc(ironMined);
result := true;
end;
end;
end;
Procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colour: integer);
//Simple PrintOnSmart method from Flight's Nature Crafter (thanks flight)
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1,000000);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure DoThePainting; //Actually does the painting , painting 'todo code'
begin
PrintOnSmart(['XxX Toxin XxX''s Ardougne Powerminer', 'Number of Iron Mined : '+IntToStr(ironMined)], Point(10, 290), 255);
end;
procedure progressReport;//Self explanitory... this is the progress report
var
xpGained : Integer;
begin
ClearDebug;
xpGained := ironMined * ironExp;
WriteLn('XxX Toxin XxX''s Ardougne Powerminer')
WriteLn('Number of Iron Mined : ' + IntToStr(ironMined));
WriteLn('Total Exp Gained : ' + IntToStr(xpGained));
end;
procedure mainLoop;//mainloop
begin
If(Not(LoggedIn))then
LogInPlayer;
repeat
mineIronOre;
if (invfull) then
dropall;
DoThePainting;
progressReport;
until(false);
end;
begin//todo code
//SPS_Setup(RUNESCAPE_SURFACE, ['3_6','3_7']) //May use SPS later
Smart_Server := 115;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
ClearDebug;
SetUpSRL;
DeclarePlayers;
LogInPlayer;
repeat
progressReport;
DoThePainting;
mainLoop;
dropall;
until(false);
end.
Thank you for reading and please consider my acceptance into SRL Members. I've wanted this for a while and believe this is the time. The reason why I haven't released the SwampFrogCollector is because I don't want prices crashing down again. Thanks guys, have a good one, and please don't be too harsh on me hehe.
Regards,
Toxin.
