It's my first version and it works really slow,
but i want to show it u, just for feedback and
suggestions ;)
Because i think its too long and i dont use arrays ;)
so, here we go.
Printable View
It's my first version and it works really slow,
but i want to show it u, just for feedback and
suggestions ;)
Because i think its too long and i dont use arrays ;)
so, here we go.
Wth is Puzzle Pirates Bilge?
I would test it for you, but i have no clue wht that is....
sorry...
http://www.puzzlepirates.com/
just click play, download the game.
make a character and when u are in the game,
click on "notice board", then missions,
and then "bilge with the navy" or "learn how to bilge"
More infos about the bilge puzzle:
http://yppedia.puzzlepirates.com/Bilging
Whats the chances of it being detected?
I would suggest looking into DDTM's as it would allow you to easily construct them and shorten the code a lot. Also, you don't need all the "Result := False"'s as Scar automatically sets them to False on call, so unless you set the result to true, it will stay false. Otherwise, it looks fairly promising and a shame I don't have Puzzle Pirates installed... or a character...
ill try it right now, sorry for taking so long
booched everytime, moves a piece for no reason across the board. try that one clear thing by masquerader to edit it, just remember to credit him >.<
why did you include srl? it works without ;)
just no good :(
help?Quote:
Failed when compiling
Line 11: [Error] (14761:1): Duplicate identifier 'x' in script C:\Documents and Settings\wzz\Escritorio\PuzzlePiratesBilge.scar
oh, lol, nice that u test my script. haha. After 2 months i just 'reanimate' this 'project'.
I dont know why do u have this problem, but dont mind.
I've created a better version, it bases on the bilge script, which was published by another guy of these forums, dont know his name :P
But here it is, try it
P.S: I was working on a script for the gunning puzzle, too. Maybe i will reanimate this script, too. we will see...
(I publish a version... buts its very buggy and cant be used, maybe, there is one, who would like to change it)
P.P.S: If u have Problems with the script, while its running (like it keeps clicking on one point, move ur mouse, maybe the problem will disappear), If it still keep clicking on the left top corner, u need to adjust the colors. Just comment out all procedure in the main loop ( + 'repeat' and 'until...'), but not 'LoadBoard'), in the LoadBoard-procedure u have to undo the comment out things... (man, my english rly sucks :D). After that, start the script, while playing the bilge puzzle. Now, u will see that in the scar windows appears some numbers (like 1,1:..., 2,2:....) the first numbers show the row and the second the column (so, "1,4:..." means: row 1, column 4) the numbers after the ':' mean the color value. Just replace the values with the color values in the LoadBoard procedure. (the first value stands for above the water and the second stands for under the water).
EDIT: ah, about the "Whats the chances of it being detected?"-Question: 'till now, i never was detected. But i think its really hard to detect, it just makes the same things like human would do, but without mistakes and with a constant speed (yeah, sometimes it reaches the 'incredible' status :) )
yeah, i meant this script :) yea, i should credit him. (A big SORRY to masquerader, but i never was thinking about to publish it)
Enjoy it :)
Ice evil Maybe you should make a whole script?...Like trying to earn Poe.going on boats doing gunning,sword fighting(nub style :P),and even receiving the loot,that will be just great dude.
BTW,i don't think puzzle pirates has a macro detection system? no body uses macro's on that game,everyone pokers to the riches.
Yeah, when i have time to make a whole bot script ;) (in some weeks or months, sry about that..)
How i do that the auto bilge and Gunning thing works?
great scripts, i cant get the gunning to work but oh well
yay!!! ill test quick :P
this is like an ausome script for puzzle pirates tyvm =)
the gunning script is just for some guys who wants to fix the bug (i dont find it)
i think it has to do with mouseclick or sth like that
@Zlaaterfizh what happens when u start the bilge script?
hey im new to this scar srl thing ok i downloaded iceevil's puzzlepirates.scar thing but now what do i do? i saved it in my doucments and then what do i do btw ius tht autobilge? ty
1. download and install Scar http://freddy1990.com/scar.php
2. double-click on my scar-script
3. start puzzle pirates, logon and start a bilge puzzle
4. (in scar) click on the cross hair symbol and drag it to the puzzle pirate window
5. Now click on the green arrow in scar ("Run Script")
It should be work.
If not, u have to install srl
http://www.villavu.com/forum/showthread.php?t=17890
Hopefully, i explained it right
do u mean the cirlce then a cross inside it for the step 4 if u do i done all dat but it keeps staying to the top and moveing the puzzles left and right?
wow ios working the first one not the better version the secound one wont work but the first one is ok but i keep getting fines no goods or anything else
the other script puzzlepirates.scar ye it does work but it just stays at one play an moves left right? anyone help me please and the first one is good but very slow and the pump only stays at orange or dark blue...
i did move the mouse to anthor point but still same things and how can i adjust the colors and what do i do to the colors thank for all ur help so far though :D
try that, maybe it worksQuote:
P.P.S: If u have Problems with the script, while its running (like it keeps clicking on one point, move ur mouse, maybe the problem will disappear), If it still keep clicking on the left top corner, u need to adjust the colors. Just comment out all procedure in the main loop ( + 'repeat' and 'until...'), but not 'LoadBoard'), in the LoadBoard-procedure u have to undo the comment out things... (man, my english rly sucks ). After that, start the script, while playing the bilge puzzle. Now, u will see that in the scar windows appears some numbers (like 1,1:..., 2,2:....) the first numbers show the row and the second the column (so, "1,4:..." means: row 1, column 4) the numbers after the ':' mean the color value. Just replace the values with the color values in the LoadBoard procedure. (the first value stands for above the water and the second stands for under the water).
ok i done tht move the mosue and stuff nope still wotn work and i have no idea what u mean by adjust color and how youve explained i just dotn get it i have added u on msna ddy btw so if u can help me der and like send me a pic of how it should be the colors and stuff.
yo i couldnt add u on sn for some reason so cna u tell me what to do ok this is my list on scar and it wont work so cna u tell me what to change and stuff pleawse thank you!
Program PuzzlePirates;
var
col, row: integer;
blocks: array[0..11] of array[0..5] of integer;
procedure LoadBoard;
var
color, block: integer;
begin
for row:= 0 to 11 do
begin
for col:= 0 to 5 do
begin
block := -4
color := getColor(114 + (45 * col), 93 + (45 * row));
if(color = 13674794) or (color = 11825425) then // *dark ball
block := 0;
if(color = 9013048) or (color = 9986838) then // *dark octagon
block := 1;
if(color = 16119269) or (color = 12816220) then // *bright ball
block := 2;
if(color = 16509837) or (color = 12946232) then // *bright octagon
block := 3;
if(color = 12837892) or (color = 11503618) then // *bright rectangle
block := 4;
if(color = 13195799) or (color = 11620617) then // *dark rectangle
block := 5;
if(color = 15449431) or (color = 12548387) then // *pentagon
block := 6;
if(color = 13944768) or (color = 11959629) then // *fish
block := -1;
if(color = 6368512) then // *crab
block := -2;
if(color = 7106560) or (color = 11952486) then // *jelly fish
block := -3;
if(block > -4) then
blocks[row][col]:= block;
//Writeln(inttostr(row + 1) + ', ' + inttostr(col+1) + ': ' +inttostr(color));
end;
end;
end;
function FindDoubleCombos():boolean;
var
x, y: integer;
foundsth, found: boolean;
begin
foundsth:= false;
for row:= 0 to 11 do
begin
for col:= 0 to 5 do
begin
found := false;
if(row < 10) and (col < 5) then
begin
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+1]) and (blocks[row][col] = blocks[row+2][col+1])
and (blocks[row][col+1] = blocks[row+1][col]) and (blocks[row][col+1] = blocks[row+2][col]) then
begin //[]()
x := 120 + (45 * col); //()[]
y := 93 + (45 * row); //()[]
found := true;
end;
if not(found) and not(blocks[row+1][col] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col]) and (blocks[row][col+1] = blocks[row+2][col+1])
and (blocks[row][col] = blocks[row+1][col+1]) and (blocks[row][col] = blocks[row+2][col]) then
begin //()[]
x := 120 + (45 * col); //[]()
y := 93 + (45 * (row + 1)); //()[]
found := true;
end;
if not(found) and not(blocks[row+2][col] = -2) and not(blocks[row+2][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col+1]) and (blocks[row][col+1] = blocks[row+2][col])
and (blocks[row][col] = blocks[row+1][col]) and (blocks[row][col] = blocks[row+2][col+1]) then
begin //()[]
x := 120 + (45 * col); //()[]
y := 93 + (45 * (row + 2)); //[]()
found := true;
end;
end;
if(row < 9) and (col < 5) then
begin
if not(found) and not(blocks[row+2][col] = -2) and not(blocks[row+2][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col]) and (blocks[row][col] = blocks[row+2][col+1])
and (blocks[row+1][col+1] = blocks[row+2][col]) and (blocks[row+1][col+1] = blocks[row+3][col+1]) then
begin //[]
x := 120 + (45 * col); //[]()
y := 93 + (45 * (row + 2)); //()[]
found := true; // ()
end;
if not(found) and not(blocks[row+1][col] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col]) and (blocks[row][col+1] = blocks[row+2][col+1])
and (blocks[row+1][col+1] = blocks[row+2][col]) and (blocks[row+1][col+1] = blocks[row+3][col]) then
begin // []
x := 120 + (45 * col); //[]()
y := 93 + (45 * (row + 1)); //()[]
found := true; //()
end;
if not(found) and not(blocks[row+1][col] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+1]) and (blocks[row][col] = blocks[row+2][col])
and (blocks[row+1][col] = blocks[row+2][col+1]) and (blocks[row+1][col] = blocks[row+3][col+1]) then
begin //[]
x := 120 + (45 * col); //()[]
y := 93 + (45 * (row + 1)); //[]()
found := true; // ()
end;
if not(found) and not(blocks[row+2][col] = -2) and not(blocks[row+2][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col+1]) and (blocks[row][col+1] = blocks[row+2][col])
and (blocks[row+1][col] = blocks[row+2][col+1]) and (blocks[row+1][col] = blocks[row+3][col]) then
begin // []
x := 120 + (45 * col); //()[]
y := 93 + (45 * (row + 2)); //[]()
found := true; //()
end;
end;
if(row < 8) and (col < 5) then
begin
if not(found) and not(blocks[row+2][col] = -2) and not(blocks[row+2][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col+1]) and (blocks[row][col+1] = blocks[row+2][col])
and (blocks[row+2][col+1] = blocks[row+3][col]) and (blocks[row+2][col+1] = blocks[row+4][col]) then
begin // []
x := 120 + (45 * col); // []
y := 93 + (45 * (row + 2)); //[]()
found := true; //()
end; //()
if not(found) and not(blocks[row+2][col] = -2) and not(blocks[row+2][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col]) and (blocks[row][col] = blocks[row+2][col+1])
and (blocks[row+2][col] = blocks[row+3][col+1]) and (blocks[row+2][col] = blocks[row+4][col+1]) then
begin //[]
x := 120 + (45 * col); //[]
y := 93 + (45 * (row + 2)); //()[]
found := true; // ()
end; // ()
end;
if(col < 1) then
begin
if not(found) and not(blocks[row][col+2] = -2) and not(blocks[row][col+3] = -2)
and (blocks[row][col] = blocks[row][col+1]) and (blocks[row][col] = blocks[row][col+3])
and (blocks[row][col+2] = blocks[row][col+4]) and (blocks[row][col+2] = blocks[row][col+5]) then
begin //()()[]()[][]
x := 120 + (45 * (col + 2));
y := 93 + (45 * row);
found := true;
end;
end;
if(col < 3) and (row < 10) then
begin
if not(found) and not(blocks[row+1][col+2] = -2) and not(blocks[row+1][col+3] = -2)
and (blocks[row+1][col] = blocks[row+1][col+1]) and (blocks[row+1][col] = blocks[row+1][col+3])
and (blocks[row][col+3] = blocks[row+1][col+2]) and (blocks[row][col+3] = blocks[row+2][col+3]) then
begin // ()
x := 120 + (45 * (col + 2)); //[][]()[]
y := 93 + (45 * (row + 1)); // ()
found := true;
end;
if not(found) and not(blocks[row+1][col] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+1]) and (blocks[row][col] = blocks[row+2][col])
and (blocks[row+1][col] = blocks[row+1][col+2]) and (blocks[row+1][col] = blocks[row+1][col+3]) then
begin //()
x := 120 + (45 * col); //[]()[][]
y := 93 + (45 * (row + 1)); //()
found := true;
end;
if not(found) and not(blocks[row+2][col] = -2) and not(blocks[row+2][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col]) and (blocks[row][col] = blocks[row+2][col+1])
and (blocks[row+2][col] = blocks[row+2][col+2]) and (blocks[row+2][col] = blocks[row+2][col+3]) then
begin //()
x := 120 + (45 * col); //()
y := 93 + (45 * (row + 2)); //[]()[][]
found := true;
end;
if not(found) and not(blocks[row][col+2] = -2) and not(blocks[row][col+3] = -2)
and (blocks[row][col] = blocks[row][col+1]) and (blocks[row][col] = blocks[row][col+3])
and (blocks[row][col+2] = blocks[row+1][col+3]) and (blocks[row][col+2] = blocks[row+2][col+3]) then
begin //[][]()[]
x := 120 + (45 * (col + 2)); // ()
y := 93 + (45 * row); // ()
found := true;
end;
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row][col+2]) and (blocks[row][col] = blocks[row][col+3])
and (blocks[row][col+1] = blocks[row+1][col]) and (blocks[row][col+1] = blocks[row+2][col]) then
begin //[]()[][]
x := 120 + (45 * col); //()
y := 93 + (45 * row); //()
found := true;
end;
if not(found) and not(blocks[row+2][col+2] = -2) and not(blocks[row+2][col+3] = -2)
and (blocks[row][col+3] = blocks[row+1][col+3]) and (blocks[row][col+3] = blocks[row+2][col+2])
and (blocks[row+2][col] = blocks[row+2][col+1]) and (blocks[row+2][col] = blocks[row+2][col+3]) then
begin // ()
x := 120 + (45 * (col + 2)); // ()
y := 93 + (45 * (row + 2)); //[][]()[]
found := true;
end;
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row][col+2]) and (blocks[row][col] = blocks[row][col+3])
and (blocks[row][col] = blocks[row+1][col+1]) and (blocks[row][col] = blocks[row+2][col+1]) then
begin //[] [][]
x := 120 + (45 * col); // []
y := 93 + (45 * row); // []
found := true;
end;
if not(found) and not(blocks[row+1][col] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row+1][col] = blocks[row][col+1]) and (blocks[row+1][col] = blocks[row+1][col+2])
and (blocks[row+1][col] = blocks[row+1][col+3]) and (blocks[row+1][col] = blocks[row+2][col+1]) then
begin // []
x := 120 + (45 * col); //[] [][]
y := 93 + (45 * (row + 1)); // []
found := true;
end;
if not(found) and not(blocks[row+2][col] = -2) and not(blocks[row+2][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col+1]) and (blocks[row][col+1] = blocks[row+2][col])
and (blocks[row][col+1] = blocks[row+2][col+2]) and (blocks[row][col+1] = blocks[row+2][col+3]) then
begin // []
x := 120 + (45 * col); // []
y := 93 + (45 * (row + 2)); //[] [][]
found := true;
end;
end;
if(found) then
begin
ClickMouse(x, y, true);
Wait(500);
LoadBoard;
foundsth:= true;
end;
end;
end;
if(foundsth) then
begin
result:= true;
end else
result:= false;
end;
function Find4Combos():boolean;
var
x, y: integer;
foundsth, found: boolean;
begin
foundsth:= false;
for row:= 0 to 11 do
begin
for col:= 0 to 5 do
begin
found:= false;
if(col < 5) then
begin
if not(found) and not(blocks[row][col+1] = -2)
and not((blocks[row][col+1] = -1) or (blocks[row][col+1] = -3))
and ((blocks[row][col] = -1) or (blocks[row][col] = -3)) then
begin
x := 120 + (45 * col);
y := 93 + (45 * row);
found:= true;
end;
end else
if not(found) and not(blocks[row][col-1] = -2)
and not((blocks[row][col-1] = -1) or (blocks[row][col-1] = -3))
and ((blocks[row][col] = -1) or (blocks[row][col] = -3)) then
begin
x := 80 + (45 * col);
y := 93 + (45 * row);
found := true;
end;
if(row < 9) and (col < 5) then
begin
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col]) and (blocks[row][col] = blocks[row+2][col+1])
and (blocks[row][col] = blocks[row+3][col+1]) and not(blocks[row][col] = blocks[row][col+1])then
begin //[]
x := 120 + (45 * col); //[]
y := 93 + (45 * row); // []
found := true; // []
end;
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col]) and (blocks[row][col+1] = blocks[row+2][col+1])
and (blocks[row][col+1] = blocks[row+3][col]) and not(blocks[row][col] = blocks[row][col+1])then
begin // []
x := 80 + (45 * (col+1)); //[]
y := 93 + (45 * row); // []
found := true; //[]
end;
if not(found) and not(blocks[row][col+1] = -2) and not(blocks[row][col] = -2)
and (blocks[row][col+1] = blocks[row+1][col+1]) and (blocks[row][col+1] = blocks[row+2][col])
and (blocks[row][col+1] = blocks[row+3][col]) and not(blocks[row][col] = blocks[row][col+1])then
begin // []
x := 80 + (45 * (col+1)); // []
y := 93 + (45 * row); //[]
found := true; //[]
end;
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+1]) and (blocks[row][col] = blocks[row+2][col])
and (blocks[row][col] = blocks[row+3][col+1]) and not(blocks[row][col] = blocks[row][col+1])then
begin //[]
x := 120 + (45 * col); // []
y := 93 + (45 * row); //[]
found := true; // []
end;
end;
if(row < 9) and (col < 4) then
begin
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col+2] = blocks[row+1][col]) and (blocks[row][col+2] = blocks[row+2][col+1])
and (blocks[row][col+2] = blocks[row+3][col+1]) and not(blocks[row][col+1] = blocks[row][col+2])then
begin // []
x := 80 + (45 * (col+2)); //[]
y := 93 + (45 * row); // []
found := true; // []
end;
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+1]) and (blocks[row][col] = blocks[row+2][col+2])
and (blocks[row][col] = blocks[row+3][col+1]) and not(blocks[row][col] = blocks[row][col+1])then
begin //[]
x := 120 + (45 * col); // []
y := 93 + (45 * row); // []
found := true; // []
end;
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col+2] = blocks[row+1][col+1]) and (blocks[row][col+2] = blocks[row+2][col])
and (blocks[row][col] = blocks[row+3][col+1]) and not(blocks[row][col+1] = blocks[row][col+2])then
begin // []
x := 80 + (45 * (col+2)); // []
y := 93 + (45 * row); //[]
found := true; // []
end;
if not(found) and not(blocks[row+3][col+2] = -2) and not(blocks[row+3][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col]) and (blocks[row][col+1] = blocks[row+2][col+1])
and (blocks[row][col+1] = blocks[row+3][col+2]) and not(blocks[row+3][col+2] = blocks[row+3][col+1])then
begin // []
x := 80 + (45 * (col+2)); //[]
y := 93 + (45 * (row+3)); // []
found := true; // []
end;
if not(found) and not(blocks[row+3][col] = -2) and not(blocks[row+3][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col+2]) and (blocks[row][col+1] = blocks[row+2][col+1])
and (blocks[row][col+1] = blocks[row+3][col]) and not(blocks[row+3][col] = blocks[row+3][col+1])then
begin // []
x := 120 + (45 * col); // []
y := 93 + (45 * (row+3)); // []
found := true; //[]
end;
end;
if(found) then
begin
ClickMouse(x, y, true);
Wait(500);
LoadBoard;
foundsth:= true;
end;
end;
end;
if(foundsth) then
begin
result:= true;
end else
result:= false;
end;
function FindCombos():boolean;
var
x, y: integer;
foundsth, found: boolean;
begin
foundsth:= false;
for row:= 0 to 11 do
begin
for col:= 0 to 5 do
begin
found:= false;
if(col < 5) then
begin
if not(found) and not(blocks[row][col+1] = -2)
and not((blocks[row][col+1] = -1) or (blocks[row][col+1] = -3))
and ((blocks[row][col] = -1) or (blocks[row][col] = -3)) then
begin
x := 120 + (45 * col);
y := 93 + (45 * row);
found:= true;
end;
end else
if not(found) and not(blocks[row][col-1] = -2)
and not((blocks[row][col-1] = -1) or (blocks[row][col-1] = -3))
and ((blocks[row][col] = -1) or (blocks[row][col] = -3)) then
begin
x := 80 + (45 * col);
y := 93 + (45 * row);
found := true;
end;
if(row < 10) and (col < 5) then
begin
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+1]) and (blocks[row][col] = blocks[row+2][col+1]) then
begin //[]
x := 120 + (45 * col); // []
y := 93 + (45 * row); // []
found := true;
end;
if not(found) and not(blocks[row+1][col] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col]) and (blocks[row][col+1] = blocks[row+2][col+1]) then
begin // []
x := 120 + (45 * col); //[]
y := 93 + (45 * (row + 1)); // []
found := true;
end;
if not(found) and not(blocks[row+2][col] = -2) and not(blocks[row+2][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col+1]) and (blocks[row][col+1] = blocks[row+2][col]) then
begin // []
x := 120 + (45 * col); // []
y := 93 + (45 * (row + 2)); //[]
found := true;
end;
if not(found) and not(blocks[row][col+1] = -2) and not(blocks[row][col] = -2)
and (blocks[row][col+1] = blocks[row+1][col]) and (blocks[row][col+1] = blocks[row+2][col]) then
begin // []
x := 80 + (45 * (col + 1)); //[]
y := 93 + (45 * row); //[]
found := true;
end;
if not(found) and not(blocks[row+1][col+1] = -2) and not(blocks[row+1][col] = -2)
and (blocks[row][col] = blocks[row+1][col+1]) and (blocks[row][col] = blocks[row+2][col]) then
begin //[]
x := 80 + (45 * (col + 1)); // []
y := 93 + (45 * (row + 1)); //[]
found := true;
end;
if not(found) and not(blocks[row+2][col+1] = -2) and not(blocks[row+2][col] = -2)
and (blocks[row][col] = blocks[row+1][col]) and (blocks[row][col] = blocks[row+2][col+1]) then
begin //[]
x := 80 + (45 * (col + 1)); //[]
y := 93 + (45 * (row + 2)); // []
found := true;
end;
end;
if(col < 3) then
begin
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row][col+2]) and (blocks[row][col] = blocks[row][col+3]) then
begin //[] [][]
x := 120 + (45 * col);
y := 93 + (45 * row);
found := true;
end;
if not(found) and not(blocks[row][col+3] = -2) and not(blocks[row][col+2] = -2)
and (blocks[row][col] = blocks[row][col+1]) and (blocks[row][col] = blocks[row][col+3]) then
begin //[][] []
x := 80 + (45 * (col + 3));
y := 93 + (45 * row);
found := true;
end;
end;
if(found) then
begin
ClickMouse(x, y, true);
Wait(500);
LoadBoard;
foundsth:= true;
end;
end;
end;
if(foundsth) then
begin
result:= true;
end else
result:= false;
end;
function FindCombos2movesa():boolean;
var
x, y: integer;
foundsth, found: boolean;
begin
foundsth:= false;
for row:= 0 to 11 do
begin
for col:= 0 to 5 do
begin
found := false;
if(row < 10) and (col < 4) then
begin
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+2]) and (blocks[row][col] = blocks[row+2][col+2]) then
begin //[]
x := 120 + (45 * col); // []
y := 93 + (45 * row); // []
found := true;
end;
if not(found) and not(blocks[row+1][col] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col+2] = blocks[row+1][col]) and (blocks[row][col+2] = blocks[row+2][col+2]) then
begin // []
x := 120 + (45 * col); //[]
y := 93 + (45 * (row + 1)); // []
found := true;
end;
if not(found) and not(blocks[row+2][col] = -2) and not(blocks[row+2][col+1] = -2)
and not(blocks[row+2][col] = blocks[row+2][col+1])
and (blocks[row][col+2] = blocks[row+1][col+2]) and (blocks[row][col+2] = blocks[row+2][col]) then
begin // []
x := 120 + (45 * col); // []
y := 93 + (45 * (row + 2)); //[]
found := true;
end;
if not(found) and not(blocks[row][col+2] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col+2] = blocks[row+1][col]) and (blocks[row][col+2] = blocks[row+2][col]) then
begin // []
x := 80 + (45 * (col + 2)); //[]
y := 93 + (45 * row); //[]
found := true;
end;
if not(found) and not(blocks[row+1][col+2] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+2]) and (blocks[row][col] = blocks[row+2][col]) then
begin //[]
x := 80 + (45 * (col + 2)); // []
y := 93 + (45 * (row + 1)); //[]
found := true;
end;
if not(found) and not(blocks[row+2][col+2] = -2) and not(blocks[row+2][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col]) and (blocks[row][col] = blocks[row+2][col+2]) then
begin //[]
x := 80 + (45 * (col + 2)); //[]
y := 93 + (45 * (row + 2)); // []
found := true;
end;
end;
if(col < 2) then
begin
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row][col+3]) and (blocks[row][col] = blocks[row][col+4]) then
begin //[] [][]
x := 120 + (45 * col);
y := 93 + (45 * row);
found := true;
end;
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row][col+2]) and (blocks[row][col] = blocks[row][col+4]) then
begin //[] [] []
x := 120 + (45 * col);
y := 93 + (45 * row);
found := true;
end;
if not(found) and not(blocks[row][col+4] = -2) and not(blocks[row][col+3] = -2)
and (blocks[row][col] = blocks[row][col+1]) and (blocks[row][col] = blocks[row][col+4]) then
begin //[][] []
x := 80 + (45 * (col + 4));
y := 93 + (45 * row);
found := true;
end;
end;
if(found) then
begin
ClickMouse(x, y, true);
Wait(500);
LoadBoard;
foundsth:= true;
end;
end;
end;
if(foundsth) then
begin
result:= true;
end else
result:= false;
end;
function FindCombos2movesb():boolean;
var
x, y: integer;
foundsth, found: boolean;
begin
foundsth:= false;
for row:= 0 to 11 do
begin
for col:= 0 to 5 do
begin
found := false;
if(col < 4) and (row < 10) then
begin
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+1]) and (blocks[row][col] = blocks[row+2][col+2]) then
begin //[]
x := 120 + (45 * col); // []
y := 93 + (45 * row); // []
found := true;
end;
if not(found) and not(blocks[row][col+2] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col+2] = blocks[row+1][col+1]) and (blocks[row][col+2] = blocks[row+2][col]) then
begin // []
x := 80 + (45 * (col+2)); // []
y := 93 + (45 * row); //[]
found := true;
end;
if not(found) and not(blocks[row+1][col] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col]) and (blocks[row][col+1] = blocks[row+2][col+2]) then
begin // []
x := 120 + (45 * col); //[]
y := 93 + (45 * (row+1)); // []
found := true;
end;
if not(found) and not(blocks[row+1][col+2] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col+1] = blocks[row+1][col+2]) and (blocks[row][col+1] = blocks[row+2][col]) then
begin // []
x := 80 + (45 * (col+2)); // []
y := 93 + (45 * (row+1)); //[]
found := true;
end;
if not(found) and not(blocks[row+1][col+2] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+2]) and (blocks[row][col] = blocks[row+2][col+1]) then
begin //[]
x := 80 + (45 * (col+2)); // []
y := 93 + (45 * (row+1)); // []
found := true;
end;
if not(found) and not(blocks[row+1][col] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col+2] = blocks[row+1][col]) and (blocks[row][col+2] = blocks[row+2][col+1]) then
begin // []
x := 120 + (45 * col); //[]
y := 93 + (45 * (row+1)); // []
found := true;
end;
end;
if(found) then
begin
ClickMouse(x, y, true);
Wait(500);
LoadBoard;
foundsth:= true;
end;
end;
end;
if(foundsth) then
begin
result:= true;
end else
result:= false;
end;
function FindCombos3movesa():boolean;
var
x, y: integer;
foundsth, found: boolean;
begin
foundsth:= false;
for row:= 0 to 11 do
begin
for col:= 0 to 5 do
begin
found := false;
if(row < 10) and (col < 3) then
begin
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+3]) and (blocks[row][col] = blocks[row+2][col+3]) then
begin //[]
x := 120 + (45 * col); // []
y := 93 + (45 * row); // []
found := true;
end;
if not(found) and not(blocks[row+1][col] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col+3] = blocks[row+1][col]) and (blocks[row][col+3] = blocks[row+2][col+3]) then
begin // []
x := 120 + (45 * col); //[]
y := 93 + (45 * (row + 1)); // []
found := true;
end;
if not(found) and not(blocks[row+2][col] = -2) and not(blocks[row+2][col+1] = -2)
and (blocks[row][col+3] = blocks[row+1][col+3]) and (blocks[row][col+3] = blocks[row+2][col]) then
begin // []
x := 120 + (45 * col); // []
y := 93 + (45 * (row + 2)); //[]
found := true;
end;
if not(found) and not(blocks[row][col+3] = -2) and not(blocks[row][col+2] = -2)
and (blocks[row][col+3] = blocks[row+1][col]) and (blocks[row][col+3] = blocks[row+2][col]) then
begin // []
x := 80 + (45 * (col + 3)); //[]
y := 93 + (45 * row); //[]
found := true;
end;
if not(found) and not(blocks[row+1][col+3] = -2) and not(blocks[row+1][col+2] = -2)
and (blocks[row][col] = blocks[row+1][col+3]) and (blocks[row][col] = blocks[row+2][col]) then
begin //[]
x := 80 + (45 * (col + 2)); // []
y := 93 + (45 * (row + 1)); //[]
found := true;
end;
if not(found) and not(blocks[row+2][col+3] = -2) and not(blocks[row+2][col+2] = -2)
and (blocks[row][col] = blocks[row+1][col]) and (blocks[row][col] = blocks[row+2][col+3]) then
begin //[]
x := 80 + (45 * (col + 3)); //[]
y := 93 + (45 * (row + 2)); // []
found := true;
end;
end;
if(col < 1) then
begin
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row][col+4]) and (blocks[row][col] = blocks[row][col+5]) then
begin //[] [][]
x := 120 + (45 * col);
y := 93 + (45 * row);
found := true;
end;
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row][col+3]) and (blocks[row][col] = blocks[row][col+5]) then
begin //[] [] []
x := 120 + (45 * col);
y := 93 + (45 * row);
found := true;
end;
if not(found) and not(blocks[row][col+5] = -2) and not(blocks[row][col+4] = -2)
and (blocks[row][col] = blocks[row][col+2]) and (blocks[row][col] = blocks[row][col+5]) then
begin //[] [] []
x := 80 + (45 * (col+5));
y := 93 + (45 * row);
found := true;
end;
if not(found) and not(blocks[row][col+5] = -2) and not(blocks[row][col+4] = -2)
and (blocks[row][col] = blocks[row][col+1]) and (blocks[row][col] = blocks[row][col+5]) then
begin //[][] []
x := 80 + (45 * (col + 5));
y := 93 + (45 * row);
found := true;
end;
end;
if(found) then
begin
ClickMouse(x, y, true);
Wait(500);
LoadBoard;
foundsth:= true;
end;
end;
end;
if(foundsth) then
begin
result:= true;
end else
result:= false;
end;
function FindCombos3movesb():boolean;
var
x, y: integer;
foundsth, found: boolean;
begin
foundsth:= false;
for row:= 0 to 11 do
begin
for col:= 0 to 5 do
begin
found := false;
if(col < 3) and (row < 10) then
begin
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+2]) and (blocks[row][col] = blocks[row+2][col+3]) then
begin //[]
x := 120 + (45 * col); // []
y := 93 + (45 * row); // []
found := true;
end;
if not(found) and not(blocks[row][col+2] = -2) and not(blocks[row][col+3] = -2)
and (blocks[row][col+3] = blocks[row+1][col+1]) and (blocks[row][col+2] = blocks[row+2][col]) then
begin // []
x := 80 + (45 * (col+3)); // []
y := 93 + (45 * row); //[]
found := true;
end;
if not(found) and not(blocks[row+2][col+2] = -2) and not(blocks[row+2][col+3] = -2)
and (blocks[row][col+1] = blocks[row+1][col]) and (blocks[row][col+1] = blocks[row+2][col+3]) then
begin // []
x := 80 + (45 * (col+3)); //[]
y := 93 + (45 * (row+1)); // []
found := true;
end;
if not(found) and not(blocks[row+2][col] = -2) and not(blocks[row+2][col+1] = -2)
and (blocks[row][col+2] = blocks[row+1][col+3]) and (blocks[row][col+2] = blocks[row+2][col]) then
begin // []
x := 120 + (45 * col); // []
y := 93 + (45 * (row+2)); //[]
found := true;
end;
if not(found) and not(blocks[row][col] = -2) and not(blocks[row][col+1] = -2)
and (blocks[row][col] = blocks[row+1][col+3]) and (blocks[row][col] = blocks[row+2][col+2]) then
begin //[]
x := 120 + (45 * col); // []
y := 93 + (45 * row); // []
found := true;
end;
if not(found) and not(blocks[row][col+3] = -2) and not(blocks[row][col+2] = -2)
and (blocks[row][col+3] = blocks[row+1][col]) and (blocks[row][col+3] = blocks[row+2][col+1]) then
begin // []
x := 80 + (45 * (col+3)); //[]
y := 93 + (45 * row); // []
found := true;
end;
if not(found) and not(blocks[row+1][col] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col+2] = blocks[row+1][col]) and (blocks[row][col+2] = blocks[row+2][col+3]) then
begin // []
x := 120 + (45 * col); //[]
y := 93 + (45 * (row+1)); // []
found := true;
end;
if not(found) and not(blocks[row+1][col+3] = -2) and not(blocks[row+1][col+2] = -2)
and (blocks[row][col+1] = blocks[row+1][col+3]) and (blocks[row][col+1] = blocks[row+2][col]) then
begin // []
x := 80 + (45 * (col+3)); // []
y := 93 + (45 * (row+1)); //[]
found := true;
end;
if not(found) and not(blocks[row+1][col+3] = -2) and not(blocks[row+1][col+2] = -2)
and (blocks[row][col] = blocks[row+1][col+3]) and (blocks[row][col] = blocks[row+2][col+1]) then
begin //[]
x := 80 + (45 * (col+3)); // []
y := 93 + (45 * (row+1)); // []
found := true;
end;
if not(found) and not(blocks[row+1][col] = -2) and not(blocks[row+1][col+1] = -2)
and (blocks[row][col+3] = blocks[row+1][col]) and (blocks[row][col+3] = blocks[row+2][col+2]) then
begin // []
x := 120 + (45 * col); //[]
y := 93 + (45 * (row+1)); // []
found := true;
end;
end;
if(found) then
begin
ClickMouse(x, y, true);
Wait(500);
LoadBoard;
foundsth:= true;
end;
end;
end;
if(foundsth) then
begin
result:= true;
end else
result:= false;
end;
begin
ActivateClient;
repeat
LoadBoard;
if(FindDoubleCombos) then
begin
end else
begin
Find4Combos;
if(FindCombos) then
begin
end else
if(FindCombos2movesa) then
begin
end else
if(FindCombos2movesb) then
begin
end else
if(FindCombos3movesa) then
begin
end else
FindCombos3movesb;
end;
until(iskeydown('s'));
end.
wierd game
Need a better bilge script >.> Booched and Poor so many times, gotta make it look for simple ones..
this isn't working for me if any1 nows anything theat i could try send me an e-mail please
cool thx for this it's nice :)well done :P
gl for making another one :)
xD
grtz
@assad thx
@skull & swift sry for that, i think i cant explain how to fix it in english very well
i hope, i can make a script which fix this bug automatically
The 2nd bilge script works fine, just that it sometimes get stuck, so i blocked out all the pieces under water. Also it rarely gets incredibles but its okay =] Hope you can make more
Here is Iceevil script fixed for the colors that worked for me, also fixed the amount of crab color values.. since for some reason each crab at different cords have diff color value
http://www.sendspace.com/file/ltl8bq
Yup kind a buggy for me, you could get it faster legit.
I have written my own AI for this puzzle :D got me gm bilging ftw hahaha. It used a recursive function to determine moves in multiple steps ahead and stuff.
Edit: no, you can't have it.
My no Water Bilge Script already got me to GM and illustrious o-o"
for them with the color failure (cursor just click at one point)
maybe this text help u:
u need to calibrate the colors.
i dont know why, maybe many desktops using different color values....
in line 48 is a out commented line
delete the "//"
and then comment out line 875, 876 and 878 to 897
now start the script normal (start the bilge puzzle and then start the script)
make a picture of the bilgepuzzle (to prevent, that it will change)
in scar-programm-window ( bottom, left) u will see some numbers, like "1,2:134432535"
the first number is the row and the secound one is the column
now, u just have to copy the values for each tile in the lines 26 to 44.
example:
u got the number 12345678 from row 1, column 1 ( "1,1: 12345678" )
and u see at the picture a fish.
now u enter the value (in this case "12345678") in line 44
(the lines are named, which one the jelly fish is)
so: "if(color = 12345678) or (color = 11952486) then"
the first number is for the jelly fish, which is over water and secound number is the for the jelly fish under water.
Foraging came out, hope you can do what you can =]
Altho its a lot more troublesome because of the amount of different blocks.. So TH would be easier but also would be harder to get since you gotta be on a SMH
Edit: Ulti on Forage within 1-2hours
looks good :D
mabye we can bring a wave of scripting to puzzle pirates ;)
first post etc.
I've been playing PP for about a year and am fed up of bilging, however i still need to do it from time to time but would like to automate the process without losing my illustrious standing.
I have been playing around with Iceevil's script and got it to work after changing the color values and i'd like to learn more about SCAR by applying it to something i already know about.
I'd like to work on making the script recognise larger combo's, moving peices without clearing to build large combo's and clearing crabs quicker but first i was wondering if someone could start me off by telling me what i could do to stop the script from repeatedly clicking the same two identical peices.
i know i need something that states if the block in one colum matches the block in the next column on the same row not to click on it.
Can anyone point me in the right direction?
Thanks.
paragon lol