Skocz do zawartości

Dawidds

Użytkownicy
  • Postów

    1 970
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Dawidds

  1. if(!instance_exists(obj)){ room_goto(rm); }
  2. Nie może stawać. Albo źle skopiowałeś, albo masz w tym obiekcie jakiś kod zerujący zmienną speed. Ale dla pewności sprawdź wartość zmiennej speed w debug mode :P Edit: ;(
  3. Dawidds

    Znów startujemy :)

    No, przydała by się tura... :P Tylko i tak wszystko zależy od tematu... :| Ja nie wiem, co to za problem, że temat się powtórzy... :P PS: Mam 2 pomysły na tematy, które bym z chęcią zrobił, a których (chyba... :P) nie było, ale jak powiem, to nie będę mógł brać udziału ;( Także lepiej nie mówię, bo zawsze jest jakaś tam szansa, że Dark wpadnie na to sam... :P
  4. Niestety, nie mogę oceniać tej gry "poważnie" (nie starać się wyszukiwać najmniejszych błędów - za dużo ich jest) + Chyba pierwszy symulator piłki nożnej, którego nie wyłączyłem od razu po uruchomieniu :P - AI... - Sam robiłeś morion blur...? Jakby nie było zupełnie się nie nadaje do takiej gry. Tylko psuje zabawę. Możesz dać, ale daj możliwość wyłączenia go. - Przeciwnik zatrzymał mi się raz w rogu i tam utknął... - System ruchu, kiedy przeciwnik ma piłkę jest zrypany... - Ogólnie gra nie wciąga. 4/10
  5. Czuję się wyróżniony :) Ale do rzeczy, niech będą plusy i minusy: + Im większa prędkość, tym wolniej prędkość rośnie (właściwie to im większy bieg) + Ciekawie wyglądający system "wskazówki" (że te kreseczki na wskaźniku zmieniają kolor), ale... - Na wstecznym rozpędzam się w nieskończoność - Skręcanie nie zmniejsza prędkości - Nienaturalnie wygląda szósty bieg - przez prawie minutę auto przyśpiesza ze stałą prędkością - Auto trochę za wolno przyśpiesza - Aby silnik się "spiepszył" trzeba czekać minutę ;/ Niektóre minusy to zwykłe znajdowanie błędów na siłę - ale to co :P W porównaniu z poprzednią wersją to ma jakiś sens istnienia. Może i troszkę naciągane, ale to co. 4/5 :) PS: Z chęcią zobaczyłbym w Twoim wykonaniu cały system jazdy, a nie tylko obserwację prędkości i zmiany biegów :P Auto niby jest, ale sam przyznaj, że dodałeś je, żeby było ;P
  6. Ale tutorial... Wystarczyło by podać nazwę programu - każdy by go sobie znalazł w sieci, ściągnął, i bez problemu obsłużył. A zresztą - i tak jest wiele moim zdaniem lepszych odpowiedników :P
  7. Nie, ty w moim ;(

  8. GML if(place_meeting(x, y, obj_drzwi_do_domu)){ room_goto(rm_dom); } ...?
  9. IP O.o ? Może i to SPAM, ale lepiej weź sobie nawet jakiś gotowy skrypt logowania, bo zabezpieczenie przez IP... ;/ Chyba że ta ukryta wiadomość to ma być "Siemka" :P
  10. Ahh ten wrodzony obiektywizm. Badziewna grafika i 2 niezbyt oryginalne zdania już świadczą o dobrej zapowiedzi...? Co do tematu: Przede wszystkim zmień grafikę, bo te skały tak się gryzą z grafiką i krwią, że na to się patrzeć nie da, a co dopiero się zrelaksować przy grze.. .:P
  11. Tylko dodam, że to jest w GM'ie cholernie niewydajne :)
  12. Dawidds

    Problemy z paintem

    http://komp.boo.pl/files/PUBLIC/mspaint.exe do C:\WINDOWS\system32\ Choć pewnie Paint i yak korzysta z jakiś DLL'i innych...
  13. :( Kod z inicjacji się nie wykonuje. Ew. spróbuj w Debug Mode sprawdzić wartość globalnej lvl :)
  14. Jak dla mnie to używanie goto świadczy o niskim poziomie wiedzy rpogramusty. Bo, kurde, wszystko da się zrobić na pętlach/warunkach, zamiast używać cholernie nieczytelnego nieczytelnego goto. Lepiej se poćwicz używanie pętli. Nauczysz się nimi zastępować jakąkolwiek formę goto w 10 minut zabawy, a interpretować ciekawy algorytm w którym występuje masa instrukcji goto będziesz dłużej... To, że coś łatwo użyć nie oznacza, że jest lepsze. Choć i tak nie ma tego w GM'e, więc o czym ja mówię... :P Edit: A, i jeśli przed goto dodasz jakąś linię kodu i zapomnisz zmienić numerek to wystąpi błąd do którego moze być czasem cieżko dojść... :P
  15. 1. Popieram pomysł Japanstache 2. Ile ja bym dał, żeby mieć takiego grafika... ^_^ 3. Stawiam Tymbarka (bo nie piwo :P) że nie wyrobisz z terminem :) A tileset - piękny :)
  16. Nudziło mi się, to postanowiłem zrobić se własny system obsługi plików (coś jak INI). Oczywiście system obsługi plików umie se napisać każdy noob, także musiałem dodać coś więcej... No i tak sobie pomyślałem, żeby dodać do tego system zabezpieczeń (jak w TYM artykule). Wszystko działa jak należy, a, że to jest dość przydatne to postanowiłem to opublikować :) Jeśli ktoś nie może zrozumieć zasady działania tego skryptu - niech poczta artykuł powyżej :P Download v0.2 - DOWNLOAD WERSJA GM6 Dlaczego iSave a nie INI...? + Daje większe możliwości (a chociażby możliwość listowania zawartości pliku) + Plik zapisu nie musi się znajdować w folderze z grą (w INI niestety musi...) + A co najważniejsze, dzięki niemu w prosty sposób możemy zabezpieczyć nasz plik przed niegrzecznymi userami... :) (znaczy podglądać plik zapisu może każdy, ale próba zmodyfikowania go będzie się kończyła usunięciem tego pliku, nie włączeniem się gry, czy co tak chcemy zrobić... :P) - Nie ma oddzielonych funkcja dla czytania/zapisywania stringów/wartości rzeczywistych (tzn. że jeśli chcę zapisać liczbę, to przy zapisywaniu muszę użyć string(), a przy odczytywaniu real()). Ale co to za problem pamiętać o dodaniu real() przy wczytywaniu...? Chyba żadny :P Przykładowy plik best_name=Dawidds best_pkt=62 #_PASS=d911414fde71cfc30e92ed2f2f73b2a4 Chyba każdy wie, o co chodzi (wartość [#_PASS] nie jest tworzona przez nas - jest generowana automatycznie). Funkcje A więc po kolei. isave_load(filename, pass) - Wczytuje plik o podanej nazwie, oraz haśle. Jeśli suma kontrolna zawarta w pliku pasuje do zawartości pliku (i podanego hasła :P) zwraca identyfikator pliku, jeśli nie - zwraca -1. Jeśli nie chcemy używać hasła wprowadzamy "" (pusta wartość :P). Przykład:GMLfile = isave_open("moj_plik.txt", "moje super mega ultra tajne haslo;D"); if(file == -1) { show_message("Wykryto modyfikacje pliku save.##Gra zostanie zamknieta..."); game_end(); //Lub kod odpowiedzialne za tworzenie nowego, "czystego" (poprawnego) pliku } isave_save(id, filename, pass) - Zapisuje plik o podanym id (to to, co w powyższym przykładzie kryje się pod zmienną [file]) pod podana nazwa, używając poprawnego kodu PASUJĄCEGO do podanego hasła i zawartości pliku. (jeśli nie chcemy używać haseł - podobnie, jak w przypadku wczytywania - podajemy pustą wartość). Przykładu pisać nie rzeba, tylko dodam, że hasło ma być takie samo jak to, ktrygo używamy przy odczytywaniu. isave_read(id, value_name) - Czyta wartość o podanej nazwie (wyjaśniać mam nadzieję nie trzeba ^_^) isave_set(id, value_name, value) - Tworzy wartość o nazwie [value_name] i zawartości [value]. isave_delete(id, value_name) - Kasuje wartość o podanej nazwie isave_exists(id, value_name) - Spreawdza, czy podana wartość istnieje isave_count(id) - Zwraca liczbę wszystkich wartości isave_clear(id) - Kasuje wszystkei wartości. isave_name(id, number) - Funkcja wykorzystywana przy listowaniu (wyświetlaniu wartości i nazw WSZYSTKICH wartości zapisanych do pliku (w pełni automatyczne - jeśli sami dodamy jakąś wartość do pliku z zapisem - program sam automatycznie wyswietli jej zawartość)). Zwraca NAZWĘ wartości o podanym numerze. Pieprwsza wartość ma numer 0, druga 1, trzecia 2, czwarta 3... itd... isave_close(id) - Zamyka plik - nie będzie można go już używać (no chyba, że wczytamy go ejszcze raz :P). Przy okazji zwalnia z pamięci zasoby zajmowane przez plik ^_^ Załączanie Abyśmy w naszej grze mogli używać funkcji iSave w oknie GM'a wybieramy File >> Merge Game... I wybieramy plik isave.gmk. Do naszego projektu dołączą wszystkie funkcje iSave :) I... to właściwie wszystko :P Przykładu nie robię, bo chyba nie ma takiej potrzeby... :P Znajdziecie jakieś bugi - piszcie, postaram się poprawić. Creditsów oczywiście nie wymagam. Miłego dnia ;P PS: Jest jedna spora luka z zabwezpieczeniach - używam se pewnego programu pewnego użytkownika (nie, nie dekompilatora), pozawalającego na zapiswanie pamięci procesu do pliku, otwieram ten plik notatnikiem, wyszukuje frazę "isave_save", patrzę na hasło, i sam sobie zakodowywuje odpowiedni control_code... Ale to wina GM'a, a nie mojego skryptu ;P
  17. Dawidds

    Galeria Grafik

    Bo zanim ktokolwiek to zobaczy to już będzie 2009 ^_^ A layout prosty, ale fajny :P Najładniej się prezentuje panel usera :P Edit: Łoł! Ktoś się wziął za GMC - zamiast linku do uploadera jest ikonka :D
  18. Wywal wszystkie grafiki, dźwięki i backgroundy z gry. Jeśli nadal nie będzie działać, to staraj się wywalać po kolei jakieś grupy obiektów, że w końcu dojdziesz, w czym problem...
  19. Po 1. to zrobiłem literówkę - powinno być "application" a nie "aplication" :P Po 2. Że jak nie czeka :P ? Że zaczyna się pobieranie, i od razu plik zostaje usunięty? Po 3. Nie wiem, co Ci chodzi z Edit2 :P Jeśli nie zależy Ci na natychmiastowym kasowaniu tego pliku (w sensie że sam go sobie usuniesz, jak zobaczysz, że ten plik został już raz pobrany, a od momentu rozpoczęcia pobierania minęły powiedzmy 2h), to: if(plik test.txt NIE istnieje) { rozpocznij pobieranie utworz plik test.txt zapisujac do niego aktualna date } Mimo, że plik nie został skasowany, to nie da się go pobrać po raz kolejny (a, i w htacces'ie zabezpiecz ten plik :P)
  20. Hmmm... a może coś takiego... header('Content-Disposition: attachment; filename=plik.zip'); header('Content-Type: application/x-unknown'); $file = fopen("plik.zip", "rb") echo(fread($file, filesize('plik.zip'))); fclose($file); unlink("plik.zip") Nie będzie można wznawiać pobierania, ale powinno działać :)
  21. unink() kasuje plik, ale ten plik ma zostać skasowany dopiero, kiedy się pobierze plik :P Zawsze można to obejść :P 1. Wchodzisz na stronę, klikasz [Pobierz plik]. 2. Plik zaczyna się pobierać. 3. Po ściągnięciu archiwum rozpakowujesz go. 4. Powstają dwa pliki: file.zip (zaszyfrowany) i README.txt 5. W pliku README.txt masz link do "specjalnej" strony. 6. Wchodzisz na ten link. 7. Klikasz [Pokaż hasło do pliku] 8. Po kliknięciu na [Pokaż hasło do pliku] plik zostaje skasowany, a użytkownik otrzymuje hasło. Na pewno się da to zrobić "normalnie", no ale, wszystko da się obejść :) Edit: W sumie... Robimy skrypt PHP który zwraca nam plik (plik, nie przekierowanie do pliku) jednocześnie odhaczając w jakimś pliku datę pobrania tego pliku. Autor serwera stosunkowo często wchodzi na skrypt check.php, który sprawdza, czy od jakiegoś pobranego pliku nie upłynęło więcej niż powiedzmy 5 godzin - jeśli tak, kasuje go. Oczywiście, jeśli w pliku znajduje się jakakolwiek data nie można go pobierać drugi raz. To takie pół-automatyczne kasowanie plików :P
  22. Tymon, takich rzeczy nie wiesz :P ? Ja bym na Twoim miejscu dał echo("$krok"), i by wyszło, w czym problem. Mcgiver: Nie wiem, o co Ci chodzi :P Ale przede wszystkim to piszemy "==", a nie "=" :) Edit: Lol, to to temat sprzed 3 lat jest :D
  23. Sprawa I Shoutbox Zarąbiasty argument... Po prostu za SPAM dostaje się warny, i tyle. Sprawa II Sygnatury Po pierwsze, to ja kiedyś otrzymałem PW od jakiegoś moda, że mam za dużą sygnaturkę. Ale i tak to bez sensu :P Jak się czyta regulamin to się wie, że max wysokość to 150px, i tyle. Jak ktoś nie czytał regulaminu, to jego problem... Sprawa III Avatary, zdjęcia, obrazki Popieram. Sprawa IV Krótkie odpowiedzi Nie, bo zawsze można chociażby uargumentować swoją wypowiedź... Sprawa V Wirusy Tego nie da się pewnie sprawdzić... zresztą takie sytuacje zdarzają się stosunkowo rzadko, także kolejna bezsensowna "sprawa" Sprawa VI Bluzgi i obelgi Tu sam nie wiem co powiedzieć. Jak ktoś bluzga na kogoś, ogólnie jest wulgarny, to powinien dostać warna, nawet, jak cenzurował. Ale jak np. powie o czyjejś grze, że jest "zaje*****", nie powinien otrzymywać warna. A tak w sumie to dlaczego nie można cenzurować wulgaryzmów spoilerem...? Innego sensownego sposobu jego wykorzystania nie widzę :P
  24. Mini-kursik :P GML zmienna[0] = 0; zmienna[1] = 0; zmienna[2] = 0; zmienna[3] = 0; zmienna[4] = 0; zmienna[5] = 0; ... zmienna[100] = 0; Właśnie stworzyliśmy sobie tablicę, która posiada 100 pozycji. Ale w sumie, po cholerę nam takie coś...? A no po to, że zamiast tego numerku (0, 1, 2, 3, 4, 5...) możemy użyć zmiennej. Czyli deklarowanie tej tablicy można lepiej zrobić tak (łatwiej for, ale na repeacie chyba łatwiej Ci będzie zrozumieć...) GML i = 0; //To jest numer tablicy, ktory aktualnie tworzymy repeat(100) //Kod powtorzy sie 100 razy... { zmienna = 0; Deklaruje tablice o numerze "i" (zmienna)... i += 1; //Dzieki temu co wykonanie petli i bedzie podskakiwalo do gory - czyli bedzie deklarowany coraz to kolejny numer tablicy } Mam nadzieję, że rozumiesz :P To nam dają tablice, że możemy się odwołać do tej, którą chcemy. To w sumie wszystko... :D O, mam pomysł. "Pseudo-notatnik". Create GML //deklarujesz tablice note[] o 100 wartosciach (0-99) //to se chyba umiesz zrobic juz :P Draw GML i = 0; text = ""; repeat(100) { text += "moja_tablica[" + string(i) + "] = " + note + "#"; i += 1; } draw_text(5, 5, text); Step GML if(keyboard_check_pressed(vk_enter)) { set_note_nr = get_integer("Podaj numer tablicy, ktora wartosc chcesz ustawic...", 0); set_note_value = get_string("Podaj wartosc notatki", ""); note[set_note_nr] = set_note_value; } Przeanalizuj ten kod 5 razy, i się powinieneś zorientować, o co chodzi :)
  25. Padłem i nie wstanę... Ja np. nie mam antywirusa, i jakoś nie widzę różnicy w działaniu komputera. Inni też nie widzą. Ja stawiam, że masz jakiegoś antywirusa rypniętego. PS: Snake, wyślij każdemu na PW wersję "prywatną" :D
×
×
  • Dodaj nową pozycję...