Skocz do zawartości

Utermiko

Użytkownicy
  • Postów

    796
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Utermiko

  1. Tytuł: MKSim.dll Wersja: 1.2 Download: >>>DOWNLOAD<<< Rozmiar pliku: 243 KB (spakowane) Autorzy: Programowanie: Utermiko Ken Henderson (unit sndkeys32.pas, potrzebny był tylko do funkcji wysuwającej okno na wierzch) Opis: Jest to dll do symulowania kliknięcia myszki/klawiatury. Creditsy nie są obowiązkowe, ale miło byłoby gdybym się znalazł :D Działanie sprawdzałem na Windowsowym notaniku :P W paczce znajduje się: - MKSim.dll (dllek ;p) - MKSimScripts.gml (skrypty ;d Importujemy je w GM'ie Scripts>Import Scripts) - test.gmk (przykladowe uzycie) - Readme.txt (lektura :D) FUNKCJE: GML //INICJALIZACJA mk_init(); //inicjalizuje dll'a //MYSZ mk_getmousex(); //zwraca polozenie myszki X mk_getmousey(); //zwraca polozenie myszki Y mk_setmouse(x,y); //ustawia myszke na podanych wspolrzednych(x, y) mk_mousepress(x,y,button); //symuluje wcisniecie klawisza myszki (button [1 - lewy, 2 - srodkowy, 3- prawy]) na podanych wspolrzednych(x, y) mk_mouserelease(x,y,button); //symuluje puszczenie klawisza myszki (button [1 - lewy, 2 - srodkowy, 3- prawy]) na podanych wspolrzednych(x, y) mk_mousedoubleclick(x,y,button); //symuluje podwojne klikniecie myszki (button [1 - lewy, 2 - srodkowy, 3- prawy]) na podanych wspolrzednych(x, y) mk_getdoubleclicktime(); //zwraca maksymalny czas podowjnego klikniecia(w ms), aby otworzyc np folder //UWAGA Przed wywołaniem kliknięcia należy ustawić myszkę w podanej pozycji [mk_setmouse(x,y)] //KLAWIATURA mk_keyboardpress(key); //symuluje wcisniecie klawisza klawiatury (key [string]) mk_keyboardrelease(key); //symuluje puszczenie klawisza klawiatury (key [string]) mk_keyboardasciipress(key); //symuluje wciśnięcie podanego klawisz ascii(key [real]) mk_keyboardasciirelease(key); //symuluje puszczenie podanego klawisz ascii(key [real]) mk_writetext(text); //symuluje pisanie tekstu (text [string]) //INNE mk_showmsg(text); //pokazuje zwykly komunikat windowsowy o tresci(text [string]) z przyciskiem OK mk_getpixel(x,y); //zwraca kolor piksela na podanej pozycji (x,y) mk_getpixelr(x,y); //zwraca kolor piksela R na podanej pozycji (x,y) mk_getpixelg(x,y); //zwraca kolor piksela G na podanej pozycji (x,y) mk_getpixelb(x,y); //zwraca kolor piksela B na podanej pozycji (x,y) mk_moveupapp(tytul); //aktywuje okno aplikacji o podanym tytule[string], np Bez tytułu - Notatnik mk_drag(x1,y1,x2,y2); //symuluje przeniesienie np. ikony z podanego miejsca (x1,y1) na inne miejsce (x2,y2) //RYSOWANIE mk_drawline(w,s,r,g,b,x1,y1,x2,y2); //rysuje linię prostą na ekranie o grubości (w [real]), stylu(s [real],opis niżej), kolorze(r,g,b) na współrzędnych(x1,y1,x2,y2) //styl linii(1 - Prosta, 2 - Kropki, 3 - Myslniki, 4 - Myslink.Kropka, 5 - Myslnik.Kropka.Kropka, 6 - Przezroczysty mk_drawellipse(s,r,g,b,x1,y1,x2,y2); //rysuje elipsę na ekranie o stylu wypełnienia(s [real], opis niżej), kolorze(r,g,b) na współrzędnych(x1,y1,x2,y2) //styl wypelnienia elipsy(1 - Prosty, 2 - linie poziome, 3 - Linie pionowe, 4 - Linie ukosne od lewej do prawej, 5 - Linie ukosne od prawej do lewej, 6 - Kratka, 7 - Kratka pod katem 45, 8 - Przezroczysty mk_drawrectangle(w,s,r,g,b,x1,y1,x2,y2); //rysuje prostokat na ekranie o grubosci linii(w [real]), stylu linii (s [real], opis niżej), kolorze (r,g,b) na współrzędnych(x1,y1,x2,y2) //styl linii prostokata 1 - Prosta, 2 - Kropki, 3 - Myslniki, 4 - Myslink.Kropka, 5 - Myslnik.Kropka.Kropka, 6 - Przezroczysty mk_drawrectanglespecial(s,r,g,b,x1,y1,x2,y2); //rysuje prostokąt z wypełnieniem o stylu wypełnienia(s [real], opis niżej), kolorze(r,g,b), na współrzędnych(x1,y1,x2,y2) //styl wypelnienia prostokata(1 - Prosty, 2 - linie poziome, 3 - Linie pionowe, 4 - Linie ukosne od lewej do prawej, 5 - Linie ukosne od prawej do lewej, 6 - Kratka, 7 - Kratka pod katem 45, 8 - Przezroczysty mk_drawtext(x,y,txt); //wypisuje tekst na ekranie na współrzędnych(x,y) o treści (txt) //UWAGA!!! Style linii będą działać tylko przy grubości 1! Inna grubość powoduje rysowanie linii prostej! //TYCH FUNKCJI NIE TRZEBA UZYWAC W DRAW'ie :) //ZWOLNIENIE DLLA mk_free(); //zwalnia dll'a z pamieci</span>
  2. No wbiłem na serwa, chodzę, szukam kogoś i ni ma ;d Ale tak ogólnie to podoba mi się i grafika i dźwięki i ogólnie dopracowane wszystko :D Skoro demko jest takie ładne to nie mogę się doczekać pełnej wersji :D 10/10
  3. 1. funkcja random @EDIT GML x=random(900)+100 zwraca u mnie liczby z ułamkiem do setnych części :D jeśli chcesz na liczby całkowite to daj GML x=round(random(900)+100) 2. Wstaw gdzies to w create obiektu ktory pierwszy sie tworzy w grze GML global.ch=choose(sprie,sprite) A potem w create obiektu w ktorym chcesz zmienic sprite GML sprite_index=global.ch
  4. Heh, masz racje, troche fail z mojej strony :/
  5. No tak, znalazłem poważnego buga i nie mam pojęcia co jest źle. Więc tak: hostuje grę, potem w 2 okienku daje dołącz wpisuje w IP '1' i dołączam do gry, natomiast w pongu wyskakuje mi że się nie da. Kod na inicjacje połączenia mam identyczny, a jednak w K&K nie działa poprawnie. Znalazł by się ktoś chętny do pomocy? @EDIT Błąd tak jak myślałem był prosty do rozwiązania ale trudny do znalezienia. 2h sie naszukałem kiedy przy przepisywaniu skryptu zobaczyłem, że jest podana zła nazwa zmiennej :) Download oczywiście zaktualizowany do wersji bez buga :P
  6. Z tłumaczenia dokumentacji 39dll :P Aczkolwiek twój tutek to praktycznie to samo :D @EDIT Jeszcze takie małe pytanko. Dlaczego moje K&K zawsze hostuje się na localhoscie? Daje dołącz do gry wpisuje w ip "1" , i łączy mnie... W pinga z tutoriala mogłm grać z kolegą przez hamachi a tu nie ;/ Połączenie inicjuje tak samo przecież...
  7. Wg. mnie dobrym rozwiązaniem byłoby wysyłanie co ~8 stepów kiedy gracz się rusza i wysłanie pozycji w chwili puszczenia klawisza/zatrzymania poruszania się gracza Ups. Powoli się robi offtop ;/
  8. A nie lepiej wysłać po zmianie pozycji i ew. odświeżać co 5 sec?
  9. Właśnie dlatego wolę najpierw poćwiczyć gry MMO na 2 osoby :P Na więcej niż 2 to już jest nieco trudniej :(
  10. Myślałem nad grą w statki, ale jeszcze zobaczę :P
  11. Właśnie zamykam socket ale dalej jeśli chcę utworzyć grę na tym samym porcie to się nie da póki nie odpale od nowa gry ;/ Popróbuję jeszcze może :P @Edit Co do tego, że gra nie jest rozwinięta to o to miało chodzić :D K&K bardziej urozmaicić się chyba nie da :P(w końcu trzeba od czegoś zacząć, a nie chciałem robić kolejnego Ponga Multi) ;P
  12. No fakt, sorki nie doczytałem tego z menu ;d Nowy jestem na forum :P Btw. Nie rozumiem czemu nie mogę grać w to przez hamachi a w ping ponga z tutoriala mogłem ;/ Wyłączyłem zapore i to samo ;/
  13. Skrypt domysl_sie GML return sprite_add(argument,0,0,1,0,0,0); i potem gdzieś GML draw_sprite(domysl_sie('C:/obrazek.jpg'),0,0,0); Chodzi o to?
  14. Tytuł: Kółko i krzyżyk Online Gatunek: Strategiczna MMO Opis: Co tu dużo mówić :P Chyba każdy zna grę w kółko i krzyżyk. Jest to po prostu przeniesienie wersji z kartki szkolnej na komputer z możliwością gry przez sieć. Jest to moja pierwsza gra oparta na 39dll ;D. Download: Download! Rozmiar pliku: 1,24 MB(spakowane) Autorzy: Programowanie: Utermiko, 39ster(39dll.dll) Fabuła: - Grafika: Utermiko Muzyka: - Screeny: GRA#1 GRA#2
  15. No to rysujesz pasek w sposób który podałem ci w poprzednim poście. Jak chcesz żeby po kliknięciu w któryś awatar przeniosło cię to użyj funkcji collison_rectangle. Ja bym to zrobił tak, że robisz objekt myszki z niewidzialnym spritem który porusza się razem z myszką: STEP obj_cursor GML x=mouse_x; y=mouse_y; STEP obj_controler GML if collision_rectangle(x1,y1,x2,y2,obj_cursor,1,0) && mouse_check_button_pressed(przycisk) { bohater.x=saper.x; bohater.y=saper.y; }
  16. ^^ Pobieram właśnie TDE, może będzie działać ;P Co do Lazarusa, jakoś nie lubię go, wolę Delphi, a pozatym odpycha mnie ogromny rozmiar exeka kompilowanego w nim.(Tak, wiem są UPX'y i można to skonfigurować) @EDIT W Turbo Delphi tym bardziej nie działa więc będę musiał sobie odpuścić ;d
  17. Nie grałem w Comandosa, ale pisząc że obrazki bohaterów idą za ekranem to chodzi ci o viewa? DRAW: GML draw_sprite(sprajt,0,view_xview+x,view_yview+y); za x i y wstaw ofc współrzędne
  18. Ok dzięki za pomoc, popróbuję z tymi uchwytami ;P Ale dalej mnie męczy pytanie dlaczego kiedy uruchamiam przez Delphi>Run to wszystko działa, a po kompilacji do *.exe nie ;/ @EDIT Teraz uaktywnia okno, ale za to myszka się nawet nie przesuwa ;/ Wydaje mi się, że Delphi nie dołącza jakiejś biblioteki albo to ,że Delphi 7 nie jest w pełni kompatybilne z Vistą, bo to co podałeś działa gdy uruchamiam poprzez Delphi>Run. Strasznie dziwny błąd ;/ @EDIT 2 Teraz zapisałem projekt do nowego folderu, chciałem skompilować i antywir(McAfee) krzyknął, że to wirus BTW. Nie ma jakiegoś nowszego, darmowego IDE Delphi?(Nie Lazarus ;d) Słyszałem coś o Delphi XE2 Starter, ale na stronie embarcadero widze tylko Download Trial(30 days) Ew. Znajde gdzieś Turbo Delphi Explorer, bo kiedyś się rejestrowałem i mam klucz ale programu nie i odpale projekt tam(ew. przepisze ;d) ;/
  19. Witam! Z góry mówię iż jestem początkujący w Delphi. Zrobiłem taki programik dla siebie, do którego wpisuje się współrzędne gdzie myszka ma kliknąć. Jak najbardziej klika ale chcę to wykorzystać w pewnej grze. I chodzi o to, że w grze symuluje kliknięcie tylko wtedy gdy uruchomię mój "twór" w Delphi przez Run(F9). Kiedy skompiluje go do *.exe (Project>Build Project1) symulowanie kliknięcia działa tylko np. na pulpicie a w grze już nie. To samo jest z symulowaniem liter klawiatury. Wydaje mi się, że to jest jakiś głupi bład, ale nie mogę go znaleźć, dlatego proszę o pomoc ;d. Uzywam Delphi 7 i mam windowsa viste. Myszkę przesuwam funkcją SetCursorPos(x, y); <--To dziala Symuluje wcisniecie myszki funkcja: mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0); Klawiatura: keybd_event(VkKeyScan(#32), 0, 0, 0); keybd_event(VkKeyScan(#32), 0, KEYEVENTF_KEYUP, 0); keybd_event(VkKeyScan(#32), 0, 0, 0); keybd_event(VkKeyScan(#32), 0, KEYEVENTF_KEYUP, 0); Przepraszam, że napisałem to trochę dziwnie ale nie wiem jak to mam wytłumaczyć ;d Z góry dziękuję za pomoc ;)
×
×
  • Dodaj nową pozycję...