Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program KylesEsswraithExtractor;
- {$DEFINE SMART}
- {$i srl/srl.simba}
- {$I SRL/SRL/Misc/Debug.Simba}
- const
- {* Don't touch *}
- Version = '1.6';
- {* 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 = 500; // 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 *}
- Floors = 3; // Which Floor are you on? 1,2,3? This is to make it only search on your island
- // If it starts to bug out, set it to 0
- Debug = False; // 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: Integer;
- Objects : TObjectArray;
- IslandHue, IslandSat : Extended;
- Higher, SafeNub : 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 := 'username'; // Your RuneScape Account Name
- Pass := 'password'; // 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
- // This is for searching for specific Objects, add / remove as needed. Order doesn't matter
- Integers := [objUndeadSoul, objLivingSoul, objSoulWraith, objBloodySkulls
- , objBloodPool, objBloodWraith, objSkulls, objDeathWraith
- , objJumper, objShifter, objNebula];
- 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
- SetLength(Objects, 29);
- with Objects[objBloodWraith] do
- begin
- ObjID := objBloodWraith;
- Name := 'Blood esswraith';
- UpText := ['lood ess', 'ood essw', 'Siphon Blood esswraith'];
- Color := 6263962;
- Tol := 15;
- Hue := 0.12;
- Sat := 0.72;
- LvlReq := 77;
- Max := 250;
- Min := 50;
- IXP := 77;
- end;
- with Objects[objDeathWraith] do
- begin
- ObjID := objDeathWraith;
- Name := 'Death esswraith';
- UpText := ['eath ess', 'iphon De', 'ath essw', 'Siphon Death esswraith'];
- Color := 5278586;
- Tol := 26;
- Hue := 0.04;
- Sat := 0.58;
- LvlReq := 65;
- Min := 0;
- Max := 1000;
- IXP := 60;
- end;
- with Objects[objSoulWraith] do
- begin
- ObjID := objSoulWraith;
- Name := 'Soul esswraith';
- UpText := ['oul ess', 'iphon So', 'oul essw', 'Siphon Soul esswraith'];
- Color := 6251056;
- Tol := 24;
- Hue := 0.25;
- Sat := 1.01;
- LvlReq := 90;
- Min := 0;
- Max := 1000;
- IXP := 108;
- end;
- with Objects[objLivingSoul] do
- begin
- ObjID := objLivingSoul;
- Name := 'Living Soul';
- UpText := ['Siphon Living', 'on Liv', 'iving', 'oul'];
- Color := 12867973;
- Tol := 9;
- Hue := 0.51;
- Sat := 0.99;
- LvlReq := 90;
- Min := 0;
- Max := 1000;
- IXP := 213;
- end;
- with Objects[objJumper] do
- begin
- ObjID := objJumper;
- Name := 'Jumper';
- UpText := ['Siphon Jumper', 'on Jum', 'Jumper', 'mper'];
- Color := 16624975;
- Tol := 7;
- Hue := 0.02;
- Sat := 1.70;
- LvlReq := 54;
- Min := 10;
- Max := 50;
- IXP := 107;
- end;
- with Objects[objBloodPool] do
- begin
- ObjID := objBloodPool;
- Name := 'Blood Pool';
- UpText := ['Siphon Blood Pool', 'on blo', 'blood', 'od poo'];
- Color := 1252488;
- Tol := 10;
- Hue := 0.02;
- Sat := 1.70;
- LvlReq := 77;
- Min := 80;
- Max := 250;
- IXP := 146;
- end;
- with Objects[objNebula] do
- begin
- ObjID := objNebula;
- Name := 'Nebula';
- UpText := ['Siphon Nebula', 'on Neb', 'Nebula', 'bula'];
- Color := 8988293;
- Tol := 6;
- Hue := 1.15;
- Sat := 3.71;
- LvlReq := 40;
- Min := 55;
- Max := 1000;
- IXP := 85;
- end;
- with Objects[objSkulls] do
- begin
- ObjID := objSkulls;
- Name := 'Skulls';
- UpText := ['Siphon Skulls', 'on Sku', 'Skulls', 'ulls'];
- Color := 9748431;
- Tol := 7;
- Hue := 0.02;
- Sat := 1.70;
- LvlReq := 65;
- Min := 3;
- Max := 1000;
- IXP := 120;
- end;
- with Objects[objUndeadSoul] do
- begin
- ObjID := objUndeadSoul;
- Name := 'Undead Soul';
- UpText := ['ndead', 'oul', 'ndead So', 'd Soul'];
- Color := 10979231;
- Tol := 4;
- Hue := 0.48;
- Sat := 0.61;
- LvlReq := 95;
- Min := 0;
- Max := 1000;
- IXP := 255;
- end;
- with Objects[objBloodySkulls] do
- begin
- ObjID := objBloodySkulls;
- Name := 'Bloody Skulls';
- UpText := ['Bloody', 'skulls', 'oody', 'kulls'];
- Color := 396358;
- Tol := 2;
- Hue := 0.15;
- Sat := 1.52;
- LvlReq := 83;
- Min := 5;
- Max := 1000;
- IXP := 176;
- end;
- with Objects[objShifter] do
- begin
- ObjID := objShifter;
- Name := 'Shifter';
- UpText := ['Siphon Shifter', 'on Shi', 'Shifter', 'ifter'];
- Color := 1830421;
- Tol := 7;
- Hue := 0.02;
- Sat := 1.70;
- LvlReq := 54;
- Max := 900;
- Min := 400;
- IXP := 87;
- end;
- 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[objCCloud] do
- begin
- ObjID := objCCloud;
- Name := 'Chaotic Cloud';
- UpText := ['Siphon Chaotic', 'on Chaotic', 'Chaotic', 'haotic Cloud'];
- Color := 2167590;
- Tol := 4;
- Hue := 2.03;
- Sat := 2.57;
- LvlReq := 35;
- Min := 20;
- Max := 1000;
- IXP := 62;
- end;
- with Objects[objCosmicHound] do
- begin
- ObjID := objCosmicHound;
- Name := 'Cosmic Esshound';
- UpText := ['osmic', 'osmic essh', 'Cosmic', 'Siphon Cosmic', 'ic esshound', 'Siphon Cosmic esshound'];
- Color := 14448236;
- Tol := 24;
- Hue := 0.06;
- Sat := 1.43;
- LvlReq := 27;
- Min := 250;
- Max := 700;
- IXP := 27;
- end;
- with Objects[objChaosHound] do
- begin
- ObjID := objChaosHound;
- Name := 'Chaos Esshound';
- UpText := ['haos', 'haos essh', 'Chaos', 'Siphon Chaos', 'os esshound', 'Siphon Chaos esshound'];
- Color := 14448236;
- Tol := 24;
- Hue := 0.06;
- Sat := 1.43;
- LvlReq := 35;
- Min := 250;
- Max := 700;
- IXP := 31;
- end;
- with Objects[objAstralHound] do
- begin
- ObjID := objAstralHound;
- Name := 'Astral Esshound';
- UpText := ['stral', 'stral ess', 'Astral', 'Siphon Astral', 'ral esshound', 'Siphon Astral esshound'];
- Color := 14448236;
- Tol := 24;
- Hue := 0.06;
- Sat := 1.43;
- LvlReq := 40;
- Min := 250;
- Max := 700;
- IXP := 36;
- end;
- with Objects[objNatureHound] do
- begin
- ObjID := objNatureHound;
- Name := 'Nature Esshound';
- UpText := ['ature', 'ature ess', 'Nature', 'Siphon Nature', 'ture esshound', 'Siphon Nature esshound'];
- Color := 14448236;
- Tol := 24;
- Hue := 0.06;
- Sat := 1.43;
- LvlReq := 44;
- Min := 250;
- Max := 700;
- IXP := 44;
- end;
- with Objects[objLawHound] do
- begin
- ObjID := objLawHound;
- Name := 'Law esshound';
- UpText := ['Siphon Law', 'on Law', 'Law', 'aw ess', 'aw esshound', 'Siphon Law esshound'];
- Color := 14448236;
- Tol := 24;
- Hue := 0.06;
- Sat := 1.43;
- LvlReq := 54;
- Min := 250;
- Max := 700;
- IXP := 54;
- 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;
- 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;
- 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;
- end;
- procedure SortObjects();
- var
- tmpObjects : TObjectArray;
- TIA : TIntegerArray;
- i : Integer;
- begin
- 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;
- end;
- procedure SetFalse(reason : string);
- begin
- WriteLn(reason);
- Players[CurrentPlayer].Active := False;
- 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;
- FindNormalRandoms;
- fObj := GetObject(vObj);
- tmpCTS := GetColorToleranceSpeed;
- ColorToleranceSpeed(2);
- with fObj do
- begin
- 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);
- DebugThis(Name);
- for a := 0 to H do
- begin
- MiddleTPAEx(atpa[a], X, Y);
- DebugThis(tostr(Length(atpa[a])));
- if((Length(atpa[a]) < Min) or (Length(atpa[a]) > Max))then
- Continue;
- MMouse(X, Y, 5, 5);
- if(WaitUpTextMulti(UpText, RandomRange(350,450)))then
- begin
- ClickMouse2(True);
- if(DidRedClick)then
- begin
- ColorToleranceSpeed(tmpCTS);
- SetColorSpeed2Modifiers(0.2, 0.2);
- Result := True;
- Exit;
- end;
- end else
- if(IsUptextMultiCustom(['esswraith', 'wraith', 'raith', '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
- Result := False;
- 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
- DebugATPABounds(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('at high, point is not inside');
- exit;
- end else
- continue;
- end else break;
- end;
- DebugThis(tostr(TB));
- Result := True;
- end;
- function FindWizard: Boolean;
- var
- a, h : Integer;
- TPA : TPointArray;
- ATPA : T2DPointArray;
- tmpCTS : Integer;
- begin
- if(not(LoggedIn))then Exit;
- FindNormalRandoms;
- 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;
- procedure AntiBan();
- begin
- if(not(LoggedIn))then Exit;
- FindNormalRandoms;
- 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('======== Kyle''s Esswraith Extractor =========');
- WriteLn('You are using Version ' + Version);
- Writeln('Time Running: ' + TimeRunning);
- Writeln('Experience Earned: ' + IntToStr(XP));
- Writeln('Experience/Hour: ' + IntToStr(XPH));
- Writeln('=============================================');
- MarkTime(TP);
- end;
- Procedure GetMoreEssence;
- var
- a, h, t: Integer;
- TPA : TPointArray;
- ATPA : T2DPointArray;
- tmpCTS : Integer;
- begin
- if(not(LoggedIn))then Exit;
- FindNormalRandoms;
- MarkTime(T);
- repeat
- if(not(LoggedIn))then Exit;
- if(TimeFromMark(t) > 30000)then
- SetFalse('Failed to get more essence.');
- 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(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();
- begin
- SetupObjects();
- FilterObjects();
- SortObjects();
- SetAngle(SRL_ANGLE_HIGH);
- StartXP := GetXPBarTotal;
- RCLvl := GetSkillLevel(SKILL_RUNECRAFTING);
- Gametab(tab_Inv);
- Higher := False;
- SafeNub:= False;
- 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;
- FindNormalRandoms;
- 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:
- if(TimeFromMark(TP) > 60000)then
- Proggy;
- Wait(RandomRange(500, 750));
- InitialXP := GetXPBarTotal;
- CurrentXP := fObj.IXP;
- MarkTime(T);
- repeat
- Wait(100);
- if(FindNormalRandoms)then
- begin
- if(not(LoggedIn))then
- SetFalse('Not Logged in');
- SetAngle(SRL_ANGLE_HIGH);
- MakeCompass('N');
- end;
- 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;
- until(False);
- if(Higher)then
- begin
- Higher := False;
- Goto Waiting;
- end;
- end;
- end;
- end;
- if(FindNormalRandoms)then
- begin
- if(not(LoggedIn))then
- SetFalse('Not Logged in');
- SetAngle(SRL_ANGLE_HIGH);
- MakeCompass('N');
- end;
- until(not(LoggedIn));
- if(Players[CurrentPlayer].Active)then
- SetFalse('Not Logged in');
- NextPlayer(Players[CurrentPlayer].Active);
- ScriptSetup();
- 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);
- AddOnTerminate('Fr33DTM');
- SetDtm;
- MarkTime(TP);
- MarkTime(RCt);
- ScriptSetup();
- if(not(WaitFindDTMEX(EssenceDTM, EX, EY, MIX1, MIY1, MIX2, MIY2, 100, 2000)))then
- GetMoreEssence;
- MainLoop;
- end
Advertisement
Add Comment
Please, Sign In to add comment