SRL Archive - First Scripts

F2P Runespan


Marc000z

2012-05-16 21:53:13

I saw a thread requesting an AIO F2P Runespan script, so I decided to leech off of Kyle and edit his script.

I've asked Kyle in his original thread if I may continue "developing" this. He approved. :P

From: Kyle Undefined
That's fine, no worries :)


99% of the credit goes to him for the base of the script
1% of the credit goes to me for editting it slightly

I have almost no experience with this type of scripting, so please bare with me.

It might be sloppy, but I tested it and it works just fine.

program F2PRunespan;

{$DEFINE SMART}
{$i srl/srl.simba}
{$I SRL/SRL/Misc/Debug.Simba}

const
{* Don't touch *}
Version = '1.7';

{* SRL Stats *}
SRLStats_Username = '';
SRLStats_Password = '';

{* Object Constants *}
objUndeadSoul = 0;
objLivingSoul = 1;
objSoulWraith = 2;
objBloodySkulls = 3;
objBloodPool = 4;
objBloodWraith = 5;
objSkulls = 6;
objDeathWraith = 7;
objJumper = 8;
objShifter = 9;
objNebula = 10;
objWaterEssling = 11;
objVine = 12;
objLawHound = 13;
objCosmicHound = 14;
objChaosHound = 15;
objAstralHound = 16;
objNatureHound = 17;
objBodyHound = 18;
objCCloud = 19;
objAirEss = 20;
objWaterPool = 21;
objFleshyGrowth = 22;
objFireStorm = 23;
objEarthEss = 24;
objRockFrag = 25;
objFireball = 26;
objMindEssling = 27;
objCyclone = 28;

(* Break settings *)
SwitchWorlds = True; // Switch worlds after a break?
TakeBreaks = False; // Take Breaks during runtime?
BreakIn = 180; // How long before we take a break? (minutes)
BreakFor = 20; // How long will we break for? (minutes)
Bir = 13; // Random minutes to add/subtract from how long until we break
Bfr = 5; // Random minutes to add/subjtract from break duraction

{* Script Constants *}
ClickAnywhere = False; // Turns off the island detection, will click any object, no matter what island it's on
// True turns this option off, False makes it click only on your island.

Debug = True; // If things aren't working, set this to true and tell us what it says
// Or if you want to narrow down colors to make script even better :)
type
{* TObj Type *}
TObj = record
Hue, Sat : Extended;
Name: string;
UpText : TStringArray;
ObjID, Color, Tol, LvlReq, Max, Min, IXP: Integer;
end;

type
{* TObjectArray Type *}
TObjectArray = array of TObj;

var
{* Script Variables *}
StartXP, XPH, XP, TP, RCt, RCLvl, TW, CurrentXP, EssenceDTM, EX, EY, IslandColor, IslandTol, EssenceCount: Integer;
TI,Floors: Integer;
Objects : TObjectArray;
IslandHue, IslandSat : Extended;
Higher, SafeNub, FirstIsland : Boolean;
TB : Tbox;

(* Break variables *)
w, x, y, z, RealBTime, CurrentBTime, BreakRounds : Integer;

procedure DeclarePlayers();
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

with Players[0] do
begin
Name := ''; // Your RuneScape Account Name
Pass := ''; // Your RuneScape Account Password
Active := True; // Use in the Script. True / False.
Booleans[0] := True; // Set to False if you want to search for all Objects
Booleans[1] := False; // Logout if a random is found

// This is for searching for specific Objects, add / remove as needed. Order doesn't matter
Integers := [objFireBall, objFleshyGrowth, objWaterPool, objFireStorm, objBodyHound, objEarthEss, objAirEss, objVine, objCyclone];
end;
end;

procedure SetDTM;
begin
EssenceDTM := DTMFromString('mrAAAAHic42BgYHBkYmDwAGIXILYBYksodgdiXyB+DlTzCIgfQvEzIP4AxG+A+CkQW5ibMRjo64ExiG1tZcHg6uLE4O7mwmBsZMjABVSDDzMSwDAAAJ3CDvU=');
end;

procedure Fr33DTM;
begin
FreeDTM(EssenceDTM);
end;

procedure DebugThis(s : string);
begin
if(Debug)then
WriteLn(s);
end;

procedure SetupObjects();
begin
DebugThis('-[DEBUG]- Setup Objects');
SetLength(Objects, 29);

with Objects[objWaterEssling] do
begin
ObjID := objWaterEssling;
Name := 'WaterEssling';
UpText := ['Water Essling', 'ater', 'er essl', 'ssling'];
Color := 12085388;
Tol := 17;
Hue := 1.29;
Sat := 0.99; //messed up for now
LvlReq := 5;
Max := 0;
Min := 0;
IXP := 13;
end;

with Objects[objVine] do
begin
ObjID := objVine;
Name := 'Vine';
UpText := ['Siphon Vine', 'phon V', 'hon v'];
Color := 1200463;
Tol := 18;
Hue := 0.28;
Sat := 1.75;
LvlReq := 17;
Max := 900;
Min := 60;
IXP := 36;
end;

with Objects[objBodyHound] do
begin
ObjID := objBodyHound;
Name := 'Body esshound';
UpText := ['Siphon Body', 'on Bod', 'Body', 'ody ess', 'ody esshound', 'Siphon Body esshound'];
Color := 14448236;
Tol := 24;
Hue := 0.06;
Sat := 1.43;
LvlReq := 20;
Min := 250;
Max := 700;
IXP := 24;
end;

with Objects[objAirEss] do
begin
ObjID := objAirEss;
Name := 'Air essling';
UpText := ['ir ess', 'iphon Air', 'Siphon Air essling'];
Color := 15187588;
Tol := 20;
Hue := 0.05;
Sat := 2.04;
LvlReq := 1;
Max := 250;
Min := 50;
IXP := 10;
end;

with Objects[objWaterPool] do
begin
ObjID := objWaterPool;
Name := 'Water Pool';
UpText := ['ter poo', 'iphon Wat', 'Siphon Water pool', 'ater pool'];
Color := 15187588;
Tol := 20;
Hue := 0.05;
Sat := 2.04;
LvlReq := 5;
Max := 250;
Min := 50;
IXP := 11;
end;

with Objects[objFleshyGrowth] do
begin
ObjID := objFleshyGrowth;
Name := 'Fleshy Growth';
UpText := ['eshy grow', 'iphon Fle', 'Siphon Fleshy growth', 'shy gro'];
Color := 4082573;
Tol := 11;
Hue := 0.07;
Sat := 0.49;
LvlReq := 20;
Max := 250;
Min := 50;
IXP := 47;
end;

with Objects[objFireStorm] do
begin
ObjID := objFireStorm;
Name := 'Fire Storm';
UpText := ['ire sto', 'iphon Fir', 'Siphon Fire storm', 'ire sto'];
Color := 2571174;
Tol := 3;
Hue := 0.19;
Sat := 4.75;
LvlReq := 27;
Max := 250;
Min := 50;
IXP := 42;
end;

with Objects[objEarthEss] do
begin
ObjID := objEarthEss;
Name := 'Earth essling';
UpText := ['rth ess', 'iphon Ear', 'Siphon Earth essling', 'arth essl'];
Color := 4744582;
Tol := 15;
Hue := 0.04;
Sat := 0.32;
LvlReq := 1;
Max := 250;
Min := 50;
IXP := 15;
end;

with Objects[objRockFrag] do
begin
ObjID := objRockFrag;
Name := 'Rock Fragment';
UpText := ['Siphon Rock', 'on Roc', 'Rock', 'Fragment'];
Color := 3434345;
Tol := 13;
Hue := 0.41;
Sat := 0.46;
LvlReq := 9;
Min := 60;
Max := 900;
IXP := 29;
end;

with Objects[objFireball] do
begin
ObjID := objFireball;
Name := 'Fireball';
UpText := ['Siphon Fireball', 'on Fire', 'reball', 'fireball'];
Color := 1924282;
Tol := 12;
Hue := 0.36;
Sat := 1.10;
LvlReq := 14;
Min := 60;
Max := 900;
IXP := 35;
end;

with Objects[objMindEssling] do
begin
ObjID := objMindEssling;
Name := 'Mind Essling';
UpText := ['Mind Essling', 'ind', 'nd essl', 'ssling'];
Color := 7905200;
Tol := 17;
Hue := 0.21;
Sat := 0.40;
LvlReq := 1;
Max := 150;
Min := 2;
IXP := 30;
end;

with Objects[objCyclone] do
begin
ObjID := objCyclone;
Name := 'Cyclone';
UpText := ['Siphon Cyclone', 'clone', 'yclone', 'cyclone'];
Color := 2698292;
Tol := 6;
Hue := 0.51;
Sat := 1.10;
LvlReq := 1;
Min := 80;
Max := 900;
IXP := 19;
end;

DebugThis('-[DEBUG]- Objects are setup');
end;

function GetObject(vObj : Integer) : TObj;
begin
Result := Objects[vObj];
end;

function GetObjectByXP(xp : Integer) : TObj;
var
i : Integer;
begin
for i := 0 to High(Objects) do
if(Objects[i].IXP = xp)then
Result := Objects[i];
end;

procedure AddObject(var objArr : TObjectArray; ObjID : Integer);
begin
SetLength(objArr, Length(objArr) + 1);
objArr[High(objArr)] := GetObject(ObjID);
end;

procedure FilterObjects();
var
tmpObjects : TObjectArray;
i : Integer;
begin
if(not(Players[CurrentPlayer].Booleans[0]))then
Exit;

DebugThis('-[DEBUG]- Filtering Objects');
for i := 0 to High(Objects) do
if(InIntArray(Players[CurrentPlayer].Integers, Objects[i].ObjID))then
AddObject(tmpObjects, Objects[i].ObjID);

SetLength(Objects, High(tmpObjects));
Objects := tmpObjects;
DebugThis('-[DEBUG]- Objects are filtered');
end;

procedure SortObjects();
var
tmpObjects : TObjectArray;
TIA : TIntegerArray;
i : Integer;
begin
DebugThis('-[DEBUG]- Sorting Objects');
SetLength(TIA, Length(Objects));

for i := 0 to High(Objects) do
TIA[i] := Objects[i].IXP;

Quicksort(TIA);
InvertTIA(TIA);

SetLength(tmpObjects, Length(Objects));

for i := 0 to High(TIA) do
tmpObjects[i] := GetObjectByXP(TIA[i]);

Objects := tmpObjects;
DebugThis('-[DEBUG]- Objects are sorted');
end;

procedure SetFalse(reason : string; logOutPlayer : Boolean);
begin
WriteLn('** SetFalse ** Reason := ' + reason);
Players[CurrentPlayer].Active := False;

if(logOutPlayer)then
Logout;

if(HowManyPlayers = 1)then
TerminateScript();
end;

function CheckForRandoms() : Boolean;
var
i : Integer;
begin
DebugThis('-[DEBUG]- Checking for randoms');

if(Players[CurrentPlayer].Booleans[1])then
begin
for i := 0 to High(SRL_Randoms) do
begin
if (SRL_Randoms[i].detect <> nil) and (SRL_Randoms[i].detect()) then
begin
Result := True;
Break;
end;
end;

if(Result)then
SetFalse('Random Detected', True);
end else
FindNormalRandoms();
end;

function K_FindObj(var x, y, vObj : Integer) : Boolean;
var
fObj : TObj;
a, h : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
tmpCTS : Integer;
begin
if(not(LoggedIn))then Exit;
CheckForRandoms();
DebugThis('-[DEBUG]- Starting Object search');

fObj := GetObject(vObj);

tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);

with fObj do
begin
DebugThis('-[DEBUG]- Searching for Object - ' + Name);
SetColorSpeed2Modifiers(Hue, Sat);

FindColorsSpiralTolerance(MSCX, MSCY, TPA, Color, TB.X1, TB.Y1, TB.X2, TB.Y2, Tol);
ATPA := TPAtoATPAEx(TPA, 20, 20);
SortATPASize(ATPA,True);

H := High(ATPA);

for a := 0 to H do
begin
MiddleTPAEx(atpa[a], X, Y);

DebugThis('-[DEBUG]- Length(ATPA[a]) = ' + ToStr(Length(ATPA[a])));

if((Length(atpa[a]) < Min) or (Length(atpa[a]) > Max))then
Continue;

MMouse(X, Y, 5, 5);

DebugThis('-[DEBUG]- GetUpText = ' + GetUpText);

if(WaitUpTextMulti(UpText, RandomRange(350, 450)))then
begin
ClickMouse2(True);

if(DidRedClick)then
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

Wait(RandomRange(600, 700));
If IsMoving Then
Begin
Mouse(249, 177, 2, 2, True);
Wait(RandomRange(300, 400));
Repeat
Wait(100);
Until (Not(Ismoving));
FirstIsland := True;
Exit;
End;
Result := True;
Exit;
end else
begin
Mouse(249, 177, 2, 2, True);
Wait(RandomRange(300, 400));
Repeat
Wait(100);
Until (Not(Ismoving));
FirstIsland := True;
Exit;
end;
end else
if(IsUptextMultiCustom(['Floating ess', 'Float', 'ing ess', 'Floating essence', 'lan vex', 'ead Clan', 'an vexillum', 'Read Clan vexillum']))then
begin
Clickmouse2(False);

if(WaitOptionMulti(UpText, 800))then
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

Result := True;
Exit;
end;
end;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;

Function FindObjectPlatform : Boolean;
var
CTS, I, L : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
DebugThis('-[DEBUG]- Searching for Object platform');
Result := False;

If (TimeFromMark(TI) < 60000) And (Not FirstIsland) Then
Begin
Result:=True;
Exit;
End;

If SafeNub Then
Begin
TB := IntToBox(MSX1, MSY1, MSX2, MSY2);
Result := True;
Exit;
End;

CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);

SetColorSpeed2Modifiers(IslandHue, IslandSat);
FindColorsTolerance(TPA, IslandColor, MSX1, MSY1, MSX2, MSY2, IslandTol);
ATPA := FloodFillTPA(TPA);
SortATPASize(ATPA, True);
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);

If Debug Then
DebugThis('-[DEBUG]- ATPA = ' + ToStr(ATPA));

If Length(TPA) < 1 then
Exit;

L := High(ATPA);
For I := 0 To L do
Begin
TB:= GetTPABounds(ATPA[I]);
If Not (PointInBox(Point(MSCX, MSCY), TB)) then
begin
if I = L then
begin
DebugThis('-[DEBUG]- at high, point is not inside');
exit;
end else
continue;
end else break;
end;

DebugThis('-[DEBUG]- TB = ' + ToStr(TB));
Result := True;

MarkTime(TI);
FirstIsland:=False;
end;

function FindWizard: Boolean;
var
a, h : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
tmpCTS : Integer;
begin
if(not(LoggedIn))then Exit;
CheckForRandoms();
DebugThis('-[DEBUG]- Searching for Wizard');

tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);

SetColorSpeed2Modifiers(0.05, 1.65);

FindColorsSpiralTolerance(MSCX, MSCY, TPA, 5357278, MSX1, MSY1, MSX2, MSY2, 18);
ATPA := TPAtoATPAEx(TPA, 20, 20);
SortATPASize(ATPA,True);

H := High(ATPA);
DebugThis('Wizard');

for a := 0 to H do
begin
MiddleTPAEx(atpa[a], X, Y);

DebugThis(tostr(Length(atpa[a])));

if((Length(atpa[a]) < 100) Or (Length(atpa[a]) > 2000))then
Continue;

MMouse(X, Y, 5, 5);

if(WaitUpTextMulti(['Wizard', 'zard', 'izard'], 750))then
begin
repeat
InvMouse(RandomRange(2, 8), 3);
until(WaitUpTextMulti(['rune', 'une'], RandomRange(1800, 2000)));

ClickMouse2(False);

if(not(WaitOptionMulti(['Use', 'Use ', 'se '],RandomRange(800, 900))))then
Exit;

MMouse(X, Y, 5, 5);

if(WaitUpTextMulti(['Wizard', 'zard', 'izard'], 750))then
begin
ClickMouse2(True);

if(DidRedClick)then
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

Result := True;
MarkTime(TW);
Exit;
end;
end;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;

function FindMayScreen() : Boolean;
var
TPA : TPointArray;
tmpCTS : Integer;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);

SetColorSpeed2Modifiers(0.44, 1.62);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1013212, MSX1, MSY1, MSX2, MSY2, 8);

Result := (Length(TPA) > 1500);

if(Result)then
MouseBox(494, 16, 503, 24, mouse_Left);

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;

procedure AntiBan();
begin
if(not(LoggedIn))then Exit;
CheckForRandoms();
DebugThis('-[DEBUG]- Performing Antiban');

case (Random(1000)) of
0 : RandomRClick;
1 : HoverSkill('random', False);
2 : ExamineInv;
3 : MouseSpeed := (RandomRange(10, 12));
4 : begin HoverSkill('Runecrafting', False); Wait(RandomRange(2000, 4000)); end;
5 : begin PickUpMouse; SleepAndMoveMouse(1500 + Random(500)); end;
6 : begin GameTab(tab_Stats); Wait(1500 + Random(500)); GameTab(tab_Inv); end;
7 .. 100 : Wait(RandomRange(750, 2000));
101: begin BoredHuman; SetAngle(SRL_ANGLE_HIGH); end;
end;
end;

function BreakHandler(BreakIn, BreakFor, randBreakIn, randBreakFor : Integer) : Boolean;
var
h, m, s : Integer;
begin
if not LoggedIn then Exit;

if (HowManyPlayers = 1) then
begin
if (GetTimeRunning < ((w) + (y) + BreakRounds)) then Exit
else
if (GetTimeRunning > ((w) + (y) + BreakRounds)) then
begin
RealBTime := ((x + z) / 60000);
Logout;
MarkTime(CurrentBTime);
repeat
Wait(21000);
ConvertTime((x + z) - TimeFromMark(CurrentBTime), h, m, s);
ClearDebug;
until(TimeFromMark(CurrentBTime) > (x + z));
if SwitchWorlds then
if LoginPlayerToLob then
ChangeWorld(RandomWorld(True, False))
else
LoginPlayer;
Wait(4000);
Result := LoggedIn;
ClickNorth(SRL_ANGLE_HIGH);
IncEx(BreakRounds, (w) + (x));
w := (BreakIn * 60000);
x := (BreakFor * 60000);
y := RandomRange(-Bir * 60000, Bir * 60000);
z := RandomRange(-Bfr * 60000, Bfr * 60000);
end;
end;
end;

procedure Proggy;
begin
ClearDebug();
Stats_Commit;
XP := (GetXPBarTotal - StartXP);
XPH:= Round(((XP) / (GetTimeRunning / 1000)) * 3600);
Writeln('======== F2P Runespan =========');
WriteLn('Version ' + Version);
Writeln('Time Running: ' + TimeRunning);
Writeln('Experience Earned: ' + IntToStr(XP));
Writeln('Experience/Hour: ' + IntToStr(XPH));
WriteLn('Runecrafting Level: ' + IntToStr(RCLvl));
WriteLn('Floor: ' + IntToStr(Floors));
Writeln('=============================================');
MarkTime(TP);
end;

Procedure GetMoreEssence;
var
a, h, t: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
tmpCTS : Integer;
begin
if(not(LoggedIn))then Exit;
CheckForRandoms();
DebugThis('-[DEBUG]- Getting more essence');
MarkTime(T);

repeat
if(not(LoggedIn))then Exit;

if(TimeFromMark(t) > 30000)then
SetFalse('Failed to get more essence.', True);

tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);

SetColorSpeed2Modifiers(0.47, 0.04);

FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4013632, MSX1, MSY1, MSX2, MSY2, 15);
ATPA := TPAtoATPAEx(TPA, 20, 20);
SortATPASize(ATPA,True);

H := High(ATPA);
DebugThis('Rocks');

for a := 0 to H do
begin
MiddleTPAEx(atpa[a], X, Y);

DebugThis('-[DEBUG]- Length(ATPA[a]) = ' + ToStr(Length(ATPA[a])));

if((Length(atpa[a]) < 50) Or (Length(atpa[a]) > 2000))then
Continue;

MMouse(X, Y, 5, 5);

if(WaitUpTextMulti(['Collect', 'llect', 'Float'], 750))then
begin
ClickMouse2(True);

if(DidRedClick)then
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
end else
if(not(IsUptextMultiCustom(['Walk', 'lk here', 'here'])))then
begin
Clickmouse2(False);

if(WaitOptionMulti(['Collect', 'llect', 'Float'], 800))then
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
until FindDTM(EssenceDTM, X, Y, MIX1, MIY1, MIX2, MIY2);
end;

procedure ScriptSetup();
var
Floor1, Floor2, Floor3, X, Y: Integer;
begin
SetupObjects();
Filterobjects;
SortObjects();

SetAngle(SRL_ANGLE_HIGH);
StartXP := GetXPBarTotal;
RCLvl := GetSkillLevel(SKILL_RUNECRAFTING);
Gametab(tab_Inv);

Higher := False;
SafeNub:= False;
FirstIsland := True;

Floor1 := DTMFromString('mbQAAAHicY2VgYLBjZGBwBWIjILYEYi8g/ggUfw7Er4D4LxD/AOKepcwMZemKDJOrnRkMpLkZ/B11GESA4uiYEQsGAwD8Rgr4');
Floor2 := DTMFromString('mbQAAAHicY2VgYMhlZGAoBeIsIE4G4nIgFgSK8wExFxBLQvHWhUcYdrWdYbjQ/pTBwy+AQZRPkEEEKI6OGbFgMAAAtVQKcQ==');
Floor3 := DTMFromString('mbQAAAHicY2VgYFACYlkg1gZiSShdBMTNQFwFxMVAXALEpz58ZehasASMt508w3Dx7n0GEaA4OmbEgsEAAHWJDpY=');

If FindDTM(Floor1, X, Y, 9, 99, 52, 146) Then
Floors := 1 Else
If FindDTM(Floor2, X, Y, 9, 99, 52, 146) Then
Floors := 2 Else
If FindDTM(Floor3, X, Y, 9, 99, 52, 146) Then
Floors := 3 Else
Floors := 0;

If ClickAnywhere Then
Floors := 0;

FreeDTM(Floor1);
FreeDTM(Floor2);
FreeDTM(Floor3);
Case Floors Of
0 : SafeNub := True;
1 : Begin IslandHue := 0.19; IslandSat := 0.71; IslandColor := 3112315; IslandTol := 12; End;
2 : Begin IslandHue := 3.58; IslandSat := 0.43; IslandColor := 8224087; IslandTol := 14; End;
3 : Begin IslandHue := 0.12; IslandSat := 0.73; IslandColor := 9145506; IslandTol := 12; End;
End;
end;

procedure MainLoop();
var
fObj : TObj;
x, y, i, InitialXP, UpdateXP, t: Integer;
Label
Waiting;
begin
repeat
repeat
if not loggedin then loginplayer;
CheckForRandoms();

if(TakeBreaks)then BreakHandler(BreakIn, BreakFor, Bir, Bfr);

if(TimeFromMark(TW) > 600000)then
FindWizard;

if not WaitFindDTMEX(EssenceDTM, EX, EY, MIX1, MIY1, MIX2, MIY2, 100, 2000) then
GetMoreEssence;

if(TimeFromMark(RCt) > (3600000 + RandomRange(-1800000, 1800000)))then
begin
RCLvl := GetSkillLevel(SKILL_RUNECRAFTING);
MarkTime(RCt);
end;

for i := 0 to High(Objects) do
begin
fObj := GetObject(i);

if(RCLvl >= fObj.LvlReq)then
begin
if(FindObjectPlatform)then
if(K_FindObj(x, y, i))then
begin
Waiting:

EssenceCount := ItemAmount('inv', 'dtm', EssenceDTM, []);

if(TimeFromMark(TP) > 60000)then
Proggy;

Wait(RandomRange(500, 750));
InitialXP := GetXPBarTotal;
CurrentXP := fObj.IXP;

MarkTime(T);
repeat
Wait(RandomRange(2000,2500));
CheckForRandoms();

if(TimeFromMark(T) > RandomRange(7000, 7200))then
Break;

AntiBan;
for i := 0 to High(Objects) do
begin
fObj := GetObject(i);

if(RCLvl >= fObj.LvlReq) And (CurrentXP < fObj.IXP)then
if(FindObjectPlatform)then
if(K_FindObj(x, y, i))then
begin
Higher := True;
Break;
end;
end;

if(Higher)then
Break;

UpdateXP := GetXPBarTotal;

if(UpdateXP > InitialXP)then
begin
InitialXP := GetXPBarTotal;
T := 0;
MarkTime(T);
end;

If EssenceCount<ItemAmount('inv', 'dtm', EssenceDTM, []) Then
Begin
Wait(RandomRange(2000,2500));
Break;
End;
until(False);

if(Higher)then
begin
Higher := False;
Goto Waiting;
end;
end;
end;
end;

CheckForRandoms();
until(not(LoggedIn));

if(Players[CurrentPlayer].Active)then
SetFalse('Not Logged in', False);

NextPlayer(Players[CurrentPlayer].Active);
ScriptSetup();
FindMayScreen();
MainLoop();
until(AllPlayersInactive);
end;

begin
Smart_Server := 10;
Smart_Members := True;
Smart_Signed := True;

SetupSRL();
SetupSRLStats(1036, SRLStats_Username, SRLStats_Password);

{* Initial Break Settings *}
w := (BreakIn * 60000);
x := (BreakFor * 60000);
y := RandomRange(-Bir * 60000, Bir * 60000);
z := RandomRange(-Bfr * 60000, Bfr * 60000);

ActivateClient();
DeclarePlayers();
LoginPlayer();

while(not(RSReady()))do
Wait(9000);

FindMayScreen();

AddOnTerminate('Fr33DTM');
SetDtm;

MarkTime(TP);
MarkTime(RCt);

_SetRandoms();
ScriptSetup();

if(not(WaitFindDTMEX(EssenceDTM, EX, EY, MIX1, MIY1, MIX2, MIY2, 100, 2000)))then
GetMoreEssence;

MainLoop;
end.

Rich

2012-05-17 07:15:03

Did Kyle give you permission to use his script?

stuartroad

2012-05-17 07:39:59

From: Rich
Did Kyle give you permission to use his script?


Wow he is actually trying to help people out and you still go at him. At least he is doing something other than leeching.

Marc000z

2012-05-17 12:50:00

He didn't, but I pressumed that by giving him almost all the credit, he wouldn't mind. I'll get in contact with him though. :)

Rich

2012-05-17 12:54:35

From: stuartroad
Wow he is actually trying to help people out and you still go at him. At least he is doing something other than leeching.

1) I wasn't "going at him". It was simply a question.

2) You're right, Marc000z is doing something other than leeching and I respect him for that. However, he would still need Kyle's permission to post this since it's 99% his work.

Marc000z

2012-05-17 15:52:14

Alright, I've gotten Kyle's approval! :)

(It's in the 1st post.)

BigRedJapan

2012-05-22 04:14:52

From: Rich
1) I wasn't "going at him". It was simply a question.

2) You're right, Marc000z is doing something other than leeching and I respect him for that. However, he would still need Kyle's permission to post this since it's 99% his work.


Let me correct you Not 99% of this is kyles work! Many People such as my self worked on this script in its beginning stages! This is a community script!

Rich

2012-05-22 05:24:18

From: Rules of Joe
Let me correct you Not 99% of this is kyles work! Many People such as my self worked on this script in its beginning stages! This is a community script!
First post:
99% of the credit goes to him for the base of the script