![reklama](http://www.programosy.pl/images/reklama_forum1.png)
A przede wszystkim czy ktoś znający się na tym może mi powiedzieć czy ten skrypt jest prawidłowo napisany czy to jakaś ściema.
Jest to skrypt do gry metin łapiący ryby ma on za zadanie po pojawieniu się na ekranie chmurki symbolizującej branie ryby wyciągać to rybkę zabijać ją prawym przyciskiem myszy zakladać przynete i spowrotem zarzucać wędkę do wody.
- Kod: Zaznacz wszystko
//Rozdzielczosc gry i pulpitu 1024x768
//- iventory otworzone w prawym dolnym rogu caly czas
//- w inventory przyneta - robaki albo papka
//- zalozona wedka
//- lowic samemu... jesli ktos bedzie obok to skrypt bedzie zle dzialal - bedzie
// reagowal na jego chmurke od lowienia [wyciagnie wedke za wczesnie]
//- gra musi bys caly czas na wierzchu, inaczej nie dziala skrypt smile.gif
//- wczytujecie ten skrypt, przelaczacie sie do gry, i:
//- Start: CTRL+ALT+R Stop: CTRL+ALT+S
//- jeżeli skrypt ci nie dziala, to twoj problem - u mnie i znajomych jest ok
//- © by metinbugi.prv.pl, metinbugi@gmail.com
program MetinFish;
var
RybaBMP : Integer;
PrzynetaBMP : Integer;
DuzyKarasBMP : Integer;
KarasBMP : Integer;
KarpBMP : Integer;
RybaMandarynaBMP : Integer;
KarpTrawiastyBMP : Integer;
LososBMP : Integer;
PstragStrBMP : Integer;
RybaLotosuBMP : Integer;
RobakBMP : Integer;
WegorzBMP : Integer;
KrasnopiorkaBMP : Integer;
TenchiBMP : Integer;
OkonBMP : Integer;
SumBMP: Integer;
TeczowyPstragBMP : Integer;
RybaKillX, RybaKillY : Integer;
RybaX,RybaY : Integer; // wsp ryby w inv
PrzynX,PrzynY : Integer; //wps. przynety w inv.
RybaL : Integer; //licznik ryb
PrzynetaL : Integer; //licznik przynet
x1,y1 : Integer; //wsp. znalezionego kolru w chmurce... niepzydatne
Chmurka : Boolean; //sprawdza czy znalazlo chmurke, czy nie smile.gif
LicznikSprChmurki : Integer; //spr ile czasu sprawdza chmurke
LicznikLowienia : Integer;
const
BialyKolor = 14671071; //kolor bialego z chmurki od brania
INV1x = 846; //lewy gorny,
INV1y = 368; // rog inventory
INV2x = 1023; //prawy dolny,
INV2y = 701; // rog inventory
Chm1X = 368; // kwadrat w ktoym bedzie,
Chm1Y = 214; // szukalo chmurki lwey gorny rog
Chm2X = 677; // ten sam kwadrat,
Chm2Y = 424; // prawy dolny rog
procedure ZalozPrzynete;
begin
Wait(200+Random(100));
RybaBMP:=LoadBitmap('./metin.ryby.bmp');
If(FindBitmapToleranceIn(RybaBMP, RybaX, RybaY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Rybe Przyneta');
MoveMouseSmooth(RybaX, RybaY);
Wait(100);
ClickMouse(RybaX, RybaY, False);
RybaL := RybaL +1;
end
else
begin // jesli nei znahdzie ryby
Writeln('Nie znalazlo ryby przynety');
RobakBMP:=LoadBitmap('./robak.bmp');
If(FindBitmapToleranceIn(RobakBMP, PrzynX, PrzynY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie robaka
Writeln('Znalazlo Robaka');
MoveMouseSmooth(PrzynX, PrzynY);
Wait(100);
ClickMouse(PrzynX, PrzynY, False);
PrzynetaL := PrzynetaL + 1;
end
else //jesli znajdzie papke
begin
PrzynetaBMP:=LoadBitmap('./przyneta.bmp');
If(FindBitmapToleranceIn(PrzynetaBMP, PrzynX, PrzynY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie robaka
Writeln('Znalazlo Papke');
MoveMouseSmooth(PrzynX, PrzynY);
Wait(100);
ClickMouse(PrzynX, PrzynY, False);
PrzynetaL := PrzynetaL + 1;
end
end
end;
end;
procedure SprawdzajBranie;
begin
// Wait(100);
if (FindColorTolerance(x1, y1, BialyKolor, Chm1X, Chm1Y, Chm2X, Chm2Y, 7))
then
begin
Writeln('Jest chmurka');
Chmurka := true;
end else
begin
Chmurka := false;
end;
end;
procedure RybaKill; //ubija jakies ryby, jesli je zlowi, nie zajmuja miejsca w inv.
begin
// przesuwa kuror zeby odslonic jakies ryby... czasami kwadracik
// z opisem je zaslania
MoveMouseSmooth(816,644); //miejsce blisko dolu inventory
If(FindBitmapToleranceIn(DuzyKarasBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Duzego Karasia');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(KarasBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Karasia');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(KarpBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Karpia');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(RybaMandarynaBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Rybe Mandaryne');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(KarpTrawiastyBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Karpia Trawiastego');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(LososBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Łososia');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(PstragStrBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Pstraga strumykowego');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(RybaLotosuBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Rybe Lotosu');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(WegorzBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Wegorza');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(KrasnopiorkaBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Krasnopiorke');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(TenchiBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Tenchi');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(OkonBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Okonia');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(SumBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Suma');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
If(FindBitmapToleranceIn(TeczowyPstragBMP, RybaKillX, RybaKillY, INV1x, INV1y, INV2x, INV2y, 100)) Then
begin //jesli znajdzie rybe
Wait(100);
Writeln('Znalazlo Teczowego pstraga');
MoveMouseSmooth(RybaKillX, RybaKillY);
Wait(100);
ClickMouse(RybaKillX, RybaKillY, False);
end;
end;
procedure Spacja;
begin
Writeln('Wyciaga/zarzuca wedke');
Wait(100);
KeyDown(32);
Wait(100);
KeyUp(32);
Wait(100);
end;
// ==============
// Start Programu
// ==============
begin
///// test
DuzyKarasBMP := LoadBitmap('./duzy.karas.bmp');
KarasBMP := LoadBitmap('./karas.bmp');
KarpBMP := LoadBitmap('./karp.bmp');
RybaMandarynaBMP := LoadBitmap('./ryba.mandaryna.bmp');
KarpTrawiastyBMP := LoadBitmap('./karp.trawiasty.bmp');
LososBMP := LoadBitmap('./losos.bmp');
PstragStrBMP := LoadBitmap('./pstrag.strumykowy.bmp');
RybaLotosuBMP := LoadBitmap('./ryba.lotosu.bmp');
WegorzBMP := LoadBitmap('./wegorz.bmp');
KrasnopiorkaBMP := LoadBitmap('./krasnopiorka.bmp');
TenchiBMP := LoadBitmap('./tenchi.bmp');
OkonBMP := LoadBitmap('./okon.bmp');
SumBMP := LoadBitmap('./sum.bmp');
TeczowyPstragBMP := LoadBitmap('./t.pstrag.bmp');
//// test
RybaKill;
RybaL := 0; //zeruje liczniki
PrzynetaL :=0;
LicznikLowienia :=0;
Wait(2000); // czeka na alt+tab do gry
RybaKill; // zabija zlowiona rybe
Wait(200);
ZalozPrzynete; // zaklada przynete... raz na poczatek
Wait(200+Random(200));
Spacja; //zarzuca wedke, jw.
repeat //petelka wink.gif
SprawdzajBranie; //sprawdza chmurke... czy jest branie
if (Chmurka = true) then
begin //jesli jest chmurka
Wait(2500+Random(1000)); //czeka ok 2-3s na wyciagniecie wedki
Spacja; // wyciaga wedke
Wait(2000+Random(1000)); //bylo 5s
RybaKill; // zabija zlowiona rybe
Wait(200);
ZalozPrzynete; // zaklada nowa przynete na wedke;
Wait(200+Random(200)); //czeka chwile [bylo 1.5s]
Spacja; // zarzuca wedke
Wait(100+Random(200)); //czeka chwile
LicznikSprChmurki := 0;
LicznikLowienia := LicznikLowienia + 1; //zwieksza ogolny licznik lowienia
end
else // jesli nie ma chmurki
begin
LicznikSprChmurki := LicznikSprChmurki + 1; //dodaje licznik
// Writeln('Sprawdzam chmurke poraz: '); // wyswietla licznik;
Writeln(InttoStr(LicznikSprChmurki));
end;
if (LicznikSprChmurki > 7550) then // sprawdza chmurke ponad 100 sekund
// cos sie ryplo, powinna byc w tym czasie
begin
Spacja; // 2x spacja zeby sie przynety pozbyc
Wait(2000); //bylo2s
Spacja;
Wait(2000); //bylo2s
Writeln('2x spacja poszla z 2x 5s czekaniem');
RybaKill; //zabija zlowiona rybe
Wait(500);
ZalozPrzynete; // zaklada na nowo przynete;
Wait(500+Random(300)); //czeka chwile
Spacja; //zarzuca przynete
LicznikSprChmurki := 0; //zeruje licznik od czekania na chmurke
end;
// Writeln(InttoStr(LicznikLowienia));
until (LicznikLowienia > 3000) //przerywa jesli zarzuci wedke ponad 3k razy biggrin.gif
Writeln('Koniec Programu');
end.