Administratorzy gnysek Opublikowano 14 Października 2020 Administratorzy Udostępnij Opublikowano 14 Października 2020 Pomyliłeś GMS2 z GMS1. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
nowy_user Opublikowano 18 Października 2020 Udostępnij Opublikowano 18 Października 2020 Dokładnie, też mi się wydaje, że nie ma automatycznych backupów w gms2 ( przynajmniej nie jest to domyślnie ustawione). Przykro mi to słyszeć Mastodont - to co Cię spotkało jest na maksa frustrujące. Mnie korzystanie z gms nauczyło jednego - backupy to konieczność, nawet nie musi być github, po prostu możesz wrzucać co jakiś czas projekt na google drive'a. A i btw. to niepolecam bawić się GMem w pracy. Człowiek cały czas się martwi, czy szef nie looknie w monitor i przez to można niestety popełnić jakiś błąd, nadpisać sobie niechcący projekt , itp itd. Ja bym próbował na twoim miejscu napisać do oficjalnego supportu, może będą w stanie Ci powiedzieć jak przywrócić do życia uszkodzony projekt. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 18 Października 2020 Administratorzy Udostępnij Opublikowano 18 Października 2020 2 godziny temu, nowy_user napisał: możesz wrzucać co jakiś czas projekt na google drive'a Ale wtedy nie masz historii. Wrzucenie do gita jak robisz projekt samemu to jest dwa kliknięcia - commit wszystkiego i push. I masz do tego dostęp na całym świecie. Teraz github ma za free prywatne repozytoria. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dondeusz Opublikowano 27 Stycznia 2021 Udostępnij Opublikowano 27 Stycznia 2021 Witam, już raz napisałem z dosyć prostym problemem nowy post, może nie będę zakładał nowego tylko się tu podepnę tym razem. Kompletnie nie rozumiem surface'ów wykorzystałem poradnik z neta na oświetlenie lala, wziąłem kamerę z zoomem od innego gościa no i się wszystko popsuło. Udało mi się dzisiaj pogodzić je ze sobą no i teraz chciałem zrobić źródło światła - pochodnie - no i światło zostaje na swojej zamierzonej pozycji natomiast kiedy kamera przesuwa/oddala się po pokoju obiekty jakby podążają do pewnego momentu za kamerą . Może ktoś mi podpowiedzieć co jest powodem ? Jeśli będzie trzeba wkleję te moje gryzmoły. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 28 Stycznia 2021 Udostępnij Opublikowano 28 Stycznia 2021 Czy twoja gra korzysta z viewów? Jeśli dobrze rozumiem, to gdzieś trzeba odjąć/dodać view_xview i view_yview, albo coś rysujesz w draw_gui, choć powinno być w draw, lub na odwrót. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dondeusz Opublikowano 28 Stycznia 2021 Udostępnij Opublikowano 28 Stycznia 2021 Wszystko juz dziala jak należy, wybaczcie zamieszanie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pogromca_kodu77 Opublikowano 13 Lutego 2021 Udostępnij Opublikowano 13 Lutego 2021 Cześć chłopaki..Potrzebuje pomocy..Nie mogę sobie poradzić z blokiem kodu...Już tłumaczę o co chodzi..Mam trzy bloki takie same kodu w zdarzeniu step bohatera no i tak.. 1 blok jest to atak bohatera który strzela podczas stania i podczas biegania.. 2.blok kodu to atak bohatera który strzela podczas skoku 3 blok kodu to atak bohatera który strzela kiedy znajduje się na drabinie.. Chciałbym wrzucić te trzy same bloki kodu w jeden blok uwzględniając zmiany spritów i warunki,że jeśli jest na drabinie to używa tego sprita,że jeśli strzela podczas skoku to używa tego sprita..że jeśli strzela podczas stania i biegu używa tego sprita.. Tak wyglądają moje bloki kodu. Proszę wybaczcie,że wkleiłem aż trzy bloki kodu Siedzę nad tym i nie mogę to dobrze ze sobą poskładać.. Mógłbym prosić o pomoc? Bardzo dziękuje z góry za każdą pomoc //bohater strzela podczas stania i biegu var cur = obj_kontroler_gry.current_weapon; // obiekt kontrolny ma indeks aktualnej broni, więc musimy go najpierw pobrać if keyboard_check_pressed(vk_control) && czasAtaku <= 0 && wPowietrzu=false && (global.wep[cur,e_wep.ammo] > 0 || global.wep[cur,e_wep.ammo] == -1) { czasAtaku = global.wep[cur,e_wep.firerate]; czasAtaku = _attackTime; czasBierzacy =1; with instance_create(x,y,attack) { sprite_index = spr_bohater_strzela; image_xscale = other.image_xscale; } var box, ins; if image_xscale == -1 box = bbox_left; else box = bbox_right; if (global.wep[cur,e_wep.ammo] >= 1) // jeśli nie nieskończona amunicja { global.wep[cur,e_wep.ammo]-=1; } var ins = instance_create(box+image_xscale*42, y-17,global.wep[cur,e_wep.ammo_type] ); ins.hspeed = image_xscale * 15; ins.dmg = irandom_range(global.wep[cur,e_wep.dmg_min],global.wep[cur,e_wep.dmg_max]); ins.sprite_index = paintballs[paintball_color++]; //nowa linijka do wyboru kolorow kulki paintball_color &= 3; audio_play_sound(global.wep[cur,e_wep.ammo_sound],10,false) } //bohater strzela podczas skoku i skoku var cur = obj_kontroler_gry.current_weapon; // obiekt kontrolny ma indeks aktualnej broni, więc musimy go najpierw pobrać if keyboard_check_pressed(vk_control) and keyboard_check(vk_space) && czasAtaku <= 0 && (global.wep[cur,e_wep.ammo] > 0 || global.wep[cur,e_wep.ammo] == -1){ czasAtaku = global.wep[cur,e_wep.firerate]; czasAtaku = (_attackTime * 0.5); czasBierzacy =1; with instance_create(x,y,attack) { sprite_index = spr_bohater_strzelawskoku; image_xscale = other.image_xscale; } var box, ins; if image_xscale == -1 box = bbox_left; else box = bbox_right; if (global.wep[cur,e_wep.ammo] >= 1) // jeśli nie nieskończona amunicja { global.wep[cur,e_wep.ammo]-=1; } var ins = instance_create(box+image_xscale*50, y-25,global.wep[cur,e_wep.ammo_type] ); ins.hspeed = image_xscale * 15; ins.dmg = irandom_range(global.wep[cur,e_wep.dmg_min],global.wep[cur,e_wep.dmg_max]); ins.sprite_index = paintballs[paintball_color++]; //nowa linijka do wyboru kolorow kulki paintball_color &= 3; audio_play_sound(global.wep[cur,e_wep.ammo_sound],10,false) } //bohater strzela kiedy znajduje się na drabinie var cur = obj_kontroler_gry.current_weapon; // obiekt kontrolny ma indeks aktualnej broni, więc musimy go najpierw pobrać if keyboard_check_pressed(vk_control) and keyboard_check(vk_space) && czasAtaku <= 0 && drabina==true && place_meeting(x,y,obj_drabina) && (global.wep[cur,e_wep.ammo] > 0 || global.wep[cur,e_wep.ammo] == -1){ czasAtaku = global.wep[cur,e_wep.firerate]; czasAtaku = (_attackTime * 0.5); czasBierzacy =1; with instance_create(x,y,attack) { sprite_index = spr_bohater_strzelanadrabinie; image_xscale = other.image_xscale; } var box, ins; if image_xscale == -1 box = bbox_left; else box = bbox_right; if (global.wep[cur,e_wep.ammo] >= 1) // jeśli nie nieskończona amunicja { global.wep[cur,e_wep.ammo]-=1; } var ins = instance_create(box+image_xscale*50, y-25,global.wep[cur,e_wep.ammo_type] ); ins.hspeed = image_xscale * 15; ins.dmg = irandom_range(global.wep[cur,e_wep.dmg_min],global.wep[cur,e_wep.dmg_max]); ins.sprite_index = paintballs[paintball_color++]; //nowa linijka do wyboru kolorow kulki paintball_color &= 3; audio_play_sound(global.wep[cur,e_wep.ammo_sound],10,false) } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 17 Lutego 2021 Udostępnij Opublikowano 17 Lutego 2021 Witam, Natknąłem się na taki błąd i nie mam pojęcia czego on wynika. Ktoś ma jakiś pomysł? Create: for(var i=0; i < 64; i++) //64 - tyle jest promieni { grid[i] = -1; //ray type grid[i][i] = -1; //ray length } Draw: for(var i=0; i < 64; i++) //64 - tyle jest promieni { draw_text(400, 5 + (i*10), grid[5]); } wynik: [0,0,0,0,0,-1] <-- zależnie co wpiszę w index tablicy, tyle jest zer np. grid[3] = [0,0,0,-1] grid[6] = [0,0,0,0,0,0,-1] jak wpiszę grid[ i ][ i ] to jest ok. ale przy jednym grid[ i ] to już nie :/ Przy zmianie zmiennej grid, jest to samo. Uruchomienie ponownie kompa, to samo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 18 Lutego 2021 Administratorzy Udostępnij Opublikowano 18 Lutego 2021 Ja nie bardzo rozumiem co tu się dzieje, ale: jeśli napiszesz grid[0][0] = 1, to tak samo jakby napisać grid[0] = [1]; jeśli dodasz grid[0][1] = 2, to mamy grid[0] = [1, 2]; Mam wrażenie, że kasujesz sobie tablicę 2D. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 18 Lutego 2021 Udostępnij Opublikowano 18 Lutego 2021 Generalnie sam już nie pamiętam co miałem wczoraj na myśli. Coś kojarzę, że w gm teraz nie ma tablic dwuwymiarowych tylko są zagnieżdżenia, a nie miałem z tym nigdy styczności. Dlatego chciałem zrobić tak jakby tablice jedno i dwuwymiarową pod jedną zmienną. Czyli jakbym chciał się odwołać do pierwszej tablicy to wpisywałbym grid[ i ], a jak do zagnieżdżonej drugiej tablicy (coś na styl dwuwymiarowej) to grid[ i ][ i ]. Generalnie błąd rozwiązałem tym, że mam grid[ 0 ] [ i ] - jakby do 1D grid[ i ] [ i ] - jakby do 2D ... właśnie pisząc to zauważyłem, że mogę zrobić grid[ 0 ][ i ] grid[ 1 ][ i ] i traktować to jak dawne tablice dwuwymiarowe Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 18 Lutego 2021 Administratorzy Udostępnij Opublikowano 18 Lutego 2021 Dokładnie tak. A przed chwilą próbowałeś pod jedną wartością mieć dwie zmienne - i liczbę i tablicę jednocześnie. Tablica w tablicy to generalnie stara tablica 2D, jedyna różnica teraz, to że za każdym razem możesz mieć inną ilość elementów jeśli chcesz, ale jak się pilnujesz, to używasz je tak samo (i nawet zapis grid[1, 2] powinien działać). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 19 Marca 2021 Udostępnij Opublikowano 19 Marca 2021 Przed wprowadzeniem funkcji (wcześniej skrypty), można było fajnie napisać "state machine" przy pomocy enum, które podpowiada po kropce. Teraz enum ciągle wyrzuca błąd "enum assignment must be an integer constant". Ma ktoś na to fajną radę? Próbowałem już coś takiego: enum pistolstate { ready = scrPistolReady, //Już nie działa ready = scrPistolReady.id, // nie działa, pomimo, że zwraca 10007 ready = real(scrPistolReady), // nie działa ready = real(scrPistolReady.id), // nie działa ready = int64(scrPistolReady.id), // nie działa ready = method_get_index(scrPistolReady), //zwraca undefinied fire = 1, reload = 2 } Jedyne rozwiązanie jakie udało mi się do tej pory zrobić, to takie, ale na dłuższą metę, przy kilku obiektach, jest to męczące ._. //dla latwiejszego zmieniania state (podpowiadanie zmiennych) enum herostate { idle = 0, walk = 1 } //nowa wersja gma zmusza do tłumaczenia... set[herostate.idle] = scrHero_idle; set[herostate.walk] = scrHero_walk; //ustaw state state = set[herostate.idle]; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 19 Marca 2021 Administratorzy Udostępnij Opublikowano 19 Marca 2021 A czemu nie enum herostate { idle, walk } set = [scrHero_idle, scrHero_walk]; Wtedy 0,1,...,n samo zostanie ustawione kolejno ? Btw. w 2.3 skrypty nie są po kolei z drzewkiem i reszta zasobów też nie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 19 Marca 2021 Udostępnij Opublikowano 19 Marca 2021 no można by ale generalnie chodziło mi o to, żeby przypisać od razu do enum, tak jak to było przed funkcjami. Przeczytałem dzisiaj całą definicję enum z wersji 2.3 dla gm:s2 i wychodzi na to, że nie można już przypisywać zmiennej ani funkcji, nawet jeśli byłyby to liczby. Dlatego też funkcja.id nie działa, pomimo, że zwraca integer :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 31 Maja 2021 Udostępnij Opublikowano 31 Maja 2021 Co oznacza operator >>? W dokumentacji napisane, że przesuwa w prawo albo w lewo, a w praktyce jak to wygląda? To to samo co x-=5? mp_grid_add_cell(grid, x>>5, y>>5); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 31 Maja 2021 Administratorzy Udostępnij Opublikowano 31 Maja 2021 Absolutnie nie jest to odejmowanie. Np. 148 binarnie to 10010100, robisz 5 przesunięć w prawo, zatem wypada 5 ostatnich cyfr i zostaje 100, czyli 4. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 31 Maja 2021 Udostępnij Opublikowano 31 Maja 2021 Używa się tego w gmie? Oprócz szyfrowania to nie widzę zastosowań. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 31 Maja 2021 Administratorzy Udostępnij Opublikowano 31 Maja 2021 Powiedziałbym, że korzystałem z tego tak samo często jak w innych językach programowania, czyli generalnie wcale SimianVirus7 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 2 Czerwca 2021 Udostępnij Opublikowano 2 Czerwca 2021 Przesunięcia może mało użyteczne ale już same operacje binarne | i & się jak najbardziej przydają. Ostatnio nawet do mojego generatora drzew do GUI używałem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 9 Sierpnia 2021 Udostępnij Opublikowano 9 Sierpnia 2021 Zrobiłem dzisiaj swój pierwszy system cząsteczek (tak wiem, tyle lat w gm'ie a ja dopiero cząsteczki tknąłem :P). Mam pytanie. Przy pewnej zmiennej cząsteczki mają zmienić swój kierunek lotu. Czy można już istniejącym cząsteczkom cokolwiek modyfikować? Z tego co czytałem, to nie. Na razie pasuje mi rozwiązanie typu part_particles_clear(pSystem) i zastąpienie ich nowymi ale cząsteczki znikają momentalnie, a chciałbym, żeby alpha najpierw zleciała do zera, coś jakby funkcja miała nazywać się part_particles_clear_with_alpha(pSystem) Ktoś ma na to radę? gnysek 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 9 Sierpnia 2021 Administratorzy Udostępnij Opublikowano 9 Sierpnia 2021 Oczywiście, że można, tak samo jak wtedy, gdy tworzysz system, identycznymi funkcjami można modyfikować na bieżąco kierunek, kształty itd. Wiele osób tego nie wie, a właśnie tak można stworzyć fajniejsze dynamiczniejsze particle (np. coś na wzór tornada - przesuwasz punkt startowy clipart po kole i zmieniasz ich kierunek, żeby leciały w dobrą stronę). Particle można też "pauzować" wyłączając automatyczną ich aktualizację, czy rysować ręcznie. Postaram się napisać na ten temat niedługo artykuł, właśnie podsunąłeś mi temat Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
H2S04 Opublikowano 19 Stycznia 2022 Udostępnij Opublikowano 19 Stycznia 2022 Pytanko co do surface... Mam Sprite 500x500 okrągłego gardientu na światełko, ale rysowanie surface nachodzi na siebie i nie wygląda to zbyt ładnie, co mogę z tym zrobić? var VW = camera_get_view_width(view_camera[0]), VH = camera_get_view_height(view_camera[0]), VX = camera_get_view_x(view_camera[0]), VY = camera_get_view_y(view_camera[0]); if(surface_exists(global.Light_Surf)){ surface_set_target(global.Light_Surf); //BlackAlpha draw_clear_alpha(c_black,0.8); with(o_Light){ gpu_set_blendmode(bm_subtract); draw_sprite_ext(s_Light,0,x-VX,y-VY,0.5,0.5,0,c_white,1); // gpu_set_blendmode(bm_normal); gpu_set_blendmode(bm_add); draw_sprite_ext(s_Light,0,x-VX,y-VY,0.5,0.5,0,c_yellow,0.15); gpu_set_blendmode(bm_normal); draw_sprite_ext(s_RoadLight,0,x-VX,y-VY,1,1,image_angle,c_white,1); } with(o_PawnShp){ gpu_set_blendmode(bm_subtract); draw_sprite_ext(s_Light,0,x-VX,y-VY,0.3,0.3,0,c_white,1); gpu_set_blendmode(bm_normal); gpu_set_blendmode(bm_add); draw_sprite_ext(s_Light,0,x-VX,y-VY,0.3,0.3,0,LightColor,0.15); gpu_set_blendmode(bm_normal); draw_sprite_ext(s_PawnShop,image_index,x-VX,y-VY-8,1,1,180,c_white,1); draw_sprite_ext(s_PawnShop,image_index,x-VX,y-VY+8,1,1,0,c_white,1); } surface_reset_target(); draw_surface(global.Light_Surf,VX,VY); } else { global.Light_Surf = surface_create(VW,VH); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 19 Stycznia 2022 Administratorzy Udostępnij Opublikowano 19 Stycznia 2022 Ne bardzo rozumiem problem - moim zdaniem wygląda ok. Jeśli jednak jest jakiś problem, no to musisz poprawić ten gradient, tak, żeby tam gdzie się zdaje, że on się kończy, faktycznie się kończył, a nie miał jeszcze z 30-40 pikseli. Z matematycznego punktu widzenia zdaje się, że wyświetla się ok. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
H2S04 Opublikowano 19 Stycznia 2022 Udostępnij Opublikowano 19 Stycznia 2022 35 minut temu, gnysek napisał: Ne bardzo rozumiem problem - moim zdaniem wygląda ok. Jeśli jednak jest jakiś problem, no to musisz poprawić ten gradient, tak, żeby tam gdzie się zdaje, że on się kończy, faktycznie się kończył, a nie miał jeszcze z 30-40 pikseli. Z matematycznego punktu widzenia zdaje się, że wyświetla się ok. Już zmniejszyłem, popatrz jak gradient na siebie nachodzi, jeśli chodzi o latarnie, widać zaokrąglenia, bawiłem się bmami ale efekty słabe, wygląda jak by rysowały się wszystkie na raz, bo światełko od pawnshopu ładnie nachodzi bo jest rysowane następne w kolejności, jeszcze jutro nadam im jakiś nr i spróbuję for narysować je po kolei, może coś to da, bo wygląda fajnie ale jednak te zaokrąglenia jakoś mnie w oczy bolą ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 20 Stycznia 2022 Administratorzy Udostępnij Opublikowano 20 Stycznia 2022 Może mój laptop ma gorszy ekran, ale ja nie widzę tam żadnych problemów graficznych Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
H2S04 Opublikowano 20 Stycznia 2022 Udostępnij Opublikowano 20 Stycznia 2022 Trzeba powiększyć, spróbuj na smartphonie ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 21 Stycznia 2022 Udostępnij Opublikowano 21 Stycznia 2022 Widać, nachodzi na siebie, bo nie sumujesz ich ze sobą. Pokombinuj z innymi blend modes Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
H2S04 Opublikowano 23 Stycznia 2022 Udostępnij Opublikowano 23 Stycznia 2022 EDIT: Problem występuje przy blend mode bm_add... jak jest sam biały bm_substract, to nie ma tego problemu. Więc chyba po prostu wywalę tę linijkę i zamiast, żółtego światła będzie białe i tyle Właśnie próbowałem na różne sposoby, efekt byle jaki, i człowiek już nie wie jak to przykombinować, nawet uciąłem trochę gardient ale dalej widać linię, rysowanie w pętli for też daje ten sam efekt ? gnysek 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 25 Stycznia 2022 Administratorzy Udostępnij Opublikowano 25 Stycznia 2022 To jest jakiś problem z kanałami alpha w takim razie. Spróbuj albo zaznaczyć opcję "premultiply alpha" lub "edge filtering". Ja np. mam problem z obrazkami robionymi w Affinity Designer, bo jak je skalujesz (bez względu na tryby), to dostają czarnej obwódki i "edge filtering" je naprawia. H2S04 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
H2S04 Opublikowano 27 Stycznia 2022 Udostępnij Opublikowano 27 Stycznia 2022 W dniu 25.01.2022 o 09:51, gnysek napisał: To jest jakiś problem z kanałami alpha w takim razie. Spróbuj albo zaznaczyć opcję "premultiply alpha" lub "edge filtering". Ja np. mam problem z obrazkami robionymi w Affinity Designer, bo jak je skalujesz (bez względu na tryby), to dostają czarnej obwódki i "edge filtering" je naprawia. Paaanie luksus teraz światła które na siebie nachodzą ładnie się zlewają Dzięki Gnysek! Zdrówka gnysek 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się