Uzjel Opublikowano 25 Stycznia 2017 Udostępnij Opublikowano 25 Stycznia 2017 DUŻO MATEMATYKI! (serio to nie tak dużo). Pewnie chcesz zrobić coś a'la lockowanie kursora na celu. Rozrysuj to sobie. Jakich wartości potrzebujesz? X przeciwnika? Y przeciwnika? Pozycję ekranu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 25 Stycznia 2017 Udostępnij Opublikowano 25 Stycznia 2017 Będę strzelał że jeśli używasz view to cos w stylu: window_set_mouse(x_jaki_chcesz - view_xview[twoj_view], y_jaki_chcesz - view_yview[twoj_view]) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dester Opublikowano 25 Stycznia 2017 Udostępnij Opublikowano 25 Stycznia 2017 Będę strzelał że jeśli używasz view to cos w stylu: window_set_mouse(x_jaki_chcesz - view_xview[twoj_view], y_jaki_chcesz - view_yview[twoj_view]) Raz działa, raz nie... :huh: GML if(global.aimbot){ if(instance_exists(player)){ target = instance_nearest(player.x, player.y, simple_stalker) if target.x>view_xview[0] and target.y>view_yview[0] and target.x<view_xview[0]+view_wview[0] and target.y<view_yview[0]+view_hview[0] { window_mouse_set(target.x - view_xview[0], target.y - view_yview[0]) } } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 25 Stycznia 2017 Udostępnij Opublikowano 25 Stycznia 2017 Co znaczy raz działa a raz nie? kod na oko wygląda ok. Sprawdź czy wszystkie zmienna są poprawne gdy nie działa, czyli global.aimbot(czy włączony), player(czy to ta instancja którą chcesz), target(czy istnieje i czy zwraca tego którego uważasz że powinno zwrócić), czy przechodzi wtedy ifa. co wypisuje target.x - view_xview[0] ( wtedy kiedy nie działa oczywiście ) Itd aż znajdziesz przyczynę : f Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 6 Lutego 2017 Udostępnij Opublikowano 6 Lutego 2017 Chciałem żeby obiekt się niszczył po skończonej animacji. Myślałem, że jak każda instancja będzie miała ten sam speed i image_speed to powinny pokonywać ten sam dystans, ale jak sprawdzam przez distance_to_point(xstart,ystart), to okazuje się, że dla każdego innego kierunku ruchu jest inny pokonany dystans. Skoro speed oznacza ile pixeli pokonuje obiekt w trakcie 1stepu, to skąd różne wartości? I druga sprawa, do której rozwiązania potrzebuję rozwiązać pierwszy problem. Chcę znając liczbę klatek animacji, speed i dystans który chce żeby obiekt pokonał, wyliczyć jaki musi być dla niego image_speed. Jak to zrobić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 6 Lutego 2017 Udostępnij Opublikowano 6 Lutego 2017 Masz event animation end. I tam daj kod na destrukcję obiektu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 6 Lutego 2017 Udostępnij Opublikowano 6 Lutego 2017 to już sam ustaliłem, źle napisałem na początku. A co do reszty, jakiś pomysł? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 6 Lutego 2017 Udostępnij Opublikowano 6 Lutego 2017 Różnica w dystansie bierze się stąd, że funkcja distance_to_point() nie mierzy odległości od punktu do punktu, tylko od najbliższej krawędzi maski tego obiektu do punktu. Jeżeli maska jest kwadratowa to wiadomo że pod różnymi kątami masz inną odległość. Po za tym to jest wolna funkcja w porównaniu do point_distance() Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 10 Lutego 2017 Udostępnij Opublikowano 10 Lutego 2017 Początek kodu który ma na celu szukanie gracza w miejscu w którym był ostatnio- kiedy ukryje sie za przeszkodą GML if (seen=true)&&(collision_line(x, y, obj_Player.x, obj_Player.y, obj_Wall, false, true)){seen=false tr=instance_create(obj_Player.x,obj_Player.y,obj_track) track=true } if (track=true){ mp_potential_step(tr.x, tr.y, spd, false) } Czyli jak gracz znika z pola widzenia- tworzy obiekt ktory jest w jego ostatniej znanej pozycji i tam idzie. I teraz pytanie- dlaczego przeciwnik (mimo prawidlowego stworzenia obiektu obj_track) idzie w kierunku gracza a nie tego obiektu?Mogę się poruszac i bedzie mnie gonil.. Z GML mp_linear_step działa tak jak powinno.....why?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 11 Lutego 2017 Udostępnij Opublikowano 11 Lutego 2017 Nie prościej: GML if(!collision_line(x, y, obj_Player.x, obj_Player.y, obj_Wall, false, true) { lastplayerx=obj_Player.x; lastplayery=obj_Player.y; } mp_potential_step(lastplayerx, lastplayery, spd, false); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 11 Lutego 2017 Udostępnij Opublikowano 11 Lutego 2017 Ło Panie, przecież to co step będzie tworzyło nowe lastplayerx/y- dopóki gracz jest za przeszkodą - niczym się nie rózni od podążanie za graczem i widzeniu przez ściany... Ale nwm - teoretycznie problem rozwiązany bo działa tak jak powinno.Problem pojawia się inny- koda działa tylko wobec pierwszego przeciwnika który go użyje.Każdy kolejny nie zaznacza zmiennej "track" mimo że spełnia wszelkie warunki ku temu..Tak jakby była jednorazowa.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 14 Lutego 2017 Udostępnij Opublikowano 14 Lutego 2017 Znalazlem ciekawy system swiatel do swojej gry, wszystko dziala tak jak powinno poza jednym elementem-powierzchnia na jakiej dziala Wszystko odbywa sie na surface, w skrypcie mam określić więlkość surface Początkowo spróbowałem: GML surface_create(view_wview[0],view_hview[0]) Wszystko ok ALE w mojej grze view obraca się razem image_angle postaci- i zawsze kiedy się obrócę to widzę że góra i bok surface się gwałtownie kończy,zostawiając kilka cm widocznej strefy bez surface.I teraz problem jest taki- nieważne jaki rozmiar surface wpiszę (room_width/height ,określone liczby-nawet ogromne viee_wview[0]*5 itp) to zawsze surface kończy się dokładnie w tym miejscu zostawiajać "gołą" strefę... Co z tym zrobić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 14 Lutego 2017 Udostępnij Opublikowano 14 Lutego 2017 Pokaż jak to wygląda? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 14 Lutego 2017 Udostępnij Opublikowano 14 Lutego 2017 https://zapodaj.net/images/fd47c5f2527ae.png Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 14 Lutego 2017 Udostępnij Opublikowano 14 Lutego 2017 Rysuj go może trochę wcześniej (x-500, y-500) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 14 Lutego 2017 Udostępnij Opublikowano 14 Lutego 2017 Też mi się właśnie wydaje że musisz go cofnać w obu osiach jak sutikku mówi. Powiększanie surface bez cofnięcia go naprawi błąd tylko po jednej stronie. Ale wtedy musisz wziąć poprawkę na obiekty bo cienie będą poprzesuwane. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 14 Lutego 2017 Udostępnij Opublikowano 14 Lutego 2017 Ustaw application_surface na wymiary Twojego surface Potem rysuj surface na pozycji 0,0 bez zadnych szalenstw, bedzie 1:1 na luzie wzgledem ekranu. A jezeli nie to musisz tez zmienic view_wport i view_hport na ratio surface'a. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 14 Lutego 2017 Udostępnij Opublikowano 14 Lutego 2017 Przesunięcie zadziałało jest ok ,dzięki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PatrykPlayingPOLSKA Opublikowano 15 Lutego 2017 Udostępnij Opublikowano 15 Lutego 2017 Pytanie bardzo drobnostkowe,odpowiedź pewnie jest banalna. Chciałbym zrobić randomowe przywitania NPC,używając tego kodu : GML draw_text(x,y,choose("Witaj!","Dzień dobry","Ahoj!")); Jednak ten kod robi że teksty się zmieniają,co zrobić by pokazał się jeden tekst bez zbędnych zmian? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 15 Lutego 2017 Udostępnij Opublikowano 15 Lutego 2017 przypisz to do zmiennej w create i nie zapomnij dać gdzieś randomize() Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 22 Lutego 2017 Udostępnij Opublikowano 22 Lutego 2017 Chcę mieć elementy GUI w 4 rogach ekranu . Ap.surface dostosowuje się do rozdzielczosci -jak zrobic ze na kazdym ekranie GUI zawsze byly w tym samym miejscu?? mam GML w=display_get_gui_width() h=display_get_gui_height() Jak to przydzielic do 4 rogów? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 22 Lutego 2017 Udostępnij Opublikowano 22 Lutego 2017 [0,0] to zawsze lewy górny [display_get_gui_width(),0] to zawsze prawy górny [0,display_get_gui_height()] to zawsze lewy wolny [display_get_gui_width(),display_get_gui_height()] to zawsze prawy dolny Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 25 Lutego 2017 Udostępnij Opublikowano 25 Lutego 2017 kolizja z otoczenie w top down GML a = point_direction(x, y,other.x, other.y); //Get the direction from the colliding object xoff = lengthdir_x(1, a) //Get the offset vector yoff = lengthdir_y(1, a) //Move out of collision while (place_meeting(x, y, other)) { x -= xoff //Move the instance out of collision y -= yoff other.x += xoff //Move the other instance out of the collision other.y += yoff Działa ok ale daje strasznie nierealistyczny efekt ślizgania- jak idę prosto w obiekt z którym koliduje to mnie gwałtownie przesuwa w bok-szczegolnie nieciekawie to wyglada przy kolizji z przeciwnikiem... pytanie: co zmienić żeby postać przy kolizji po prostu się zatrzymywała w miejscu?? Efekt udaje się uzyskać kiedy dramatycznie zmniejszę zmienne np. x -= xoff/20000 - wtedy wyglada to tak jakbym chcial- ale fps nieprawdopodobnie spadaja aż do poziomu zawieszenia gry.... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dester Opublikowano 26 Lutego 2017 Udostępnij Opublikowano 26 Lutego 2017 pytanie: co zmienić żeby postać przy kolizji po prostu się zatrzymywała w miejscu?? GML x = xprevious; y = yprevious; ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 26 Lutego 2017 Udostępnij Opublikowano 26 Lutego 2017 To by było zbyt piękne;p W takiej sytuacji obiekt po prostu zatrzymuje się już na zawsze.Chodzi o dynamiczną kolizję która umożliwia zderzenie ze sobą np 2 przeciwników-tak żeby po kolizji naturalnie się rozmineli, obecny system wydaje się być dobry ale jest 2000x za mocny ;p Muszę zmniejszyc lengthdir_x(1, a) lengthdir_y(1, a) Tak żeby prcesor nie oszalał Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 26 Lutego 2017 Udostępnij Opublikowano 26 Lutego 2017 A może zaokrąglaj? GML //Move out of collision while (place_meeting(x, y, other)) { x -= xoff //Move the instance out of collision y -= yoff other.x += xoff //Move the other instance out of the collision other.y += yoff x = round(x) y = round(y) other.x = round(other.x) other.y = round(other.y) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 26 Lutego 2017 Udostępnij Opublikowano 26 Lutego 2017 Threef normalnie masz u mnie piwo za całokształt;p Nie mam czasu dokładnie wszystkiego przetestowac teraz ale na szybko wyglada na to że to dokładnie ten efekt jakiego szukałem:D Genialne Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 2 Marca 2017 Udostępnij Opublikowano 2 Marca 2017 Edit: Już mam. -_- Przeczytajcie to zrozumiecie. Debil ze mnie. Czy czegoś nie rozumiem. W jednym obiekcie (depth = -1) w draw robię: GML shader_set(shaderek); draw_surface(surface,(room_width-surface_get_width(surface))/2,(room_height-surface_get_height(surface))/2) shader_reset() Wszystko działa tu dobrze. Teraz w drugim obiekcie (depth = 0) rysuję inne elementy. draw_text(), draw_sprite(). I to już nie działa. To co dzieje się w shaderze sprawia że reszta elementów gry nie jest już rysowana. Jeżeli będę rysował sam surface bez przepuszczania go przez shader to wszystko będzie się dobrze rysować. Any ideas? Wytłumaczenie będzie jeszcze lepsze. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 2 Marca 2017 Udostępnij Opublikowano 2 Marca 2017 Czy draw_text i draw_sprite, etc zapisujesz do surface czy bezposrednio "w grze"? Nie wylączyłeś czasem application_surface? Bez niego nie wyrenderujesz z shaderami. Edit: Dobra, sam to rozwiązałeś, na kij piszę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 3 Marca 2017 Administratorzy Udostępnij Opublikowano 3 Marca 2017 Jeśli dobrze widzę, to -1 jest wyżej niż 0 i dlatego :) (gdyby ktoś jeszcze nie widział) 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ę