Nebula
2012-03-02 21:53:24
How Long have You Played Runescape?
6 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
No
What is your general programming knowledge?
Pascal
Are you a member of any other communities?
Not currently.
Tell us about yourself…
Please show us one (or multiple) of your scripts.
This first script is my range guild script… It's what I'd consider my most advanced script since I learned how to use ATPAs and incorporated them into my script.
This second script is the first script I ever made (Although I have changed a lot since I first made it), my Aio Longbow cutter. Even though it doesn't feature anything "Super Advanced", I believe (for the most part…) that as long as a script works flawlessly, it shouldn't matter what's in it. This script contains mostly intermediate material.
Even though I'm only including two scripts in this application, the rest of my scripts are in my signature so you can check them out if you want more examples of my work.
6 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
No
What is your general programming knowledge?
Pascal
Are you a member of any other communities?
Not currently.
Tell us about yourself…
From: Nebula
Well I am a 16 year old high school sophomore who lives in America. My interests are all of the Gamer/Nerd type things; I take schoolwork seriously but I also enjoy video games, the internet, and of course Simba scripting. But I am in no way unhealthy; I'm a wrestler and exercise daily. I don't really know what else to put here and I don't want to get too personal so I'll just leave it at that.
Please show us one (or multiple) of your scripts.
This first script is my range guild script… It's what I'd consider my most advanced script since I learned how to use ATPAs and incorporated them into my script.
program NebulaRangeGuilder;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
var
x, y, ang: Integer; // Misc
Failsafe, TimeKeeper, TimePlace: Integer; // Failsafes
Ticket, BronzeArrows, BronzeArrows2: Integer; // DTMs
ArrowsFired, InitialTicketAmount, CompetitionsCompleted: Integer; // Proggy variables
{******************************************************************************}
{-------------------------------------------------------------------------------
---DO NOT TOUCH ANYTHING ABOVE THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING----
-------------------------------------------------------------------------------}
{******************************************************************************}
{****************************** Instructions: ********************************
1: Put your player in the Range guild minigame location.
2: Make sure you have enough arrows and gold to last.
3: Make sure that when you right click the Judge, "Compete" appears.
4: Make sure the XP popup is disabled.
5: Don't have your inventory cluttered with non-required items.
6: Fill out the setup Below.
7: Click Run.
8: Don't Open and close the SMART window for minimum bugs.
******************************************************************************}
const
{******************************************************************************}
{********************************* Setup ************************************}
ArrowRandomness = 15; { Frequency that you weild arrows. Recommended 10-20.
**Example: Arrow randomness of 1 will always equipt arrows**
**Make sure you start with atleast 20x this many arrows equipted**}
TimesToCompete = 1000; { How many times you wish to compete.
**Make sure you start with atleast 200x this amount of coins}
World = 58; // What world you want to use.
Procedure DeclarePlayers;
begin
HowManyPlayers := 1; // Don't touch this
NumberOfPlayers(HowManyPlayers); // Don't touch this
CurrentPlayer := 0; // Don't touch this
Players[0].Name := 'UsernameHere'; // Username
Players[0].Pass := 'PasswordHere'; // Password
Players[0].Active := True; // Don't touch this
end;
{****************************** END OF SETUP **********************************}
{******************************************************************************}
{-------------------------------------------------------------------------------
---DO NOT TOUCH ANYTHING BELOW THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING----
-------------------------------------------------------------------------------}
{******************************************************************************}
Procedure LoadDTMs;
begin
Ticket := DTMFromString('mggAAAHicY2NgYLjDxMBwD4gvAfETIL4CxA+BWImRgUEHiDUYIWxlKDu/LQqoiwmOJ2UFg2l+IIkNM+LAEAAAeGcJJw==');
BronzeArrows := DTMFromString('mbQAAAHicY2VgYLjCxMDwAIjPAvF1IL4JxHqMDAxqQGwBxOZAbATEzmqcDMZqYgwxwrxgNgjzA/WDsAgSZsSCwQAAdCMH2w==');
BronzeArrows2 := DTMFromString('mbQAAAHicY2VgYHjDxMDwGYg/AvEzIP4BxByMDAxcQCwExGJA/B+ozlmNE0gywbGJuhgDP5CFjhmxYDAAAGIhBzQ=');
end;
Procedure Setup;
var
ToLocation: TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE,['6_7']);
writeln(sps_getmypos);
ToLocation := [Point(2531, 2947), Point(2523, 2954), Point(2517, 2963), Point(2517, 2985)];
SPS_WalkPath(ToLocation);
SetAngle(1);
MakeCompass(RandomRange(45, 60));
GameTab(Tab_Inv);
end;
Procedure GetInitialTicketCount;
begin
InitialTicketAmount := (ItemAmount('inv', 'dtm', Ticket, []));
end;
Procedure ClickBronzeArrows;
begin
wait(RandomRange(100,300));
GameTab(Tab_Inv);
If ((FindDTM(BronzeArrows, x, y, MIX1, MIY1, MIX2, MIY2)) or (FindDTM(BronzeArrows2, x, y, MIX1, MIY1, MIX2, MIY2))) then
begin
MMouse(x, y, 4, 4);
wait(RandomRange(200,300));
If IsUpTextMultiCustom(['Bronze', 'ronze', 'ze a', 'rrow']) then
ClickMouse2(true)
else
writeln('couldnt find arrows, Make sure your inventory isnt full of non-required items, ESPECIALLY NON-BRONZE ARROWS');
end;
wait(RandomRange(100, 300));
end;
function JudgeColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL, Tol: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.18, 0.92);
for tol := 0 to 18 do
begin
FindColorsSpiralTolerance(MSCX, MSCY, arP, 2835785, MSX1, MSY1, MSX2, MSY2, tol);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
continue;
end;
if (Length(arP) > 60) then
break;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 0.84) and (X <= 15.60) and (Y >= 0.96) and (Y <= 16.86) and (Z >= 0.44) and (Z <= 8.24) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function Findjudge: Boolean;
var
i, HighaPoints, RandomShort, RandomLong: Integer;
MyTPA : TPointArray;
aPoints: T2DPointArray;
begin
result := false;
SetLength(MyTPA, 0);
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(x, y, MyTPA, JudgeColor, MSX1, MSY1, MSX2, MSY2, 4);
if ((Length(MyTPA)) = 0) then
begin
writeln('coulnt find judge, adding tolerance');
FindColorsSpiralTolerance(x, y, MyTPA, JudgeColor, MSX1, MSY1, MSX2, MSY2, 6);
end;
aPoints := TPAtoATPAEx(MyTPA, 10, 10);
SortATPAFromFirstpoint(aPoints, Point(MSCX, MSCY-(RandomRange(35, 50))));
SetLength(MyTPA, 0);
HighaPoints := High(aPoints);
MarkTime(TimePlace);
for i := 0 to HighaPoints do
begin
RandomShort := RandomRange(2400, 3000);
RandomLong := RandomRange(5000, 8000);
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.18, 0.92);
if (Length(aPoints[i]) < 10) then
begin
writeln('or');
Continue;
end;
MiddleTPAEx(aPoints[i], X, Y);
MMouse(X, Y, 0, 0);
Wait(RandomRange(150,200));
If (IsUpTextMultiCustom(['Compet', 'etition', 'on Ju', '-to Co', 'uard'])) then
begin
ClickMouse2(false);
if ChooseOption('Compete') then
begin
result := true;
Break;
end;
end;
if ((TimeFromMark(TimePlace)) > RandomShort) then
begin
writeln('judge may be under us, clicking middle');
Mouse(MSCX, MSCY, 3, 3, false);
wait(RandomRange(200,300));
if ChooseOption('Compete') then
begin
result := true;
Break;
end;
end;
if ((TimeFromMark(TimePlace)) > RandomLong) then
break;
end;
end;
Procedure HandleJudge;
begin
If not FindJudge then
begin
MarkTime(TimeKeeper);
repeat
MakeCompass(RandomRange(-135,45));
until(((TimeFromMark(TimeKeeper)) > 45000) or (FindJudge = true));
if ((TimeFromMark(TimeKeeper)) > 45000) then
begin
writeln('couldnt find judge')
Logout;
TerminateScript;
end;
end;
begin
if (WaitColorCount(1972754, 221, 401, 294, 411, 8, 20, 10000000, 5000)) then
begin
writeln('open');
Wait(RandomRange(100, 400));
MouseBox(222, 403, 293, 410, 1);
end else
begin
writeln('couldnt compete');
Logout;
TerminateScript;
end;
end;
wait(RandomRange(500,800));
end;
function FindTarget: Boolean;
var
i: Integer;
MyTPA : TPointArray;
aPoints: T2DPointArray;
begin
result := false;
x := MSCX;
y := MSCY;
FindColorsSpiralTolerance(x, y, MyTPA, 5303805, MSX1, MSY1, MSX2, MSY2, 5);
if Length(MyTPA) = 0 then
FindColorsSpiralTolerance(x, y, MyTPA, 5303805, MSX1, MSY1, MSX2, MSY2, 8);
aPoints := TPAtoATPAEx(MyTPA, 3, 3);
SortATPAFromFirstpoint(aPoints, Point(MSCX, MSCY));
for i := 0 to High(MyTPA) do
begin
if (Length(aPoints[i]) > 6) then
begin
MiddleTPAEx(aPoints[i], x, y);
MMouse(x, y, 7, 7);
Wait(RandomRange(150,200));
if IsUpTextMultiCustom(['ire-', 'Target', 'arget', 'at Tar'] ) then
Break;
end;
end;
result := true;
end;
Procedure HandleTarget;
begin
ArrowsFired := 0;
Failsafe := 0;
if not FindTarget then
repeat
inc(Failsafe);
MakeCompass(RandomRange(45, 60));
until((Failsafe >3) or (FindTarget));
ClickMouse2(False);
ChooseOptionMulti(['at Tar', 'ire-at', 'Fire']);
inc(ArrowsFired);
wait(RandomRange(100,150));
repeat
repeat
wait(RandomRange(45, 55));
until (FindTarget);
wait(RandomRange(25, 75));
ClickMouse2(False);
WaitColorCount(3358536, MSX1, MSY1, MSX2, MSY2, 5, 1000, 10000000, 7000);
if (ArrowsFired<11) then
begin
If FindColorTolerance(x, y, 9340807, MCX1, MCY1, MCX2, MCY2, 2) then //running to the target
begin
Setup;
Wait(RandomRange(1100,1400));
FindTarget;
ClickMouse2(False);
ChooseOptionMulti(['at Tar', 'ire-at', 'Fire']);
wait(RandomRange(300,400));
FindTarget;
ClickMouse2(False);
WaitColorCount(3358536, MSX1, MSY1, MSX2, MSY2, 5, 1000, 10000000, 5000);
ChooseOptionMulti(['at Tar', 'ire-at', 'Fire']);
end;
end;
writeln('Window is open');
wait(RandomRange(100,200));
if not ChooseOptionMulti(['at Tar', 'ire-at', 'Fire']) then //open smart...not chooseop
begin
MouseBox(480, 37, 491, 47, 1);
FindTarget;
ClickMouse2(False);
ChooseOptionMulti(['at Tar', 'ire-at', 'Fire']);
FindTarget;
Inc(ArrowsFired);
Wait(RandomRange(100,300));
ClickMouse2(False);
WaitColorCount(3358536, MSX1, MSY1, MSX2, MSY2, 5, 1000, 10000000, 5000);
ChooseOptionMulti(['at Tar', 'ire-at', 'Fire']);
end;
Inc(ArrowsFired);
MarkTime(TimeKeeper);
Repeat
wait(RandomRange(45, 55));
until ((not FindColorTolerance(x, y, 4500223, MSX1, MSY1, MSX2, MSY2, 5)) or (TimeFromMark(TimeKeeper) > 2000));
if ((TimeFromMark(TimeKeeper)) > 2000) then
if FindColorTolerance(x, y, 3358536, MSX1, MSY1, MSX2, MSY2, 5) then
begin
MouseBox(480, 37, 491, 47, 1);
FindTarget;
ClickMouse2(False);
ChooseOptionMulti(['at Tar', 'ire-at', 'Fire']);
FindTarget;
Inc(ArrowsFired);
Wait(RandomRange(100,300));
ClickMouse2(False);
WaitColorCount(3358536, MSX1, MSY1, MSX2, MSY2, 5, 1000, 10000000, 5000);
ChooseOptionMulti(['at Tar', 'ire-at', 'Fire']);
end;
wait(RandomRange(100,400));
until(ArrowsFired >= 11);
Inc(CompetitionsCompleted);
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], UpChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1,131072);
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;
function TicketAmount: Integer;
begin
Result := (ItemAmount('inv', 'dtm', Ticket, []));
end;
Procedure MakeProggy;
Var
SmartLines: TStringArray;
Clock: TIntegerArray;
XPPH, TicketsGained, CPH : integer;
begin
Clock := [0,0,0];
CPH:= Round((CompetitionsCompleted * 3600) / ((GetTimeRunning) / 1000));
TicketsGained := ( TicketAmount - InitialTicketAmount );
XPPH := Round((TicketsGained * 5 * 3600) / ((GetTimeRunning) / 1000));
ConvertTime((GetTimeRunning),Clock[0],Clock[1],Clock[2]);
SetArrayLength(SmartLines, 6);
SmartLines[0]:= 'Nebula Range Guilder'
SmartLines[1]:= 'Time Ran:' + tostr(Clock[0])+':'+tostr(Clock[1])+':'+tostr(Clock[2]) ;
SmartLines[2]:= 'Exp Gained:' + IntToStr(TicketsGained * 5);
SmartLines[3]:= 'Exp Per hour:' + IntToStr(XPPH);
SmartLines[4]:= 'Competitions Completed: ' + IntToStr(CompetitionsCompleted);
SmartLines[5]:= 'Competitions Per Hour: ' + IntToStr(CPH);
PrintOnSmart(SmartLines,Point(10,247),clWhite);
writeln('Nebula Range Guilder');
writeln('Time Ran:' + tostr(Clock[0])+':'+tostr(Clock[1])+':'+tostr(Clock[2]));
writeln('Exp Gained:' + IntToStr(TicketsGained * 5));
writeln('Exp Per hour:' + IntToStr(XPPH));
writeln('Competitions Completed: ' + IntToStr(CompetitionsCompleted));
writeln('Competitions Per Hour: ' + IntToStr(CPH));
end;
Procedure FreeDTMs;
begin
FreeDTM(Ticket);
FreeDTM(BronzeArrows);
end;
begin
MouseSpeed := RandomRange(15,20);
smart_server := World;
smart_members := false;
smart_signed := true;
smart_superDetail := false;
SetupSRL;
DeclarePlayers;
LoginPlayer;
Setup;
LoadDTMs;
GetInitialTicketCount;
MakeProggy;
repeat
HandleJudge;
MakeProggy;
Case Random(ArrowRandomness) of
0: ClickBronzeArrows;
end;
ang := round(rs_GetCompassAngleDegrees());
if not (inRange(ang, 35, 55)) then
begin
MakeCompass(RandomRange(45, 60));
wait(RandomRange(200,500));
end;
HandleTarget;
If FindColorTolerance(x, y, 4500223, MSX1, MSY1, MSX2, MSY2, 5) then
begin
writeln('still open...');
Wait(RandomRange(100, 400));
MouseBox(221, 401, 294, 411, 1);
wait(RandomRange(400,500));
end;
until(CompetitionsCompleted = TimesToCompete);
FreeDTMs;
writeln('Successfully did ' + IntToStr(TimesToCompete) +' Competitions, shutting down');
Logout;
TerminateScript;
end.
This second script is the first script I ever made (Although I have changed a lot since I first made it), my Aio Longbow cutter. Even though it doesn't feature anything "Super Advanced", I believe (for the most part…) that as long as a script works flawlessly, it shouldn't matter what's in it. This script contains mostly intermediate material.
program NebulaAioFletcher;
{$DEFINE SMART}
{$i srl/srl.simba}
///////////////////////////// Instructions: ////////////////////////////////////
//////////////// Start in front of the SoulWars Bank chest /////////////////////
///////////////// Put logs on the right side of your bank //////////////////////
//////////////////// Have your knife in your toolbelt //////////////////////////
////////// Fill Out the Loads you want to complete and XP per log //////////////
//////////////// It is not recommended to wear grey clothing ///////////////////
/////////////////////////////////////////////// ////////////////////////////////
var
x, y, i, Count, TheKnife, Alog, Alog2, TotalXp, XPPH, LogsCut, LogsPerHour:Integer;
items, Clock : TIntegerArray;
const
Loads = 100; //how many loads you want to fletch.
ExpPerLog = 58.25; //how much Xp each log gives. Oak: 25 Willow:41.5 Maple:58.25
// Yew: 75 Magic: 91.5
World = 91; //The world you want to use. Make sure it is a members world.
procedure DeclarePlayers;
begin
HowManyPlayers := 1; // don't touch this.
NumberOfPlayers(HowManyPlayers); // don't touch this.
CurrentPlayer := 0; // don't touch this.
Players[0].Name := 'username'; // Username
Players[0].Pass := 'password'; // Password
Players[0].Active := True; // don't touch this.
Players[0].Pin := ''; // Bank Pin. leave blank if you don't have one set.
end;
//****Do not touch anything below this if you do not know what you are doing****
//****Do not touch anything below this if you do not know what you are doing****
Procedure LoadDTMS;
begin
TheKnife := DTMFromString('mlwAAAHicY2dgYPgPxGyMDAyMQPwNyP4KxJxA9j8gvRhIzwbiWUC8GYg3APFUIF4JxLGRkUAVTFixCJDEhRnxYCgAAHrSCjE=');
Alog := DTMFromString('mrAAAAHic42BgYBBgYmAQBmIeIJYCYjkglgFiSSBmAmIuRqAaIBYCYj4g5gBiViBmhopHWvECTWHCif8DSVY8mJEAhgEAM5sC8Q==');
Alog2 := DTMFromString('m6wAAAHiclcs9CoAwAIPRtFAEtU4Ogl7Fo/Sy6iL4fyH9QAfHNvBClhSSSivlyFCjQoMW3bcFg4l54sKGAysWzBixY0Do/XuMcNMukknwywMz8Qt7');
end;
Procedure Beginning;
begin
MakeCompass('W');
SetAngle(0);
GameTab(Tab_Inv);
end;
Procedure Antiban;
begin
Wait(RandomRange(400, 700));
Case Random(250) of
1: Mouse(531, 62, 11, 11, true);
2: begin
HoverSkill('Fletching', false);
Wait(RandomRange(100, 3000));
Gametab(Tab_Inv);
end;
3: begin
Gametab(Tab_Stats);
Wait(randomrange(750, 2400));
Gametab(Tab_Inv);
end;
4: begin
Gametab(Tab_Friends);
Wait(randomrange(750, 2400));
Gametab(Tab_Inv);
end;
5: RandomMovement;
6: MouseBox(0, 0, 753, 492, 2);
7: Case Random(2) of
1: MakeCompass(RandomRange(0,10));
2: MakeCompass(RandomRange(350, 360));
end;
8: SetAngle(RandomRange(0,30));
10: MouseBox(5, 482, 454, 500, 1);
11: PickUpMouse;
12: RandomMovement;
13: MouseBox(0, 0, 753, 492, 2);
14: MMouse(333, 225, 300, 215);
15: MMouse(333, 225, 300, 215);
16: MMouse(333, 225, 300, 215);
17: SetAngle(RandomRange(0,30));
18: Case Random(2) of
1: MakeCompass(RandomRange(0,10));
2: MakeCompass(RandomRange(350, 360));
end;
end;
end;
function Banking: boolean;
begin
Count := 0;
repeat
Inc(count);
CloseBank;
If Not FindNormalRandoms then
begin
Gametab(Tab_Inv);
repeat
OpenBankChestEdge(SRL_BANK_SW);
until(BankScreen);
If PinScreen then
InPin(Players[CurrentPlayer].Pin);
DepositAll;
wait(randomrange(300,600));
If ((FindDTM(alog, x, y, 340, 85, 475, 290 )) or (FindDTM(alog2, x, y, 340, 85, 475, 290 ))) then
begin
Mouse(x, y, 3, 3, false);
WaitOption('All', 1500);
Wait(randomrange(300,700));
CloseBank;
result := true
end else
begin
result := false
Writeln('no logs in bank');
Logout;
TerminateScript;
end;
end else
begin
Writeln('Somehow there was a random event in soulwars. Shutting down.');
Logout;
TerminateScript;
end;
Until((result = true) or (Count>2))
if (Count>2) then
begin
writeln('Banking failed');
Logout;
TerminateScript;
end;
end;
Procedure Fletching;
begin
if (FindDTM(alog, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
IncEx(TotalXp, 28);
IncEx(LogsCut, 28);
items := [1, 2, 5, 6, 9, 10];
MouseItem(items[Random(High(items))], 1);
Wait(RandomRange(600,900));
If (FindDTM(TheKnife, x, y, MCX1, MCY1, MCX2, MCY2)) then
begin
Mouse(x, y, 5, 5, true);
wait(randomrange(700, 900));
end else
MMouse(257, 427, 30, 20);
wait(RandomRange(150, 250));
If (IsUpText('make')) then
Mouse(x, y, 0, 0, true)
else
MMouse(257, 427, 30, 20);
ClickMouse2(true);
repeat
Antiban;
until(FindDTM(alog, x, y, MIX1, MIY1, MIX2, MIY2)= false);
Wait(randomrange(200, 1400));
end else
begin
writeln('no logs');
Logout;
TerminateScript;
end;
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], UpChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1,131072);
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 WriteProggy;
Var
SmartLines: TStringArray;
begin
Clock := [0,0,0];
XPPH := Round((TotalXp * 3600) / (GetTimeRunning / 1000));
LogsPerHour := Round((LogsCut * 3600) / (GetTimeRunning / 1000));
ConvertTime(GetTimeRunning,Clock[0],Clock[1],Clock[2])
SetArrayLength(SmartLines, 5);
SmartLines[0]:= 'Time Running- ' +tostr(Clock[0])+':'+tostr(Clock[1])+':'+tostr(Clock[2])
SmartLines[1]:= 'XP gained-' + ToStr(TotalXp*ExpPerLog)
SmartLines[2]:= 'Exp Per hour-' + ToStr(XPPH*ExpPerLog)
SmartLines[3]:= 'Logs cut-' + IntToStr(LogsCut)
SmartLines[4]:= 'Logs Cut Per Hour-' +IntToStr(LogsPerHour)
PrintOnSmart(SmartLines,Point(10,254),clWhite);
end;
Procedure FreeDTMS;
begin
FreeDTM(TheKnife);
FreeDTM(Alog);
end;
begin
smart_server := World;
smart_members := true;
smart_signed := true;
smart_superDetail := false;
ClearDebug;
SetupSRL;
DeclarePlayers;
LoginPlayer;
LoadDTMS;
Beginning;
repeat
MouseSpeed := RandomRange(13,17);
inc(i);
banking;
WriteProggy;
wait(RandomRange(800, 1300));
fletching;
WriteProggy;
until(i=loads);
Writeln('Finished');
FreeDTMS;
end.
Even though I'm only including two scripts in this application, the rest of my scripts are in my signature so you can check them out if you want more examples of my work.