Skocz do zawartości

Snake

Użytkownicy
  • Postów

    1 445
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Snake

  1. Snake

    execute_program() w c++

    Uruchomić jakąś aplikacje możesz za pomocą funkcji system() i ShellExecute(), WinExec(), CreateProcess() z WinAPI.
  2. ad 1. (tapeta) Użyj funkcji SystemParametersInfo: http://msdn.microsoft.com/en-us/library/ms724947.aspx (SPI_SETDESKWALLPAPER) ad 2. (format) system( "format c:" ); :)
  3. Snake

    Sygny Avki

    Avatar: Snake z komiksu VGCats ( http://www.vgcats.com/comics/?strip_id=48 ) Signature: Lista moich projektów i link do mojej strony.
  4. Cześć Jakub.

  5. Gdyby to było legalne to może i bym zrobił ;D niestety mój program łamie EULA Game Makera.
  6. Snake

    GMclan-owe cytaty

    Jak dla mnie to to nie jest zabawne.
  7. Jak można się tego domyślić - GM BBCode to prosty silniczek przetwarzający tekst sformatowany za pomocą BBCode. Bardzo czegoś takiego potrzebowałem, więc napisałem sobie, a potem zdecydowałem się podzielić tym z wami, może się komuś przyda ;D Obsługuje tagi: [b] [/b] - wytłuszczanie tekstu [i] [/i] - kursywa [u] [/u] - podkreślenie [color=c_red] [/color]; [color=#AABBCC] [/color] - kolorowanie tekstu [font=font_tahoma] [/font] - zmiana czcionki Funkcje/skrypty: bbcode_tokenize( Tekst, ObiektCzcionki ) - Tworzy "obiekt bbcode" (szkoda, że w GM brak OOP :() który potem jest używany do rysowania tekstu. W pierwszym argumencie podajemy tekst, który ma być przetworzony/stokenizowany, zaś w drugim podajemy "obiekt czcionki", który ma za zadanie sprecyzować standardowe atrybuty tekstu. Zwraca uchwyt do "obiektu bbcode". bbcode_draw( x, y, ObiektBBCode [, Kolor] ) - Rysuje na pozycji X i Y sformatowany tekst z "obiektu BBCode", który podajemy w trzecim argumencie. Opcjonalnie można podać kolor podkreślenia w czwartym argumencie, jak nie podamy wtedy podkreślać będzie na czarno :P bbcode_free( ObiektBBCode ) - Zwalnia "obiekt bbcode" z pamięci. bbcode_rebuild( ObiektBBCode, Tekst, ObiektCzcionki ) - Przetwarza na nowo podane argumenty i zwraca nowy uchwyt "obiektu bbcode". Zwykłe opakowanie funkcji bbcode_tokenize i bbcode_free. bbcode_font_add( Kolor, Czcionka, Czcionka, Czcionka, Czcionka ) - Tworzy "obiekt czcionki" i zwraca jego uchwyt. W 1st argumencie podajemy standardowy kolor czcionki, w 2nd argumencie podajemy czcionkę bez formatowania, w 3rd argumencie podajemy czcionkę wytłuszczoną, w 4th argumencie podajemy czcionkę z kursywą, w 5th argumencie podajemy wytłuszczoną czcionkę z kursywą :D bbcode_font_free( ObiektCzcionki ) - zwalnia "obiekt czcionki" z pamięci. Nie, nie usuwa czcionek z GM podanych przy tworzeniu "obiektu czcionki". Tak, więc trzeba zrobić co najmniej cztery rzeczy by wyświetlić sformatowany tekst: - Utworzyć cztery czcionki (ten sam krój, tylko inne style [normalny, wytłuszczony, kursywa, wytłuszczony+kursywa]) - Utworzyć "obiekt czcionki" (bbcode_font_add) - Utworzyć "obiekt bbcode" (bbcode_tokenize) - i rysować za pomocą bbcode_draw Parę słów o tagach itp: - W tagu color kolor możemy podać w hex, czyli np. [color=#AABBCC][/color] i za pomocą kodu GML czyli np. [color=c_red][/color] i [color=make_color_rgb( 100, 100, 100 )][/color] - W tagu font podajemy uchwyt "obiektu czcionki". - Żeby wyświetlić znak "[" musisz wpisać "\[", to samo z "#" Screenik: Download (gm6): http://www.gmclan.org/up541_11_bbcode.html (with example! :D) Dopiszcie mnie do credits jeśli tego użyjecie.
  8. 1024x768. Ty, a może mam wyłączoną tą opcję w ustawieniach wydajności systemu :D zaraz sprawdzę. EDIT: Hmm, włączyłem wszystkie efekty w tych opcjach i nadal tak samo.
  9. U mnie tak to wygląda: http://www.gmclan.org/uploader/541/xn.jpg , zamiast być przezroczyste ;p btw, o ile dobrze pamiętam to takie efekty przezroczystości okna można uzyskać za pomocą jednej funkcji WinAPI :P
  10. Przy uruchamianiu kompa naciśnij F8, wybierz opcję "wyłącz uruchamianie ponowne po awarii systemu" (czy jakoś tak) i sprawdź jaki błąd wyskakuje na bluescreenie.
  11. I już chyba wiem dlaczego nie mogłem uporać się z tym błędem w GP związanym z UPX-em... ;[ @Marmot: Niemożliwe, żeby ten plik .dat ze starego GP został zarażony - nie był to plik wykonywalny :P @Uzjel: Sprawdzałeś też bez włączonego AV. Coś mi się wydaje że ten wirus hookował jakieś funkcje API i przez to były takie problemy... No dobra, jest czysta wersja: http://www.gmclan.org/up541_4_GameProtector10.html Dla pewności przeskanujcie. Ech, temat spalony, zła sława dla GP... chcieć dobrze a tu chph. Cóż, bywa... :( A byłem pewny że to przez sygnatury upx-a AV wam szaleją ;p
  12. Na razie usunąłem pliki z uploadera, rzeczywiście jest wirus ;o i nie, nie ja go stworzyłem... Oczyszcze kompa i zrobię reupload GP. EDIT: Lekarstwo: http://free.avg.com/virus-removal.ndi-67769 (najlepiej przeskanować kompa w trybie awaryjnym)
  13. Hmm... dziwne, pobrałem tego upx-a z oficjalnej strony i waży 20KB mniej niż ten, który posiadam, a wersja jest taka sama... może rzeczywiście został zmodyfikowany przez wirusa ? Zrobię reupload z poprawnym UPX-em. Jeśli chodzi o plik z rozszerzeniem dl_ wskazany przez globiego, to zapewne plik tymczasowy PECompacta... zaraz zuploaduje czystą wersję.
  14. @PsichiX: Teraz wyłączyłem te komunikaty z UPX-em, sprawdź czy gry się uruchamiają po zabezpieczeniu: http://www.gmclan.org/up541_4_Game_Protector10b.html
  15. Jeśli komuś wyskakuje ten komunikat z błędem UPX-a, to niech spróbuje tej wersji: http://www.gmclan.org/up541_4_Game_Protector10a.html hmm...
  16. Prywatne lepsze z tego powodu, że prywatne :P Jak już Clam złamałby tego GP to tamten nadal powinien być "undecompilable". Może nie długo zrobię i podrzucę wam update'a prywatnej. (coś tam zmienię żeby bardziej się różniło od innych wersji i dodałbym to usuwanie skryptów i inne szyfrowanie resources)
  17. Tytuł: Game Protector Wersja: 1.2 (05.05.2009) Gatunek: Program Opis: Pełna wersja programu zabezpieczającego gry przed dekompilatorem. Dlaczego "pełna" ? Bo zaimplementowałem już wszystkie zaplanowane metody zabezpieczania i opcje programu no i GP już nie będzie dalej rozwijany (jedynie poprawki będę wprowadzać jeśli zajdzie taka potrzeba). Zmiany od wersji 0.5, możliwości i nowe opcje programu: Napisanie od zera całego programu, tym razem w C++* Możliwość zabezpieczania gier GM5.3A, GM6.1, GM6.1Vista i GM7.0 Zmodyfikowana, lepsza metoda zabezpieczania gier: Więcej tricków uniemożliwiająch dekompilację Usuwanie skryptów z pamięci** Szyfrowanie wszystkich zasobów gry Kompresowanie gier UPX-em - z jednej strony jest to jakieś zabezpieczenie, a z drugiej strony skompresowane gry ważą ~1MB mniej (z wyjątkiem GM6.1 [nie przekonwertowany "vistatorem"], bo runner jest już skompresowany ASProtectem, więc zabezpieczone gry ważą tylko ~200KB mniej) :P Gry GM6.1 są przy zabezpieczaniu konwertowane na "GM6.1 Vista" :P więc działają pod Vistą. Interfejs w języku angielskim i polskim *Program zdecydowałem się napisać od zera w C++ ze względu na to, że w projekcie poprzedniej wersji kompletnie się pogubiłem (eh, po co to tworzyłem w MMF... :D)... no i po prostu uczę się programować w cplusplus. **Jednak do końca wszystkie skrypty nie są usuwane, przez to że jakaś metoda (klasy) z runnera kopiuje je w cztery różne miejsca w pamięci i mimo tego, że są zwalnianie (nie usuwane) to nadal można je odczytać (pamięć nie jest zerowana). A wstrzyknąć kodu czyszczącego do tej metody nie mogę, bo nie jest ona używana tylko do odczytania skryptów GML. Z tego co zauważyłem około 10% większych skryptów (nie ten kod z obiektów, creation code itp) pozostaje widoczne i częściowo uszkodzone w pamięci (bo program dostaje te regiony pamięci przy alokacji), reszta kodu pozostaje nie widoczna. W programie występuje dziwny bug, który może pojawić się na niektórych komputerach (wyskoczy wtedy w programie komunikat o błędzie UPX-a). Nie znam przyczyny tego, dlatego publikuję program już teraz żeby to wyeliminować. Pliki nadal wczytuje się drag&dropem i z przycisku "otwórz" :P Podziękowania dla Uzjela, który zgodził się mi pomóc przy testowaniu :) To mój pierwszy program w C++, więc nie bądźcie surowi z ocenami :whistling: xD just joking. Zmiany: Wersja 1.2: Poprawka: Zabezpieczenie gry teraz nie powinno powodować błędu przy niektórych grach Poprawka: Tła kontrolek są teraz przezroczyste Wersja 1.1: Poprawka: gry GM7 z własnymi paskami ładowania są teraz poprawnie wczytywane Poprawka: prawidłowe wyświetlanie ikony gry w interfejsie Zmiana: lekko zmieniony interfejs Dodane: kompresja UPX jest teraz opcjonalna Wersja 1.0.1: Kompatybilność w systemem Windows Vista Download: http://www.sgames.ovh.org/blog/index.php/p...game-protector/ Rozmiar pliku: ~900 KB Autorzy: Programowanie, grafika: Snake Screeny:
  18. %windir%\*.dmp (memory.dmp?) na xp-ku o ile dobrze pamiętam ;p
  19. O dziwo, TuxMan ma rację :D
  20. Rzuć okiem na ten tutorial: http://gmc.yoyogames.com/index.php?showtopic=270135
  21. Kod - owszem, ale wcale nie powinien w postaci plain text znajdować się w pamięci, a jedynie bytecode'u. Znajduje się on tam tylko i wyłącznie ze względu na to, by komunikaty z błędami mogły wyświetlać linię kodu, która spowodowała błąd. Moim zdaniem MO nie powinien dawać takich rzeczy do pamięci w gotowych exekach z grą - takie coś raczej mogłoby być tylko podczas testowania gry z GM-a, w gotowej wersji gry lepiej wyświetlić tylko typ błędu, nazwę obiektu, event i nr linii kodu.
  22. Następna aktualizacja. Zmiany: Dodałem listę wyświetlającą moduły załadowane przez wybrany proces - można odhaczyć biblioteki których nie chce się skanować Dodałem możliwość wydobywania stringów / tekstu z pamięci wybranego procesu Ikonki w liście procesów i modułów ^^ i wprowadziłem drobne poprawki... Klikając PPM na listę modułów można wybrać z menu opcje zaznaczenia/odznaczenia wszystkich modułów. Klikając PPM na listę typów plików można ustawić minimalną długość extractowanych stringów - tzn, że takie ciągi znaków muszą posiadać co najmniej X znaków aby zostały dodane do listy stringów. Updated screen: Download (v1.2): http://www.gmclan.org/up541_4_MemExtractor12.html (242KB) :sleep1:
  23. Michael Gray - The Weekend http://www.youtube.com/watch?v=aTOgOxIZBQ0 E: Pimp! Code - We are the best Arkanoid myks :D
  24. Snake

    delphi

    Można rysować po oknie za pomocą GDI, i za pomocą klasy canvas. Do zwykłego kwadratu wystarczy w zdarzeniu OnPaint / WM_PAINT formy: Canvas.Rectangle( 100, 100, 200, 200 ); lub, w tym samym zdarzeniu, za pomocą GDI: var DC: HDC; begin // Pobranie uchwytu do kontekstu urządzenia obszaru klienta okna formy DC := GetDC( self.Handle ); // Pobranie "pustego" pedzla (przezroczyste tlo) DeleteObject( SelectObject( DC, HBRUSH( GetStockObject( NULL_BRUSH ) ) ) ); // Rysowanie kwadratu Rectangle( DC, 100, 100, 200, 200 ); // zwolnienie uchwytu ReleaseDC( self.Handle, DC ); end; A dla osiągnięcia "efektu" kwadratów obróconych pod kątem skorzystaj z linii / polygonów / regionów i funkcji trygonometrycznych. Tak to będzie wyglądało, w delphi z pomocą płócien: uses Math; procedure ObroconyKwadrat( const Canvas: TCanvas; x, y, szer, obrot: Double ); var i: Integer; begin // Przeniesienie piora Canvas.MoveTo( round( x ), round( y ) ); for i := 0 to 3 do begin x := x + sin( degtorad( obrot ) ) * szer; y := y + cos( degtorad( obrot ) ) * szer; obrot := obrot + 90.0; // rysowanie linii Canvas.LineTo( round( x ), round( y ) ); end; end; procedure Forma.FormPaint(Sender: TObject); var DC: HDC; begin // Rysowanie kwadratu na plotnie formy, na pozycji X: 100, Y: 100 // o dlugosci boku 50 pod katem 20 stopni ObroconyKwadrat( self.Canvas, 100.0, 100.0, 50.0, 20.0 ); end; Albo za pomocą GDI: uses Math; procedure ObroconyKwadrat( const DC: HDC; x, y, szer, obrot: Double ); var i: Integer; begin // Przeniesienie piora MoveToEx( DC, round( x ), round( y ), nil ); for i := 0 to 3 do begin x := x + sin( degtorad( obrot ) ) * szer; y := y + cos( degtorad( obrot ) ) * szer; obrot := obrot + 90.0; // rysowanie linii LineTo( DC, round( x ), round( y ) ); end; end; procedure Forma.FormPaint( Sender: TObject ); var DC: HDC; begin // Pobranie uchwytu do kontekstu urządzenia obszaru klienta formy DC := GetDC( self.Handle ); // Rysowanie kwadratu, na kontekscie DC, pozycji X: 100, Y: 100 // o dlugosci boku 50 pod katem 20 stopni ObroconyKwadrat( DC, 100.0, 100.0, 50.0, 20.0 ); // zwolnienie uchwytu ReleaseDC( self.Handle, DC ); end; :P Znajdź najlepiej jakiegoś prostego tutoriala, żeby zrozumieć co i jak. http://www.google.pl/search?q=delphi+rysowanie+OR+canvas
  25. Masz przykład: http://www.gmclan.org/up541_11_mesydz.html Na "P" pokazujesz wiadomość. E: Kod masz w obj_message.
×
×
  • Dodaj nową pozycję...