SRL Archive - RS3 Outdated / Broken Scripts

RISK's Range Guilder


RISK

2012-02-24 16:08:36

RISK's Range Guilder
Version: 1.0.4
Last updated: 2/26/2012


Intro:
This is my take on a range guilding script. I originally had one planned to be released much earlier but I 'Lost' the passion I have for scripting. But I have recently found it again. So I decided to start the script up again and finish it. After a few days of testing and creating the script, here it is.

Please keep in mind that pre-nuke, this area was a 'Ban spot'. Even though there is a person every one out of five worlds now, you should still be careful.

I have also not added a break system yet. But it is planned for future releases. This does about 90 competitions an hour, so you can do the math and set the competitions to do in DeclarePlayers as you desire.
There is also no multiplayer support yet, so please also keep that in mind!

If you have any errors to report, you can post them here or PM them to me.

I hope you all enjoy using my script and get many levels with it!

Special thanks to:
Flight,
Kyle Undefined


Download:
View the bottom of the post or just copy and paste the following code in to your Simba and save.
(*
R_RangeGuilder
ver 1.0.4
Created by RISK
*)
program R_RangeGuilder;
{$i SRL/SRL/MISC/SMART.simba}
{$i SRL/SRL.simba}
{$i SRL/SRL/MISC/PAINTSMART.simba}
{$i SRL/SRL/MISC/DEBUG.simba}
{$i SPS/SPS.simba}

var
breakRounds, totalBreaks, competitionsDone, startingTickets,
expLastReport, comInc, compsLastReport, compsDone, startTickets,
curTickets, gained, expGained, expThisReport, comExp, comComps,
compsThisReport: Integer;

const
WORLD = 40; // What world do you wish to auto on? 0 = random

STATS_USER = ''; // What is your SRL stats username? Leave blank if you have none
STATS_PASS = ''; // What is your SRL stats password? Leave blank if you have none

ENABLE_BREAKS = True; // Do you want to enable taking breaks?
(* Ignore these settings if you aren't taking breaks *)
BREAK_IN = 35; // Break in how many minutes?
BREAK_FOR = 10; // Break for how many minutes?
RAND_IN = 5; // How many minutes in randomness on BREAK_IN?
RAND_FOR = 5; // How many minutes in randomness on BREAK_FOR?
(* *)

AUTO_RETALIATE = True; // True = On, False = Off
ENABLE_MOUSE_PAINT = True; // Do you want to have a paint trail behind the mouse?
ENABLE_DEBUG_MODE = False; // Do you want to enable debugging?
// This will disable debug clearing when making a progress report

(* Do not edit this segment *)
MIN_CLICK_WAIT = 0;
MAX_CLICK_WAIT = 1;
MIN_TARGET_WAIT = 2;
MAX_TARGET_WAIT = 3;
HOW_MANY_COMPS = 4;
CHECK_FOR_ARROWS = 0;
SCRIPT_VERSION = '1.0.4';
(* *)

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

with Players[0] do
begin
Name := ''; // What is your character's username?
Pass := ''; // What is your character's password?

LampSkill := SKILL_RANGE;
BoxRewards := ['xp', 'exp', 'emote', 'clothes', 'charms'];

Integers[HOW_MANY_COMPS] := 500; // How many competitions do you wish to do?
Booleans[CHECK_FOR_ARROWS] := False; // Disable this if you want to use your
// own arrows. Remember they must be bronze!

(* These settings are best to leave default, but you can edit them if you desire *)
// If you are experiencing a lot of misclicks, you can raise 'MIN_TARGET_WAIT'
// and 'MAX_TARGET_WAIT' to be customized to your lag and computer
// The same goes for MIN_CLICK_WAIT and MAX_CLICK_WAIT.
Integers[MIN_CLICK_WAIT] := 85;
Integers[MAX_CLICK_WAIT] := 125;
Integers[MIN_TARGET_WAIT] := 800;
Integers[MAX_TARGET_WAIT] := 1200;

(* Each of these settings I have adjusted to work well, in what I think, will be
good for everyone's purposes. But everyone has different computers and desire,
so if you truly wish to make the script faster in clicking and wait times or slower,
then you can modify the settings. Here is a short little 'Tutorial' on each
setting:

Remember, each of these options are in milliseconds. So 1000 is one second
and so on.

MIN_CLICK_WAIT = Minimum amount of time to wait before it clicks the target
again.

MAX_CLICK_WAIT = Maximum amount of time to wait before it clicks the target
again.

MIN_TARGET_WAIT = The minimum amount of time that the target screen is up before
it attempts to close it. This is to make sure it closes the target screen if it's
open for too long.

MAX_TARGET_WAIT = The maximum amount of time that the target screen is up before
it attempts to close it. This is to make sure it closes the target screen if it's
open for too long.
(* *)

Active := True;
end;
end;

(*


You do not need to and should not edit beyond this point.


*)

procedure Write(T: string);
begin
WriteLn(TheTime + ': ' + T);
end;

(*
BenLand's function, modified by Flight(?) to have a paint trail, re-modified
by RISK to disable the paint option completely if the user is not using SMART
*)
procedure WindMouse2(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
var
veloX, veloY, windX, windY, veloMag, dist, randomDist, lastDist, step: extended;
lastX, lastY: integer;
sqrt2, sqrt3, sqrt5: extended;
begin
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
while hypot(xs - xe, ys - ye) > 1 do
begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
if (maxStep < 3) then
begin
maxStep:= random(3) + 3.0;
end else
begin
maxStep:= maxStep / sqrt5;
end;
end;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;
if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));
step:= hypot(xs - lastX, ys - lastY);
wait(round((maxWait - minWait) * (step / maxStep) + minWait));
lastdist:= dist;

{$IFDEF SMART}
if (ENABLE_MOUSE_PAINT) then
SMART_DrawDotsEx(False, [Point(lastX, lastY)], clWhite);
{$ENDIF}

end;
if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));

end;

(*
Credits to Flight
*)
procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
SMART_ClearCanvas;
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;

randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
WindMouse2(X, Y, X2, Y2, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
end;

procedure SetCTS(Hue, Saturation: Extended);
begin
SetColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Hue, Saturation);
end;

procedure RevertCTS();
begin
SetColorSpeed2Modifiers(0.2, 0.2);
SetColorToleranceSpeed(1);
end;

procedure ExitPlayer(Message: string);
begin
Write(Message);
Players[CurrentPlayer].Active := False;
Logout;
end;

procedure RClickMM;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

// Mouses to the minimap and right clicks
MouseBox(MMX1, MMY1, MMX2, MMY2, MOUSE_RIGHT);
Wait(RandomRange(300, 400));
MouseBox(MSX1, MSY1, MSX2, MSY2, MOUSE_MOVE);
end;

procedure RClickChat;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

if (FindNPCChatText('.', Nothing)) then
Exit;

// Moves the mouse to the chat and right clicks
MouseBox(MCX1, MCY1, MCX2, MCY2, MOUSE_RIGHT);
Wait(RandomRange(200, 300)); // A random wait
MouseBox(MSX1, MSY1, MSX2, MSY2, MOUSE_MOVE);
end;

procedure RandomSpacebar;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

if (FindNPCChatText('.', Nothing)) then
Exit;

// Presses the spacebar
KeyDown(1);
Wait(RandomRange(75, 100));
KeyUp(1);

// Waits before backspacing
Wait(RandomRange(750, 1150));

// Backspaces to remove the space we have just typed
KeyDown(1);
Wait(RandomRange(300, 400));
KeyUp(1);
end;

(*
Credits to Kyle Undefined
*)
function RandomRangeEx(rFrom, rTo : Variant) : Variant;
var
r : Variant;
begin
r := RandomRange(Floor(rFrom), Ceil(rTo));
r := r + RandomE;

repeat
begin
if r <= rFrom then
r := r + RandomE
else if r >= rTo then
r := r - RandomE;
end;
until ((r >= rFrom) and (r <= rTo))

r := (Trunc(r * 100) / 100.00)

Result := r;
end;

// 33.0 ~ 46.7
procedure FixCompass();
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

MakeCompass(RandomRangeEx(33.0, 46.7));
end;

procedure AntiBan();
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

case (Random(375)) of
0 : RandomRClick;
1 :
begin
BoredHuman;
SetAngle(SRL_ANGLE_LOW);
end;
2 : ExamineInv;
3 :
begin
HoverSkill('Ranged', False);
Wait(RandomRange(4000, 7000)); // Random wait to 'View' the skill information
end;
4 : RClickChat;
5 : RClickMM;
6 .. 13 : RandomSpaceBar;
14 .. 39 : Wait(RandomRange(1000, 8000));
39 .. 70 : MouseSpeed := (RandomRange(10, 14));
end;
end;

function GetATPA(Col, Tol, W, H: Integer; Hue, Sat: Extended): T2DPointArray;
var
X, Y: Integer;
TPA: TPointArray;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

SetCTS(Hue, Sat);
FindColorsSpiralTolerance(X, Y, TPA, Col, MSX1, MSY1, MSX2, MSY2, Tol);
RevertCTS;

Result := (SplitTPAEx(TPA, W, H));
end;

// Updated 2/26/2012 - Added a maximum pixel limit along side the already in
// place minimum pixel limit to help with mousing over the judge instead of the
// guards
function R_MouseTPA(Text: string; Col, Tol, W, H: Integer; Hue, Sat: Extended): Boolean;
var
R, I, T, maxT, TT, maxTT: Integer;
P: TPoint;
ATPA: T2DPointArray;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

I := 0;
T := 0;
TT := 0;
maxT := (RandomRange(15000, 25000));
maxTT := (RandomRange(6500, 7500));
Result := False;

repeat
MarkTime(T);

repeat
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

if (TimeFromMark(T) >= maxT) then
begin
Result := False;
Exit;
end;

ATPA := (GetATPA(Col, Tol, W, H, Hue, Sat));
if (Length(ATPA) > 0) then
Break;

Write('Object was not detected. Waiting.');
AntiBan;
Wait(RandomRange(500, 1500));
until(False);

MarkTime(TT);

// What to do if the length of ATPA is greater than 0
SortATPAFromFirstPoint(ATPA, Point(MSCX, MSCY));
if (ENABLE_DEBUG_MODE) then
DebugATPABounds(ATPA);
for I := 0 to High(ATPA) do
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

if ((Length(ATPA[I]) < 15) and (Length(ATPA[I]) > 40)) then
Continue;

P := (MiddleTPA(ATPA[I]));
HumanMMouse(P.X, P.Y, 5, 5);
Result := (WaitUpText(Text, RandomRange(750, 1500)));

if (Result) then
Break;

if (TimeFromMark(TT) >= maxTT) then
begin
Write('Max time passed. Let''s wait and try to find the object again.');
AntiBan;
Wait(RandomRange(500, 1500));
Break;
end;

Wait(RandomRange(450, 750));
end;

Inc(R);
until((Result) or (R >= (RandomRange(4, 6))) or (not(LoggedIn)));
end;

// Non CTS 2 version of R_MouseTPA
function R_MouseObj(Text: string; Col, Tol, W, H: Integer): Boolean;
var
X, Y, I, T, maxT: Integer;
P: TPoint;
TPA: TPointArray;
ATPA: T2DPointArray;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

I := 0;
T := 0;
maxT := (RandomRange(15000, 25000));

MarkTime(T);

repeat
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

if (TimeFromMark(T) >= maxT) then
begin
Write('We were unable to find the object.');
Result := False;
Exit;
end;

FindColorsSpiralTolerance(X, Y, TPA, Col, MSX1, MSY1, MSX2, MSY2, Tol);
if (Length(TPA) > 0) then
Break;

Write('The object is not on the screen. Waiting.');
AntiBan;
Wait(RandomRange(500, 1500));
until(False);

// What to do if the length of TPA is greater than 0
ATPA := (TPAToATPAEx(TPA, W, H));
SortATPAFromFirstPoint(ATPA, Point(MSCX, MSCY));
if (ENABLE_DEBUG_MODE) then
DebugATPABounds(ATPA);
for I := 0 to High(ATPA) do
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

P := (MiddleTPA(ATPA[I]));
HumanMMouse(P.X, P.Y, 5, 5);
Result := (WaitUpText(Text, RandomRange(850, 1500)));

if (Result) then
Break;

AntiBan;
Wait(RandomRange(250, 500));
end;

if (not(Result)) then
Write('We were unable to mouse the object.');
end;

// Point(2525, 2945), Point(2520, 2979)
// Updated 2/26/2012 thanks to Nebula's tip.
procedure SPS_FixPosition;
var
Path: TPointArray;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

Path := [Point(2525, 2945), Point(2520, 2979)];

if (SPS_WalkPath(Path)) then
begin
FixCompass;
SetAngle(SRL_ANGLE_LOW);
end else
ExitPlayer('SPS repositioning failed. Logging out.');
end;

// Created as the main method of fixing our position instead of SPS
procedure DTM_FixPosition;
var
X, Y, DTM, T, maxT: Integer;
E: Extended;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

T := 0;
maxT := (RandomRange(3000, 5000));

DTM := DTMFromString('mggAAAHicY2NgYLAAYi8gFgdiHgYIAPHVgVgAiLWgYiJALAXE1TU6DAnV2gypiaoM2SGODB1VgQx5fYYM/EA5bJgJiBmxYAgAAG0ICHo=');
MarkTime(T);
repeat
if (not(LoggedIn)) then
Exit;
FindNormalRandoms;

if (TimeFromMark(T) >= maxT) then
begin
Write('DTM repositioning failed. Let''s try SPS.');
FreeDTM(DTM);
SPS_FixPosition;
end;

Wait(RandomRange(75, 200));
until(FindDTMRotated(DTM, X, Y, MMX1, MMY1, MMX2, MMY2, - Pi / 4, Pi / 4, Pi / 60, E));

FreeDTM(DTM);

HumanMMouse(X, Y, 5, 5);
ClickMouse2(MOUSE_LEFT);
FFlag(5);
FixCompass;
end;

// Fixes the chats so that we can detect if we have a new competition or not
procedure FixChats;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

SetAllChats('All', 'Off', 'Off', 'Off', 'Off', 'Off', '');
end;

procedure HandleNoArrows;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

if (not(FindNPCChatText('standard', Nothing))) then
Exit;

ExitPlayer('We have run out of arrows to use.');
Exit;
end;

function TargetScreen(): Boolean;
begin
Result := (CountColorTolerance(4500223, MSX1, MSY1, MSX2, MSY2, 10) > 100);
end;

procedure CloseTargetScreen();
var
X, Y, DTM, I, T, maxT: Integer;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

if (not(TargetScreen)) then
Exit;

T := 0;
maxT := (RandomRange(150000, 250000));
DTM := DTMFromString('mbQAAAHicY2VgYHjKyMDwFojvQ+l7QKwJFDeEYmUoVpQRZeDk5IRj' +
'A01FBi6gODpmxILBAAA7xwas');

MarkTime(T);

while (TargetScreen) do
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

if (TimeFromMark(T) >= maxT) then
begin
FreeDTM(DTM);
ExitPlayer('We were unable to close the target screen.');
Exit;
end;

if (FindDTM(DTM, X, Y, MSX1, MSY1, MSX2, MSY2)) then
begin
HumanMMouse(X, Y, 3, 3);
if (not(WaitUpText('Close', RandomRange(500, 800)))) then
begin
FreeDTM(DTM);
Exit;
end;

ClickMouse2(MOUSE_LEFT);
for I := 0 to 5 do
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

if (not(TargetScreen)) then
begin
FreeDTM(DTM);
Exit;
end;

Wait(RandomRange(500, 600));
end;
end;
end;

FreeDTM(DTM);
end;

procedure FireAtTargets();
var
minW, maxW, minC, maxC, I, maxI, T, TT, maxT, TTT, maxTTT, TTTT, maxTTTT: Integer;
startP, curP: TPoint;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

minW := (Players[CURRENTPLAYER].Integers[MIN_TARGET_WAIT]);
maxW := (Players[CURRENTPLAYER].Integers[MAX_TARGET_WAIT]);
minC := (Players[CURRENTPLAYER].Integers[MIN_CLICK_WAIT]);
maxC := (Players[CURRENTPLAYER].Integers[MAX_CLICK_WAIT]);

I := 0;
T := 0;
maxT := (RandomRange(150000, 250000));
TT := 0;
TTT := 0;
TTTT := 0;
maxTTTT := (RandomRange(4000, 6000));
maxTTT := (RandomRange(10000, 20000));

MarkTime(T);
MarkTime(TTTT);

repeat
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

HandleNoArrows;

if (TargetScreen) then
CloseTargetScreen;

if (TimeFromMark(T) >= maxT) then
begin
ExitPlayer('We were unable to fire at the targets.');
Exit;
end;

if (R_MouseObj('Fire-a', 5041405, 10, 10, 10)) then
Break;

if (TimeFromMark(TTTT) >= maxTTTT) then
begin
Write('We were unable to find any targets. We might be out of the area.');
DTM_FixPosition;

TTTT := 0;
maxTTTT := (RandomRange(4000, 6000));
MarkTime(TTTT);

AntiBan;
Wait(RandomRange(550, 850));
end;

Write('Unable to mouse over a target. Let''s wait.');
//if (not(CheckCompass))) then
// FixCompass;
AntiBan;
Wait(RandomRange(500, 1500));
until(False);

GetMousePos(startP.X, startP.Y);
MarkTime(TT);

repeat
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

GetMousePos(curP.X, curP.Y);

HandleNoArrows;

if (TimeFromMark(TT) >= maxT) then
begin
ExitPlayer('We were unable to fire at the targets.');
Exit;
end;

case (Random(30)) of
1 :
begin
GetMousePos(curP.X, curP.Y);
curP.X := (curP.X + Random(2));
curP.Y := (curP.Y + Random(2));
HumanMMouse(curP.X, curP.Y, 0, 0);
end;

2 :
begin
GetMousePos(curP.X, curP.Y);
curP.X := (curP.X - Random(2));
curP.Y := (curP.Y - Random(2));
HumanMMouse(curP.X, curP.Y, 0, 0);
end;

3 :
begin
GetMousePos(curP.X, curP.Y);
curP.X := (curP.X - Random(2));
curP.Y := (curP.Y + Random(2));
HumanMMouse(curP.X, curP.Y, 0, 0);
end;

4 :
begin
GetMousePos(curP.X, curP.Y);
curP.X := (curP.X + Random(2));
curP.Y := (curP.Y - Random(2));
HumanMMouse(curP.X, curP.Y, 0, 0);
end;
end;

// Checking to see if we have clicked to a different position
if (FindNPCChatText('meant', Nothing)) then
begin
Write('We have moved out of the shooting range. Repositioning.');
DTM_FixPosition;
end;

// Misclick handling
if (not(IsUpText('Fire-a')) and (not(TargetScreen))) then
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

HandleNoArrows;

Wait(RandomRange(500, 1500));

if (not(IsUpText('Fire-a')) and (not(TargetScreen))) then
if (not(R_MouseObj('Fire-a', 5041405, 10, 10, 10))) then
begin
DTM_FixPosition;
if (not(R_MouseObj('Fire-a', 5041405, 10, 10, 10))) then
begin
ExitPlayer('We have misclicked and we were unable to fix our position.');
Exit;
end;
end else
begin
GetMousePos(startP.X, startP.Y);
GetMousePos(curP.X, curP.Y);
end;
end;

// Target screen handling
if (TargetScreen) then
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

HandleNoArrows;

// We have this here to make sure the while .. do loop works properly
I := 0;
maxI := (RandomRange(minW, maxW));
MarkTime(TTT);

while (not(I >= maxI)) do
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

// Randomizes the waiting time per 'loop-thru' of the fail-safe
maxI := (RandomRange(minW, maxW));

if (TimeFromMark(TTT) >= maxTTT) then
begin
ExitPlayer('Error in detecting the target screen.');
Exit;
end;

if (not(TargetScreen)) then
Break;

Wait(100);
IncEx(I, 100);
end;

if ((I >= maxI) and ((TargetScreen))) then
begin
Write('The target screen has been up for ' + ToStr(maxI) + ' second(s). Closing it.');
CloseTargetScreen;
HumanMMouse(startP.X, startP.Y, 5, 5);
end;
end;

// Over the maximum amount of distance from center of target handling
if (Distance(curP.X, curP.Y, startP.X, startP.Y) >= 10) then
begin
Write('Mouse is too far from the center of the target. Fixing it.');
HumanMMouse(startP.X, startP.Y, 5, 5);
end;

// Clicking handling
ClickMouse2(MOUSE_LEFT);
Wait(RandomRange(minC, maxC));
until(FindNPCChatText('Sorry', Nothing) or (not(LoggedIn)));
end;

function ArrowsEquipped: Boolean;
var
X, Y, DTM: Integer;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

DTM := DTMFromString('mbQAAAHicY2VgYJjIxMAwG4j7gbgTiGcC8Sug+AsgfgLEb4H4HRAbKCgwuKpzAllMYDpOmJeBH8hDx4xYMBgAAO7dCag=');
GameTab(26);

Result := (FindDTM(DTM, X, Y, MIX1, MIY1, MIX2, MIY2));

FreeDTM(DTM);
end;

procedure EquipArrows();
var
DTM, I, T, maxT: Integer;
P: TPoint;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

I := 0;
T := 0;
maxT := (RandomRange(15000, 25000));
DTM := DTMFromString('mbQAAAHicY2VgYJjIxMAwG4j7gbgTiGcC8Sug+AsgfgLEb4H4HRAbKCgwuKpzAllMYDpOmJeBH8hDx4xYMBgAAO7dCag=');

MarkTime(T);

repeat
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);


if (TimeFromMark(T) >= maxT) then
begin
FreeDTM(DTM);
ExitPlayer('There are no arrows in our inventory and none are equipped. - Perhaps a DTM failure.');
Exit;
end;

if (FindDTM(DTM, P.X, P.Y, MIX1, MIY1, MIX2, MIY2)) then
begin
HumanMMouse(P.X, P.Y, 3, 3);
if (WaitUpText('ze ar', RandomRange(750, 1500))) then
begin
ClickMouse2(MOUSE_LEFT);
for I := 1 to 5 do
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

if (not(FindDTM(DTM, P.X, P.Y, MIX1, MIY1, MIX2, MIY2))) then
begin
Write('We have equipped the arrows.');
FreeDTM(DTM);
Exit;
end;

Wait(RandomRange(100, 400));
end;
end;
end;

Write('There are no arrows in our inventory.');
AntiBan;
Wait(RandomRange(750, 1500));

if (ArrowsEquipped) then
begin
Write('We already have arrows equipped.');
Break;
end;
until(False);

FreeDTM(DTM);
end;

// Remade 2/24/2012 to make it less 'One shot'
// Modified 2/26/2012 - Removed some of the getting a new competition checks
// due to my new obtained knowledge that you don't need to click the green
// button or do anything after that to start a new competition. I'm sorry for
// including it in the first place, I was unaware of this.
procedure GetCompetition();
var
T, TT, TTT, maxT, maxTT, maxTTT, X, Y, iTR, cTR: Integer;
B, BB: Boolean;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

maxT := (RandomRange(60000, 65000));
maxTT := (RandomRange(4000, 5000));

T := 0;
TT := 0;
TTT := 0;
iTR := 0;
cTR := 0;

B := False;
BB := False;

MarkTime(T);
MarkTime(TT);
repeat

repeat // Attempts to mouse and interact with the judge
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

if (TargetScreen) then
CloseTargetScreen;


// Exits the character if we are unable to get a new competition
if (TimeFromMark(T) >= maxT) then
begin
ExitPlayer('We were unable to get a new competition.');
Exit;
end;

// Fixes the position of our character if we are unable to see the judge
if (TimeFromMark(TT) >= maxTT) then
begin
Write('We might be unable to see the judge. Let''s fix our location.');
DTM_FixPosition;
TT := 0;
maxTT := (RandomRange(4000, 5000));

AntiBan;
Wait(RandomRange(500, 850));
end;

if (R_MouseTPA('Judge', 6906979, 9, 15, 15, 0.31, 0.08)) then
begin
ClickMouse2(MOUSE_RIGHT);

maxTTT := (RandomRange(1500, 2000));
MarkTime(TTT);

// Waits for the option that the judge always has upon right click to show
while (not(OptionsExist(['k-to Comp'], False))) do
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

if (TimeFromMark(TTT) >= maxTTT) then
Break;

Write('Judge options not detected. Waiting.');
Wait(100);
end;

if ((TimeFromMark(TTT) >= maxTTT) and (not(OptionsExist(['k-to Comp'], False)))) then
begin
Write('We might have moused over the wrong object. Trying again.');
Continue;
end;

if (not(WaitOption('ete Comp', RandomRange(850, 1250)))) then
begin
Write('We have a competition already.');
Exit;
end;

Break; // Breaks out of the first repeat .. until to complete the procedure
end;

Write('Waiting for the object to be on the screen.');
AntiBan;
Wait(RandomRange(500, 1500));
until(False);

// Handles waiting for the pay confirmation dialogue to appear
for iTR := 1 to 5 do
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

B := (FindText(X, Y, '1', StatChars, MCX1, MCY1, MCX2, MCY2));
if (B) then
Break;

Write('Waiting for the pay confirmation dialogue to show.');
Wait(RandomRange(750, 1250));
end;

// Continues if we have timed out after waiting for the pay confirmation dialogue
if ((iTR >= 5) and (not(B))) then
Continue;

// Handles clicking 'Yes' for the pay confirmation dialogue
// We use MMouse here instead of HumanMMouse as HumanMMouse does not look
// like a human would when choosing a dialoge option.
MMouse(X, Y, 25, 7);
ClickMouse2(MOUSE_LEFT);

if (B) then
begin
Write('We have started a new competition!');
Exit;
end;
until(False);
end;

procedure StartGame();
var
Checking: Boolean;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

Checking := (Players[CURRENTPLAYER].Booleans[CHECK_FOR_ARROWS]);

GetCompetition;
if (Checking) then
EquipArrows;
end;

function TicketAmount: Integer;
var
DTM: Integer;
begin
if (not(LoggedIn)) then
Exit;
if (FindNormalRandoms) then
SetAngle(SRL_ANGLE_LOW);

DTM := DTMFromString('mbQAAAHicY2VgYMhlYmAoBeJ8IE4E4mQglmZkYJABYnUgVgZicSDOa4sEqmZCwfxAEh0zYsFgAABgUwRn');

GameTab(25);
Result := (ItemAmount('inv', 'dtm', DTM, []));

FreeDTM(DTM);
end;

// Five minute report
procedure ProgressReport;
var
XPH, CPH: Integer;
timeRan: string;
begin
if (not(ENABLE_DEBUG_MODE)) then
ClearDebug;

compsDone := (competitionsDone);
timeRan := (MSToTime(GetTimeRunning, Time_Bare));
startTickets := (startingTickets);
curTickets := (TicketAmount);
gained := (curTickets - startTickets);
expGained := (Gained * 5);

// Borrowed from Nebula's Range Guilder
CPH := (Round((competitionsDone) * 3600) / ((GetTimeRunning) / 1000));
XPH := (Round(gained * 5 * 3600) / ((GetTimeRunning) / 1000));

WriteLn('__________________________');
WriteLn('');
WriteLn(' RISK''s Range Guilder');
WriteLn(' Script version: ' + SCRIPT_VERSION);
WriteLn(' Time ran: ' + timeRan);
WriteLn(' Competitions done: ' + ToStr(compsDone));
WriteLn(' Competitions/h: ' + ToStr(CPH));
WriteLn(' Tickets gained: ' + ToStr(gained));
WriteLn(' EXP gained: ' + ToStr(expGained));
WriteLn(' EXP/h: ' + ToStr(XPH));
WriteLn('__________________________');
end;

// Created by Echo_, modified by Flight
function BreakHandler(BreakIn, BreakFor, randBreakIn, randBreakFor: Integer): Boolean;
var
realTime, w, x, y, z: Integer;
begin
if not LoggedIn then
Exit;

w := (BreakIn * 60000);
x := (BreakFor * 60000);
y := RandomRange(-randBreakIn * 60000, randBreakIn * 60000);
z := RandomRange(-randBreakFor * 60000, randBreakFor * 60000);
realTime := ((x + z) / 60000);

if (HowManyPlayers = 1) then
begin
if (GetTimeRunning < ((w) + (y) + BreakRounds)) then Exit
else
if (GetTimeRunning > ((w) + (y) + BreakRounds)) then
begin
Writeln('Taking a break for about ' + IntToStr(realTime) + ' minutes.');
Logout;
Wait((x) + (z));
Writeln('Logging in.');
LoginPlayer;
Result := LoggedIn;
FindNormalRandoms;
IncEx(BreakRounds, (w) + (x));
IncEx(TotalBreaks, 1);
Writeln('The next break will occur in about ' + IntToStr(realTime) + ' minutes.');
end;
end;

if (HowManyPlayers > 1) then
begin
if (GetTimeRunning < ((w) + (y) + BreakRounds)) then Exit
else
if (GetTimeRunning > ((w) + (y) + BreakRounds)) then
begin
Writeln('Taking a break for about ' + IntToStr(BreakFor) + ' minutes.');
Logout;
IncEx(BreakRounds, (w));
IncEx(TotalBreaks, 1);
NextPlayer(True);
Exit;
while (LoggedIn) do
Wait((x) + (z));
NextPlayer(True);
end;
end;
end;

procedure MainLoop();
var
T, TT, maxComps: Integer;
begin
repeat
maxComps := (Players[CURRENTPLAYER].Integers[HOW_MANY_COMPS]);
competitionsDone := 0;
comInc := 0;
startingTickets := (TicketAmount);

MarkTime(T);
MarkTime(TT);
FixChats;
Retaliate(AUTO_RETALIATE);

repeat
Inc(competitionsDone);

StartGame;
Wait(RandomRange(300, 500));
FireAtTargets;
Wait(RandomRange(300, 500));
AntiBan;


// Stat reporting & 5 minute debug report
if (TimeFromMark(T) >= 300000) then
begin
ProgressReport;

compsDone := (competitionsDone);
startTickets := (startingTickets);
curTickets := (TicketAmount);
gained := (curTickets - startTickets);
expGained := (Gained * 5);

// Stat committing is now in the main loop as 1.0.4 to test if it works
expThisReport := (expGained);
compsThisReport := (compsDone);
if (not(comInc = 0)) then
begin
comExp := (expThisReport - expLastReport);
comComps := (compsThisReport - compsLastReport);
end else
begin
comExp := (expThisReport);
comComps := (compsThisReport);
end;

expLastReport := (expThisReport);
compsLastReport := (compsThisReport);


stats_IncVariable('Ranged EXP (Gained)', comExp);
stats_IncVariable('Total EXP Gained', comExp);
stats_IncVariable('Competitions Done', comComps);
if (stats_Commit) then
Write('We have committed stats to SRL stats!');

Inc(comInc);

T := 0;
end;

// Breaking
if (ENABLE_BREAKS) then
if (BreakHandler(BREAK_IN, BREAK_FOR, RAND_IN, RAND_FOR)) then
begin
FixCompass;
SetAngle(SRL_ANGLE_LOW);
end;
until((competitionsDone >= maxComps) or (not(LoggedIn)));

ExitPlayer('');
Write('If you have encountered an error, please enable debug mode in the script setup and rerun the script.');
Write('Thank you!');
until((AllPlayersInactive));
end;

procedure Setup();
begin
SMART_Server := WORLD;
SMART_Members := True;

AddOnTerminate('ProgressReport');
SetupSRL;
SetupSRLStats(836, STATS_USER, STATS_PASS);
SPS_Setup(RUNESCAPE_SURFACE, ['6_7']);
MouseSpeed := (RandomRange(10, 12));
DeclarePlayers;
LoginPlayer;
SetAngle(SRL_ANGLE_LOW);
ClearDebug;
FixCompass;

MainLoop;
end;

begin
Setup;
end.


Change log:
1.0.4:
* I've [i]possibly[/i] increased the speed of the script by removing some
of the procedure that gets a new competition. I originally had it go thru
all of the dialogue because I did not know that you only had to press the
payment confirmation button. So I removed the click to continue button
and chat-box confirmation parts of the procedure.

* I have added the break system. The user options for it can be found
below where you enter your stats username and password.
Instructions for the options can be found in the main post of this thread
under the setup section.

* I have changed the default clicking speeds to be a 'bit slower so that
it will not have to close the target screen so much. As always, if
you would like it to be faster or slower, you can adjust the options in
DeclarePlayers.

* I have fixed the distance from the target center and the mouse
checker. I had the amount at 20 when it should have been at 10.
I made it 20 when I was still testing it before I
released it due to a bug I could not figure out. I fixed the bug,
but I forgot to revert the distance checker maximum
distance back to 10 from 20. It should [i]hopefully[/i]
misclick a lot less now with the distance checker
actually working now.

* I have removed a segment from my TPA mousing
function that relies on CTS 2/Hue/Saturation that was
useless code that I never really used for some reason.
I forgot to remove it, but I have now removed it.

* I have added a maximum pixel check to my TPA mousing
function that relies on CTS 2/Hue/Saturation. This will work alongside
the minimum pixel check I already had in place. I'd like some feedback
on the guard finding now that I have added that, please.

* I have changed the way mousing the confirmation button works. I've
changed from HumanMMouse (Flight's amazing function) to the regular
MMouse when clicking the confirmation button in the dialogue as it looks
a 'bit un-humanlike in my opinion when using HumanMMouse for that.

* In regards to the mousing the confirmation button update, I have also made
the range of clicking the button itself a 'bit larger to make it more human-like.
It would previously only click on the '1' and a 'bit away from it. It looked very
bot-like in my opinion, so I have updated it.

* I've fixed the antiban procedure again. Two of the errors that I thought
I had fixed in the previous update were not fixed as I made a mistake. It
should be fixed now and when it does antiban, it shouldn't stop the script
due to the angle of the screen being at the highest point.

* I've fixed a bug in the random finding. When it would find and solve a
random, it would leave the angle of the screen at the highest point, thus
causing the script to eventually log out. But I believe I have fixed this now.

* I've made the mouse speed a random speed instead of it being just one
'Preset' speed. In regards to the mouse speed, I have also increased the
chance of the random mouse speed increase in the anti-ban by a 'bit.
I have also decreased the chance of antiban happening, but not by a lot.

* I have implemented Nebula's kind suggestion to my SPS backup position
fixing method. This should help fix some of the reposition errors that some
people may have, hopefully resulting in much longer runs for some people
that have had trouble with the script recently.
- Thanks, Nebula!

* I have removed the checking if we are in combat and escaping from it
procedure for now. Until I am able to create my own combat checking and
running from combat procedures, it will stay removed. As I noticed when
another person would be in combat by misclicking on a guard, the script
will attempt to run away. But it would not as I also had a bug in the running
away part of the procedure. But since I have removed it, this bug has been
solved, of course.

* I have added a user option in the settings that will allow them to choose if
they want to have the script enable auto retaliation from the start or not. This
is to 'Cater' to the people who might have characters they do not want HP levels
on and they would rather have their character die than them to gain an HP level.

* I have changed stat reporting to be in the main loop. Even if the variables
are not being sent at this time, it will be good to have them just in case. The
progress report in the debug will still show every five minutes though.

* I have added competitions per hour and experience per hour in to the
progress report. I borrowed the code to do it from Nebula's range guilder,
I have credited them where I use it. I borrowed it because I had no idea
how to create that type of stuff. But thanks to him, I have learned how.
- Thanks again, Nebula!

* I have added a target screen checker and closer early in most repeats, just
to make sure the script will not get stuck because of the target screen being up
while the script is trying to get a new competition or a target. So that could have
been considered a bug, but I have hopefully fixed it.

* I have added a lamp reward option and box reward options
in to DeclarePlayers.


Setup:
Start next to the Competition judge with a bow equipped and enough gold to last you the amount of trips you want. Each competition requires 200 gold to start, so keep that in mind.

If you are using your own arrows and do not wish to spend time equipping the arrows you receive from the judge each new competition, then please disable "CHECK_FOR_ARROWS" in DeclarePlayers. To disable it you have to change 'True' to 'False', without the ''s, of course.

Also please make sure you have a free inventory to avoid any confusion with any other items in the inventory for the arrows or tickets to prevent 'Miscounting'. Thanks! :)

To enable breaks, look in the script options below where you insert your stats username and password. Set "ENABLE_BREAKS" to "True", without the quotation marks, of course. Then change the values under it.
BREAK_IN is how many minutes until you take a break,
BREAK_FOR is how many minutes you will take the break for,
RAND_IN is how many minutes in randomness you would like BREAK_IN to be,
RAND_FOR is the same as RAND_IN but for BREAK_FOR.

Remember, the options are in minutes. So don't enter them in milliseconds. :) 1 = 1 minute and so on.

Important:
Please make sure you have XP popup and display turned off. You can do this by right clicking the XP button next to the minimap and clicking both 'Toggle XP Popup' and 'Toggle XP Display'.

The only settings you will want to alter are these:

const
WORLD = 40; // What world do you wish to auto on? 0 = random

STATS_USER = ''; // What is your SRL stats username? Leave blank if you have none
STATS_PASS = ''; // What is your SRL stats password? Leave blank if you have none

ENABLE_BREAKS = True; // Do you want to enable taking breaks?
(* Ignore these settings if you aren't taking breaks *)
BREAK_IN = 35; // Break in how many minutes?
BREAK_FOR = 10; // Break for how many minutes?
RAND_IN = 5; // How many minutes in randomness on BREAK_IN?
RAND_FOR = 5; // How many minutes in randomness on BREAK_FOR?
(* *)

AUTO_RETALIATE = True; // True = On, False = Off
ENABLE_MOUSE_PAINT = True; // Do you want to have a paint trail behind the mouse?



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

with Players[0] do
begin
Name := ''; // What is your character's username?
Pass := ''; // What is your character's password?

Integers[HOW_MANY_COMPS] := 500; // How many competitions do you wish to do?
Booleans[CHECK_FOR_ARROWS] := False; // Disable this if you want to use your
// own arrows. Remember they must be bronze!

Active := True;
end;
end;


Top Reports:

RISK:
__________________________

RISK's Range Guilder
Script version: 1.0.0a
Time ran: 04:19:54
Competitions done: 372
Tickets gained: -3578
EXP gained: -17890
__________________________


Eltardo:
RISK's Range Guilder
Script version: 1.0.3a
Time ran: 02:04:42
Competitions done: 170
Tickets gained: 11641
EXP gained: 58205


kuiper:
__________________________

RISK's Range Guilder
Script version: 1.0.3a
Time ran: 02:01:24
Competitions done: 128
Tickets gained: -5617
EXP gained: -28085
__________________________


Donations:


If you have enjoyed my script and feel I deserve a donation of any amount, please click that button. You may also donate RSGP by PMing me.

Thank you very much! It would mean a lot to me if you did donate.

Kyle Undefined

2012-02-24 16:12:14

Nice! I'll have to test this one for sure, and I bet it beats mine even when it was working :p Awesome release man! Was in high demand.

FifthDimension

2012-02-24 16:13:53

Will try this out soon once I get mems on my pure ;)

RISK

2012-02-24 16:16:04

Thank you very much, Kyle! :) I hope it doesn't disappoint. I've worked very hard on it and I know I have a lot to learn. But I'm getting there!

From: Kyle Undefined
Nice! I'll have to test this one for sure, and I bet it beats mine even when it was working :p Awesome release man! Was in high demand.



I hope you enjoy the script!

From: FifthDimension
Will try this out soon once I get mems on my pure ;)

xtrapsp

2012-02-24 16:16:19

Finally RISK it's out :D Glad you have it working ^.^ You worked DAMN hard on this!

Kyle Undefined

2012-02-24 16:20:51

From: RISK
Thank you very much, Kyle! :) I hope it doesn't disappoint. I've worked very hard on it and I know I have a lot to learn. But I'm getting there!


Lol, you put more work into yours than I did mine :p

Bwuk

2012-02-24 16:36:32

I'll try it out asap will post a proggy later! :).

Edit: cant find any proggys o: where do they go? O.o

RISK

2012-02-24 17:04:24

They report every five minutes during script run time in the debug. :) They'll usually look like:

__________________________

RISK's Range Guilder
Script version: 1.0.0
Time ran: 00:15:52
Competitions done: 24
Tickets gained: 1423
EXP gained: 7115
__________________________

I don't have it clear the debug before printing the progress report so you'll have to scroll up thru the debug a 'bit to find it. If you really want me to, I can make it clear the debug before it prints to easily find it.

From: Bwuk
I'll try it out asap will post a proggy later! :).

Edit: cant find any proggys o: where do they go? O.o

Bwuk

2012-02-24 17:16:55

From: RISK
They report every five minutes during script run time in the debug. :) They'll usually look like:

__________________________

RISK's Range Guilder
Script version: 1.0.0
Time ran: 00:15:52
Competitions done: 24
Tickets gained: 1423
EXP gained: 7115
__________________________

I don't have it clear the debug before printing the progress report so you'll have to scroll up thru the debug a 'bit to find it. If you really want me to, I can make it clear the debug before it prints to easily find it.

Oh I see thanks! you dont have to but could be nice :).

RISK

2012-02-24 17:19:48

Will do. :) I'm so sorry about that.

Updated the main post with the new version of the script, 1.0.0a:
Change log for 1.0.0a:
* Added an optional debug mode. When it is set to 'True', the script will not clear the debug upon progress reports. 
I forgot to add this on the initial release. Sorry about that!

Again, sorry about that! That's so embarrassing, haha.

Jokester

2012-02-24 17:20:13

Nice job! Ill test it sometime might even post a proggy or 2. Lets see if its better than Home's build it your own!

RISK

2012-02-24 18:32:23

Thanks, FallenSabre. Looking forward to it. :)


Released 1.0.0b
* Removed ranged experience gained stat posting in regards to SRL stats for now. I'll add it again tomorrow with a proper system that won't be incorrect.

illuminatiswag

2012-02-24 18:51:19

Sweet release will try some time soon with proggys after 82 mage and dt

phantom1

2012-02-24 19:06:31

<3 Risk!! Ill post a proggie Soon! Love ya!

zzishadowz

2012-02-24 19:42:51

Doesn't even work…
04:41:34 PM: Waiting for the chat-box confirmation text to show.
04:41:35 PM: We have started a new competition!
04:41:36 PM: We were unable to find the DTM of the arrows in our inventory.
04:41:41 PM: We were unable to find the DTM of the arrows in our inventory.
04:41:52 PM: We already have arrows equipped.
04:42:06 PM: We were unable to mouse the object.
04:42:06 PM: We were unable to find any targets. We might be out of the area.
04:42:09 PM: We were unable to move our character with SPS.

RISK

2012-02-24 19:46:10

That's strange. Can you try running it again, please? Make sure you're at the range next to the judge.

Thanks. :)

Kyle Undefined

2012-02-24 19:53:48

Maybe he was already in the middle of an competition.

RISK

2012-02-24 19:55:06

That'd be weird since my script recognizes that. It seems to work for others since there's one to two commits per minute.

baja_blast1

2012-02-24 20:15:56

Thank you. Ran for 1hr and got stuck in a random only attacked a guard once.


RISK's Range Guilder
Script version: 1.0.0a
Time ran: 01:05:47
Competitions done: 78
Tickets gained: 5949
EXP gained: 29745
______________________


RISK's Range Guilder
Script version: 1.0.4
Time ran: 02:17:25
Competitions done: 222
Competitions/h: 96
Tickets gained: 16876
EXP gained: 84380



RISK's Range Guilder
Script version: 1.0.4
Time ran: 02:33:15
Competitions done: 226
Competitions/h: 88
Tickets gained: 16603
EXP gained: 83015
EXP/h: 32501

RISK's Range Guilder
Script version: 1.0.4
Time ran: 02:18:45
Competitions done: 215
Competitions/h: 92
Tickets gained: 16246
EXP gained: 81230
EXP/h: 35126

phantom1

2012-02-24 20:16:51

It dosnt work for me either. It miss clicks the range guild guy. and then it thinks it already has arrows and logs off..

RISK

2012-02-24 20:17:27

Ah, it attacked a guard? I've never had that happened before. I wonder what caused that. Tomorrow I'll add a combat check to see if it happens again. :)

Thanks for the report, baja_blast1! I really appreciate it and I hope you enjoyed using my script.

From: baja_blast1
Thank you. Ran for 1hr and got stuck in a random only attacked a guard once.



@ phantom1 : I'll check it out and see what I can do. Thanks for the report.

E: Phantom1, I sent you a PM. I hope I can get the bug solved if there is a bug and not just a bad run. Because I'm running it for almost 3 hours straight now without any problems.

RISK

2012-02-25 00:48:12

Updated the script to 1.0.1! So please re-download from the first post to get some vital changes to the script!

Change log:
* I have added a new optional debug 'system' instead of it just clearing the debug 
if it isn't activated when writing progress reports. Instead, it will do the same as before
but it will also show what the script sees when attempting to find an object/NPC. This
will help with finding out what causes certain bugs related to object finding in the future.

* Fixed DTM for bronze arrows. It was really tricky and fun to create. It should work better
now and I think that is what was causing the error with it not being able to work for some people.

* Added DTM-based reposition as the main reposition method instead of SPS. SPS is the backup
repositioning method now. So if the DTM repositioning fails, the script will attempt to reposition
itself with SPS.

* Added combat checking to the script in the beginning of most repeat .. until's so that if the script
detects that we are in combat, we'll run away from it. The system is experimental, so I need some feedback on it,
please. I don't misclick a lot or start attacking guards a lot, so any suggestions or feedback, as I said, would be great!

* Fixed a bug that occurred in 1.0.0b that caused the experience gained in the progress report
to not show. I forgot to add it again as I accidentally removed. I'm sorry for that.

* Reworded some of my debug line writing. I accidentally made it write the wrong line at the wrong
time, thus causing confusion as to what was causing the error for some people. It is worded much
better now.


I think I've fixed the bug that you two were having. I've uploaded the script to the first post and added a new feature to the post, a change log. So if anyone is curious as to what I add in each version, you should check that out! :)

Thanks to everyone who has been using my script. I really appreciate it and I hope everyone is enjoying my script!

Naggiii

2012-02-25 02:15:22

It bought arrows, but then it doesn't click the targets. It just hovers around until I disable and enable SMART a few times, then it clicks the targets, but it doesn't repeat efficiently.

Every time it buys arrows it runs to a spot near the edge of the guild and doesn't click targets, then it logs out.

Here's what I get:

12:23:18 AM: Waiting for the object to be on the screen.
12:23:19 AM: We might be unable to see the judge. Let's fix our location.
12:23:31 AM: Waiting for the object to be on the screen.
12:23:32 AM: We might be unable to see the judge. Let's fix our location.
12:23:38 AM: We have a competition already.
12:23:40 AM: We have equipped the arrows.
12:23:51 AM: The target screen has been up for 835 second(s). Closing it.
12:24:00 AM: The target screen has been up for 1053 second(s). Closing it.
12:24:06 AM: The target screen has been up for 897 second(s). Closing it.
12:24:16 AM: The target screen has been up for 931 second(s). Closing it.
12:24:24 AM: Waiting for the pay confirmation dialogue to show.
12:24:26 AM: The click to continue button has not been detected. Waiting.
12:24:27 AM: Waiting for the chat-box confirmation text to show.
12:24:28 AM: Waiting for the chat-box confirmation text to show.
12:24:29 AM: Waiting for the chat-box confirmation text to show.
12:24:32 AM: Waiting for the chat-box confirmation text to show.
12:24:33 AM: Waiting for the chat-box confirmation text to show.
12:24:35 AM: We might be unable to see the judge. Let's fix our location.
12:24:53 AM: We have a competition already.
12:24:56 AM: We have equipped the arrows.
12:25:01 AM: The target screen has been up for 931 second(s). Closing it.
12:25:10 AM: The target screen has been up for 834 second(s). Closing it.
12:25:18 AM: The target screen has been up for 950 second(s). Closing it.
12:25:27 AM: The target screen has been up for 1037 second(s). Closing it.
12:25:32 AM: The target screen has been up for 839 second(s). Closing it.
12:25:52 AM: Waiting for the object to be on the screen.
12:25:56 AM: We might be unable to see the judge. Let's fix our location.
12:26:00 AM: DTM repositioning failed. Let's try SPS.
Error: Exception: The given DTM Index[2] doesn't exist at line 136
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap]

tybkj

2012-02-25 07:24:41

the script is working great for me. I recommend you to put a paypal link on your page. The only thing you can improve is the spamclicking, sometimes it isn't fast and that will causing the problem it has to close the window. But over-all a great script that need some respect! :p

Sable

2012-02-25 07:43:28

RISK great script,

However your losing alot of time checking whether it has arrows equipped or not.
You should just edit it to click the bronze arrows and then fire at target instead of getting arrows then checking whether they are in your quiver > fire target.
Unless it used to work properly but new update made your script not reconize the bronze arrows in inventory.

tybkj

2012-02-25 07:48:16

proggy:
RISK's Range Guilder
Script version: 1.0.0a
Time ran: 00:34:04
Competitions done: 28
Tickets gained: 2111
EXP gained: 10555

decent xp.

Hessel

2012-02-25 09:02:33

Thanks a lot, little bit laggy at my computer but fine, nice script, great!

RISK

2012-02-25 09:36:17

Thanks for the reports and suggestions, everyone! I appreciate it. :)
The spam clicking you can adjust in the user settings by lower MIN_CLICK_WAIT and MAX_CLICK_WAIT.
I can add a user option whether or not to check for arrows, so if you have your own arrows you could just disable arrow checking.

I'll check out the error report soon. I'm sorry you had trouble running it!

Thanks!

Jokester

2012-02-25 10:16:58

Hey RISK, does this automatically equip the arrows? I read a post on the first page saying that they attacked a guard. If the arrows are in your inventory you can still play the competition with them but can't attack. At least that's what it was last time I was there awhile ago. So if it left the arrows in the inventory it would never attack a guard. Thanks for reading!

RISK

2012-02-25 10:36:43

Ah, unfortunately that isn't the case anymore. I wish it was, haha. I'll figure something out if the script still attacks guards. Thank you very much for the information!


1.0.2 is updated to the first post! Here's the change log if anyone is interested:
* I've modified the default clicking minimal and 
maximum wait times just a 'bit. It's ironic that for me,
the lower the options are, the more it has to exit out
of the target screen.

* I've added a new user option to DeclarePlayers. "Booleans[CHECK_FOR_ARROWS] := True;".
Set this to 'False' if you want to use your own bronze arrows.
Remember that each competition takes 10 arrows and
then you have to take in to consideration that the script
might attack and guard sometimes, so please do stock up
if you're going to use this option!

* To go along side the new user option, I have added a
check in the procedure that fires at targets, it will check
to see if you have ran out of arrows or not. If you have,
it will simply log you out. I might change this to equip
arrows sometime in the future once I release my possible
new arrow detection and equipping.

* A more minor update, I have added a debug line that
will show after the script has logged out of your character.
This debug line will tell you that if you have encountered an
error then you should enable debug mode in the script options
and re-run the script to get me the debug and images of what
the script sees when it attempts object finding.


I've added instructions on how to donate to the bottom of the thread's first post. It's not needed to donate, but it would be very nice of anyone that is kind enough to donate. I do this for passion though, remember. Not monetary gain.

I have also changed the setup instructions a little 'bit along with the change log. It really just explains what I've already explained in this post.


@ Naggiii : Can you try to use the new option (Where it doesn't check for arrows, just make sure you have enough arrows already equipped!) I have added in 1.0.2, please? Along with debug mode enabled. You can PM me the debug images or post them here if you desire.


Thanks everyone and I hope you all are enjoying my script! I really appreciate it. I do. :)

dudekid39

2012-02-25 10:44:20

it doensy take the arrows any help plz btw thx for making this script

RISK

2012-02-25 10:48:05

Dudekid39, is 'Booleans[CHECK_FOR_ARROWS] := False;' that in your DeclarePlayers? If it is, please set the 'False' to 'True', please.

:) If not, then please try to buy your own arrows, enough to last you the competitions you want and more, just in case and set the option to 'False', please.


E: Oops, I uploaded the version where the option is automatically off. I'm sorry about that! Please get the new version from the first post of the thread.


Thanks and sorry about that!

dudekid39

2012-02-25 10:53:26

NP RISK i bought some 100k bronze arrows :p

tybkj

2012-02-25 10:55:39

Thanks for updating going to run this for 6 hours now.

The only thing that could be better: When it paid for the competition it wont start fireing unless it has checked the judge again.

dej

2012-02-25 11:11:11

i got roll'd on my pure using range guild script but im gonna use this on him again lol

i like pie123

2012-02-25 11:14:18

Hey the script works very well except when it opens the skill guide the script just stops. In a future update maybe add something to close it. This would help very much. Thanks for this script though, I've been waiting a long time for something to train my range on my hand cannon acc.

EDIT: I just found out how to disable it so everything is good. Thanks a lot for this script

RISK

2012-02-25 11:32:18

Thanks for the suggestions, everyone.

@ tybkj : Thanks for the suggestion and good luck! I'll look in to adding this as an option feature as I think that would slow the script down a 'bit. But I'll check it out. Thanks again!

@ dej : I hope my script doesn't get you roll'd again. Thanks and good luck!

@ I like pie123 : Thanks for the compliment! When it examines the skill information, it shouldn't click it. It should just hover above it for a few seconds, as that is how I have it implemented as anti-ban. I'll double check though to make sure I wrote it right. It shouldn't be clicking the skill at all, only examining. Thanks!



Thanks again, everyone! I'm going to start working on a 1.0.3 with some new features and procedure/function rewrites I have in mind. :) And I will also fix the stat posting to include ranged experience gained.

tybkj

2012-02-25 11:36:37

@ I like pie123 : toggle xp pop-up and the display. That is a great fix. Risk, you should put this on the first post.

RISK

2012-02-25 11:40:04

Ah, thanks tybkj! I appreciate it. I forgot to add that to the post originally, haha. I've added it now though in the setup category.

+rep'd. :)

phantom1

2012-02-25 11:48:05

Risk i sent you a pm. Hope you the pm helps you fix it

RISK

2012-02-25 11:49:42

Replied to the PM. :)

Thanks! +rep'd.

Eckoempblast

2012-02-25 15:15:41

Is this real? lol :cartman:

RISK

2012-02-25 15:20:24

Yep, try it! :) Make sure you follow the setup instructions in the first post.

Kyle Undefined

2012-02-25 15:52:30

If you're having an issue with checking if you have gotten the arrows and they're equipped or not, look at my bmp that I used in mine. It actually still works :)

FifthDimension

2012-02-25 16:02:04

Whats the average xp p/hr on this bot? I haven't done any range guild for a while, I think I used one of RSBuddys scripts back on my old pure and I was getting like 40k+ an hour.

RISK

2012-02-25 16:07:44

@ Kyle : Will do. Thanks for the suggestion. :)

@ Fifth : With a low range bonus, I get 30k/h normally. But if you had good range bonus you could get 40k/h ~ 45k/h maybe.

Triblouge

2012-02-25 16:18:54

Thank you so much for this script, i will post a great proggy once i get 70 range. The trick to get good exp with this script is to toggle the exp counter that pops up.

RISK

2012-02-25 18:32:58

@ Triblouge : Looking forward to it. :) Thanks for trying out my script!


1.0.3 is out, there are no real new features to this version, just minor bug fixes. I'll get started on them tomorrow most likely so that I don't get 'Burnt out'.

Here's the change log for anyone that is interested:
* Fixed a bug in the antiban that would cause the angle
of the compass to be the highest. It would get stuck like that
for a while until it fixed itself. Which is bot-like, in my opinion. So
I fixed it.

* Changed how the script will reposition itself from the very start of
the script. It won't do this anymore as it already does it if it
can't find the judge or a target, anyway. So there's no need to do it
right from the start.

* Changed how it will right click the assist chat button and not turn it
off. Until I make a fix for it, I have turned off disabling it completely. But it
will still turn the other chats off so that we can detect if we have a new
competition or not.

* Updated the DTM for reposition and the DTM for the arrows. I will most
likely add two more 'Layers' of fail-safes for the arrows if it can't find it with
the main method.


Tomorrow I will work on adding a paint progress report that reports every minute instead of just a five minute report.
I will also work on adding variable posting to the stats system instead of just the time. But the time is good enough for now.

But for now, please download 1.0.3 and tell me how it goes!


Thanks to everyone that has been using my script and I really appreciate it! I hope you all are enjoying it. :)


Thanks again!

RISK

2012-02-25 20:02:57

I have re-uploaded 1.0.3. I forgot to change the line in 'Setup;' from when I was testing it. I fixed it now and everything should be just fine. So please re-download when you get the chance.

Sorry about that! :)

Naggiii

2012-02-25 21:13:44

Seems to be working fine now, RISK. Thanks for fixing! I'll report back with any proggies/issues. Thank you once again for this script.

EDIT: It seems a bit slow/erratic. It clicks around a bunch, but in the end it does get the job done. I think the only think that needs fixing is the efficiency/speed of the script, then it'll be golden! Did also attack a guard once, but that's hard to avoid.

RISK

2012-02-25 21:27:33

Thanks for the report. :) Yeah, it will attack a guard every now and then. I have a check for it to run away in that case. But it isn't working right now because I think SRL's srl_InFight is broken at the moment. I might end up having to write my own version of it.

You can increase the speed of the script's clicking to your liking in the options in DeclarePlayers. It's hard to find a spot that everyone is happy with, so I made it user customizable if they so choose.

I'll see what I can do in terms of improving the speed without loss of efficiency though.


Again, thank you very much for your report, Naggiii! I really appreciate it. :) I hope you're enjoying my script and if you or anyone else has any more reports or suggestions, you can post them here or PM them to me. I'm always open to suggestions and especially criticism!

neversnow

2012-02-25 21:32:38

doesn't work for me, it just stands there or runs towards the target

RISK

2012-02-25 21:35:07

Can you give the debug after enabling debug mode, please? Also, do you have the latest version?

To enable debug mode please go to the top of the script and change 'ENABLE_DEBUG_MODE = False;' to 'ENABLE_DEBUG_MODE = True;'


Thanks! :)


E:
1.0.3a released and updated to the first post. I found a few bugs that I didn't feel warranted a new entire version update.
Thanks. :) 1.0.4 will be out tomorrow with paint report, stat reporting(Maybe) and the break system.

Nebula

2012-02-25 22:06:15

Hey RISK- does your script sometimes run towards the target,even if it clicks "Fire-At" ?

I'm having an issue with that with my script. No matter what, even if "Fire-at" is chosen, it will run towards the target sometimes. Did you ever experience this issue?

RISK

2012-02-25 22:09:52

Yeah, that's a problem for the back right targets, right? I had that problem a few times, that's why instead of using DTMs to find the targets (Just a silly thing I decided to do), I made a non CTS 2 version of my mousing function that uses TPAs and ATPAs. You can borrow it if you want. It'll get the closest target to the center of the screen.

By the way, you should do a check to see if you have moved out of the range and attempt to fix it by walking back to the proper zone. That's what I do since misclicks seem to be very hard to avoid with the script sometimes due to different computers and latency.

Just in case: W and H in my function are the width and height of the pixel, so you should set those to about 10 ~ 15 for the targets.

Here it is:
// Non CTS 2 version of R_MouseTPA
function R_MouseObj(Text: string; Col, Tol, W, H: Integer): Boolean;
var
X, Y, I, T, maxT: Integer;
P: TPoint;
TPA: TPointArray;
ATPA: T2DPointArray;
begin
if (not(LoggedIn)) then
Exit;
FindNormalRandoms;

I := 0;
T := 0;
maxT := (RandomRange(15000, 25000));

MarkTime(T);

repeat
if (not(LoggedIn)) then
Exit;
FindNormalRandoms;

if (TimeFromMark(T) >= maxT) then
begin
Write('We were unable to find the object.');
Result := False;
Exit;
end;

FindColorsSpiralTolerance(X, Y, TPA, Col, MSX1, MSY1, MSX2, MSY2, Tol);
if (Length(TPA) > 0) then
Break;

Write('The object is not on the screen. Waiting.');
AntiBan;
Wait(RandomRange(500, 1500));
until(False);

// What to do if the length of TPA is greater than 0
ATPA := (TPAToATPAEx(TPA, W, H));
SortATPAFromFirstPoint(ATPA, Point(MSCX, MSCY));
if (ENABLE_DEBUG_MODE) then
DebugATPABounds(ATPA);
for I := 0 to High(ATPA) do
begin
if (not(LoggedIn)) then
Exit;
FindNormalRandoms;

P := (MiddleTPA(ATPA[I]));
HumanMMouse(P.X, P.Y, 5, 5);
Result := (WaitUpText(Text, RandomRange(850, 1500)));

if (Result) then
Break;

AntiBan;
Wait(RandomRange(250, 500));
end;

if (not(Result)) then
Write('We were unable to mouse the object.');
end;

Nebula

2012-02-25 22:16:00

Well at the moment I already have a failsafe that walks back if it isn't behind the hay bales. I didn't know that the issue only occurred when it clicks the back targets. Thanks for isolating the problem I won't be copying yours, I like to be original.

Thanks again.

pown otto

2012-02-26 00:52:54

will try this out on my range pure :)

bambino

2012-02-26 01:02:44

RISK's Range Guilder
Script version: 1.0.2
Time ran: 00:05:09
Competitions done: 2
Tickets gained: -6243
EXP gained: -31215

i will try to achieve 99 range by this script:)

kuiper

2012-02-26 11:53:04

__________________________

RISK's Range Guilder
Script version: 1.0.3a
Time ran: 02:01:24
Competitions done: 128
Tickets gained: -5617
EXP gained: -28085
__________________________

Eltordo

2012-02-26 12:15:45

RISK's Range Guilder
Script version: 1.0.3a
Time ran: 02:04:42
Competitions done: 170
Tickets gained: 11641
EXP gained: 58205

Awesome script dude!
And im still going!

tybkj

2012-02-26 14:49:15

I doesn't run for long periods for me it just logs out.

RISK

2012-02-26 14:50:52

Thanks for the reports, everyone. I'll add the new reports to the top reports section in a 'bit.

@ tybkj : Enable debug mode in the settings by setting 'False' to 'True' and tell me what the debug says, please. Also, please make sure you're next to the judge before you run it.

Thanks.

tybkj

2012-02-26 14:58:41

The problem that I get:

08:57:44 PM: We were unable to find the object.
08:57:44 PM: We have misclicked and we were unable to fix our position.
08:57:48 PM:
08:57:48 PM: If you have encountered an error, please enable debug mode in the script setup and rerun the script.
08:57:48 PM: Thank you!
__________________________

RISK's Range Guilder
Script version: 1.0.3a
Time ran: 00:04:31
Competitions done: 3
Tickets gained: -26382
EXP gained: -131910
__________________________
Successfully executed.

RISK

2012-02-26 15:00:10

Does it get lost? Does it click out of the archery range? Is that when it tries to find a target or the judge?

Thanks.

Irl

2012-02-26 15:04:41

Time to give it a try with my range tank, proggie will be posted later =]

tybkj

2012-02-26 15:15:30

It works great now, is there one solution to fix that when it has just competed it wants to check the competitor again before starting fireing? This costs alot of time that could be lots of xp.

RISK

2012-02-26 15:18:08

@ Irl : Thanks and good luck! :) Looking forward to your progress report.


@ tybkj : The only reason it'd be doing that is because your chats aren't set to 'Off'. I have the script turn them off automatically but I guess it isn't working for some people. Try it without the chats being 'On'.

Thanks!

Nebula

2012-02-26 15:21:53

Hey RISK I found this bug in my script and after looking at your code and looking at that guy's error, it's in your script too.

Basically, sometimes your player moves waaay north, to a point where sps can't detect the point used in your walk procedure (because sps doesn't read the whole minimap, but that's off topic). Here's what it looks like:

The fix? Use SPS_WalkPath instead of SPS_WalkToPos and put a point about halfway between my player in the picture, and the shooting location.

Nebula

RISK

2012-02-26 15:24:37

Ah, I see. Thank you very much, Nebula. I really appreciate the tip! I'd +rep you again if I could, but I've already +rep'd you recently, so.

I'll add a fix when I release 1.0.4. :) Gratz on Promising Newcomer, by the way. You really deserve it.


Thanks again, Nebula!

wolkano

2012-02-26 16:54:57

nice bro thanks for the release. much and much ppl have been waiting for this

thanks

tybkj

2012-02-26 17:43:30

New proggy:

RISK's Range Guilder
Script version: 1.0.3a
Time ran: 01:49:13
Competitions done: 126
Tickets gained: -27497
EXP gained: -137485
__________________________
The problem with the option of the judge still exists the options always have been off.

RISK

2012-02-26 17:56:28

@ wolkano : Thanks. :) Hope you enjoy.

@ tybkj : I'll check it out and see what I can do. I'll probably add a new system for it in 1.0.4 or so.


Thanks!

pown otto

2012-02-26 19:46:50

You should add a spot to enter your bank pin, because when you first compete you need to enter your bankpin. idk if there is a spot in the to put it but i didnt see it, this is the only thing i saw thanks :)

richymul

2012-02-26 19:50:22

epic

RISK

2012-02-26 20:05:17

Updated to 1.0.4.
Here's the change-log:
* I've [i]possibly[/i] increased the speed of the script by removing some
of the procedure that gets a new competition. I originally had it go thru
all of the dialogue because I did not know that you only had to press the
payment confirmation button. So I removed the click to continue button
and chat-box confirmation parts of the procedure.

* I have added the break system. The user options for it can be found
below where you enter your stats username and password.
Instructions for the options can be found in the main post of this thread
under the setup section.

* I have changed the default clicking speeds to be a 'bit slower so that
it will not have to close the target screen so much. As always, if
you would like it to be faster or slower, you can adjust the options in
DeclarePlayers.

* I have fixed the distance from the target center and the mouse
checker. I had the amount at 20 when it should have been at 10.
I made it 20 when I was still testing it before I
released it due to a bug I could not figure out. I fixed the bug,
but I forgot to revert the distance checker maximum
distance back to 10 from 20. It should [i]hopefully[/i]
misclick a lot less now with the distance checker
actually working now.

* I have removed a segment from my TPA mousing
function that relies on CTS 2/Hue/Saturation that was
useless code that I never really used for some reason.
I forgot to remove it, but I have now removed it.

* I have added a maximum pixel check to my TPA mousing
function that relies on CTS 2/Hue/Saturation. This will work alongside
the minimum pixel check I already had in place. I'd like some feedback
on the guard finding now that I have added that, please.

* I have changed the way mousing the confirmation button works. I've
changed from HumanMMouse (Flight's amazing function) to the regular
MMouse when clicking the confirmation button in the dialogue as it looks
a 'bit un-humanlike in my opinion when using HumanMMouse for that.

* In regards to the mousing the confirmation button update, I have also made
the range of clicking the button itself a 'bit larger to make it more human-like.
It would previously only click on the '1' and a 'bit away from it. It looked very
bot-like in my opinion, so I have updated it.

* I've fixed the antiban procedure again. Two of the errors that I thought
I had fixed in the previous update were not fixed as I made a mistake. It
should be fixed now and when it does antiban, it shouldn't stop the script
due to the angle of the screen being at the highest point.

* I've fixed a bug in the random finding. When it would find and solve a
random, it would leave the angle of the screen at the highest point, thus
causing the script to eventually log out. But I believe I have fixed this now.

* I've made the mouse speed a random speed instead of it being just one
'Preset' speed. In regards to the mouse speed, I have also increased the
chance of the random mouse speed increase in the anti-ban by a 'bit.
I have also decreased the chance of antiban happening, but not by a lot.

* I have implemented Nebula's kind suggestion to my SPS backup position
fixing method. This should help fix some of the reposition errors that some
people may have, hopefully resulting in much longer runs for some people
that have had trouble with the script recently.
- Thanks, Nebula!

* I have removed the checking if we are in combat and escaping from it
procedure for now. Until I am able to create my own combat checking and
running from combat procedures, it will stay removed. As I noticed when
another person would be in combat by misclicking on a guard, the script
will attempt to run away. But it would not as I also had a bug in the running
away part of the procedure. But since I have removed it, this bug has been
solved, of course.

* I have added a user option in the settings that will allow them to choose if
they want to have the script enable auto retaliation from the start or not. This
is to 'Cater' to the people who might have characters they do not want HP levels
on and they would rather have their character die than them to gain an HP level.

* I have changed stat reporting to be in the main loop. Even if the variables
are not being sent at this time, it will be good to have them just in case. The
progress report in the debug will still show every five minutes though.

* I have added competitions per hour and experience per hour in to the
progress report. I borrowed the code to do it from Nebula's range guilder,
I have credited them where I use it. I borrowed it because I had no idea
how to create that type of stuff. But thanks to him, I have learned how.
- Thanks again, Nebula!

* I have added a target screen checker and closer early in most repeats, just
to make sure the script will not get stuck because of the target screen being up
while the script is trying to get a new competition or a target. So that could have
been considered a bug, but I have hopefully fixed it.

* I have added a lamp reward option and box reward options
in to DeclarePlayers.


Please update your script to 1.0.4 and tell me how it goes. Thank you very much!


Paint report and new item finding will come at a later date. Perhaps in 1.0.5 or 1.0.6.


Thanks and I hope you all are enjoying my script! It really means a lot to me that you all are using my script.


@ pown otto : Why would you need to enter your pin anywhere? :) The script doesn't bank at all. Thanks for the suggestion though!

@ richymul : Thanks and enjoy my script!


Thanks again!

pown otto

2012-02-26 21:04:20

when u compete you have to enter your pin to take money out of ur money pouch, i guess i could take it out though

RISK

2012-02-26 21:06:50

Ah, I don't have a pin so I didn't encounter that. I'll make a fix for it in 1.0.5. Sorry about that!

Special thanks to EvilmanK for showing me how to add the donation button to the thread.


Thanks and I hope you all are enjoying my script! It means a lot to me. :)

pown otto

2012-02-26 21:07:57

Ok cant wait, this is a great script!

Eckoempblast

2012-02-26 21:24:19

Last proggy of 1.0.3
RISK's Range Guilder
Script version: 1.0.2
Time ran: 00:10:43
Competitions done: 11
Tickets gained: 821
EXP gained: 4105
__________________________
Successfully executed.

proggy of 1.0.4 comming up this script is beast man! scripter of the year @ risk :)

Eckoempblast

2012-02-26 21:42:44

RISK's Range Guilder
Script version: 1.0.4
Time ran: 00:14:50
Competitions done: 26
Competitions/h: 105
Tickets gained: 733
EXP gained: 3665
EXP/h: 14824

beautiful… anyways risk= scripter of the year ;) lol

RISK

2012-02-26 21:47:11

Thank you very much for the compliments, Eckoempblast. :) I really appreciate it. It means a lot to me!


Thanks again!

tybkj

2012-02-27 05:19:46

Ran for 45 minutes last night… Now going to check if I can run it for a massive amount of time.

Edit: the bug i had doesn't occur anymore. Another thing is that it had to close the window often so i have put the clicks on this:
Integers[MIN_CLICK_WAIT] := 90;
Integers[MAX_CLICK_WAIT] := 120;
Integers[MIN_TARGET_WAIT] := 800;
Integers[MAX_TARGET_WAIT] := 1100;

tybkj

2012-02-27 07:58:58

My proggy: RISK's Range Guilder
Script version: 1.0.4
Time ran: 02:18:45
Competitions done: 211
Competitions/h: 91
Tickets gained: 15269
EXP gained: 76345
EXP/h: 33014

Than a random fucked it up, starting it again:p
This + hati paws is awesome xp.

domih

2012-02-27 10:31:07

Hey there!
Great script, i have used it many times already.
gained a total of 450k xp with it!
Here's my last proggy:


RISK's Range Guilder
Script version: 1.0.4
Time ran: 02:52:39
Competitions done: 289
Competitions/h: 100
Tickets gained: 20024
EXP gained: 100120
EXP/h: 34794

-Domi

pown otto

2012-02-27 17:58:32

this is a good script but i logged in and i was here? lol


this is the upstairs jail in port sarim

Nebula

2012-02-27 18:33:35

^Thats probably because you failed a random event.

kuiper

2012-02-27 18:33:49

From: pown otto
this is a good script but i logged in and i was here? lol


this is the upstairs jail in port sarim


Probably a random :P

sandertjuh

2012-02-27 18:43:32

thanks dude the first fully working ranging guild script respect.

pown otto

2012-02-27 19:07:53

From: Nebula
^Thats probably because you failed a random event.


nah i logged in and was in the random but it was completed

RISK

2012-02-27 19:11:01

I'm not sure what happened, sorry.
Thanks for using my script.

pown otto

2012-02-27 21:32:19

Yeah it fails every random for me, it stops at random times and the most it ever ran was an hour and every time i log in im stuck in a random

illuminatiswag

2012-02-27 22:10:34

otto that is not the scripts fault it fails randoms

scar122

2012-02-27 23:49:23

thanks def going to test it out got 90 range from 40 on my 10 hp pure off one on powerbot now i has hati gloves to use 90-99 off this script hopefully if it all goes good :)

kunzy

2012-02-28 02:46:08

will try this and let u know how it goes:D thanks risk!!, ps. i died by mistakely attacking a guard eak :(

EvilmanK

2012-02-28 04:18:20

From: pown otto
nah i logged in and was in the random but it was completed


If the random was Prison Pete, you only have 15 minutes to complete the random before you fail it.

scar122

2012-02-28 06:14:08

well was watching it for a bit was doing well went and walked away for a few mins while it was taking a break come back and my acc had attacked a guard died and gained 12 hp :\ just a heads up it seems to miss click on guards when it logs back in from a break for me

polska94

2012-02-28 17:16:54

sick im getting 38k/h, have gotten 41k/h before. Script is good however it can be unstable and it usually wont run for more than 2 hours for me

Firec4pe

2012-02-28 18:38:02

It doesnt click fast enough and often gets caught in the scoring table, and just sits there

bloopy62

2012-02-28 19:09:44

Every shot. Every shot it has to waste like a second or two closing the screen. I thought that if you kept clicking it would go away and you'd automatically fire off another arrow?

RISK

2012-02-28 19:26:10

@ scar122 : Sorry about that. I'll see what I can do with a future update.

@ Polska : I'm working on stability issues.

@ Firec4pe : You can adjust how fast or slow it clicks in options in DeclarePlayers.

@ Bloopy62 : Please adjust the settings to be customized to your computer's speed and your network speed. See if that helps.


Thanks.

lipton

2012-02-29 01:04:39

Oi! This seems like a nice script, but i cant get it to log in! when i run the file it just opens up the bot and stops at loginscreen doing nothing. I tried put my account name and pass in the script but i failed. Theres probably an easy fix to this, very thankful for some help! I know im what you guys would call a leecher :( dont know much about scripting.

RISK

2012-02-29 01:17:12

If it's failing to log in, simply log the character in by pressing "Disable SMART" on the SMART interface and log yourself in to the game. It should work completely fine after that.

tybkj

2012-02-29 15:38:25

This script already got me 80-85 ranged nearly 86 thanks mate.

facefullz

2012-02-29 18:30:02

The Script work really good but i'm not shure about the spam click if it increase the ban rate or no ?

RISK

2012-02-29 19:13:30

@ tybkj : Awesome. Thanks for using my script.

@ facefullz : You can adjust the speed of the clicking to be less fast in the user options in DeclarePlayers. I don't think it would lead to a higher ban rate though.


Thanks.

domih

2012-03-01 01:11:27

RISK's Range Guilder
Script version: 1.0.4
Time ran: 03:25:44
Competitions done: 272
Competitions/h: 79
Tickets gained: 19420
EXP gained: 97100
EXP/h: 28318
BAM

illuminatiswag

2012-03-01 03:47:15

Died using this idk how lol aint lose much but this time it ran for 3 hours before stuck in random :p nice script

Itankbots

2012-03-01 10:34:57

^ lol bot killers are back i guess, they lure you to guards and kill you

wolkano

2012-03-01 13:48:46

From: Itankbots
^ lol bot killers are back i guess, they lure you to guards and kill you


bro np ''money pouch'' ;)

Powerfrog

2012-03-01 14:53:34

Tried it for a while and it… uhh… Kinda worked.

It took over 5 seconds to close the screen that tells you your score. Doesn't sound bad, but this screen shows every other second and it slows down the bot immensley.

It also walked away from the target and stood there for a couple seconds before walking back about 3 times.

This was on base settings with no changes. Anyway to improve it? (Mainly concerned about the slowness of closing the tables, although the running around is very bot-like…)

Itankbots

2012-03-01 15:35:42

From: wolkano
bro np ''money pouch'' ;)


You never lost money in the first place. they updated it over a year ago? that you dont lose gp when u die. so it didnt matter even before money pouch lol.

Nice script though. ran flawless for 2hrs for me :) Ill post a real progress report and any bugs i find later. cheers

Thanatos

2012-03-01 15:36:52

how long should i bot with this to avoid getting banned?

illuminatiswag

2012-03-01 16:26:22

From: Akyros
how long should i bot with this to avoid getting banned?


Dont bot if your afraid of getting banned go big or go home ! JK lol it all depends no one really knows "How long" one should bot to avoid a ban i botted on one of my accounts one time and within 15 mins i swear to you i got banned its a matter of luck and avoiding the ban hammer its recomended though for around 8 hours between legit and botting a day all together

Itankbots

2012-03-01 16:32:19

Lol it just misclicked on a guard and attacked it. was baby sitting tho so all its good. that was after ~3 hrs of running so not bad

RISK

2012-03-01 18:37:14

@ domih : Awesome report! I'll add it to the top reports when I get some more time. Great job.

@ Powerfrog : Adjust the mouse clicking speeds and interface is up for until speeds in DeclarePlayers. Adjust it to fit your computer speed and network speed. Mainly decrease the clicking speed times by making the min and max times higher. This will help dramatically I've found. 5 seconds sounds a 'bit far fetched, though. It should only be up for a second to two seconds before it attempts to close it. You can lower it though, if you desire. It will mis-click more though if you are not careful with that setting.

@ Thanatos : That is a tricky question. Just run it for 6 hours with 2 of those hours being total break time if you're worried.

@ Itankbots : I see, thank you for the report. I might have something to deal with the guard attacking in the next update.


@ The responses that speculate on the idea that bot killers might be back: It's possible. But I've removed the ability for them to lure the character that is botting away or 'Trick' the character. It handicapped the script in regards to combat detection and running, but as long as you aren't killed by players by having your character lured, it should be fine.

But I'll see what I can do.



Thanks.

Nebula

2012-03-01 19:08:01

Hey RISK, I was looking through your script and I noticed something that I'm pretty sure is wrong and is affecting your script's performance.

     
if ((Length(ATPA[I]) < 15) and (Length(ATPA[I]) > 40)) then
Continue;
The length of the ATPA can never be both below 15 and above 40, that's impossible. I think it should be this:
     
if ((Length(ATPA[I]) < 15) or (Length(ATPA[I]) > 40)) then
Continue;

-Nebula

RISK

2012-03-01 19:11:50

Yeah, I have that fixed in the next update of my script. Thanks for the suggestion though, Nebula.

pown otto

2012-03-01 19:20:33

great script, i've died 2 times and lost 20k+ tickets each time but im still getting xp and money :p heres a proggie

RISK's Range Guilder
Script version: 1.0.4
Time ran: 02:58:51
Competitions done: 207
Competitions/h: 69
Tickets gained: 12984
EXP gained: 64920
EXP/h: 21779

Powerfrog

2012-03-01 19:44:38

I'll try adjusting the speeds in a second when i try it again.

But they really were up for over 5 seconds. The bot feed actually said 'window open for 980ms, closing' or something like that, but it would repeat this 5-6 times before ACTUALLY closing it.

Edit: Tried it without changing anything first, and to my surprise, it worked! 1 second of the window at most!
It did inexplicably log out after about 15 minutes of me leaving it alone to make dinner, though, i didn't catch the reason it gave. =/

I got this

2012-03-02 09:06:18

Getting ~40k xp an hour, and for your next script you could add bank pin support for the first time it pays the judge?

I got this

2012-03-02 09:07:43

From: pown otto
great script, i've died 2 times and lost 20k+ tickets each time but im still getting xp and money.


Turn your auto retaliate on and it won't be worth it for people to try and lure guards to kill you

b00mheadsh0t

2012-03-02 11:38:24

RISK's Range Guilder
Script version: 1.0.4
Time ran: 00:44:55
Competitions done: 61
Competitions/h: 81
Tickets gained: 3959
EXP gained: 19795
EXP/h: 26442

a really nice, consistent 26k exp/hr. Thank you.
The only problem I noticed is that when it doesn't spam click past the target screen it takes a while for it to realise its still open and only then it closes it.

well, spoke a bit too soon. Sometimes it clicks past the targets and runs near them, then does the failsafe but before it comes back to the place it starts shooting (the failsafe doesn't execute fully) and then it click on target, finds out that its too close, starts running back and while its running back it clicks on target, or sometimes even on the guard.

tybkj

2012-03-02 16:34:08

Already got me 88 ranged, started with 80. I think you will help me getting 99 ranged.

MatchRev

2012-03-03 00:45:40

Why the hell do I sometimes end up in some random location west of seer's bank with my black d'hide body, black d' vambraces and all my archery ticket missing? This happened twice already.

I still retain my 500+ bronze arrow, glory ammy, dark bow and leather body.

Lynchh

2012-03-03 01:38:08

From: MatchRev
Why the hell do I sometimes end up in some random location west of seer's bank with my black d'hide body, black d' vambraces and all my archery ticket missing? This happened twice already.

I still retain my 500+ bronze arrow, glory ammy, dark bow and leather body.


LMFAO! Thats crazy lol

RISK

2012-03-03 01:58:36

@ pown otto : Nice report. Yeah, I'm adding combat detection and such to prevent that as much as I can. But it's hard to 'Fight'. Thanks.

@ Powerfrog : That could be due to lag. Try adjusting the SMART CPU bar on the right to be higher so that it doesn't lag as much. That might fix the problems. Also, if it errors again, please set 'ENABLE_DEBUG_MODE' to 'True' in the script setup options then PM me the debug, please. Thanks.

@ I got this : Yeah, It's scheduled for a release. It's hard to do though, ironically, as I don't know when it does appear as I don't have a bank pin and I don't really want to add one. So if anyone could tell me when the bank pin entering screen actually appears, that would help a lot as I don't want to blind script it and cause script slowdown somehow. Thanks.

@ b00mheadsh0t : I'll take a look at it and thanks for the report. Thanks again for the information.

@ tybkj : Awesome! Glad you're enjoying my script. I hope you haven't ran in to too many errors.

@ MatchRev : I am not sure why that would happen. Can you try dying by a guard at the range guild and see where it teleports you after reviving? Thanks.


Thanks again, everyone.

Powerfrog

2012-03-03 10:23:53

I've worked out the problem with the speed closing the windows. It's not that it takes too long to recognize that they're up, it's that the actual closing of the window once it decided to do it, is quite slow. (It's actually fine at the moment, but could still be sped up.)

I've noticed I'm averaging a competitions/hour of 86. That's pretty great for a almost flawless bot i can run while not watching. But i made my own little external mouse macro that had near perfect timing (but failed if the guard ever moved or a random event happened AKA can only be used on an empty world and must be babysat) and took advantage of resizable windows letting you click the target even when the window is up… Anyway. That finished exactly 160 competitions in the hour i timed it.

So from this i conclude the current script is almost twice as slow as the theoretical max speed, although it's obviously a whole lot safer and less bot like.

By the way i have less than 15 ping at all times and a computer more than capable of running runescape with no lag. So lag isn't the issue.

Again i stress i don't expect it to run 160 competitions/hour, I'm merely informing you of the theoretical max (Probably a few competition/hour short as it wasn't perfect) and to see if you could cut corners to get closer to it. The current bot is awesome as it is.

I'll be sure to activate debug mode next time i run the bot, later today.

Heres a small proggy from today. (I'm a low range level :3)

RISK's Range Guilder
Script version: 1.0.4
Time ran: 00:47:46
Competitions done: 67
Competitions/h: 84
Tickets gained: 4119
EXP gained: 20595
EXP/h: 25860

b00mheadsh0t

2012-03-03 10:37:33

Well now I think I have it set up much better, getting consistent ~3hour runs at about 26k exp/hour. Seems very nice, thank you for the script. I think the thing why it sometimes gets stuck at the target window it because it spam clicks and then waits a little bit (mostly it spamclicks through the window, but not always. I think it wouldn't hurt if you sped up the clicking and added more clicks (who cares about bans, we know the risk why we're botting. If botting, then at least go all out so stuff gets done quicker).

basically whats happening
it spam clicks 2-3 times, waits 80-100ms, and sometimes the window stays up because it was clicking only 80ms+ back. So if you kept it spam clicking more the window would less likely stay up.

Powerfrog

2012-03-03 11:29:50

From: b00mheadsh0t
Well now I think I have it set up much better, getting consistent ~3hour runs at about 26k exp/hour. Seems very nice, thank you for the script. I think the thing why it sometimes gets stuck at the target window it because it spam clicks and then waits a little bit (mostly it spamclicks through the window, but not always. I think it wouldn't hurt if you sped up the clicking and added more clicks (who cares about bans, we know the risk why we're botting. If botting, then at least go all out so stuff gets done quicker).

basically whats happening
it spam clicks 2-3 times, waits 80-100ms, and sometimes the window stays up because it was clicking only 80ms+ back. So if you kept it spam clicking more the window would less likely stay up.


You can change the click speed yourself. You'll find the lines you have to change on line 70-75.

   Integers[MIN_CLICK_WAIT]  := 10;
Integers[MAX_CLICK_WAIT] := 20;
Integers[MIN_TARGET_WAIT] := 200;
Integers[MAX_TARGET_WAIT] := 400;
This is what i have mine set up as, much faster than the default while not being so fast that it's impractical/bot-like.



I'm fairly new to colour botting, is it at all possible to run a bot in resizable window? This would totally remove the problem of the window and make the bot much faster/safer/easier.

b00mheadsh0t

2012-03-03 12:18:21

From: Powerfrog
You can change the click speed yourself. You'll find the lines you have to change on line 70-75.

   Integers[MIN_CLICK_WAIT]  := 10;
Integers[MAX_CLICK_WAIT] := 20;
Integers[MIN_TARGET_WAIT] := 200;
Integers[MAX_TARGET_WAIT] := 400;
This is what i have mine set up as, much faster than the default while not being so fast that it's impractical/bot-like.



I'm fairly new to colour botting, is it at all possible to run a bot in resizable window? This would totally remove the problem of the window and make the bot much faster/safer/easier.


Thanks for the setup man, I'll surely try it. I've decided to fool around with that wait myself, I was just too scared to do it before.

currently on this setup
Integers[MIN_CLICK_WAIT] := 52;
Integers[MAX_CLICK_WAIT] := 80;
Integers[MIN_TARGET_WAIT] := 700;
Integers[MAX_TARGET_WAIT] := 846;
exp/hour went from 28k/hour to 33k/hour.

I was just too scared to make the wait too small like you did because I thought the lagg would mess it up. But, like I said, I'll try it now.

b00mheadsh0t

2012-03-03 12:25:43

From: Powerfrog
You can change the click speed yourself. You'll find the lines you have to change on line 70-75.

   Integers[MIN_CLICK_WAIT]  := 10;
Integers[MAX_CLICK_WAIT] := 20;
Integers[MIN_TARGET_WAIT] := 200;
Integers[MAX_TARGET_WAIT] := 400;
This is what i have mine set up as, much faster than the default while not being so fast that it's impractical/bot-like.



I'm fairly new to colour botting, is it at all possible to run a bot in resizable window? This would totally remove the problem of the window and make the bot much faster/safer/easier.


for me the speed went back down to 27k/hour with these settings.
sorry for double post

Powerfrog

2012-03-03 14:14:49

From: b00mheadsh0t
for me the speed went back down to 27k/hour with these settings.
sorry for double post


I have basically no lag and only run 1 bot at a time so they work for me. If you do have lag then yeah, better stick to slower settings.

That's the best thing about editable scripts, everyone is different and we can perfect it for our own individual needs. :)

(I don't know why lag would effect your click speed though. Possibly try that with fast speed but keep the windows relatively slow to combat lag.)

Lynchh

2012-03-03 14:17:11

Ran the script and came back an hour later to find myself stuck in a random event. When I solved the random i found out that i somehow ended up in the dwarven mines? lol
EDIT: Also, I wasn't missing anything from my inventory so i'm pretty sure i didn't die. I don't think the Dwarven mines are even a spawn point lol.

Indesh

2012-03-03 14:22:45

Big respect works 99%, ran it for 1hr, 32kexp on my pure. going to run overnight, ill post again with proggy for 8-12hrs

illuminatiswag

2012-03-03 22:25:56

RISK's Range Guilder
Script version: 1.0.4
Time ran: 04:32:52
Competitions done: 416
Competitions/h: 91
Tickets gained: 28095
EXP gained: 140475
EXP/h: 30888

InH

2012-03-03 23:01:25

Doesn't work for me.. it did 5 competitions then ended..

(have it set to do 5k)

RISK

2012-03-04 05:15:58

@ Powerfrog : Yeah, I imagine there is a lot I could do to improve the speed of the script. But it's hard to maintain a good speed and balance stability. I could have it completely unstable with no fail-safes and a 'If it gets lost or gets stuck, it won't attempt to fix it' type thing. But most don't want that. So I decided to just stick with a balance of stability and speed.

Actually, the maximum competitions per hour I've seen from my own personal testing without the break system activated was about 100 competitions an hour, give or take. Of course, it'll vary person to person that uses the script and that's another iffy reason why I didn't choose to go for a more unstable version. Because what may work for me, won't work for others. Hence the customizable options.

Also, I wish it was possible with ease @ the re-sizable window question. That might improve the speed dramatically.

Nice report, by the way.

Thanks for the information and thanks for using my script. :)


@ Lynchh : Some random events will teleport you to a random location if you exceed a maximum time limit in each random event, even if you log off, that timer is still going. So that might explain it. Thanks.


@ Indesh : Thanks. :) Looking forward to it.


@ illuminatiswag : Awesome report! I'll add it when I update the script to the next version in the next day or two.


@ InH : I need a 'bit more information than that, please. Can you set 'ENABLE_DEBUG_MODE := False' to 'ENABLE_DEBUG_MODE := True' and then PM me what the debug (The white box under the Simba code) says and the images that the script gives you? Thanks!



Glad you all are using my script and enjoying it. :) I'll see what I can do about speeding the script up even more. I know I need to update my window closing and target firing procedure to be more speedy and clean.

Thanks again.

mageman

2012-03-04 08:46:25

Testing this now
Changed the timers abit to make it bit faster


RISK's Range Guilder
Script version: 1.0.4
Time ran: 00:14:14
Competitions done: 22
Competitions/h: 92
Tickets gained: 1625
EXP gained: 8125
EXP/h: 34250
__________________________

will post new one when it stops/when i stop it

mageman

2012-03-04 11:23:44

RISK's Range Guilder
Script version: 1.0.4
Time ran: 01:56:50
Competitions done: 202
Competitions/h: 103
Tickets gained: 14417
EXP gained: 72085
EXP/h: 37019

this what i got , script stopped when mime event :s

helloitsmyname

2012-03-04 12:00:29

Hey just a warning it attacks the guards sometimes so keep a ring of life on, it saved me majorly. other than that it is an all around great script, will post some proggies later.

illuminatiswag

2012-03-04 12:01:56

From: MatchRev
Why the hell do I sometimes end up in some random location west of seer's bank with my black d'hide body, black d' vambraces and all my archery ticket missing? This happened twice already.

I still retain my 500+ bronze arrow, glory ammy, dark bow and leather body.


Means you died wear ring of life this has happened to me a couple times i unintalled simba reinstalled and it stoped happening to me try that best of luck

heres another proggy

__________________________

RISK's Range Guilder
Script version: 1.0.4
Time ran: 04:38:08
Competitions done: 414
Competitions/h: 89
Tickets gained: 28137
EXP gained: 140685
EXP/h: 30349
__________________________

Dude your script is the best range guild script i ever used and i appreciate what you have given us :)
started at 46 range at 76 now going for 80 on my pure :p

helloitsmyname

2012-03-04 20:34:38

RISK's Range Guilder
Script version: 1.0.4
Time ran: 02:37:31
Competitions done: 256
Competitions/h: 97
Tickets gained: 16370
EXP gained: 81850
EXP/h: 31177

BE REAL

2012-03-05 03:55:12

Hello. Thank you for the script, it is flawless, but I was wondering if you can help me configure it so that I can use my web browser instead of SMART. I tried putting // in front of all the SMART_ but I still couldn't get the script to function.

botting101

2012-03-06 11:36:56

Perfect Script man! been running for 10 MINS! flawless great script man keep it up!

Blazefree

2012-03-06 14:42:54

The script cannot find the competition judge to start.

RISK

2012-03-07 08:35:00

Thanks for the reports, everyone. :) I really appreciate you all using my script.


@ BE REAL : I'll add an easy way to disable SMART use in 1.0.5 of my script. Thanks!

@ Blazefree : Please start next to the judge and make sure he is in sight of your character. Thanks!


1.0.5 will be out soon with many bug fixes and 'Fixes' to how people can break a person using my script. Thanks to my close friend for helping me find the ways. I won't give exact details on how to break the script, but there are many ways. Good thing most of the legits haven't thought of them yet.

1.0.5 also has a few procedure rebuilds that will fix many bugs that make the script bot-like. Along with a new click type that will potentially increase the XP/h along with increased stability.

Along with that 'bit of information, I will stop any 'Major' updates to the script like 1.0.5 for a while. I am going to be focusing on other scripts of mine that will be sold on other websites. But I won't stop fixing any bugs that occur with this script, of course.


Thanks, everyone. Oh and from SRL stats:
RISK's Range Guilder has total running time of 83 days, 14:30:00 with 22604 individual commits. 



Thank you again, everyone. I really appreciate it.

jjwow2

2012-03-08 00:30:06

Keeps saying that it cant see the targets on the screen. waiting…


Error: Exception: The given DTM Index[6] doesn't exist at line 136
The following DTMs were not freed: [SRL - Lamp bitmap, 1, 2]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap]

bloopa1

2012-03-08 01:14:14

I could acheive solid 2+ hr sesions with this script :) great combo of xp and money!
great script sorry i have no info on why it logged out, was botting to hard to check!!

Blazefree

2012-03-08 18:44:12

I'm still starting right next to the judge and the script cannot find him.

US Marine

2012-03-08 19:06:13

Lovely script, working amazing for me. Thanks for it.

Omega Supreme

2012-03-08 19:08:46

Just like a nice script thats really going to help out those pures, but isnt ban rate at Range guild fairly high?

Oh and your signature is brilliant.

wolkano

2012-03-09 16:43:37

RISK's Range Guilder
Script version: 1.0.4
Time ran: 05:03:42
Competitions done: 327
Competitions/h: 64
Tickets gained: 22843
EXP gained: 114215
EXP/h: 22564

damm :/ 22k xp p/h on the old bots (with no colour) it was like 40k xp/hour :(? how is that possible?

FifthDimension

2012-03-10 12:55:37

For all the work put into this it's way too glitchy, constantly misclicks targets, looks like the biggest bot ever, and randomly logs after it fucks up.

EDIT: This is disgusting just tried Nebulas bot and it was even worse. I'm seriously starting to doubt color, it can't even play a range guild game, which is the simplest minigame. And yes I have fiddled with the settings after it was quite obvious it was failing epicly and nothing worked.

Before the nuke on bots like RSBuddy I could easily get 40k xp an hour flawlessly, on color it can't even find the judge and if it can then it can't find the targets. Saddening this is what botting is at.

EDIT 2: I realize I sound like a huge leecher but seriously I have a good point.

diehardd25

2012-03-10 15:47:42

i used riyyi range guild and i average 38k - 40k/hr. Only problem is this bot doesnt solve randoms

la102

2012-03-10 16:57:33

come on guys. getting 20k xp per hour is fantastic since your not even playing the game! without color bots you will earn 0xp per hour, so stop crying. obviously it would be nice if it solved randoms, made you doritoes and deep fried ice cream, but it doesn't. so when you get a random, solve it yourself. OR EVEN BETTER, make your own script. lord of leech.

Goldcrash

2012-03-12 06:39:08

Great script :) but after a while its get stuck in the skill guide. Is there anyway too fix that?

RISK's Range Guilder
Script version: 1.0.4
Time ran: 00:25:52
Competitions done: 31
Competitions/h: 71
Tickets gained: 2164
EXP gained: 10820
EXP/h: 25097


wolkano

2012-03-12 09:01:39

i know how to bro
you need to unable that it show the skill guide so right click on xp and toggle xp pop-up

gl

ttm nick

2012-03-12 20:22:34

one thing i have noticed is that it has to exit out of the target screen a lot, so you should speed up the mouse clicks, that would improve the p/h by a ton, just saying :)

Recondyt

2012-03-13 04:57:51

great script RISK i really mean that
people see all its flaws and its mistakes and make it out to be a bad script

but if you babysit while its running and keep a close eye
its easy to stop and restart the script

im not a scripter myself but im trying to learn so i cant name all the functions
but i like the random mouse movement is uses to close the target view

here's a short proggy:

RISK's Range Guilder
Script version: 1.0.4
Time ran: 00:39:36
Competitions done: 61
Competitions/h: 92
Tickets gained: 4912
EXP gained: 24560
EXP/h: 37212

thanks again, i will be getting 99 with this script
hopefully before the next nuke

wolkano

2012-03-13 06:44:20

wtf how you get 37k xp per hour you edited somthing in the script?
i get 22k xp/h

Goldcrash

2012-03-13 12:08:37

From: wolkano
i know how to bro
you need to unable that it show the skill guide so right click on xp and toggle xp pop-up

gl


thx will try :)

SStefan64

2012-03-13 17:21:55

A problem I've encountered. I login and everything is okay until my character buys arrows and then he doesnt equip them? I dont get it…. it just says "The object is not on the screen. Waiting."

How do i fix this?

Basically it shoots arrows and everything is good and then it cannot find the judge apparently? and go through that whole process..

havene

2012-03-13 22:36:30

Wow, this works good but as another user said it constantly gets stuck on target screen and if you could speed up clicks, that would be amazing!!!

YoHoJo

2012-03-13 22:43:23

Closed on Request