SRL Archive - SRL Suggestions

EvilBob fixes


NCDS

2010-09-27 20:40:39

Updated working EvilBob.Scar:

//-----------------------------------------------------------------//
//-- Scar Standard Resource Library --//
//-- ? Evil Bob Island Routines --//
//-----------------------------------------------------------------//
// * Function InEvilBobsIsland: Boolean; // * by ZephyrsFury, lordsaturn
// * Procedure EB_MiddleIsland; // * by Naum
// * Function EB_FindServent : Boolean; // * by Naum
// * Function EB_GetStatueInfo : TStatue; // * by Naum, idea from Zeph
// * Function EB_FindFishSpot : TPoint; // * by Naum
// * Function EB_PerformTask : Boolean; // * by Naum
// * Function EB_UncookFish : Boolean; // * by Naum
// * Function EB_TalkToBob : Boolean; // * by Naum
// * Procedure EB_FindPortal; // * by Naum
// * Function SolveEvilBob : Boolean; // * by Naum, info from Markus

{ BIG Kudos to Markus, whom without his solver,
would have never thought it possible. }

Type
TStatue = Record //the Tstatue type stores the needed information
StatueLoc : String;
StatueCoords : TPoint;
End;

Var TempInfo : TStatue; //so we dont have to call the function over and over again
EB_Solved : Boolean;

Procedure EB_FindPortal; Forward;

{********************************************************************************}
{ function InEvilBobsIsland: Boolean; }
{ By: ZephyrsFury }
{ Description: Checks if we're in Evil Bob's Island. }
{********************************************************************************}

function InEvilBobsIsland: Boolean;
var
Pts: TPointArray;
ATPA: T2DPointArray;
X, Y, L: Integer;
begin
if (FindColor(X, Y, 60909, MMX1, MMY1, MMX2, MMY2)) then
begin
FindColorsTolerance(Pts, 60909, MMX1, MMY1, MMX2, MMY2, 0);
L := Length(Pts);
if InRange(L, 1, 2) then
begin
if L = 1 then
begin
x := MMCX;
y := MMCY;
end else
begin
x := Pts[1].x;
y := Pts[1].y;
end;
if (InRange(Distance(Pts[0].X, Pts[0].Y, x, y), 9, 13)) then
if (FindColorsTolerance(Pts, 217, MMX1, MMY1, MMX2, MMY2, 0)) then
begin
ATPA := SplitTPAEx(Pts, 5, 5);
if (Length(ATPA) >= 4)and (Length(ATPA) < 12)then //There are 7 dots on the island
Result := IsChatBoxTextAnyLine('ScapeRune', clMessage) or (FindTextTpa(clBlack, 0, MCX1, MCY1, MCX2, MCY2, 'ask to come here', NPCChars, Nothing));
end;
end;
end;
end;

{********************************************************************************}
{ Procedure EB_MiddleIsland; }
{ By: Naum }
{ Date: 30 Dec 2009 }
{ Description: Walks to the middle of the island }
{********************************************************************************}

Procedure EB_MiddleIsland;
Var TPA : TPointArray;
Begin
If Not LoggedIn Then Exit;

TPA := GetMiniMapDots('npc'); //gets all npc dots (1 is ALWAYS visible)
If High(TPA) = -1 Then // if it fails..
Begin
WriteLn('Could Not walk to Middle?');
Exit;
End;

If Not PointInBox(TPA[0], IntToBox(MMCX -10, MMCY - 10, MMCX + 10, MMCY + 10)) Then
If MouseFlag(TPA[0].X - 4, TPA[0].Y, 0, 4, 0) Then //clicks on dot
WriteLn('Walked to middle of island');
End;

{********************************************************************************}
{ Function EB_FindServent : Boolean; }
{ By: Naum }
{ Date: 30 Dec 2009 }
{ Description: Finds evil bob's servent }
{********************************************************************************}

Function EB_FindServent : Boolean;
Var
TPA : TPointArray;
ATPA : T2DPointArray;
I : Integer;
X, Y, II : Integer;
Begin
If Not LoggedIn Then Exit;

ColorToleranceSpeed(2);
SetColorspeed2Modifiers(0.07, 0.58); //gets all servent like colors with 17 tol
FindColorsSpiralTolerance(MSCX + 10, MSCY, TPA, 4940926, MSX1, MSY1, MSX2, MSY2, 17);
ATPA := TPAToATPAEx(TPA, 10, 8); //splits it into boxes of 10x8

SortATPASize(ATPA, True); //Sorts the size 'big - first'
For I := 0 To High(ATPA) Do
If MiddleTPAEx(ATPA[I], X, Y) Then //loops through all tpa's
Begin
MMouse(X, Y, 2, 2);
Wait(SRL_MaxWaitTime + Random(100));
If WaitUpTextMulti(['erva', 'ant'], srl_MaxWaitTime) Then
Begin
GetMousePos(X, Y);
Mouse(X, Y, 2, 2, True); //clicks the servent
Wait(1400 + Random(1000));
//incase already solved ;)
If FindNPCChatText('uickly', Nothing) Then
Begin
WriteLn('Solved');
Wait(1200 + Random(200)); //yay it's solved
EB_FindPortal;
Wait(10000 + Random(2000));
ClickContinue(True, True); //waits for the duration of the teleport
EB_Solved := True;
Exit;
End;

II := 0;
While ClickContinue(True, True) And (II <= 7) Do
Begin
Wait(600 + Random(100)); //gets dialouge done
Inc(II);
End;

WriteLn('Found servent, Identifying statue...');
Result := True;
Exit;
End Else
Continue; //until all the points (12) run out
End;
End;

{********************************************************************************}
{ Function EB_GetStatueInfo : TStatue; }
{ By: Naum idea from Zeph }
{ Date: 30 Dec 2009 }
{ Description: Grabs the statue's density, and locates it on the map }
{ Stores the co-ordinates and the map direction in the TStaute type }
{********************************************************************************}

Function EB_GetStatueInfo : TStatue;
Var TPA : TPointArray;
StatueDensity : Extended;
TB : TBox;
Mark : Integer;
Begin
If Not LoggedIn Then Exit;

ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.01, 1.18); //COREECT MODS
MarkTime(Mark); //time mark
Repeat
FindColorsTolerance(TPA, 2401230, MSX1, MSY1, MSX2, MSY2, 16); //statue color
Wait(15); //to avoid lag
Until(Length(TPA) > 1900) Or (TimeFromMark(Mark) > 30000); //waits until it's in the slot
If Length(TPA) > 1900 Then
Begin
TB := GetTPABounds(TPA); //gets the box
StatueDensity := (Length(TPA) / ((TB.x2 - TB.x1) * (TB.y2 - TB.y1) * 1.0)); //THE MAIN THING
Case StatueDensity Of //sets the type 'Tstatue'
0.49..0.60 : Begin
Result.StatueLoc := 'North';
Result.StatueCoords := Point(MMCX, MMCY - 50);
End;

0.40..0.47 : Begin
Result.StatueLoc := 'East';
Result.StatueCoords := Point(MMCX + 60, MMCY);
End;

0.3266..0.39 : Begin
Result.StatueLoc := 'West';
Result.StatueCoords := Point(MMCX - 60, MMCY);
End;

0.21..0.3259 : Begin
Result.StatueLoc := 'South';
Result.StatueCoords := Point(MMCX, MMCY + 50);
End;

End;
End Else
Begin
WriteLn('Could NOT identify statue!'); //If it cant find statue
Exit;
End;
WriteLn('Statue Density Is = '+FloatToStr(StatueDensity));
WriteLn('Found Statue in the '+Result.StatueLoc+' direction');
End;

{********************************************************************************}
{ Function EB_FindFishSpot : TPoint; }
{ By: Naum }
{ Date: 30 Dec 2009 }
{ Description: Stores the co-ordinates of the found fish spot (.X and .Y) }
{********************************************************************************}

Function EB_FindFishSpot : TPoint;
Var I, X, Y : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
Begin
If Not LoggedIn Then Exit;

ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.20, 0.77); //11380643
FindColorsTolerance(TPA, 11312790, MSX1, MSY1, MSX2, MSY2, 5); //gets fishspot-like colors
ATPA := SplitTPA(TPA, 6); //splits the tpa with 'dist' of 6
SortATPAFromSize(ATPA, 30, True); //Sorts it by relative average size '30'

For I := 0 To High(ATPA) Do
If MiddleTPAEx(ATPA[I], X, Y) Then
Begin
MMouse(X, Y, 6, 6); //moves the mouse over it
Wait(SRL_MaxWaitTime + Random(100));
If WaitUpTextMulti(['ishi', 'ing s', 'hing'], srl_MaxWaitTime) Then
Begin
GetMousePos(X, Y); //stores the lcoation
Result := Point(X, Y);
Exit;
End Else
Continue;
End;
End;

{********************************************************************************}
{ Function EB_PerformTask : Boolean; }
{ By: Naum }
{ Date: 30 Dec 2009 }
{ Description: Gets the fish from the statue, to cook. If there is no net in the }
{ inventory, or it is full. Then it will drop some items and click }
{ on a red item dot (close to the statue) and pick a net up. }
{ Will then fish from the spot closest to the statue }
{ }
{********************************************************************************}

Function EB_PerformTask : Boolean;
Var I, X, Y, TX, NetBmp,NetBMP2 : Integer;
RetardedFish : Integer;
OldCount : Integer; //variables needed (bitmaps and params).
TPA : TPointArray;
ATPA : T2DPointArray;
TP : TPoint;
Begin
If Not LoggedIn Then Exit;

TP := TempInfo.StatueCoords; //loading information
NetBmp := BitmapFromString(2, 6, 'meJxT1Lc29YhUN3MxcY9gYmCQ0TAB' +
'khLKelqWHkIS8qIyqryCogBvxwU4');
NetBMP2 := BitmapFromString(5, 3, 'meJyTUNBgYmDgFRRTMbQHMhT1rGQ1' +
'jIBcYWllMNeah19YRFpZQFSGV1AUAGD4BDI=');

RetardedFish := BitmapFromString(2, 4, 'meJzTsI9St4vQcooDIj2P9As28oa+' +
'uQbe2QBRGQbs');
// if we dont have a bitmap in the inventory
GameTab(tab_inv);
If Not FindBitmapToleranceIn(NetBmp, X, Y, MIX1, MIY1, MIX2, MIY2, 30) Or (InvFull) Then
Begin
GameTab(tab_inv);
If InvCount >= 27 Then //if the inventory is full
Begin
WriteLn('Oops Inventory seems to be full.. Dropping items');

For I := 0 To 27 Do //make room
Begin
If DropItem(InvCount - I) Then
Inc(TX); //drop the last 2 items
If TX >= 2 Then Break;
End;

End;
Wait(1500 + Random(1000));
If Not FindBitmapToleranceIn(NetBmp, X, Y, MIX1, MIY1, MIX2, MIY2, 30) Then
Begin //goes to get a fishing net, near the right statue
OldCount := InvCount;
WriteLn('Retrieving a fishing net');
ColorToleranceSpeed(1); //fast but less accurate

FindColorsTolerance(TPA, 237, MMX1, MMY1, MMX2, MMY2, 30); //gets all red dots
{$ifdef Simba}
FilterPointsDist(TPA,13.20,75.00,MMCX,MMCY);
{$else}
FilterPointsPie(TPA, 0.0, 359.9, 13.20, 75.00, MMCX, MMCY); //filters them so they're in a cirlce
{$endif}
SortTPAFrom(TPA, TP); //and so it does not pick up just dropped items

Mouse(TPA[0].X - 3, TPA[0].Y + 3, 3,3, True); //walks to it
Wait(4321 + random(500));
While IsMoving Do //while wallking, some mouse movement
If Random(2) = 1 Then
SleepAndMoveMouse(400 + Random(800));
Wait(2345 + random(500));
If Not IsMoving Then
Begin
ColorToleranceSpeed(2); //finds the fishing net
SetColorSpeed2Modifiers(0.07, 0.19);
FindColorsTolerance(TPA, 2899019, MSX1, MSY1, MSX2, MSY2, 14); //fishing net like colors
ATPA := SplitTPA(TPA, 8); //splittpa with dist of 6
SortATPAFromFirstPoint(ATPA, Point(MSCX, MSCY)); //sorts all of the ATPA's from mainscreen center

For I := 0 To High(ATPA) Do //loops through
If MiddleTPAEx(ATPA[I], X, Y) Then
Begin
MMouse(X, Y, 2, 2);
Wait(SRL_MaxWaitTime + Random(100));
ColorToleranceSpeed(1);
If WaitUpTextMulti(['mall'], srl_MaxWaitTime) Then
Begin
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, True); //if success
Break;
End Else
Continue;
End;
I := 0;
While (InvCount = OldCount) And (I < 10) Do //waits for the net to be picked up
Begin
If Random(2) = 1 Then
SleepAndMoveMouse(400 + Random(800))
else
Wait(400 + random(800));
Inc(I);
End;
FFlag(0);
Wait(1800 + Random(100));

If FindBitmapToleranceIn(NetBmp, X, Y, MIX1, MIY1, MIX2, MIY2, 30) or
FindBitmapToleranceIn(NetBmp2, X, Y, MIX1, MIY1, MIX2, MIY2, 30) Then
Begin
WriteLn('Retrieved the net!'); //if found the net in inventory
FreeBitmap(NetBmp);
FreeBitmap(NetBmp2);
End Else
Begin
WriteLn('Could Not Retrieve Net');
FreeBitmap(NetBmp); //if not found net
FreeBitmap(NetBmp2);
Result := False;
Exit;
End;
End;
End;
End;

Begin
Mouse(TP.X, TP.Y, 10, 10, True); //clicks again to get to the fishing spot

While IsMoving Do
SleepAndMoveMouse(400 + Random(800)); //antiban
FFlag(0);
Wait(500+Random(500));
OldCount := InvCount; //stores invcount
TP := EB_FindFishSpot; //finds fish spot
Mouse(TP.X, TP.Y, 0, 0, True); //clicks the fish spot
I := 0;
While (InvCount = OldCount) And (I < 10) Do
Begin
SleepAndMoveMouse(400 + Random(800));
Inc(I); //waits until the fish appears in inv
End;

If FindBitmapToleranceIn(RetardedFish, X, Y, MIX1, MIY1, MIX2, MIY2, 30) Then
Begin
WriteLn('Fished the fish');
Result := True; //double check
FreeBitmap(RetardedFish);
Exit;
End;
//decides outcome
Begin
Result := False;
FreeBitmap(RetardedFish);
Exit;
End;

End;
Wait(8);
End;

{********************************************************************************}
{ Function EB_UncookFish : Boolean; }
{ By: Naum }
{ Date: 30 Dec 2009 }
{ Description: Uncooks the just-fished 'cooked fish' }
{********************************************************************************}

Function EB_UncookFish : Boolean;
Var I, X, Y : Integer;
CookedRetardedFish, RetardedFish : Integer; // bitmaps
TPA : TPointArray;
ATPA : T2DPointArray;
Begin
If Not LoggedIn Then Exit;

ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(16.67, 1.62); //correct mods

RetardedFish := BitmapFromString(2, 4, 'meJzTsI9St4vQcooDIj2P9As28oa+' +
'uQbe2QBRGQbs');

If FindBitmapToleranceIn(RetardedFish, X, Y, MIX1, MIY1, MIX2, MIY2, 30) Then
Mouse(X, Y, 2, 2, True) //clicks the fish so we can cook
Else
Begin
WriteLn('Could not find retarded fish in inventory');
FreeBitmap(RetardedFish); //if it's not there..
Exit;
End;

FindColorsTolerance(TPA, 1710617, MSX1, MSY1, MSX2, MSY2, 2); //finds all cooking pot like colors
ATPA := TPAToATPA(TPA, 15); //splits it into 15 radius circles
SortATPAFromFirstPoint(ATPA, Point(MSCX - 20, MSCY)); //sorts it, close to the player

For I := 0 To High(ATPA) Do
If MiddleTPAEx(ATPA[I], X, Y) Then
Begin //loops through and finds it
MMouse(X, Y, 2, 2);
Wait(SRL_MaxWaitTime + Random(100));
If WaitUpTextMulti(['hing', 'ook'], srl_MaxWaitTime) Then
Begin
GetMousePos(X, Y);
Result := True;
Mouse(X, Y, 2, 2, True); //clicks on the pot
Break;
End Else
Continue;
End;
FreeBitmap(RetardedFish);

Wait(6000 + Random(1200)); //wait while the player cooks it
CookedRetardedFish := BitmapFromString(2, 4, 'meJxbFS+5NEZiS6o0EB3Klb1gI3++' +
'WA6IAHuqCds=');
Result := FindBitmapToleranceIn(CookedRetardedFish, X, Y, MIX1, MIY1, MIX2, MIY2, 30);
FreeBitmap(CookedRetardedFish);
If Result Then //when its cooked..
WriteLn('Un cooked the retarded fish :)');
End;

{********************************************************************************}
{ Function EB_TalkToBob : Boolean; }
{ By: Naum }
{ Date: 30 Dec 2009 }
{ Description: Talks to bob, finds if we need to fish more or to exit }
{********************************************************************************}

Function EB_TalkToBob : Boolean;
Var I, X, Y : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
TSA : TStringArray;
Begin
If Not LoggedIn Then Exit;

ColorToleranceSpeed(2); //medium speed, accurate
SetColorSpeed2Modifiers(0.93, 0.28);
FindColorsTolerance(TPA, 2960944, MSX1, MSY1, MSX2, MSY2, 11); //find's blck-liek colors
ATPA := SplitTPA(TPA, 10);

SortATPAFromSize(ATPA, 72, True); //sorts it by average length
//so bob is likely to come first
For I := 0 To High(ATPA) Do
If MiddleTPAEx(ATPA[I], X, Y) Then //another object finding loop
Begin
MMouse(X, Y, 2, 2);
Wait(SRL_MaxWaitTime + Random(100));
If WaitUpTextMulti(['vil', 'ob'], srl_MaxWaitTime) Then
Begin
GetMousePos(X, Y);
Mouse(X, Y, 2, 2, True); //clicks on bob
Result := True;

While IsMoving Do Wait(100);

Begin
TSA := ['no-good', 'hungry']; //the responses to see if we need to get another fish
Begin
ClickContinue(True, True); //gets rid of first chat dialouge 'i got the fish...'
Wait(SRL_MaxWaitTime + Random(300));

EB_Solved := True; //If its proven false in the next part then it isn't, else it is

For I := 0 To High(TSA) Do
If FindNPCChatText(TSA[I], Nothing) Then
Begin
EB_Solved := False; //if any of those phrases are found in bob's speech
Break; //then we need to get another one
End;
If (Not (EB_Solved)) Then
WriteLn('Going to get another fish'); //debugs we need to get another one.

If FindNPCChatText('isgu', Nothing) Then
Begin
WriteLn('Whoops! Got the wrong fish..'); // we got the wrong fish -_-
EB_Solved := False;
End;

If Random(2) = 1 Then
Begin
ClickContinue(True, True); //does random click to continue.
If Random(2) = 1 Then
ClickContinue(True, True);
End;
Exit;
End;
End;
End Else
Continue;
End;
Wait(1);
End;

{********************************************************************************}
{ Procedure EB_FindPortal; }
{ By: Naum }
{ Date: 30 Dec 2009 }
{ Description: Finds the portal needed to exit }
{********************************************************************************}

Procedure EB_FindPortal;
Var I, X, Y, TX, TY : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
Begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.06, 0.62); //finds all portal like colors
FindColorsTolerance(TPA, 7388602, MSX1, MSY1, MSX2, MSY2, 7);
ATPA := SplitTPA(TPA, 10);

SortTPAFrom(TPA, Point(MSCX - 20, MSCY)); //sorts the tpa's within the ATPA's
SortATPAFromFirstPoint(ATPA, Point(MSCX - 20, MSCY)); //Sorts all the ATPAs from center

For I := 0 To High(ATPA) Do
If MiddleTPAEx(ATPA[I], X, Y) Then //another obj loop
Begin
MMouse(X, Y, 2, 2);
Wait(SRL_MaxWaitTime + Random(100));
If WaitUpTextMulti(['orta','Ente','nter','tal'],srl_MaxWaitTime) Then
Begin
GetMousePos(X, Y);
Mouse(X, Y, 2, 2, True);
WriteLn('Found the Portal'); //clicks on portal if found
FFlag(0);
Wait(1300 + Random(1000));
//Incase of confirmation thingy
If FindColor(TX, TY, 2070783, 234, 46, 254, 56) Then
Mouse(172, 199, 100, 4, True);

Break;
End Else
Continue;
End;
End;

{********************************************************************************}
{ Function SolveEvilBob : Boolean; }
{ By: Naum, info from Markus }
{ Date: 30 Dec 2009 }
{ Description: Solves the EvilBob event }
{********************************************************************************}

Function SolveEvilBob : Boolean;
Var Mark : Integer;
Begin
MarkTime(Mark); //mark time
MakeCompass('N'); //sets optimum object finding.
SetAngle(True);
SetRun(True);

Repeat
EB_MiddleIsland; //walks to the middle of the island

Wait(2000 + Random(1000));

Result := EB_FindServent; //finds servent
If EB_Solved Then Break;
If Not Result Then
Begin
LogOut;
Exit;
End;

TempInfo := EB_GetStatueInfo; //gets info
Wait(1000 + Random(1000));
ClickContinue(True, True);

Result := EB_PerformTask; //performs the task
If Not Result Then
Begin
LogOut;
Exit;
End;

Wait(1000 + Random(1000));
ClickContinue(True, True);

EB_MiddleIsland; //goes back to middle
Wait(2000 + Random(1000));

Result := EB_UncookFish; //un-cooks fish
If Not Result Then
Begin
LogOut;
Exit;
End;

Result := EB_TalkToBob; //talks again to bob
If Not Result Then
Begin
LogOut;
Exit;
End;
Until(EB_Solved = True) Or (Not (LoggedIn));

If (EB_Solved) Then
Begin
WriteLn('Solved');
Wait(1200 + Random(200)); //yay it's solved
EB_FindPortal;
WriteLn('Solved Evil Bob'#39's Island in '+IntToStr(TimeFromMark(Mark))+' msec');

Wait(10000 + Random(2000));

while (ClickContinue(True, True)) do
Wait(500 + Random(500)); //waits for the duration of the teleport
End Else
Exit;

Wait(1);
End;

{EXACT Density Ranges

North =
Density Range = 0.52 - 0.55

East =
Density Range = 0.43 - 0.46

South =
Density Range = 0.30 - 0.33 //close to west

West =
Density Range = 0.35 - 0.37 //too close to south}

I updated:
  • EB_FindFishSpot;
    • Hue/Sat mods and Color for fish spot.
  • EB_PerformTask;
    • All bitmaps
  • EB_UncookFish;
    • RetardedFish.bmp

Successful Debug:

Compiled succesfully in 624 ms.
SRL Compiled in 16 msec
Found servent, Identifying statue...
Statue Density Is = 0.54330484330484
Found Statue in the North direction
Retrieving a fishing net
Retrieved the net!
Fished the fish
Walked to middle of island
Un cooked the retarded fish :)
Solved
Found the Portal
Solved Evil Bob's Island in 69717 msec
Successfully executed.

Thanks to Squancy for the account :)

Overtime

2010-09-27 21:12:35

Np NCDS :D

Great work :) Adding to my srl right now.

NCDS

2010-09-28 15:41:06

Just for some extra proof:

Compiled succesfully in 546 ms.
SRL Compiled in 16 msec
Found servent, Identifying statue...
Statue Density Is = 0.35375702247191
Found Statue in the West direction
Retrieving a fishing net
Retrieved the net!
Fished the fish
Walked to middle of island
Un cooked the retarded fish :)
Solved
Found the Portal
Solved Evil Bob's Island in 72946 msec

BraK

2010-09-28 15:53:27

Nicely done NCDS

Gu3st...

2010-09-28 16:12:58

Neat! :D
Good job :)

P1nky

2010-09-28 16:21:21

yay <3
thanks

Shuttleu

2010-09-28 17:05:31

awesome, good to see the randoms being fixed

~shut

TRiLeZ

2010-09-28 23:17:20

Committed. Good work. :)

BraK

2010-10-02 23:26:47

Just got the evil bob isle random.

Possible Random: Evil Bob'S Island.     Identifying by textbox.
***** STR: FOUND RANDOM: 'Evil Bob'S Island' *****
Screenshot of: Found Evil Bob'S Island random 42 Minutes and 30 Seconds
Found servent, Identifying statue...
Statue Density Is = 0.32266542980828
Found Statue in the South direction
Retrieving a fishing net
Retrieved the net!
Fished the fish
Walked to middle of island
Un cooked the retarded fish :)
Solved
Solved Evil Bob's Island in 74288 msec
***** STR: 'Evil Bob'S Island' RANDOM SOLVED SUCCESSFULLY! *****

It failed to choose the correct fishing spot and thought it was lost and I do have the most up to date SRL. Also it thought it was successful and tried to continue with the script and it never tried to click the portal.

It actually choose the fishing spot on the opposite side of the island as the one it should have.

NCDS

2010-10-03 00:21:11

From: BraK
Just got the evil bob isle random.

Possible Random: Evil Bob'S Island.     Identifying by textbox.
***** STR: FOUND RANDOM: 'Evil Bob'S Island' *****
Screenshot of: Found Evil Bob'S Island random 42 Minutes and 30 Seconds
Found servent, Identifying statue...
Statue Density Is = 0.32266542980828
Found Statue in the South direction
Retrieving a fishing net
Retrieved the net!
Fished the fish
Walked to middle of island
Un cooked the retarded fish :)
Solved
Solved Evil Bob's Island in 74288 msec
***** STR: 'Evil Bob'S Island' RANDOM SOLVED SUCCESSFULLY! *****

It failed to choose the correct fishing spot and thought it was lost and I do have the most up to date SRL. Also it thought it was successful and tried to continue with the script and it never tried to click the portal.

It actually choose the fishing spot on the opposite side of the island as the one it should have.


Do you possibly still have the account in the random? I never had any problems with it identifying the statue at all..?

BraK

2010-10-03 00:43:27

Nah I just used a small script to test it when my legit got hit with this random.