Pogromca_kodu77 Opublikowano 7 Sierpnia 2020 Udostępnij Opublikowano 7 Sierpnia 2020 Otóż mam system zmiany broni.. Powiedzmy,że prawie działa.Już mówię w czym problem.. Gracz ma do dyspozycji kilka rodzai broni w tym przypadku jest ich 5. jedna z nich jest broń którą ma przy sobie zawsze i jest nieograniczona..więc pozostałe cztery bronie są do zdobycia i mają ograniczoną ilość amunicji.. Żeby gracz otrzymał daną broń dodatkową musi ją sobie znaleźć na planszach.. Wtedy jak znajdzie,to ta broń automatycznie doda się do niego wraz z ilością amunicji jaka jest w kodzie przydzielona.. I teraz tak..problem polega na tym,że mimo,że gracz odnajduje broń dodatkową na planszy to i tak jej nie ma.. widzę tylko,że zmienia się w gui sprite na tą dodatkową broń,ale nadal nie może z niej strzelać.. Nie wiem gdzie jest błąd..czemu mimo implementacji w create broni dodatkowej i w kolizji gracza,gdzie wskazuje w obiekcie jaka broń ma mu się dodać to z tej broni nie można strzelac.. specjalnie zdublowałem ten sam kod na broń co podstawowa z różnica taką,że zmieniłem sprita,żeby się nie pomylić.. Tak jakby czegoś brakowało,że mimo zdobycia broni dodatkowej nie mogę z niej strzelać.. Proszę pomóżcie mi...może wam szybciej pójdzie wyłapanie błędu.. moje pomysły się wyczerpały.. edit..Gnysek przepraszam,że i do Ciebie na PM napisałem...pomyślałem,że jak rzadko tu zaglądasz to zapewne szybciej odczytasz wiadomość prywatną.. obj_player create have = true; ammo = 10; firerate = 15; dmg_min = 3; dmg_max = 5; obj_player step ////Bohater atakuje (nowy kod uproszczony) czas-- var cur = obj_kontroler_gry.current_weapon; // obiekt kontrolny ma indeks aktualnej broni, więc musimy go najpierw pobrać if keyboard_check_pressed(ord('X')) && czas <= 0 && global.wep[cur,e_wep.ammo] > 0{ czas = global.wep[cur,e_wep.firerate]; global.wep[cur,e_wep.ammo]-=1; var ins = instance_create(x, y-17, obj_kula); //bron podstawowa ins.hspeed = image_xscale * 15; ins.dmg = irandom_range(global.wep[cur,e_wep.dmg_min],global.wep[cur,e_wep.dmg_max]); } obj_skrzyniazbronia tu kolizja z graczem(jak najedzie na skrzynie to dostaje tą broń i amunicje) //bron laser global.wep[1,e_wep.have] = true; global.wep[1,e_wep.ammo] += 30; obj_kontroler_gry naciśnięcie przycisku S for(var i=0;i<weapons_total;i++) if keyboard_check_pressed(ord("s")+i) if global.wep[i,e_wep.have] current_weapon = i; Teraz tak tu obj_kontroler_gry perssistent który zawsze w grze towarzyszy.. obj_kontroler_gry Create enum e_wep { have,ammo,firerate,dmg_min,dmg_max } enum e_gun { kulki,laser,strzelba,miotacz,bazooka } current_weapon = 0; weapons_total = 5; var i = 0; //bron kulki global.wep[0, e_wep.have] = false; global.wep[0 ,e_wep.ammo] = 100; //nieograniczona w stepie jest kod na to global.wep[0 ,e_wep.firerate] = 5; global.wep[0 ,e_wep.dmg_min] = 3; global.wep[0 ,e_wep.dmg_max] = 5; //bron laser global.wep[1, e_wep.have] = false; global.wep[1 ,e_wep.ammo] = 30; global.wep[1 ,e_wep.firerate] = 10; global.wep[1 ,e_wep.dmg_min] = 3; global.wep[1 ,e_wep.dmg_max] = 5; //bron strzelba global.wep[2, e_wep.have] = false; global.wep[2 ,e_wep.ammo] = 20; global.wep[2 ,e_wep.firerate] = 15; global.wep[2 ,e_wep.dmg_min] = 3; global.wep[2 ,e_wep.dmg_max] = 5; //bron miotacz global.wep[3, e_wep.have] = false; global.wep[3 ,e_wep.ammo] = 10; global.wep[3 ,e_wep.firerate] = 20; global.wep[3 ,e_wep.dmg_min] = 3; global.wep[3 ,e_wep.dmg_max] = 5; //bron bazooka global.wep[4, e_wep.have] = false; global.wep[4 ,e_wep.ammo] = 5; global.wep[4 ,e_wep.firerate] = 25; global.wep[4 ,e_wep.dmg_min] = 3; global.wep[4 ,e_wep.dmg_max] = 5; obj_kontroler_gry Draw GUI var box_width = sprite_get_width(mask_explosion); //how wide is each box that will display a weapon? for (var i = 0; i < weapons_total; i ++){ draw_x = i * box_width; draw_y = 0; //rysowanie sprite od góry do lewej //jeśli posiadamy obraz każdej broni w tym samym duszku, możemy narysować je wszystkie za pomocą "i" if ( global.wep[i,e_wep.have] == true ) draw_sprite(spr_bron, i, draw_x, draw_y); } tu dodałem jeszcze w dodatkowej broni w create taki wpis obj_laser (broń ma taki sam kod co broń podstawowa różni się tylko spritem) create //bron nr 1 zaczynając indeskacje od 0 gdzie 0 to bron podstawowa kulki gun = e_gun.laser; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 7 Sierpnia 2020 Udostępnij Opublikowano 7 Sierpnia 2020 Projekt jest w gms 1.4? Jak tak możesz mi podesłać na pw to looknę Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pankracy Opublikowano 7 Sierpnia 2020 Udostępnij Opublikowano 7 Sierpnia 2020 o sporo tego;-) kodu.... Ja też będę robił swój system zmiany broni..ale to na razie w planach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 13 Sierpnia 2020 Udostępnij Opublikowano 13 Sierpnia 2020 Kod jest ok, ale czy zdajesz sobie sprawę że Dnia 7.08.2020 o 15:39, Pogromca_kodu77 napisał: for(var i=0;i<weapons_total;i++) if keyboard_check_pressed(ord("s")+i) if global.wep[i,e_wep.have] current_weapon = i; tj. ord("s") + i to nie jest kolejność jak na klawiaturze, tylko według tablicy znaków ascii: kulki - "s" laser - "t" strzelba - "u" miotacz - "v" bazooka - "w" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pogromca_kodu77 Opublikowano 25 Sierpnia 2020 Autor Udostępnij Opublikowano 25 Sierpnia 2020 Już to podgarnąłem dzięki za wskazówki ;-) 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ę