SRL Archive - SRL Bugs

1 week membership bug


neeger

2013-01-06 15:52:08

If you have 1 week membership left and logged into lobby then a message pops up:


After some time, window disappears and it starts continuously clicking "Click here to renew"… Had over 200 tabs open in firefox :pinch:

Not sure how long will it pop that message? 1 day? Strange that anyone haven't reported that issue.

The Killer

2013-01-06 15:53:52

From: neeger
If you have 1 week membership left and logged into lobby then a message pops up:


After some time, window disappears and it starts continuously clicking "Click here to renew"… Had over 200 tabs open in firefox :pinch:

Not sure how long will it pop that message? 1 day? Strange that anyone haven't reported that issue.


it comes up now and then. I have a fix I made when a while back which you can have if you want.

neeger

2013-01-06 17:00:43

So it pops up randomly all the time in last week of membership?
Not hard to fix it in SRL but have to do it every time then after SRL updates, one way to add it to script(etc make Loginplayer2; or LoginPlayerToLob()2; change it so that it detects that popup).

But would be great if they added it to SRL

Mr[S]

2013-01-06 17:14:23

Would this come up with 1 month auto-renewal rolling membership?

DannyRS

2013-01-06 17:17:06

From: Mr[S]
Would this come up with 1 month auto-renewal rolling membership?


hasn't for me ever

The Killer

2013-01-06 17:26:35

From: Mr[S]
Would this come up with 1 month auto-renewal rolling membership?


not with auto-renew. I had it on my main 3 weeks after a sms upgrade though :P
@OP try to make a fix yourself, It's not hard. First make a function to close screen if it finds the lock dtm, here's a DIY for you :P :

function ClosedScreen;
var
x, y, LockDtm: integer;
begin
LockDtm := Inset your dtm for the lock here
if FindDtm(LockDtm, x, y, MSX1, MSY1, MSX2, MSY1) then
if MouseBox(Put the cords of the "close" box here, 1) then
Result := True;
FreeDtm(LockDtm);
end;
You then need to edit logintolob like so:
function LoginPlayerToLob: Boolean;
var
RetryLogin: Boolean;
typtmp, t, w: integer;
Actions: TVariantArray;
Attempts: LongInt;
p: TPoint;
//ATPA: T2dPointArray;
TPA: TPointArray;
Boxes : TIntegerArray;
//B: TBox;
label
ProcStart;
begin
ActivateClient;
Wait(100);
TypeByte(vk_Escape);
Wait(500);

{Check for lobby screen already open/ already logged in}

Result := ((LobbyScreen) or (LoggedIn) or (ClosedScreen));
if (Result) then
Exit;

{Check for active player.}

if (not (Players[CurrentPlayer].Active)) then
begin
WriteLn('Player is not Active...');
if (AllPlayersInActive) then
begin
WriteLn('All players not active!');
Exit;
end;
NextPlayer(False);
Exit;
end;

{Wait for the client to finish loading.}

T := GetSystemTime;
repeat
if (RSReady) then
Break;
if ((GetSystemTime - T) > 180000) then
begin
WriteLn('It has been 3 minutes and Runescape is not yet ready... Terminating.');
TerminateScript;
end;
Wait(RandomRange(1000, 2000));
until (False);
WriteLn('Welcome to Runescape.');


{New graphics have changed box}
Case CountColor(LOGIN_TEXTCOLOUR, 198, 192, 567, 259) of
1079: MouseBox(347, 295, 414, 303, mouse_left);
1745: MouseBox(347, 305, 414, 312, mouse_left); { "Available graphics options have been changed..." }
1801: MouseBox(347, 305, 414, 312, mouse_left); { "There was a problem with your current graphics settings..." }
end;

{Click less info if needed.}
{
if (not (SimilarColors(GetColor(382, 11), 14285562, 20))) then //Runescae sword green bead
begin
MouseBox(212, 479, 550, 495, 1); //Less info button
Wait(RandomRange(1000, 2000));
end;
}
{Click Members/free.}

{Members := Players[CurrentPlayer].Member;
if (Length(Players[CurrentPlayer].WorldInfo) > 0) then
Members := Players[CurrentPlayer].WorldInfo[0]; }

ProcStart:

{if (Members) then
I := 1;

if (GetColor(248, 359) <> 1381653) then //Black outline on forgotten pwd button.
begin
FindColors(TPA, 9291999, 10, 370, 675, 475);
ATPA := SplitTPA(TPA, 4);
if (Length(ATPA) > 2) then
begin
if (I = 1) then
I := 0
else
I := 1;
B := GetTPABounds(ATPA[1 + I]); //If demo mode is still up
end
else
if (Length(ATPA) = 2) then
B := GetTPABounds(ATPA[0 + I]) //When there's no demo mode
else
B := IntToBox(210, 424, 367, 446);

with B do
MouseBox(X1 + 20, Y1 + 10, X2 - 20, Y2 + 8, 1);

T := GetSystemTime; //Black outline on forgotten pwd button.
while ((GetSystemTime - T < 3000) and (GetColor(248, 359) <> 1381653)) do
Wait(RandomRange(100, 200));

end; }

{Type in username and pass}

if (loggedIn) then
exit;

for W:= 0 to 1 do
begin
if W = 0 then
Boxes:= [UBX1, UBY1, UBX2, UBY2]
else
Boxes:= [PBX1, PBY1, PBX2, PBY2];

t := (getSystemTime + (60000 * 2));
FindColors(TPA, LOGIN_TEXTCOLOUR, Boxes[0], Boxes[1], Boxes[2], Boxes[3]);
repeat
if (Length(TPA) > 0) then
begin
SortTPAFrom(TPA, Point(Boxes[2], Boxes[1] + (Boxes[3] - Boxes[2]) div 2));
p := point(TPA[0].X + 20, TPA[0].Y);
if (not pointInBox(p, intToBox(Boxes[0], Boxes[1], Boxes[2], Boxes[3]))) then
p := point(UBX2 - (10 + random(10)), p.y);
Mouse(p.x, p.y, 5, 5, mouse_left);
end else
MouseBox(Boxes[0], Boxes[1], Boxes[2], Boxes[3], mouse_left);

typtmp := 0;
while (CountColor(LOGIN_TEXTCOLOUR, Boxes[0], Boxes[1], Boxes[2], Boxes[3]) > 0) do
begin
Inc(typtmp);
TypeByte(VK_BACK);
Wait(50+Random(50));
if (typtmp >= RandomRange(20, 24)) then
Break;
end;
until(not FindColors(TPA, LOGIN_TEXTCOLOUR, Boxes[0], Boxes[1], Boxes[2], Boxes[3]) or (getSystemTime > t));

Wait(100 + Random(200));
if W = 0 then
begin
WriteLn(Capitalize(Players[CurrentPlayer].Name));
TypeSend(Players[CurrentPlayer].Name);
end else
TypeSend(Players[CurrentPlayer].Pass);
Wait(800 + Random(50)); //Should fix the Login -> Spam Recoveries bug
end;

{Check responses}

T := GetSystemTime;
repeat
// so the lobby appears (gets rid of black screen)
if (countColorTolerance(clBlack, 0, 0, 500, 500, 20) > 245000) then
begin
wait(2000 + random(1500));
mouseBox(0, 0, 750, 490, mouse_Move);
end;
SRL_ResetNavBar;
result := validEmail; // To handle "Validate Email" screen
if result then
break;

SetLength(Actions, 0);

if ((GetSystemTime - T) > 60000) then
Actions := ['One minute has passed... Debug: ' + ToStr(CountColor(LOGIN_TEXTCOLOUR, 260, 140, 510, 400)), 0, 5, 'PlayerFalse', 'Login Failed']
else
case (CountColor(LOGIN_TEXTCOLOUR, 260, 140, 510, 400)) of //text colour points
// WriteLn Error Wait for Retrys Action Player[CurrentPlayer].Loc
763, 2348, 2299:
Actions := ['Invalid Username / Password', 0, 2, 'PlayerFalse', 'Wrong User/Pass'];
1088: Actions := ['Your account has been disabled', 0, 0, 'PlayerFalse', 'Acc Disabled'];
951: Actions := ['Your account is already logged in', 5000, 5, 'PlayerTrue', 'Already logged in'];
1239: Actions := ['Not a Members Account', 0, 1, 'PlayerTrue', ''];
364: Actions := ['Error Connecting.', 20000, 9, 'Terminate', 'Error Connecting'];
1057: Actions := ['Too many incorrect logins.', 5 * 60000, 2, 'PlayerFalse', 'Too many logins'];
732: Actions := ['Runescape has been updated.', 0, 0, 'RSUpdate', 'RS Updated'];
591: Actions := ['Client token changed.', 0, 0, 'RSUpdate', 'Client Token Changed'];
1606: Actions := ['Game session expired.', 0, 0, 'RSUpdate', 'Session Expired'];
777: Actions := ['Login limit exceeded.', 20000, 10, '', 'Waiting for login.'];
end;
{Respond}

if (Length(Actions) > 0) then
begin
WriteLn(Actions[0]);
if (Actions[0] <> 'Not a Members Account') then
begin
Wait(1000 + Random(500));
TypeByte(vk_Escape);
end;
Wait(Actions[1] + Random(100));
if (Actions[2] <> 0) then
if (Attempts < Actions[2]) or (Actions[2] = -1) then
begin
if (Actions[0] = 'Not a Members Account') then
begin
Players[CurrentPlayer].Member := False;
if (Length(Players[CurrentPlayer].WorldInfo) > 0) then
Players[CurrentPlayer].WorldInfo[0] := False;
MouseBox(267, 321, 496, 350, mouse_left); //Play free game instead button
Wait(3000 + Random(2000));
Result := True;
Exit;
end;
RetryLogin := True;
Wait(2000 + Random(1000));
Break;
end;
if (Actions[4] <> '') then
Players[CurrentPlayer].Loc := Actions[4];
case Actions[3] of
'PlayerFalse': NextPlayer(False);

'PlayerTrue':
begin
LeaveLobby();
NextPlayer(True);
end;

'Terminate': TerminateScript;

'RSUpdate':
begin
if SRL_HasProc(srl_OnRSUpdate) then
begin
case actions[0] of
'Runescape has been updated.':
begin
Writeln('Runescape has been updated! Waiting 5 minutes to restart SMART!');
Wait(300000);
end;
end;
SRL_Procs[srl_OnRSUpdate]();
Exit;
end;
Writeln('Runescape has been updated! Please restart Simba.');
TerminateScript;
end;
end;
Exit;
end;
Wait(100);
Result := (LobbyScreen) or (LoggedIn) or (ClosedScreen);
until (Result);

TakeIPScreen();

{Back to main screen if needed}

if (RetryLogin) then
begin
RetryLogin := False;
Inc(Attempts);
goto ProcStart;
end;

end;

Justin

2013-01-06 19:39:13

Could this be why I am getting this every morning?

Ashaman88

2013-01-06 19:41:51

haha wow that is crazy justin

Justin

2013-01-06 19:44:51

From: Ashaman88
haha wow that is crazy justin


Yeah does my head in every morning -.-

John

2013-01-06 19:54:25

From: Justin
Yeah does my head in every morning -.-


Now imagine if you were using Internet Explorer o.o

Justin

2013-01-07 11:08:59

I just saw it happening!
What went down; my character 5min auto logged out from being idle, in my script I have something like (on my laptop atm) if not(LoggedIn) then LoginPlayer;

I can only guess LoginPlayer failed to detect that I was already in the lobby and it tried to login (send username\password) to the Lobby screen


If someone else can test it that would be good, I'll also take another look in the morning when i wake up (3am here)

Justin.

neeger

2013-01-07 17:10:51

Yeah seen it happen many times, but I use LoginPlayerToLob();, when it first time logs to lob, the message pops up and it waits while message is gone and then starts to click renew membership, lol:


I use fix similar to The Killer, have to call LoginPlayerToLob(); twice but it works fine atm… hope they add this to SRL soon :P