Skocz do zawartości

SimianVirus7

Użytkownicy
  • Zawartość

    162
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    8

Zawartość dodana przez SimianVirus7

  1. Znana gra w innym wydaniu

    Cześć Wszystkim! Dzisiaj po południu dostałem zgodę, a więc organizuje konkurs! Zadaniem jest stworzyć odmienną wersję gry, którą wszyscy znają, np. Skyrim jako strategia/karcianka. Gry nie będą monetyzowane w żaden sposób, a więc nikt nie powinien przyczepić się do praw autorskich. Możecie używać dowolnego silnika oraz technologii, ważne, abyście robili to w pojedynkę, ponieważ przewidziane są nagrody! 1 Miejsce - zwycięzca może wybrać nagrodę z miejsca 1, 2, 3; Human: Fall Flat - Steam Life is Strange Complete edition - Steam Company of Heroes 2 - Steam 2 Miejsce - zwycięzca może wybrać nagrodę z miejsca 2, 3; Random Premium Key - Steam Gothic Universe Edition (1-3) - Steam Minecraft Windows 10 edition - Microsoft 3 Miejsce; Grid 2 - Steam Dirt 3 - Steam Lego LoTR - Steam Lego Batman - Steam Pojedynkują się: Wszyscy którzy maja chęć, nie trzeba się nigdzie zapisywać. Temat: Znana gra w innym wydaniu. Zasady - Gra musi być tworzona w pojedynkę - Projekt tworzony od podstaw - Wybór silnika dowolny - Dozwolona gra 2D jak i 3D Zakończenie: 1 Września 2019 (niedziela), godzina 19:00. Ocenia/ją: zostanie założona ankieta dla ogółu - demokracja. PS: Użytkownik o nicku SimianVirus7 ma bana na nagrodę ale także może brać udział w konkursie. Głosy na jego pracę nie będą wliczane w ranking.
  2. Nad czym aktualnie pracujesz?

    #gra na lige Kiedy w wiedźminie Geraltowi rośnie broda z czasem, tak w moim świecie roślinki usychają bez podlania :>
  3. Znana gra w innym wydaniu

    Dobrze, a więc 1 września (Niedziela) zakończenie konkursu^^ Przypominajmy sobie nawzajem, bo ja też lubię zapominać
  4. Maska kolizji ataku bohatera

    Używając show_debug_message() sam decydujesz co ma Ci wypisać. Możesz tam wprowadzić zmienną, albo dać jakiś string typu show_debug_message("Ta linijka kodu wykonała się - system poruszania") albo coś w ten deseń. Pomaga odkryć to, gdzie program liczy coś inaczej niż mieliśmy to w głowie. A dlaczego nie? animacja otrzymania obrażeń, albo animacja utknięcia w jakieś pułapce. Musisz wiedzieć podstawowe rzeczy: sprite_index - obraz bądź animacja, który dany obiekt aktualnie wyświetla image_index - klatka animacji; Jeśli sprite_index posiada np. 13 klatek, to image_index ustala która z nich dokładnie ma być wyświetlona image_speed - prędkość odtwarzanej animacji Generalnie te trzy funkcję będą Ci potrzebne przy manipulacji animacją. No może jeszcze to: image_number - zwraca liczbę klatek w animacji; Czyli jeśli masz 13 klatek, to image_number zwróci liczbę 13
  5. Znana gra w innym wydaniu

    Pasowałoby zakończenie konkursu koniec sierpnia/września? Tylko czy wtedy wszyscy o tym nie zapomną Czy lepiej może przesunąć termin, a czas konkursu znowu wyniósłby dwa tygodnie?
  6. Znana gra w innym wydaniu

    No ja się sam wyłamałem, także miejmy nadzieję, że druga edycja wypali @exp Znaczy kiedy? Przyszłe wakacje?
  7. Znana gra w innym wydaniu

    a więc, ktoś coś zrobił?
  8. dopasowanie textboxa do rozmiaru kilku view

    Nie wiem jak operujesz rozdzielczością, ale może spróbuj tak: draw_rectangle(view_xview + 200, (view_yview + view_hview) - 400, (view_xview + view_wview) - 200, (view_yview + view_hview) - 100, false); albo draw_rectangle(view_xview + 200, (view_yview + view_hport) - 400, (view_xview + view_wport) - 200, (view_yview + view_hport) - 100, false); Napisałem z pamięci, nie testowałem.
  9. Temat zbiorczy na drobnostki

    gm:s posiada jeszcze current_day i current_month. Myślę, że sczytanie daty do zmiennych przy pierwszym uruchomieniu i później sprawdzanie czy minęło 14 dni, jest jakimś rozwiązaniem Tylko, że jeśli chcesz ominąć spryt użytkowników, musiałbyś sczytywać datę z internetu, bo tak lokalnie mogą sobie zmienić
  10. list = ds_list_create();

    Chyba kumam, aczkolwiek mam dziś mózg na wstrzymaniu. Zrób coś takiego w no_text() //zwraca true, jezeli nie ma juz zadnego tekstu do wyswietlenia if(variable_global_exists("textq")) //Jesli zmienna global.textq istenieje, to wykonuj ponizszy kod { if(ds_exists(global.textq, ds_type_queue)) //Jesli data structure istenieje, to wykonuj ponizszy kod { if ( ds_queue_empty(global.textq) and global.text_get=true ) { return true; } else { return false; } } else return true; } else return true;
  11. list = ds_list_create();

    Na górze zrobiłem Ci poprawioną wersję no_text. Pozamieniaj true na false, a false na true.
  12. list = ds_list_create();

    Zmień tu warunki. Co prawda, będzie to działać odwrotnie do nazwy funkcji, ale może o to chodzi. //zwraca true, jezeli nie ma juz zadnego tekstu do wyswietlenia if(variable_global_exists("textq")) //Jesli zmienna global.textq istenieje, to wykonuj ponizszy kod { if(ds_exists(global.textq, ds_type_queue)) //Jesli data structure istenieje, to wykonuj ponizszy kod { if ( ds_queue_empty(global.textq) and global.text_get=true ) { return false; } else { return true; } } else return true; } else return true; edit: Ok, czyli nazwa funkcji jest odwrotna do opisu, czyli powinno to działać edit2: A nie czekaj, opis do nazwy się zgadza... coś mi dzisiaj mózg szwankuje
  13. list = ds_list_create();

    albo robisz w if'ie if(!no_text()) {} albo zmień skrypt no_text() aby zwracał wynik odwrotnie
  14. list = ds_list_create();

    if(instance_number(obj_napis_plansz)=0 && no_text()) { if !place_meeting(x,y,obj_water) { if wPowietrzu == false && key_check(key.right) = key_check(key.left) && sprite_index != spr_player_stand && drabina == false { sprite_index = spr_player_stand; image_index =0; } if wPowietrzu == false && (key_check(key.right) || key_check(key.left)) && key_check(key.right) != key_check(key.left) && sprite_index != spr_player_run && drabina == false { sprite_index = spr_player_run; image_index = 0; } if wPowietrzu == true && drabina == false { sprite_index = spr_player_air; if vspd <= -1 { image_index = 0; } else if vspd >= 1 { image_index = 2; } else { image_index = 1; } } if drabina == true { if x == xprevious && y == yprevious { if sprite_index != spr_player_hang { sprite_index = spr_player_hang; } } else { if sprite_index != spr_player_climb { sprite_index = spr_player_climb; } } } if zegarAtaku > 0 && atakBierzacy == 0 { sprite_index = spr_player_attack; image_index = 14-(zegarAtaku); zegarAtaku -= 1; } if zegarAtaku > 0 && atakBierzacy == 1 { sprite_index = spr_player_shoot; image_index = 6-(zegarAtaku); zegarAtaku -= 1; } if zegarAtaku > 0 && atakBierzacy == 1 && (key_check(key.right) || key_check(key.left)) { sprite_index = spr_anatol_przesuwa_skrzynie; image_index = 23-(odejmij); odejmij -= 1; } kierunekPlywania = point_direction(xprevious,yprevious,x,y); wysKierunek = kierunekPlywania; if image_xscale < 0 { wysKierunek += 180; } } else { if sprite_index != spr_player_water { sprite_index = spr_player_water; image_index = 0; } if key_check(key.right) && !key_check(key.left) && image_xscale = -1 { image_xscale = 1; wysKierunek -= 180; } else if key_check(key.left) && !key_check(key.right) && image_xscale = 1 { image_xscale = -1; wysKierunek += 180; } if abs(key_check(key.right)-key_check(key.left))+abs(key_check(key.down)-key_check(key.up)) != 0 { image_index += 2; if image_xscale > 0 { wysKierunek -= angle_difference(wysKierunek,kierunekPlywania)/16; } else { wysKierunek -= angle_difference(wysKierunek,180+kierunekPlywania)/16; } } } //animacja do przesuwania skrzyni if wPowietrzu == false && (key_check(key.right)) && (place_meeting(x-5,y,obj_skrzynia) || place_meeting(x+5,y,obj_skrzynia)) {sprite_index = spr_anatol_przesuwa_skrzynie; image_index = 23 -(odejmij); odejmij -= 1; } else if (key_check(key.left)) && (place_meeting(x-5,y,obj_skrzynia) || place_meeting(x+5,y,obj_skrzynia)) { sprite_index = spr_anatol_przesuwa_skrzynie; image_index = 23 -(odejmij); odejmij -= 1; } } Chodzi w miejscu, znaczy, że chodzi bez animacji, tak?
  15. list = ds_list_create();

    Okej, trochę mi to zajęło, przez organizacje twojego kodu, który jest pisany makabrycznie, bez żadnego schematu. Musisz trochę nad tym popracować, bo wtedy łatwiej wyłapać błędy. Na początek, zmieniamy skrypt no_text() //zwraca true, jezeli nie ma juz zadnego tekstu do wyswietlenia if(variable_global_exists("textq")) //Jesli zmienna global.textq istenieje, to wykonuj ponizszy kod { if(ds_exists(global.textq, ds_type_queue)) //Jesli data structure istenieje, to wykonuj ponizszy kod { if ( ds_queue_empty(global.textq) and global.text_get=true ) { return true; } else { return false; } } else return false; } else return false; i zmieniony cały step (zobacz sobie, jak on teraz wygląda. Widać, który if jak zagnieżdżony w którym ifie. Widać gdzie dana klamra otwiera kod a gdzie go zamyka. Nigdy nie możesz mieć dwóch klamer zamykających w tej samej linii, w tym samym pionie. ///@desc pankracy ///ustawienia ruchu Bohatera // gdy Bohater jest zamrozony zatrzymujemy go if(zamroz==true) { x = zamroz_x; y = zamroz_y; gravity=0 vspd=0; hspd=0; } //licznik czasowy gry rs_timer ++; ///auto unstuck kiedy nam Bohater sie zaklinuje to podana nizej funkcja go odblokuje while(place_meeting(x,y,other)) { dir = point_direction(x,y,other.x,other.y) x = x + lengthdir_x(-1,dir) y = y + lengthdir_y(+10,dir) other.alarm[0] = room_speed; } if(variable_global_exists("textq")) //Jesli zmienna global.textq istenieje, to wykonuj ponizszy kod { if(ds_exists(global.textq, ds_type_queue)) //Jesli data structure istenieje, to wykonuj ponizszy kod { if(instance_number(obj_napis_plansz)=0)// zatrzymuje sprita bohatera na czas wyswietlenia napisu Stage { if(vspd>0 ^^ hspd>0 ^^ vspd<0 ^^ hspd<0) { image_speed=1 } else { image_speed=0; } }//dodane }//dpdame if (vspd > 25) //Jesli predkosc spadania jest szybsza niz 25 (Mozna dowolnie zmieniac ta wartosc.) { global.damage+=5 } //Zwiekszenie obrazen o wartosc 1. (Zmienienie liczby na wieksza zwiekszy zadawane obrazenia po upadku.) if not place_free(x,y+1)//Jesli w poblizu nas jest jakis obiekt rowniez zostana zadane obrazenia { other.hp-=global.damage //Odejmujemy punkty zycia od wartosci zadanych obrazen. global.damage=0 //Resetujemy zadawanie obrazen po uderzeniu w ziemie by nie zabieralo go wiecej } } // *********************************************************************************************************************************** /// ------------------ tutaj tak jak mowiłem, że mogą być konsekwencję naprawiania tego błedu na skróty. Jestem pewien, że no_text() * // ------------------- zwraca wartość true albo false, jeśli tekst jest albo go nie ma. Tutaj tego nie sprawdza, bo nie ma w ogóle * // ------------------- zmiennejpozwalającej to sprawdzić, dlatego omija calutki kod * // ------------------- ROZWIĄZANIE: przerobienie funkcji no_text() * // *********************************************************************************************************************************** if(no_text()) //teraz Bohater stoi jak jest odwarzana sekwencja tekstowa textboxa { ///Kontrola if !place_meeting(x,y,obj_water) { //Normalny ruch if drabina == false { if key_check_pressed(key.jump) && wPowietrzu == false { vspd = -10-sign(pwrupJmp*3); silaSkoku = 3; //Punkt respawnu w miejscu ostatniego skoku //spawnX = x; //spawnY = y; //Zeskakiwanie w dol if key_check(key.down) && place_meeting(x,y+1,par_solid_ghost) { y += 4; vspd = 0; silaSkoku = 0; czasSkoku = 0; } } else if key_check(key.jump) && silaSkoku > 0 { audio_play_sound(dzwiek_skoku_anatolka, 1, false); //odtwarzamy dzwiek przy skakaniu vspd -= 2+sign(pwrupJmp); silaSkoku--; } else { if key_check_released(key.jump) && silaSkoku > 2 { vspd += 2+sign(pwrupJmp); } silaSkoku = 0; } //Podwojny skok /* if czasSkoku > 0 && keyboard_check_pressed(kJump) && wPowietrzu == true { vspd = -10-sign(pwrupJmp*3); silaSkoku = 0; czasSkoku--; audio_play_sound(dzwiek_skoku_anatolka, 1, false); //odtwarzamy dzwiek przy skakaniu }*/ if key_check(key.action) && zegarAtaku == false { //if key_check(key.down) { //usuwany strzelanie na klawisz x + w dol zegarAtaku = 26; atakBierzacy = 1; with instance_create( x+(image_xscale*12), y-26, obj_projectile) //idealnie ta funkcja obraca pocisk gracza lub wroga { hspd = other.image_xscale*15; vspd = 0; //lekko do gory -4 //mocno do gory g = .0; //0.2 tor lotu paraboliczny speed=4; owner = par_player; sila = 0; eksplozja = true; zasiegEksplozji = 30; silaEksplozji = 2+(sign(other.pwrupStr)*8); //image_blend = c_black; //kolor lotu pocisku audio_play_sound(dzwiek_anatol_strzela, 1, false); //odtwarzamy dzwiek przy strzelaniu } } if key_check(key.right) && !key_check(key.left) { if hspd < 8+(sign(pwrupSpd)*5) { hspd = min(hspd+(2+(sign(pwrupSpd)*2))*multiF,10+(sign(pwrupSpd)*5)); } image_xscale = 1; } if key_check(key.left) && !key_check(key.right) { if hspd > -8-(sign(pwrupSpd)*5) { hspd = max(hspd-(2+(sign(pwrupSpd)*2))*multiF,-10-(sign(pwrupSpd)*5)); } image_xscale = -1; } //Drabina if place_meeting(x,y,par_climbable) && place_meeting(x,y-32,par_climbable) && place_meeting(x,y+5,par_climbable) && zegarAtaku <= 0 && (key_check(key.up) || key_check(key.down)) { drabina = true; vspd = 0; hspd = 0; } } //Wspinanie sie if drabina == true { var __hsign = key_check(key.right)-key_check(key.left); var __vsign = key_check(key.down)-key_check(key.up); hspd = min(max(hspd+__hsign,-2),2); vspd = min(max(vspd+__vsign*2,-4),4); if __vsign == -1 && !place_meeting(x,y-32,par_climbable) { drabina = false; vspd = -10; } if __hsign != 0 { image_xscale = __hsign; } if !place_meeting(x,y,par_climbable) || !place_meeting(x,y+32,par_climbable) { drabina = false; } } } else { //Plywanie kierunekPlywania = point_direction(0,0,key_check(key.right)-key_check(key.left),key_check(key.down)-key_check(key.up)); if abs(key_check(key.right)-key_check(key.left))+abs(key_check(key.down)-key_check(key.up)) != 0 { hspd += lengthdir_x(.5,kierunekPlywania); if !(kierunekPlywania > 0 && kierunekPlywania < 180) || place_meeting(x,y-sprite_height/3-1,obj_water) { vspd += lengthdir_y(.5,kierunekPlywania); //audio_play_sound(dzwiek_anatol_plywa, 1, false); //odtwarzamy dzwiek gdy anatol plywa } } if key_check(key.up) && !place_meeting(x,y-sprite_height/1.5,obj_water) && vspd <= 0 { //kierunekPlywania do gory vspd = -12; } } } //dodane puszczanie drabiny przez bohatera przy dotknieciu podloza if place_meeting(x,y,par_climbable) && drabina=true && place_meeting(x,y+2,par_solid) { drabina=false; } //Normalny ruch if drabina == false { if key_check(key.down) && wPowietrzu == false { //Zeskakiwanie w dol if key_check(key.down) && place_meeting(x,y+1,obj_zejscie_drabiny) { y += 4; vspd = 0; silaSkoku = 0; czasSkoku = 0; } } } if vspd>0 && place_meeting(x,y,par_climbable) then drabina=true; if wPowietrzu=true && vspd = -10-sign(pwrupJmp*3) && silaSkoku = 3 && hspd>0 && place_meeting(x,y,par_climbable) && key_check(key.jump) && key_check(key.right) || key_check(key.jump) && key_check(key.left) then drabina=false; if key_check(key.action) && zegarAtaku == false && place_meeting(x,y,par_climbable) { zegarAtaku = 16; atakBierzacy = 1; with instance_create(x+10,y-26,obj_projectile) { hspd = other.image_xscale*10; vspd = 0; //lekko do gory -4 //mocno do gory g = .0; //0.2 tor lotu paraboliczny owner = par_player; audio_play_sound(dzwiek_anatol_strzela, 1, false); //odtwarzamy dzwiek przy strzelaniu } } //nabieranie powietrza if tlen<10 { if distance_to_object(obj_water)>1 { tlen+=0.2 } } //jesli nie ma powietrza energia ucieka i bohater potem traci zycie if tlen<0.01 { global.hp-=0.2 } if global.hp<=0 { global.life -= 1; } Miejmy nadzieje, że się nigdzie nie kopnąłem. PS: trochę się te nawiasy porozjeżdżały, gdy je wkleiłem na forum (?)
  16. list = ds_list_create();

    zapodaj cały kod, który mieści skrypt no_text(), bo jestem pewien, że zwraca true albo false i chce wiedzieć, jakie argumenty za tym stoją
  17. list = ds_list_create();

    Kilka zasad rozwiązywania problemu: 1. Kombinuj 2. Jeśli masz jakiś pomysł, nie pytaj na forum czy jest dobry, tylko go wypróbuj. 3. Rób backupy, jeśli zmieniasz dużo kodu i boisz się, że później nie wrócisz do punktu startowego, jeśli coś nie wyjdzie 4. Ogólnie rób backupy 5. Co robi funkcja no_text()? Po if'ie z tą funkcją masz napisany cały kod na poruszanie się, a skoro global.textq nie istnieje, to no_text() się nie wykonuje, a z tym cały kod chodzenia i animacji
  18. list = ds_list_create();

    Error1: //już Ci go dałem wyżej ._. ///TU JEST TEN BLAD DRUGI if(variable_global_exists("textq")) //Jesli zmienna global.textq istenieje, to wykonuj ponizszy kod { if(ds_exists(global.textq, ds_type_queue)) //Jesli data structure istenieje, to wykonuj ponizszy kod { if no_text() //teraz Anatol stoi jak jest odwatrzana sekwencja tekstowa textboxa { /// dodaj reszte kodu Error2 jest wykonany w endstepie, ale prawdopodobnie robisz te same ify co powyżeć, zagnieżdzając w nie tego ifa z błędem stack frame is gml_Script_no_text (line 6) called from - gml_Object_obj_player_StepEndEvent_2 (line 3) - if(instance_number(obj_napis_plansz)=0 && no_text()) { Miej na uwadze to, że ta naprawa błędu może nie być zbyt dobra, bo to może być pominięcie ważnych linijek kodu dla załadowania się gry (może, nie musi). Wydaje mi się, że powinieneś jakoś zainicjować ds_queue_empty(global.textq) przed załadowaniem gry, żeby mógł sobie doczytać wszystko. Aczkolwiek to tylko domysły, bo to wszystko zależy jak wygląda cały kod z nimi związane, a tego raczej nie ogarnę.
  19. list = ds_list_create();

    Daj treść tych błędów, bo nie wiem w czym problem. if(variable_global_exists("textq")) //Jesli zmienna global.textq istenieje, to wykonuj ponizszy kod { if(ds_exists(global.textq, ds_type_queue)) //Jesli data structure istenieje, to wykonuj ponizszy kod { if no_text() //teraz bohater stoi jak jest odwatrzana sekwencja tekstowa textboxa { /// } } } PS: kopiowanie bezmyślnie kodu i wklejanie do swojego projektu nie nauczy Cię wiele :/ trzymam kciuki za skończenie twojego magnum opus ale później radziłbym powtórzyć podstawy.
  20. list = ds_list_create();

    to zrób na odwrót
  21. list = ds_list_create();

    No niby jest to jakiś sposób, ale... spróbuj może najpierw zrobić ten warunek w obiekcie, do którego ma się odwoływać, czyli obj_text if(variable_global_exists("textq")) //Jesli zmienna global.textq istenieje, to wykonuj ponizszy kod { if(ds_exists(global.textq, ds_type_queue)) //Jesli data structure istenieje, to wykonuj ponizszy kod { if not ds_queue_empty(global.textq) and global.text_get=true //jezeli [kolejka] nie jest pusta i mozna [pobrac tekst] { global.text_get=false;//wylacz pobieranie tekstu, aby funkcja sie juz nie wywolala, dopuki znowu nie bedzie true text=ds_queue_dequeue(global.textq);//pobierz tekst z kolejki step=1;//ustaw zadanie na jeden leght=0; } //KROK 1 if step=1 { //zmniejszamy przeswitywalnosc az do max. widocznosci (1) if alpha<1 then alpha+=0.1 else { //przeswitywalnosci juz nie ma, zatem skoncz wykonywanie tego skryptu alpha=1; step=2; } } //KROK 2 if step=2 { if leght<string_length(string(text)) then leght += 1; // Mozesz zmienic predkosc "drukowania" testu dodajac inna liczbe do zmiennej leght } //KROK 3 if step=3 { //teraz zwiekszaj przeswitywalnosc az do znikniecia (0) if alpha>0 then alpha-=0.1 else { //przeswituje juz tak ze bardziej nie moze alpha=0; text=''; global.text_get=true;//ustaw, ze mozna juz pobierac tekst step=0; } } } }
  22. list = ds_list_create();

    Gdzieś nie, tak żeby obj_text miał do niego dostęp przy wczytywaniu sejwa. I musisz dać jakiegoś ifa, że jak queue jest puste (size == 0) to nie ma obj_text niczego sczytywać i obj_player tak samo
  23. list = ds_list_create();

    "Data structure with index does not exist." Tu jest cały problem. Jeśli ds_queue_empty nie istnieje, to obj_text nie ma na czym pracować, a następnie obj_player nie ma z czego sczytać zmiennej. Przed wczytaniem sejwa, zainicjuj gdzieś tą tablice ds_queue_empty.
  24. list = ds_list_create();

    ds_list - są to skrypty wbudowane, możesz je znaleźć w dokumentacji game makera Jeśli masz jakieś skrypty zewnętrzne od kogoś, to zapewne są w zakładce skrypty. A jak nie tam, no to sam musiałeś je gdzieś wkleić.
  25. A spróbuj wywalić ten kod na kończenie gry. Daj jakiś warunek, który nigdy się nie spełni albo po prostu zakomentuj to wszystko. Jeśli nadal będzie ten błąd to masz coś zdublowane. Skoro te wszystkie przykłady, które Ci dajemy nie działają to musisz się pobawić w debugowanie. O! I jeszcze możesz spróbować dać: if (global.life > 0) { global.life -=1; show_debug_message("Sie wykonalem"); // Dodaj wpis do konsoli, w celu debugowania } else { if (can_finish == false) { if (alarm[0] == -1) { // zacznij tylko gdy jeszcze się nie odlicza alarm[0] = 60; // 150 to 5 sekund } } else { if (global.pScore >= 500) //Sprawdz czy wynik nadaje sie do highscore,ale musi zostac spelniony warunek punktowy { var s=highscores[| ds_list_size(highscores) - 1]; //Czy punkty kwalifikuja sie na top 10 if (ds_list_size(highscores) < 10 || s[?"score"] <= global.pScore) { room_goto(rm_save_score); exit; // zakoncz wykonywanie eventu step w tej klatce } } room_goto(rm_game_over); } } I zależnie ile masz ustawionych global.life tyle razy powinieneś dostać w konsoli tekst o treści "Sie wykonalem"
×