SRL Archive - SRL Archives

PinBall and Mordaut solver


almost

2008-03-24 17:20:45

I can barely auto lately because of these two randoms…
There is a PinBall solver, but it doesn't work.
And Boreas was working on a Mordaut solver, but there isn't one that i know of.

So here's my PinBall solver.
Almost completely flawless, and if it does somehow mess up it still ends up solving the event.
This has been tested for several hours and hasn't failed.

Update:
No longer uses MoveMouse and ClickMouse for the extra speed! thanks to N3ss3s idea.
Also uses SetAngle(True) then SetAngle(False) thanks to Hy71194.
More ideas for it are welcome!

To run this with your scripts, paste this over the procedure SolvePinBall in the AntiRandoms folder.
{.include srl/srl.scar}

function FindExit: Boolean;
var
cx, cy, a, c, i, x1, y1, x2, y2: Integer;
Start: Boolean;
begin
begin
cx:= MMCX;
cy:= MMCY;
if (FindColorSpiralTolerance(cx, cy, 4740409, 4, 4, 515, 337, 5)) then
begin
Start := True;
end;
end;
if(Start)then
begin
x1 := 245;
y1 := 165;
x2 := 277;
y2 := 185;
repeat
if not(LoggedIn) then
Break;
a := a + 1;
if (a = 1) then
c := c + 1
else if (a = 3) then
c := c + 1;
for i := 1 to c do
begin
if (a = 1) then
begin
x1 := x1 + 30;
x2 := x2 + 30;
end else
if (a = 2) then
begin
y1 := y1 - 20;
y2 := y2 - 20;
end else
if (a = 3) then
begin
x1 := x1 - 30;
x2 := x2 - 30;
end else
if (a = 4) then
begin
y1 := y1 + 20;
y2 := y2 + 20;
end;
if (x1 = 485) and (x2 = 517) then
x2 := x2 - 2;
if (y1 = 325) and (y2 = 345) then
y2 := y2 - 7;
if (x2 > 515) then
Break;
begin
if (FindColorTolerance(cx, cy, 4740409, x1, y1, x2, y2, 5)) then
begin
MMouse(cx, cy, 0, 0);
Wait(50 + Random(50));
if (IsUpTextMultiCustom(['xit'])) then
begin
Result := True;
Exit;
end;
end;
end;
end;
if (a = 4) then
a := 0;
until (x2 > 515) or (Result = True);
end;
end;




function FindWaterPost: Boolean;
var
j, cx, cy, a, c, i, x1, y1, x2, y2, z1, z2: Integer;
Start: Boolean;
begin
begin
cx:= mmcx;
cy:= mmcy;
if (FindColorSpiralTolerance(cx, cy, 6671443, 4, 4, 515, 337, 10)) then
begin
Start := True;
end;
end;
if(Start)then
begin
x1 := 245;
y1 := 165;
x2 := 277;
y2 := 185;
repeat
a := a + 1;
if (a = 1) then
c := c + 1
else if (a = 3) then
c := c + 1;
for i := 1 to c do
begin
if (a = 1) then
begin
x1 := x1 + 30;
x2 := x2 + 30;
end else
if (a = 2) then
begin
y1 := y1 - 20;
y2 := y2 - 20;
end else
if (a = 3) then
begin
x1 := x1 - 30;
x2 := x2 - 30;
end else
if (a = 4) then
begin
y1 := y1 + 20;
y2 := y2 + 20;
end;
if (x1 = 485) and (x2 = 517) then
x2 := x2 - 2;
if (y1 = 325) and (y2 = 345) then
y2 := y2 - 7;
if (x2 > 515) then
Break;
begin
cx:= mmcx;
cy:= mmcy;
if (FindColorTolerance(cx, cy, 6671443, x1, y1, x2, y2, 10)) then
if FindColorTolerance(z1, z2, 8541266, cx - 40, cy - 80, cx + 40, cy + 40, 20) then
begin
MMouse(cx, cy, 0, 0);
Wait(50);
for j:= 1 to 50 do
begin
if (IsUpTextMultiCustom(['ag'])) then
begin
Result:= true;
Exit;
end;
Wait(5);
end;
end;
end;
end;
if (a = 4) then
a := 0;
until (x2 > 515) or (Result = True);
end;
end;






function FindPost: Boolean;
var
j, cx, cy, a, c, i, x1, y1, x2, y2, z1, z2: Integer;
Start: Boolean;
begin
begin
cx:= mmcx;
cy:= mmcy;
if (FindColorSpiralTolerance(cx, cy, 6671443, 4, 4, 515, 337, 10)) then
begin
Start := True;
end;
end;
if(Start)then
begin
x1 := 245;
y1 := 165;
x2 := 277;
y2 := 185;
repeat
a := a + 1;
if (a = 1) then
c := c + 1
else if (a = 3) then
c := c + 1;
for i := 1 to c do
begin
if (a = 1) then
begin
x1 := x1 + 30;
x2 := x2 + 30;
end else
if (a = 2) then
begin
y1 := y1 - 20;
y2 := y2 - 20;
end else
if (a = 3) then
begin
x1 := x1 - 30;
x2 := x2 - 30;
end else
if (a = 4) then
begin
y1 := y1 + 20;
y2 := y2 + 20;
end;
if (x1 = 485) and (x2 = 517) then
x2 := x2 - 2;
if (y1 = 325) and (y2 = 345) then
y2 := y2 - 7;
if (x2 > 515) then
Break;
begin
cx:= mmcx;
cy:= mmcy;
if (FindColorTolerance(cx, cy, 6671443, x1, y1, x2, y2, 10)) then
if not FindColorTolerance(z1, z2, 10260627, cx - 20, cy - 20, cx + 20, cy + 20, 25) then
begin
MMouse(cx, cy, 0, 0);
Wait(50);
for j:= 1 to 50 do
begin
if (IsUpTextMultiCustom(['ag'])) then
begin
Result:= true;
Exit;
end;
Wait(5);
end;
end;
end;
end;
if (a = 4) then
a := 0;
until (x2 > 515) or (Result = True);
end;
end;




function LeavePinBall: boolean;
var
x, y, i: integer;
begin
MakeCompass('s');
MakeCompass('s');
MakeCompass('s');
SetAngle(False);
x:= MMCX;
y:= MMCY;
for i:= 1 to 50 do
begin
if FindExit then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, false);
Wait(300 + Random(100));
if ChooseOption('xit') then
begin
Result:= true;
WriteLn('Solved PinBall Random');
Wait(10000);
SetAngle(True);
Exit;
end else
Wait(500);
end else
Wait(500);
end;
Result:= false;
end;



function SolvePinBall: boolean;
var
x, y, Tagged, Entered, i, LeftCorner, MS: integer;
begin
MS:= MouseSpeed;
MouseSpeed:= 20;
WriteLn('Found PinBall Random');
Inc(PinBall);
LeftCorner := BitmapFromString(4, 4, 'z78DA33753135313137C5' +
'411A600064715CEA914500CACE13F0');
MarkTime(Tagged);
MarkTime(Entered);
repeat
x:= MMCX;
y:= MMCY;
if TimeFromMark(Tagged) > 35000 then
for i:= 1 to 30 do
begin
if FindWaterPost then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, false);
Wait(300 + Random(50));
MarkTime(Tagged);
if ChooseOption('ag') then
begin
Wait(6000);
Break;
end;
end;
Wait(100);
end;
if FindPost then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, false);
Wait(300 + Random(50));
MarkTime(Tagged);
if ChooseOption('ag') then
Wait(6000);
end else
Wait(500);
if (FindBitmap(LeftCorner, x, y)) then
Mouse(46, 453, 15, 15, true);
if TimeFromMark(Entered) > 1800000 then
begin
WriteLn('Could not solve PinBall');
Result:= false;
Exit;
end;
until(FindText(x, y, '10', upchars, 369, 235, 440, 257));
Result:= LeavePinBall;
FreeBitmap(LeftCorner);
MouseSpeed:= MS;
end;





begin
SolvePinBall;
end.


I have been working on a Mordaut solver for a while now, and it's seeming harder and harder.
But if someone wants to start trying to figure out a solution, here are some procedures i use.
//Returns the row and column of an item specified by number
//(For use when finding the 3 objects that match the clue)
//Number 1 would be the top left object
procedure GetRC(var Row, Column: integer; Number: integer);
begin
if (Number < 6) then
Row:= 1;
if (Number < 11) then
if (Number > 5) then
Row:= 2;
if (Number > 10) then
Row:= 3;
case Number of
1, 6, 11: Column:= 1;
2, 7, 12: Column:= 2;
3, 8, 13: Column:= 3;
4, 9, 14: Column:= 4;
5, 10, 15: Column:= 5;
end;
end;




//Returns a box around the object specified by Number
function GetPoints(Number: integer): TBox;
var
r, c: integer;
begin
GetRc(r, c, Number);
case c of
1: Result.x1:= 45;
2: Result.x1:= 113;
3: Result.x1:= 180;
4: Result.x1:= 248;
5: Result.x1:= 314;
end;
case r of
1: Result.y1:= 45;
2: Result.y1:= 133;
3: Result.y1:= 224;
end;
Result.x2:= Result.x1 + 55;
Result.y2:= Result.y1 + 70;
end;





//Returns the size of the object specified by Number
//(at the second this procedure is called)
function ObjectSize(Number: integer): Extended;
var
Size, Colors, BGColor1, BGColor2: integer;
Box: TBox;
begin
BGColor1:= GetColor(47, 40);
BGColor2:= GetColor(48, 114);
Box:= GetPoints(Number);
Size:= ((Box.x1 - Box.x2) * (Box.y1 - Box.y2));
Colors:= CountColor(BGColor1, Box.x1, Box.y1, Box.x2, Box.y2) + CountColor(BGColor2, Box.x1, Box.y1, Box.x2, Box.y2);
Result:= ((Colors / Size) * 100);
Result:= 100 - Result;
end;




//Finds the average size of the object
//Accuracy is how long it waits figuring out its size
function AvgObjSize(Number, Accuracy: integer): Extended;
var
i: integer;
n, Total: Extended;
begin
for i:= 1 to Accuracy do
begin
n:= ObjectSize(Number);
Total:= Total + n;
Wait(2);
end;
Result:= (Total / Accuracy);
WriteLn(IntToStr(Number) + ': ' + FloatToStr(Result));
end;

gerauchert

2008-03-24 17:38:10

This looks sweet. Ill try out the pinball one as when i get it next :D

Harry

2008-03-24 17:41:51

SendArrowSilentWait(2, 1000 + Random(300));

replace with SetAngle(False); then remember to SetAngle(True);

Yeah, the Mordaut random will almost never be solved IMO because each game update the questions get changed. :|

P1nky

2008-03-24 18:40:34

yay sweet :) if srl could they should add to the antirandom function :)? if its good enough

ShowerThoughts

2008-03-24 18:41:36

there was already a pinball solver?! else nice job else nice job

almost

2008-03-24 20:59:22

There is a pinball solver but it just returns false and doesn't solve anything.
Yeah, the Mordaut random will almost never be solved IMO because each game update the questions get changed. :|

Ya i just got the Mordaut random two times in a row and im realizing it's probably impossible.

Naum

2008-03-25 08:16:20

This was my attempt at my maudout solver :(.
It was just a blink clicker.

program ModautSolver;
{.include srl/srl.scar}


Var
Finished, Continuex : Integer;
FirstLevel : integer;
x, y :integer;
Endx : Integer;

Procedure LoadVars;
Begin
FirstLevel := DTMFromString('78DA63AC666460C805622470FFFE71300D136' +
'5BC0864A5A3AA8101B89A3340563101356A40562101BB5489B0AB' +
'1CC82A21A0A60AC8CAC1AF060038500B7A');

Continuex := BitmapFromString(74, 10, 'beNp9lV1LAkEUhvf/lxc' +
'WC2Y33QdShCKpIVGiVOBP6m2f7fVlZlUOy9nZMzPnOV+upk3TfLzc' +
'SKS8P4+sf6+mn/PJbnmHLkXrh8WtnrtlqxUpPCVfr+1h3u/dLyaYa' +
'RHRq6T5/2lFGyU28ErKcXOPSNeu47rFEz55FwbSOVxm2HORntvZGC' +
'LcQxcagrEUf026BOErYdG6YqUndEQGRvuf7MkohRDhPH7iah2EPOq' +
'ProP92Tywyzh23nQ1LFCiky4HnKZBoRJwXpaEwh5m4go6C+umQ5w4' +
'0oRS0DndWZaS7ey6IO1w+vrMRWfkHF1akggurWOOz3aszgjgJ+N1m' +
'1CWjINzB5q4JFL0unq8IvJvT2PjK/5kxB2E29lT/JJ68KtJ+ZnFr9' +
'k42bDZX9aTKPOop/znRtBwHiUr09EDyu7lyTSa69x15SBAmsWQ5Zr' +
'OZw/WrXqZKKvUdDkw67KU4gnDul49WjmN8ZJ06EazmceyVzwJ69Id' +
'XGFKD1YjkXHfma4ALP4gAMFb/Ml7i5Mz76cqnY/8KoW4FdMy83iu7' +
'y4QFZ1oH1SZajf0pEuErFLTafz6ZP4ZO8/bDI4BM3eYkdNsRscn/f' +
'dcrel8ddGbpvN1xe0uGxByr0suR0Tq8lziGi4GC0HIweLSLXCSxTc' +
'Wo0YX5d7+zF/Rpp1g');

Finished := BitmapFromString(52, 10, 'beNp9lEsOwjAMRHP/BRvU' +
'TeEcSECQYImoUMWJcDvtMLVNoiyajycvE7uljLdDmdvr0qFjOJx3Y' +
'+1sdbj2m3kZPk97fNuHdYqUtWFoOk4fIjppM5HBGvBwhK7ym4Lobo' +
'9FRWWN1RlyaohNuv08kWypmg4VTN1I2Sbba8crN46wN0rZoudqOIy' +
'KsrypPhAYuN+50TYzZcMGdSB65WRpCNmMChd0am0w1xq+wViyAQkM' +
'7o3+JaGtOp+xH/qMVc3YYT4rixh69I9nzUZUrvLHAlE2hVG2f07mv' +
's2ng+197x2bSwzCpG/tSBgOcXbV1CzV1JqKtCbZi+HncVzUBJ5/vL' +
'RAbDWtccTq6zgMV4DLz60maQlmwlCtkbpMyIVhhnRRk9QKn7ZNpXw' +
'BmuNDzQ==');

Endx := BitmapFromString(92, 10, 'beNqFluFqAkEMhH3/R7AirfWH' +
'fQapIKIcxT9COdrah2nu5vo5JqdKkLlcNnuZnc1us/zcLcImk4lAw' +
'rLv/WtYh7ez+krg9+MtBiry3Cy/9nNhPcoiBtz2FuCnmeuVm0YRj9' +
'9TJath7mdg8qd4/Uc5x/U0c7KdUSyE4JHF8MF/WFG7/HpFPI+a0Yk' +
'KEOzVwmvJzlVlpnKestV1SW99lnFOihISM2gAkzMStmOcyMMHOD/t' +
'2NLf0oYTUtc9MfZwYCIEAA/H9xewVlxYP2r0R+GrzbVbRI3KoABUQ' +
'bycVeQyBQCU6tznFHYnj/JIcoEDxJaUk1lSQvfgz5ysp6fNs5eZxC' +
'Oi8HckbGfEsJXEiQI0rwOwvoqxo7QIU1eqiKopEE7cyXLAfw1I2Kt' +
'WLZQZoG2umjDyYFup0iQVBTARo9LneZ9xZiCkcuK7L6VyRd3hxN8+' +
'5IQzJelEWrpoo8fw4Px0Ga6TVE4Y603GQeXExZ+6wZ0VV7NKnKQMr' +
'hmf67R5Sk3VdYK2q2bEJ+rSdtaBBVd8Es3E2zJssNG6x8Nq9Dvh87' +
'7yfZ+ybeu+qxl8LnWSocFaf6g99pafPnOxwypR6rQ4OYzVfaa2Ppz' +
'qHu5JwZ7Bi+WMS+3UnZ4KgQUto7e1amy39r/SRNfVTaaXzcBJf40Z' +
'2Ovx2TKk46me9R7PxQbsDSqB2rtuXW8G+wM31aqp');


end;


Function TalkToMordaut : boolean;
begin
If (Not(ClickToContinue)) then
If FindObjCustom(x,y,['mo','alk','to'],[1978744,2110591,2176642],6) Then
If IsUpText('Morda') then
Begin
Case Random(2) of
0: Begin
Mouse(x,y,0,0,False)
ChooseOption('alk')
end;
1: Mouse(x,y,1,1,true)
end;
Begin
Repeat
If ClickToContinue then
Mouse(x,y,1,1,true);
wait(1000+Random(800))
Until(Not(ClickToContinue))
end;
end;
Result := True
end;

Function FirstLevelFound : boolean;
Begin
If TalkToMordaut then
If FindDTM(FirstLevel,x,y,MSX1,MSY1,MSX2,MSY2) Then
Begin
Writeln('First Level Entered')
Result := True;
end;
end;


Procedure SolveFirstLevel;
Begin
Case Random(4) of
0: Mouse(103, 254,4,4,true);
1: Mouse(204, 251,4,4,true);
2: Mouse(296, 259,4,4,true);
3: Mouse(394, 263,4,4,true);
end;
wait(4000+Random(1000))
end;

Procedure Level1Solved;
Begin
If FindBitmap(Continuex,x,y) then
Begin
Writeln('Going to Solve Next Level')
end else
Repeat
SolveFirstLevel
Until(FindBitmap(Continuex,x,y))
end;


Procedure SolveSecondLevel;
Begin
Case Random(4) of
0: Mouse(103, 254,4,4,true);
1: Mouse(204, 251,4,4,true);
2: Mouse(296, 259,4,4,true);
3: Mouse(394, 263,4,4,true);
end;
wait(4000+Random(1000))
end;

Procedure Level2Solved;
Begin
If FindBitmap(Continuex,x,y) then
Begin
Writeln('Going to Solve Next Level')
end else
Repeat
SolveSecondLevel
Until(FindBitmap(Continuex,x,y))
end;

Procedure SolveThridLevel;
Begin
Repeat
Case Random(16) of
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
{
Color Picked: 5789790 at (77, 81)
Color Picked: 14278109 at (160, 91)
Color Picked: 8355717 at (207, 80)
Color Picked: 14804197 at (268, 79)
Color Picked: 5000274 at (347, 82)
Color Picked: 5000274 at (79, 173)
Color Picked: 8882065 at (149, 179)
Color Picked: 14278109 at (211, 184)
Color Picked: 14278109 at (278, 168)
Color Picked: 9145233 at (334, 173)
Color Picked: 14278109 at (85, 264)
Color Picked: 5329239 at (143, 263)
Color Picked: 14278109 at (212, 263)
Color Picked: 14804197 at (279, 241)
Color Picked: 14804197 at (342, 264)
}





Begin
SetupSRL;
ActivateClient;
LoadVars;
TalkToMordaut;
FirstLevelFound;
SolveFirstLevel;
Level1Solved;
SolveSecondLevel;
Level2Solved;
end.


Pinball solver looks nice ill test it :)

n3ss3s

2008-03-25 09:08:34

Omfg shame on you people claiming to try the Pinball solver - no offense @ almost, - but look:

MoveMouse(cx, cy);


You seriously don't want to use MoveMouse finding objs your style.



GetMousePos(x, y);
ClickMouse(x, y, false);



Nauman… Smaller Bitmaps, perhaps? :rolleyes:



And a bad look at everyone, again no offense to almost, but has everyone seriously ignored the PinBall solver by Wizzy in AntiRandoms.scar?

Which even gets called by FindNormalRandoms!

JuKKa

2008-03-25 09:32:32

From: n3ss3s
Omfg shame on you people claiming to try the Pinball solver - no offense @ almost, - but look:



You seriously don't want to use MoveMouse finding objs your style.





Nauman… Smaller Bitmaps, perhaps? :rolleyes:



And a bad look at everyone, again no offense to almost, but has everyone seriously ignored the PinBall solver by Wizzy in AntiRandoms.scar?

Which even gets called by FindNormalRandoms!


Shame what u didnt look was at the actualy function..

The first 2 lines are:

Logout;
Exit;

…

trust me.. I removed those, and found my player clicking the minimap for … 5 hours?

n3ss3s

2008-03-25 10:00:06

Didn't notice about that, but any chance of someone going and fixing that one?

ShowerThoughts

2008-03-25 10:09:53

yeah raymond did a good job on that

Naum

2008-03-25 10:39:05

Yeah the pinball solver mucks up.
Maybe you need to recheck the code mmmkay?
@N3ss3s I quit my solver ages ago :(

almost

2008-03-25 11:01:50

N3ss3s-
You must not have read a bit of the first post. -.-

Nauman-
Which one?

Didn't notice about that, but any chance of someone going and fixing that one?

I did.

Wizzup?

2008-03-25 11:24:49

From: hermpie
there was already a pinball solver?! else nice job else nice job


Yep. The pinball solver works 100%, but there seems be some weird dangerous bug when I use it in conjunction with ClickContinue. Thats why I added the LogOut; Exit;

n3ss3s

2008-03-25 11:30:26

You must not have read a bit of the first post. -.-


Neither must have the others ;) But if you know they are there, why do you keep them as they are? You can change MouseSpeed temporarily to like 19 if you use the old ones for the speed.

almost

2008-03-25 17:25:50

trust me.. I removed those, and found my player clicking the minimap for … 5 hours?

The pinball solver in SRL doesn't do anything…

And the reason for MoveMouse ClickMouse is that even when i change the mousespeed variable, it still goes super slow.
It's a problem i've seen a few people have.
That's why i say if you can use Mouse, use it.
But it won't work for me.


Edit:
I have new hope for a mordaut solver!
I was curious what happens if you guess them wrong so i just randomly picked anwers.
All you do is fail and you get to leave.
So i'll be making a procedure to guess answers then leave.

almost

2008-03-25 23:22:31

Updated some stuff.
It gets the current mousespeed, changes it to 20, then after the pinball is solved it changes it back.
So no more MoveMouse ClickMouse.

Also it uses SetAngle(false) then SetAngle(true) now.

Markus

2008-03-27 05:58:30

From: Wizzup?
Yep. The pinball solver works 100%, but there seems be some weird dangerous bug when I use it in conjunction with ClickContinue. Thats why I added the LogOut; Exit;

Can I ask you what kind of dangerous bug? One of the 'crashes scar' kind or more the 'instant-ban' one?

Wizzup?

2008-03-27 06:13:24

From: Markus
Can I ask you what kind of dangerous bug? One of the 'crashes scar' kind or more the 'instant-ban' one?


Scar keeps clicking on three coordinates for hours. Moving mouse, click on them.
Those three coordinates differed in x, but the y value stays the same (about 20). It has nothing to do with the Pinball, I made it writeln at every possible action that it does. (The only two are mouse click centre to make sure we do't log out, and the actual clicking the DMT)
Neither of the writeln's told me it even passed the time (click centre) or found the dtm. (click pillar)
I have spent quite some in figuring out what the bug might be, but I can't find it.
I'll give it another go I guess.

the scar noob

2008-03-27 08:04:13

From: Wizzup?
Scar keeps clicking on three coordinates for hours. Moving mouse, click on them.
Those three coordinates differed in x, but the y value stays the same (about 20). It has nothing to do with the Pinball, I made it writeln at every possible action that it does. (The only two are mouse click centre to make sure we do't log out, and the actual clicking the DMT)
Neither of the writeln's told me it even passed the time (click centre) or found the dtm. (click pillar)
I have spent quite some in figuring out what the bug might be, but I can't find it.
I'll give it another go I guess.


Could the problem be global variable declaring? (in the include)

-Tsn.

Wizzup?

2008-03-27 09:06:19

From: the scar noob
Could the problem be global variable declaring? (in the include)

-Tsn.


There are no global x and y's anymore. I'll have to give the ClickContinue a look.

P1nky

2008-03-27 18:55:44

From: NaumanAkhlaQ
This was my attempt at my maudout solver :(.
It was just a blink clicker.

program ModautSolver;
{.include srl/srl.scar}


Var
Finished, Continuex : Integer;
FirstLevel : integer;
x, y :integer;
Endx : Integer;

Procedure LoadVars;
Begin
FirstLevel := DTMFromString('78DA63AC666460C805622470FFFE71300D136' +
'5BC0864A5A3AA8101B89A3340563101356A40562101BB5489B0AB' +
'1CC82A21A0A60AC8CAC1AF060038500B7A');

Continuex := BitmapFromString(74, 10, 'beNp9lV1LAkEUhvf/lxc' +
'WC2Y33QdShCKpIVGiVOBP6m2f7fVlZlUOy9nZMzPnOV+upk3TfLzc' +
'SKS8P4+sf6+mn/PJbnmHLkXrh8WtnrtlqxUpPCVfr+1h3u/dLyaYa' +
'RHRq6T5/2lFGyU28ErKcXOPSNeu47rFEz55FwbSOVxm2HORntvZGC' +
'LcQxcagrEUf026BOErYdG6YqUndEQGRvuf7MkohRDhPH7iah2EPOq' +
'ProP92Tywyzh23nQ1LFCiky4HnKZBoRJwXpaEwh5m4go6C+umQ5w4' +
'0oRS0DndWZaS7ey6IO1w+vrMRWfkHF1akggurWOOz3aszgjgJ+N1m' +
'1CWjINzB5q4JFL0unq8IvJvT2PjK/5kxB2E29lT/JJ68KtJ+ZnFr9' +
'k42bDZX9aTKPOop/znRtBwHiUr09EDyu7lyTSa69x15SBAmsWQ5Zr' +
'OZw/WrXqZKKvUdDkw67KU4gnDul49WjmN8ZJ06EazmceyVzwJ69Id' +
'XGFKD1YjkXHfma4ALP4gAMFb/Ml7i5Mz76cqnY/8KoW4FdMy83iu7' +
'y4QFZ1oH1SZajf0pEuErFLTafz6ZP4ZO8/bDI4BM3eYkdNsRscn/f' +
'dcrel8ddGbpvN1xe0uGxByr0suR0Tq8lziGi4GC0HIweLSLXCSxTc' +
'Wo0YX5d7+zF/Rpp1g');

Finished := BitmapFromString(52, 10, 'beNp9lEsOwjAMRHP/BRvU' +
'TeEcSECQYImoUMWJcDvtMLVNoiyajycvE7uljLdDmdvr0qFjOJx3Y' +
'+1sdbj2m3kZPk97fNuHdYqUtWFoOk4fIjppM5HBGvBwhK7ym4Lobo' +
'9FRWWN1RlyaohNuv08kWypmg4VTN1I2Sbba8crN46wN0rZoudqOIy' +
'KsrypPhAYuN+50TYzZcMGdSB65WRpCNmMChd0am0w1xq+wViyAQkM' +
'7o3+JaGtOp+xH/qMVc3YYT4rixh69I9nzUZUrvLHAlE2hVG2f07mv' +
's2ng+197x2bSwzCpG/tSBgOcXbV1CzV1JqKtCbZi+HncVzUBJ5/vL' +
'RAbDWtccTq6zgMV4DLz60maQlmwlCtkbpMyIVhhnRRk9QKn7ZNpXw' +
'BmuNDzQ==');

Endx := BitmapFromString(92, 10, 'beNqFluFqAkEMhH3/R7AirfWH' +
'fQapIKIcxT9COdrah2nu5vo5JqdKkLlcNnuZnc1us/zcLcImk4lAw' +
'rLv/WtYh7ez+krg9+MtBiry3Cy/9nNhPcoiBtz2FuCnmeuVm0YRj9' +
'9TJath7mdg8qd4/Uc5x/U0c7KdUSyE4JHF8MF/WFG7/HpFPI+a0Yk' +
'KEOzVwmvJzlVlpnKestV1SW99lnFOihISM2gAkzMStmOcyMMHOD/t' +
'2NLf0oYTUtc9MfZwYCIEAA/H9xewVlxYP2r0R+GrzbVbRI3KoABUQ' +
'bycVeQyBQCU6tznFHYnj/JIcoEDxJaUk1lSQvfgz5ysp6fNs5eZxC' +
'Oi8HckbGfEsJXEiQI0rwOwvoqxo7QIU1eqiKopEE7cyXLAfw1I2Kt' +
'WLZQZoG2umjDyYFup0iQVBTARo9LneZ9xZiCkcuK7L6VyRd3hxN8+' +
'5IQzJelEWrpoo8fw4Px0Ga6TVE4Y603GQeXExZ+6wZ0VV7NKnKQMr' +
'hmf67R5Sk3VdYK2q2bEJ+rSdtaBBVd8Es3E2zJssNG6x8Nq9Dvh87' +
'7yfZ+ybeu+qxl8LnWSocFaf6g99pafPnOxwypR6rQ4OYzVfaa2Ppz' +
'qHu5JwZ7Bi+WMS+3UnZ4KgQUto7e1amy39r/SRNfVTaaXzcBJf40Z' +
'2Ovx2TKk46me9R7PxQbsDSqB2rtuXW8G+wM31aqp');


end;


Function TalkToMordaut : boolean;
begin
If (Not(ClickToContinue)) then
If FindObjCustom(x,y,['mo','alk','to'],[1978744,2110591,2176642],6) Then
If IsUpText('Morda') then
Begin
Case Random(2) of
0: Begin
Mouse(x,y,0,0,False)
ChooseOption('alk')
end;
1: Mouse(x,y,1,1,true)
end;
Begin
Repeat
If ClickToContinue then
Mouse(x,y,1,1,true);
wait(1000+Random(800))
Until(Not(ClickToContinue))
end;
end;
Result := True
end;

Function FirstLevelFound : boolean;
Begin
If TalkToMordaut then
If FindDTM(FirstLevel,x,y,MSX1,MSY1,MSX2,MSY2) Then
Begin
Writeln('First Level Entered')
Result := True;
end;
end;


Procedure SolveFirstLevel;
Begin
Case Random(4) of
0: Mouse(103, 254,4,4,true);
1: Mouse(204, 251,4,4,true);
2: Mouse(296, 259,4,4,true);
3: Mouse(394, 263,4,4,true);
end;
wait(4000+Random(1000))
end;

Procedure Level1Solved;
Begin
If FindBitmap(Continuex,x,y) then
Begin
Writeln('Going to Solve Next Level')
end else
Repeat
SolveFirstLevel
Until(FindBitmap(Continuex,x,y))
end;


Procedure SolveSecondLevel;
Begin
Case Random(4) of
0: Mouse(103, 254,4,4,true);
1: Mouse(204, 251,4,4,true);
2: Mouse(296, 259,4,4,true);
3: Mouse(394, 263,4,4,true);
end;
wait(4000+Random(1000))
end;

Procedure Level2Solved;
Begin
If FindBitmap(Continuex,x,y) then
Begin
Writeln('Going to Solve Next Level')
end else
Repeat
SolveSecondLevel
Until(FindBitmap(Continuex,x,y))
end;

Procedure SolveThridLevel;
Begin
Repeat
Case Random(16) of
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
{
Color Picked: 5789790 at (77, 81)
Color Picked: 14278109 at (160, 91)
Color Picked: 8355717 at (207, 80)
Color Picked: 14804197 at (268, 79)
Color Picked: 5000274 at (347, 82)
Color Picked: 5000274 at (79, 173)
Color Picked: 8882065 at (149, 179)
Color Picked: 14278109 at (211, 184)
Color Picked: 14278109 at (278, 168)
Color Picked: 9145233 at (334, 173)
Color Picked: 14278109 at (85, 264)
Color Picked: 5329239 at (143, 263)
Color Picked: 14278109 at (212, 263)
Color Picked: 14804197 at (279, 241)
Color Picked: 14804197 at (342, 264)
}





Begin
SetupSRL;
ActivateClient;
LoadVars;
TalkToMordaut;
FirstLevelFound;
SolveFirstLevel;
Level1Solved;
SolveSecondLevel;
Level2Solved;
end.


Pinball solver looks nice ill test it :)



why didnt you finish it…

MylesMadness

2008-04-05 18:03:01

From: P1NKY
why didnt you finish it…

From: Hy71194
Yeah, the Mordaut random will almost never be solved IMO because each game update the questions get changed. :|
Read…

Negaal

2008-04-05 19:07:03

@Myles,

Still, it is possible to make them into groups, and filter out opposite…only problem seems to be item identifing.