SRL Archive - News and General

Help updating SRL!!


the scar noob

2008-07-01 19:04:32

Hiya fellow member!

I thought today about why we shouldn't help the SRL Devs? We can help them updating SRL, so that we have an updated version of SRL pretty fast..

I know that we can't update it as good as the devs (hmm maybe..:p) but we can do our best helping them. Another point is, the faster we all can help updating SRL (a bit reliable), the sooner we can start auto a bit again and then the devs can make our updated version better without having 10000 PM's from noobs asking to updated SRL as fast as possible.

Who wants to help the devs out? Maybe you..?

Thank you for reading,

-Tsn.;)

P1nky

2008-07-01 19:09:35

and we can do a BETA version of srl since the srl members helped and once srl devs do there work (which can be later on, may take week or so).

good idea m8

the scar noob

2008-07-01 19:15:07

From: P1NKY
and we can do a BETA version of srl since the srl members helped and once srl devs do there work (which can be later on, may take week or so).

good idea m8


Thanks:) You kinda made a summary of what I was suggesting:p

But I want to know who is willing to help.. We could organise the work and split the people in groups, but I first want to know who is willing to help;)

-Tsn.

skilld u

2008-07-01 19:16:08

I'll Help.

the scar noob

2008-07-01 19:36:32

From: skilld u
I'll Help.


Thank you, but we'll need more ppl;)

I'll check again tomorow.. 1 thing, Ican't do anything Thursday, cause I'm going to the bios then:)

Goodnight,

-Tsn.

Bonfield

2008-07-01 21:21:27

i can help out

Timer

2008-07-01 21:41:13

Me!!!

//Login Player BETA
Function LoginPlayer: Boolean;

Var
Tries: Integer;

Begin
If ((CurrentPlayer + 1) > HowManyPlayers) Then
Exit;
MouseBox(361, 168, 400, 173, 1);
Wait(1000 + Random(500));
Mouse(315, 258, 20, 2, True);
Wait(100 + Random(50));
TypeSend(Players[CurrentPlayer].Name);
Mouse(315, 325, 20, 2, True);
Wait(100 + Random(50));
TypeSend(Players[CurrentPlayer].Pass);
Wait(1000 + Random(500));
MouseBox(357, 364, 400, 368, 1);
While (Not (GetColor(316, 396) = 153)) Do
Begin
Inc(Tries);
Wait(100);
If (Tries >= 100) Then
Begin
Players[CurrentPlayer].Active := False;
CurrentPlayer := CurrentPlayer + 1;
MouseBox(337, 401, 420, 408, 1);
Wait(2000 + Random(500));
LogInPlayer;
Exit;
End;
End;
MouseBox(206, 331, 563, 367, 1);
Tries := 0;
While (Not (GetColor(627, 85) = 16777215)) Do
Begin
Inc(Tries);
Wait(100);
If (Tries >= 600) Then
Begin
Players[CurrentPlayer].Active := False;
CurrentPlayer := CurrentPlayer + 1;
MouseBox(337, 401, 420, 408, 1);
Wait(2000 + Random(500));
LogInPlayer;
Exit;
End;
End;
Wait(2000 + Random(500));
Result := True;
End;

//Set Bar BETA
procedure SetBar(Bar: String; Point: Integer);
var
P: TPoint;
x, y, z: integer;
begin
if (not LoggedIn) then Exit;
if (Point < 0) or (Point > 4) then Exit;
z := GetCurrentTab;
GameTab(11);
Wait(500 +Random(50));
Case (LowerCase(Bar)) Of
'brightness':
Begin
MouseBox(572, 237, 600, 265, 1);
Wait(2000 + Random(500));
If (Not (GetColor(202, 36) = 0)) Then Exit;
Mouse(82 + (31 * Point), 296, 1, 1, True);
Wait(500 + Random(400));
MouseBox(481, 31, 490, 39, 1);
Wait(2000 + Random(500));
While (GetColor(202, 36) = 0) Do
Begin
Wait(2000 + Random(500));
MouseBox(481, 31, 490, 39, 1);
End;
End;
'music':
Begin
MouseBox(627, 234, 656, 265, 1);
Wait(2000 + Random(500));
If (Not (GetColor(211, 56) = 0)) Then Exit;
Mouse(204 + (14 * Point), 176, 1, 1, True);
Wait(500 + Random(400));
MouseBox(323, 50, 331, 58, 1);
Wait(2000 + Random(500));
While (GetColor(211, 56) = 0) Do
Begin
Wait(2000 + Random(500));
MouseBox(323, 50, 331, 58, 1);
End;
End;
'effects':
Begin
MouseBox(627, 234, 656, 265, 1);
Wait(2000 + Random(500));
If (Not (GetColor(211, 56) = 0)) Then Exit;
Mouse(204 + (14 * Point), 176, 1, 1, True);
Wait(500 + Random(400));
MouseBox(323, 50, 331, 58, 1);
Wait(2000 + Random(500));
While (GetColor(211, 56) = 0) Do
Begin
Wait(2000 + Random(500));
MouseBox(323, 50, 331, 58, 1);
End;
End;
'area':
Begin
MouseBox(627, 234, 656, 265, 1);
Wait(2000 + Random(500));
If (Not (GetColor(211, 56) = 0)) Then Exit;
Mouse(204 + (14 * Point), 176, 1, 1, True);
Wait(500 + Random(400));
MouseBox(323, 50, 331, 58, 1);
Wait(2000 + Random(500));
While (GetColor(211, 56) = 0) Do
Begin
Wait(2000 + Random(500));
MouseBox(323, 50, 331, 58, 1);
End;
End;
End;
GameTab(z);
end;

SMART Link:
http://(*prefix*).runescape.com/p0,s1

the scar noob

2008-07-02 09:06:59

Hah! Timer is in for sure! (always liked ya:p)

Everyone who wants to help say so, also tell me with what you want to help.
We have 3 peepz atm, so we need more to even begin this:)

-Tsn.

belgin fish

2008-07-03 22:46:05

lol, i guesse i could try, im not that great of a scriptor but if you tell me what to do i can always try!

Daniel

2008-07-03 23:13:28

Am i alright to join? :p

Raskolnikov

2008-07-03 23:34:59

I can help! I already pmed you just tell me what I can do :D

Daniel

2008-07-03 23:38:14

From: Cut em2 it
I can help! I already pmed you just tell me what I can do :D

No you can't :p Only cool people can help :p

Raskolnikov

2008-07-03 23:43:00

Hehe very funny :) I'm trying to get more and more pictures to post when someone does something so:


Cut em2 it

Btw, I'll make the thread :p

the scar noob

2008-07-04 19:50:38

Aaaaaaaah, sorry dudes but I've got a busy shedule coming days:)
You see, I only found time right now, 01:48 AM xD.

You all are great people! Why don't you already start to update something? I'll look up this thread when I find the time.

Once again, very sorry… I began this thread when I had completely nothing to do. Well, I hope we'll be able to update SRL as faster as the devs;):p

Thank you for reading (and hopefully understanding)

-Tsn.

Raskolnikov

2008-07-04 20:32:55

I made one:

FindFire, I notice that the fires had changed and that the one in srl uses a deformed bitmap so here it is.

function FindFire: boolean;
var
ThosePoints: TPointArray;
cts: integer;
begin
cts := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, ThosePoints, 270891, MSX1, MSY1, MSX2, MSY2, 4);
if ThosePoints[1].x > 0 then Result := True;
ColorToleranceSpeed(cts);
end;

I am also making a ClickWorldMap one.
Edit: ClickWorldMap…

function ClickWorldMap: boolean;
var
cts: integer;
ThePoints: TPointArray;
MidPoint: TPoint;
begin
cts := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
if not LoggedIn then Exit;
FindColorsSpiralTolerance(666, 349, ThePoints, 6335865, 645, 340, 683, 370, 4);
MidPoint := MiddleTPA(ThePoints);
Mouse(MidPoint.x, MidPoint.y, 3, 3, true);
Wait(4000);
while 0 = GetColor(242, 361) do
Wait(1);
Result := True;
end;

Cut em2 it

Metagen

2008-07-04 21:53:07

Maybe if a dev came on here and told us what needed fixing it would keep us efficient?

Edit: but ill get started on some random stuff

Metagen

2008-07-04 22:48:47

Here we go, i just made a function to set audio options (modified bank procedure and modified old audio bar procedure)


function AudioMenu : boolean; //basically a copy of bankscreen?
begin
if FindColor(x, y, 2070753, 187, 35, 302, 67) then
begin
writeln(inttostr(x) + ' ' + inttostr(y));
Result := IsTextAtEx(x - 3, y - 2 , 'Audio', 0, upchars, True, False, 0, 0,
2070753)
end else if FindColorTolerance(x, y, 2070753, 187, 35, 302, 67, 30) then
begin
writeln(inttostr(x) + ' ' + inttostr(y));
Result := IsTextAtEx(x - 3, y - 2 , 'Audio', 30, upchars, True, False, 0, 0,
GetColor(x, y));
end;
end;

function OpenAudioMenu : Boolean; //entirely new
var
M : integer;
begin
if (not LoggedIn) then Exit;
if AudioMenu then
begin
result := true;
Exit;
end;

GameTab(11);
Wait(100 +Random(50));
Mouse(640, 248, 10, 10, true);

MarkTime(M);
repeat
wait(50);
if AudioMenu then
begin
result := true;
exit;
end;
until (TimeFromMark(M) > 5000)
Writeln('Could not open Audio Menu');
result := false;
end;

procedure SetAudioBar(Bar: String; Point: Integer; Mono : Boolean); //modification of the old one
var
P: TPoint;
x, y: integer;
begin
if (not LoggedIn) then Exit;
if (Point < 0) or (Point > 4) then Exit;
GameTab(11);
Wait(100 +Random(50));
if not OpenAudioMenu then Exit;
if Mono then
begin
if not FindColorTolerance(x, y, 181, 238 -6, 268 -6, 238 +6, 268 +6, 10) then
Mouse(238, 268, 3, 3, True);
end else
if not FindColorTolerance(x, y, 181, 305 -6, 268 -6, 305 +6, 268 +6, 10) then
Mouse(305, 268, 3, 3, True);

case LowerCase(Bar) of
'volume': P := IntToPoint(202 + (Point * 26) , 121);
'effect': P := IntToPoint(202 + (Point * 26) , 177);
'area': P := IntToPoint(202 + (Point * 26) , 236);
else WriteLn('ERROR: Unknown bar!');
end;

if not FindColorTolerance(x, y, 10172937, P.x -6, P.y -6, P.x +6, P.y +6, 10) then
Mouse(P.x, P.y, 3, 3, True);

end;


properly tagged ones here


{*******************************************************************************
function AudioMenu: Boolean;
by: SRL Dev Team, Modified by: Metagen
Description: Finds AudioMenu. Returns true if Found.
*******************************************************************************}

function AudioMenu : boolean;
begin
if FindColor(x, y, 2070753, 187, 35, 302, 67) then
begin
writeln(inttostr(x) + ' ' + inttostr(y));
Result := IsTextAtEx(x - 3, y - 2 , 'Audio', 0, upchars, True, False, 0, 0,
2070753)
end else if FindColorTolerance(x, y, 2070753, 187, 35, 302, 67, 30) then
begin
writeln(inttostr(x) + ' ' + inttostr(y));
Result := IsTextAtEx(x - 3, y - 2 , 'Audio', 30, upchars, True, False, 0, 0,
GetColor(x, y));
end;
end;

{*******************************************************************************
function OpenAudeioMenu : Boolean;
by: Metagen
Description: Opens Audio Options. Returns true if opened.
*******************************************************************************}

function OpenAudioMenu : Boolean;
var
M : integer;
begin
if (not LoggedIn) then Exit;
if AudioMenu then
begin
result := true;
Exit;
end;

GameTab(11);
Wait(100 +Random(50));
Mouse(640, 248, 10, 10, true);

MarkTime(M);
repeat
wait(50);
if AudioMenu then
begin
result := true;
exit;
end;
until (TimeFromMark(M) > 5000)
Writeln('Could not open Audio Menu');
result := false;
end;

{*******************************************************************************
procedure SetAudioBar(Bar: String; Point: Integer; Mono : Boolean);
By: Nielsie95, Modified by: Metagen
Description: Set the value of a bar and mono in the Audio Options Screen.
Valid argumentsfor bar are:
* Volume
* Effect
* Area
Point Range: 1 - 4
*******************************************************************************}

procedure SetAudioBar(Bar: String; Point: Integer; Mono : Boolean);
var
P: TPoint;
x, y: integer;
begin
if (not LoggedIn) then Exit;
if (Point < 0) or (Point > 4) then Exit;
GameTab(11);
Wait(100 +Random(50));
if not OpenAudioMenu then Exit;
if Mono then
begin
if not FindColorTolerance(x, y, 181, 238 -6, 268 -6, 238 +6, 268 +6, 10) then
Mouse(238, 268, 3, 3, True);
end else
if not FindColorTolerance(x, y, 181, 305 -6, 268 -6, 305 +6, 268 +6, 10) then
Mouse(305, 268, 3, 3, True);

case LowerCase(Bar) of
'volume': P := IntToPoint(202 + (Point * 26) , 121);
'effect': P := IntToPoint(202 + (Point * 26) , 177);
'area': P := IntToPoint(202 + (Point * 26) , 236);
else WriteLn('ERROR: Unknown bar!');
end;

if not FindColorTolerance(x, y, 10172937, P.x -6, P.y -6, P.x +6, P.y +6, 10) then
Mouse(P.x, P.y, 3, 3, True);

end;

Hobbit

2008-07-04 22:50:45

I will help.

I need a list of things to do though… or assigned task.
I work better that way if i have a specific job :p

We can add in lmouse and lcmouse in new srl! Oh Boy :p

BobboHobbo

2008-07-04 23:03:58

Great idea. And yep Im same with Hobbit, what needs updating :)

Metagen

2008-07-04 23:08:08

now that i think about it. devs probly already done this :\

munk

2008-07-05 01:08:16

I was autoing the night after the update :D

I guess I'll post my quickfixes.

in TabExists, change gametab 14 to:

14: Result := (GetColor(747,1) = 65536);
in GetCurrentTab, change 14 to:

14: b := (GetColor(751, 14) = 1846986);
but with the new gametab it kinda unhighlights the tab, so i just made the function default to 14, because there has to be some gametab selected, so if none are selected chances are it is now gametab 14 :) just add result:=14; before the last end;

alright so that'll take care of logout; and then for login I just did a real quick fix to loginPlayer:

Function LoginPlayer : boolean;
var
ClickHereToPlay, i, loginText,
CHx, CHy, c, LastPlayer,Mark : Integer;
Options : TStringArray;
OneActive : Boolean;
Actions : TVariantArray;
begin
Result := False;
OneActive := False;
if LoggedIn = False then
begin;
if (not (Players[CurrentPlayer].Active)) then
begin;
WriteLn('Current player is not Active...');
Repeat
For I := 0 to HowManyPlayers - 1 do
if players[I].Active = true then
OneActive := True;
if OneActive = True then
Break;
Wait(60000);
until false
end;
ActivateClient;
Wait(900 + random(60));
if findTexT(chx,chy,'xis',statChars,329,157,430,200) then
begin
mouse(359,167,40,7,true);
wait(500+random(500));
TypeSend(Players[CurrentPlayer].Name);
Wait(100 + Random(100));
TypeSend(Players[CurrentPlayer].pass);
end;
Mark := GetSystemTime;
repeat
Wait(Random(250) + 100);
if (GetSystemTime - Mark) > 35000 then Break;
until not FindTextTpa(65535,0,273, 177,483, 224,'...',statChars,Nothing);
Mark := GetSystemTime;
Repeat
if FindTextTpa(65535,0,273, 177,483, 224,'...',statChars,Nothing) or //Still waiting to log in
FindTextTpa(65535,0,273, 177,483, 224,'trans',statChars,Nothing) then //Your account is beeing transfered
begin;
Wait(1000 + random(500));
end else
begin;
if (GetSystemTime - Mark) > 180000 then
begin
if (GetSystemTime - Mark) > 240000 then
begin;
NextPlayer(false);
Exit;
end;
WriteLn('three minutes have passed');
WriteFileString(TheFile, Chr(13) + 'THREE MINUTES HAVE PASSED!!!' +
Chr(13));
ActivateClient;
end;
Options := ['nter your','already','nvalid','excee','full','offl','rror','ontact','reject','reload',
'updat','disabled','member','elcom','incorrect'];
OneActive := False;
For I := 0 to High(Options) do
if FindTextTpa(65535,0,273, 177,483, 224,Options[I],statChars,Nothing) then
begin;
OneActive := True;
Break;
end;
if OneActive then
begin;
FreeBitmap(ClickHereToPlay);
SetLength(Actions,2);
Case Options[I] of
'reload' : begin; //Runescape updated
WriteLn('ERROR. RuneScape has been updated. Script Terminated.');
Terminatescript;
end;
'disabled' : begin; //Your account has been disabled..
WriteLn('Your account has been disabled');
Players[CurrentPlayer].loc := 'DISABLED';
NextPlayer(False);
Exit;
end;
'member' : begin; // You need a Members account...
WriteLn('You need a Members account...');
Players[CurrentPlayer].loc := 'Non-Member';
NextPlayer(False);
exit;
end;
'already' : begin //Account already logged in
Actions := ['Your account is already logged in',0];
LastPlayer := CurrentPlayer;
repeat
CurrentPlayer := (CurrentPlayer + 1) mod HowManyPlayers;
Wait(200);
until (Players[CurrentPlayer].Active) and (CurrentPlayer <> LastPlayer);
end;
'nvalid' : begin;// Invalid Username. 3 attempts. If fails, username/pass incorrect
Actions := ['Invalid Username \ Password',0];
Inc(SRL_Attempts);
if SRL_Attempts > 3 then
begin;
Players[CurrentPlayer].Loc := 'Login ERROR';
SRL_Attempts := 0;
Nextplayer(False);
Exit;
end;
end;
'excee' : Actions := ['Login attempts exceeded. Please wait 1 minute and try again.',60000];
'offl' : Actions := ['Unable to connect Login Server offline.',(20000) + Random(6000)]; // Unable to connect. Login Server offline.
'nter your': Actions := ['Enter your username and password',0];//Login failed
'full' : Actions := ['World is full.',5000]; //World is full =]
'rror' : Actions := ['Error Connecting.',10000]; //Error, connection timed out?
'ontact' : Actions := ['Error loading your profile.',2000]; // Error loading your profile. Will attempt to re-login 5 more times.)
'reject' : Actions := ['Login server rejected session.',1000]; // Login server rejected session.
'updat' : Actions := ['The Server is being updated.',60000]; // The Server is being updated. Please wait 1 minute.
'elcom' : Actions := ['Welcome.',0];
'incorrect': Actions := ['To many incorrect logins.',60000 * 5]; //Wrong logins baby.
end;
Writeln(Actions[0]);
Wait(Actions[1] + Random(100));
LoginPlayer;
Exit;
end;
end;
Wait(1000);
until {(FindBitmapToleranceIn(ClickHereToPlay, CHx, CHy, 250, 270, 530, 390,
5))}(getColor(668,136)=0) or FindColor(CHx, CHy, 723587, 522, 5, 560, 39);
Wait(1000 + Random(500));
if (getColor(668,136)=0) then
Mouse(210, 333,300, 30, True) // Clicks randomly on the button
else
Writeln('Found Compass');
repeat
Wait(1000);
c := c + 1;
until ((LoggedIn = True) or (c >= 600));
end;
if LoggedIn then
begin
PlayerStartTime := (GetSystemTime div 1000); // PlayerStartTime
if Length(Players[CurrentPlayer].NickTPA) < 2 then
begin;
Writeln('Creating the NickTPA.');
if Players[CurrentPlayer].Nick <> '' then
Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Nick, UpChars)
else
begin;
Writeln('Nickname isnt set, taking the username instead..');
Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Name, UpChars);
end;
end;
WriteFileString(TheFile, Chr(13) + 'Current player: '+ UpperCase(Players[CurrentPlayer].Name) + Chr(13)); //* Save NAME to file
end;
end;

hope that helps.

n3ss3s

2008-07-05 05:40:02

Thank you for all the fixes, but unfortunately Zephyr ate Andrew's update for breakfast, I'm using the dev SRL and ForeFeathers atleast works fine, including SetBrightness, login, logout etc.

Ashur2Good

2008-07-05 05:49:57

Indeed i was using Forefeathers As well training my pure. I think the log in procedure is to fast. It gets the job done though

the scar noob

2008-07-05 05:50:16

@Cut & meta: Wow, thank you! You guys don't only say you gonna help, but you really DO it:p Thank again for the effort!

@N3s: what ya mean? SRL is already updated?? If that's true, then this thread is kinda useless? :s

-Tsn.

Naum

2008-07-05 06:07:40

Zephy eats Updates? *Shocked!*

Hobbit

2008-07-05 16:25:07

From: the scar noob
@N3s: what ya mean? SRL is already updated?? If that's true, then this thread is kinda useless? :s


There is always the Dev Rev before Public Rev.
So it's not surprising that their Rev is already fixed.
Its basically for testing and making sure everything is proper etc. And a few little bonuses i believe…

MylesMadness

2008-07-05 17:16:30

What, the mod isn't higher then dev so you don't know. Or won't tell :p

Hobbit

2008-07-05 22:03:27

From: Mylesmadness
What, the mod isn't higher then dev so you don't know. Or won't tell :p


I do not have access to Dev Rev or forums
I am mod… not Dev/Mod
Just as Devs have no access to mod/admin forums unless they are dev/mod.

So i guess dev and more are same level… just they manage SRL the product, Mods manage SRL the forums. And have moderating powers that devs don't

BobboHobbo

2008-07-05 23:03:40

From: Hobbit
I do not have access to Dev Rev or forums
I am mod… not Dev/Mod
Just as Devs have no access to mod/admin forums unless they are dev/mod.

So i guess dev and more are same level… just they manage SRL the product, Mods manage SRL the forums. And have moderating powers that devs don't


But then what can T3h s3x see then?

Camaro'

2008-07-08 11:17:52

im sorry for bumping! i had posted this thinking it was the new thread button..

Harry

2008-07-08 13:41:19

From: munk
I was autoing the night after the update :D

I guess I'll post my quickfixes.

in TabExists, change gametab 14 to:

14: Result := (GetColor(747,1) = 65536);
in GetCurrentTab, change 14 to:

14: b := (GetColor(751, 14) = 1846986);
but with the new gametab it kinda unhighlights the tab, so i just made the function default to 14, because there has to be some gametab selected, so if none are selected chances are it is now gametab 14 :) just add result:=14; before the last end;

alright so that'll take care of logout; and then for login I just did a real quick fix to loginPlayer:

Function LoginPlayer : boolean;
var
ClickHereToPlay, i, loginText,
CHx, CHy, c, LastPlayer,Mark : Integer;
Options : TStringArray;
OneActive : Boolean;
Actions : TVariantArray;
begin
Result := False;
OneActive := False;
if LoggedIn = False then
begin;
if (not (Players[CurrentPlayer].Active)) then
begin;
WriteLn('Current player is not Active...');
Repeat
For I := 0 to HowManyPlayers - 1 do
if players[I].Active = true then
OneActive := True;
if OneActive = True then
Break;
Wait(60000);
until false
end;
ActivateClient;
Wait(900 + random(60));
if findTexT(chx,chy,'xis',statChars,329,157,430,200) then
begin
mouse(359,167,40,7,true);
wait(500+random(500));
TypeSend(Players[CurrentPlayer].Name);
Wait(100 + Random(100));
TypeSend(Players[CurrentPlayer].pass);
end;
Mark := GetSystemTime;
repeat
Wait(Random(250) + 100);
if (GetSystemTime - Mark) > 35000 then Break;
until not FindTextTpa(65535,0,273, 177,483, 224,'...',statChars,Nothing);
Mark := GetSystemTime;
Repeat
if FindTextTpa(65535,0,273, 177,483, 224,'...',statChars,Nothing) or //Still waiting to log in
FindTextTpa(65535,0,273, 177,483, 224,'trans',statChars,Nothing) then //Your account is beeing transfered
begin;
Wait(1000 + random(500));
end else
begin;
if (GetSystemTime - Mark) > 180000 then
begin
if (GetSystemTime - Mark) > 240000 then
begin;
NextPlayer(false);
Exit;
end;
WriteLn('three minutes have passed');
WriteFileString(TheFile, Chr(13) + 'THREE MINUTES HAVE PASSED!!!' +
Chr(13));
ActivateClient;
end;
Options := ['nter your','already','nvalid','excee','full','offl','rror','ontact','reject','reload',
'updat','disabled','member','elcom','incorrect'];
OneActive := False;
For I := 0 to High(Options) do
if FindTextTpa(65535,0,273, 177,483, 224,Options[I],statChars,Nothing) then
begin;
OneActive := True;
Break;
end;
if OneActive then
begin;
FreeBitmap(ClickHereToPlay);
SetLength(Actions,2);
Case Options[I] of
'reload' : begin; //Runescape updated
WriteLn('ERROR. RuneScape has been updated. Script Terminated.');
Terminatescript;
end;
'disabled' : begin; //Your account has been disabled..
WriteLn('Your account has been disabled');
Players[CurrentPlayer].loc := 'DISABLED';
NextPlayer(False);
Exit;
end;
'member' : begin; // You need a Members account...
WriteLn('You need a Members account...');
Players[CurrentPlayer].loc := 'Non-Member';
NextPlayer(False);
exit;
end;
'already' : begin //Account already logged in
Actions := ['Your account is already logged in',0];
LastPlayer := CurrentPlayer;
repeat
CurrentPlayer := (CurrentPlayer + 1) mod HowManyPlayers;
Wait(200);
until (Players[CurrentPlayer].Active) and (CurrentPlayer <> LastPlayer);
end;
'nvalid' : begin;// Invalid Username. 3 attempts. If fails, username/pass incorrect
Actions := ['Invalid Username \ Password',0];
Inc(SRL_Attempts);
if SRL_Attempts > 3 then
begin;
Players[CurrentPlayer].Loc := 'Login ERROR';
SRL_Attempts := 0;
Nextplayer(False);
Exit;
end;
end;
'excee' : Actions := ['Login attempts exceeded. Please wait 1 minute and try again.',60000];
'offl' : Actions := ['Unable to connect Login Server offline.',(20000) + Random(6000)]; // Unable to connect. Login Server offline.
'nter your': Actions := ['Enter your username and password',0];//Login failed
'full' : Actions := ['World is full.',5000]; //World is full =]
'rror' : Actions := ['Error Connecting.',10000]; //Error, connection timed out?
'ontact' : Actions := ['Error loading your profile.',2000]; // Error loading your profile. Will attempt to re-login 5 more times.)
'reject' : Actions := ['Login server rejected session.',1000]; // Login server rejected session.
'updat' : Actions := ['The Server is being updated.',60000]; // The Server is being updated. Please wait 1 minute.
'elcom' : Actions := ['Welcome.',0];
'incorrect': Actions := ['To many incorrect logins.',60000 * 5]; //Wrong logins baby.
end;
Writeln(Actions[0]);
Wait(Actions[1] + Random(100));
LoginPlayer;
Exit;
end;
end;
Wait(1000);
until {(FindBitmapToleranceIn(ClickHereToPlay, CHx, CHy, 250, 270, 530, 390,
5))}(getColor(668,136)=0) or FindColor(CHx, CHy, 723587, 522, 5, 560, 39);
Wait(1000 + Random(500));
if (getColor(668,136)=0) then
Mouse(210, 333,300, 30, True) // Clicks randomly on the button
else
Writeln('Found Compass');
repeat
Wait(1000);
c := c + 1;
until ((LoggedIn = True) or (c >= 600));
end;
if LoggedIn then
begin
PlayerStartTime := (GetSystemTime div 1000); // PlayerStartTime
if Length(Players[CurrentPlayer].NickTPA) < 2 then
begin;
Writeln('Creating the NickTPA.');
if Players[CurrentPlayer].Nick <> '' then
Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Nick, UpChars)
else
begin;
Writeln('Nickname isnt set, taking the username instead..');
Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Name, UpChars);
end;
end;
WriteFileString(TheFile, Chr(13) + 'Current player: '+ UpperCase(Players[CurrentPlayer].Name) + Chr(13)); //* Save NAME to file
end;
end;

hope that helps.


munk for president :)

Edit: TypeByte(13) or 10 on SMART, will hit "Existing user" button.