Phoenix Opublikowano 7 Marca 2008 Udostępnij Opublikowano 7 Marca 2008 nie dawajcie warna mi za to ale to bardzo pilne. Mam male pytanko nie wiem jak zrobic ze gdy wcisne np. 4 i wystrzele 5 z 16 i klikne 2 i bede miec 34/5 wystrzelam 3 i znowu klikne 4 i zeby ilosc ammo sie nie odnowila tylko zostala taka jaka jest czyli pozostale 5/16. rozumiecie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Luksor Opublikowano 7 Marca 2008 Udostępnij Opublikowano 7 Marca 2008 rozumiecie? nie :blink: Na drugi raz pisz bardziej obszerne posty oO I pisz czego nie rozumiesz ... Beczo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 7 Marca 2008 Udostępnij Opublikowano 7 Marca 2008 Mam male pytanko nie wiem jak zrobic ze gdy wcisne np. 4 i wystrzele 5 z 16 i klikne 2 i bede miec 34/5 wystrzelam 3 i znowu klikne 4 i zeby ilosc ammo sie nie odnowila tylko zostala taka jaka jest czyli pozostale 5/16 hmmm nie deklaruj zmiennej na nowo? Zmienna globalna? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
murdalow Opublikowano 7 Marca 2008 Udostępnij Opublikowano 7 Marca 2008 zrób magazynki i jakby wszystkie naboje i potem po strzale odejmuje z całości hehe nic z tego nie wiem Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hix Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 W create objectu: global.bron1=true global.bron2=false global.bron3=false global.bron4=false Jak nacisniesz 1 global.bron1=true global.bron2=false global.bron3=false global.bron4=false Jak nacisniesz 2 global.bron1=false global.bron2=true global.bron3=false global.bron4=false Jak nacisniesz 3 global.bron1=false global.bron2=false global.bron3=true global.bron4=false jak nacisniesz 4 global.bron1=false global.bron2=false global.bron3=false global.bron4=true O to chodzi??? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 @Hix: Jezus Maria co to jest! :o TABLICE synu! Błądzisz! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 GML if keyboard_check_pressed( vk_anykey ) { //Bądź taki sam event for( i = 0; i <= 9; i += 1 ) { if( keyboard_check_pressed( 48 + i ) ) { global.bron = i; break; } } } Efekt ten sam. :) Później tylko prosta tablica: GML global.ammo[0,0] = 10; //Max global.ammo[0,1] = 5; //Obecny stan global.ammo[1,0] = 34; //Max global.ammo[1,1] = 8; //Obecny stan global.ammo[2,0] = 230; //Max global.ammo[2,1] = 100; //Obecny stan global.ammo[3,0] = 5; //Max global.ammo[3,1] = 5; //Obecny stan ... itd. I może jeszcze strzelanie:GML if( global.ammo[global.bron,1] > 0 ) { //Ma jeszcze amunicje w magazynku //Kod wystrzalu global.ammo[global.bron,1] -= 1; } else { //Juz nie ma //Kod przeladowania } Można by jeszcze dodać kod uwzględniający czas przeładownia między strzałami, tak więc dopisujemy do tablicy: GML ... global.ammo[0,2] = 60; //Przeladowanie ... global.ammo[1,2] = 40; //Przeladowanie ... global.ammo[2,2] = 30; //Przeladowanie ... global.ammo[3,2] = 10; //Przeladowanie ... itd. i wtedy strzelanie wygląda tak:GML if( global.ammo[global.bron,1] > 0 ) { //Ma jeszcze amunicje w magazynku if( alarm[0] == -1 ) { //Kod wystrzalu global.ammo[global.bron,1] -= 1; alarm[0] = global.ammo[global.bron,2]; } } else { //Juz nie ma //Kod przeladowania } no i pamiętajmy o alarmie:GML alarm[0] = -1; Fajnie by było jeszcze dodać czas między przeładowaniami magazynków, tak więc znowu dopisujemy do tablicy: GML ... global.ammo[0,3] = 360; //Przeladowanie magazynku ... global.ammo[1,3] = 420; //Przeladowanie magazynku ... global.ammo[2,3] = 530; //Przeladowanie magazynku ... global.ammo[3,3] = 120; //Przeladowanie magazynku ... itd. i wtedy strzelanie zmieniamy tak:GML if( global.ammo[global.bron,1] > 0 ) { //Ma jeszcze amunicje w magazynku if( alarm[0] == -1 ) { //Kod wystrzalu global.ammo[global.bron,1] -= 1; alarm[0] = global.ammo[global.bron,2]; } } else { //Juz nie ma if( alarm[1] == -1 ) { alarm[1] = global.ammo[global.bron,3]; } } no i alarm:GML global.ammo[global.bron,1] = global.ammo[global.bron,0]; alarm[1] = -1; Tylko, że teraz trzeba zablokować możliwość zmiany broni podczas przeładowania, więc trzeba do kodu zmiany broni dodać coś takiego: GML if( keyboard_check_pressed( vk_anykey ) && alarm[0] == -1 && alarm[1] == -1 ) { for( i = 0; i <= 9; i += 1 ) { if( keyboard_check_pressed( 48 + i ) ) { global.bron = i; break; } } } I powinno działać. :) Jeśli nam przeszkadza coś takiego i chcemy zrobić przeładowanie dla każdej broni z osobna no to znowu rozbudujemy tablicę: GML ... global.ammo[0,4] = -1; //Alarm dla przeładowania global.ammo[0,5] = -1; //Alarm dla przeładowania magazynku ... global.ammo[1,4] = -1; //Alarm dla przeładowania global.ammo[1,5] = -1; //Alarm dla przeładowania magazynku ... global.ammo[2,4] = -1; //Alarm dla przeładowania global.ammo[2,5] = -1; //Alarm dla przeładowania magazynku ... global.ammo[3,4] = -1; //Alarm dla przeładowania global.ammo[3,5] = -1; //Alarm dla przeładowania magazynku ... itd. Wywalamy kod z alarm 0 i alarm 1, modyfikujemy strzelanie tak:GML if( global.ammo[global.bron,1] > 0 ) { //Ma jeszcze amunicje w magazynku if( global.ammo[global.bron,4] == 0 && keyboard_check( vk_space ) ) { //Kod wystrzalu global.ammo[global.bron,1] -= 1; global.ammo[global.bron,4] = global.ammo[global.bron,2]; } else { global.ammo[global.bron,4] -= 1; } } else { //Juz nie ma if( global.ammo[global.bron,5] == -1 ) { global.ammo[global.bron,5] = global.ammo[global.bron,3]; } else if( global.ammo[global.bron,5] == 0 ) { global.ammo[global.bron,1] = global.ammo[global.bron,0]; global.ammo[global.bron,5] = -1; } else { global.ammo[global.bron,5] -= 1; } } Zmianę broni przywracamy do stanu poprzedniego:GML if keyboard_check_pressed( vk_anykey ) { //Bądź taki sam event for( i = 0; i <= 9; i += 1 ) { if( keyboard_check_pressed( 48 + i ) ) { global.bron = i; break; } } } I ziu. :D Możemy też sprawdzać czy gracz ma w plecaku daną broń, wtedy zrobimy sobie taką zmienną: GML global.bag = 0;I teraz w zależności od numerka broni... albo lepiej, napiszmy scripta dodającego broń do plecaka:GML var v; v = power( 2, argument[0] + 1 ); if( !( global.bag & v ) ) { global.bag = global.bag | v; } Powiedzmy, że nazwiemy go bag_add, script usuwający będzie podobny:GML var v; v = power( 2, argument[0] + 1 ); if( global.bag & v ) { global.bag = global.bag | v; } Nazwiemy go bag_del. I teraz tylko ograniczamy zmienianie broni:GML if( keyboard_check_pressed( vk_anykey ) ) { for( i = 0; i <= 9; i += 1 ) { if( !( global.bag & power( 2, i + 1 ) ) ) { continue; } if( keyboard_check_pressed( 48 + i ) ) { global.bron = i; break; } } } I cool. Broń dodajemy np.GML bag_add(0);A tą samą broń wyrzucamy:GML bag_del(0); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hix Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Ja bym tego nigdy nie wymyslil tylko bym ostro kombinowal... ...że tak powiem Yoda Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Luksor Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 @Tymon: Wow! niezły art by z tego był :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Szczerze? Trochę mało jak na art. :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harv Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Można to by dodać do przykładów. Przyda się, szczególnie do shooterów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 To też za mało jeśli chodzi o przykłady. Ale róbcie co chcecie. :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hix Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Tymon ty prawie cala gre zrobiles zamiast PhoenixPl :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Tymon ty prawie cala gre zrobiles zamiast PhoenixPl biggrin.gif Tak, robiąc magazynki, zrobił całą grę. 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ę