Madness Opublikowano 17 Czerwca 2011 Udostępnij Opublikowano 17 Czerwca 2011 Ech nie sądziłem ,że jeszcze to zrobie ^^ ,ale jednak. :rolleyes: Stworzyłem system broni.Jednak problem ,leży w przeładowaniu (problem jest poniżej kodu) GML przeladuj=true if naboje_w_magazynku[bron] > zapasowe_naboje[bron] { odejmij=naboje_w_magazynku[bron] - zapasowe_naboje[bron] } else if naboje_w_magazynku[bron] < zapasowe_naboje[bron] { odejmij=zapasowe_naboje[bron] - naboje_w_magazynku[bron] } naboje_w_magazynku[bron]+=roznica zapasowe_naboje[bron]-=roznica if zapasowe_naboje[bron] < 0 { zapasowe_naboje[bron]=0 } exit; Problem leży w tym ,że przykładowo mamy 13/10 i po wciśnięciu klawisza ,,R" (w klawiszu R jest taki kod jak w przykładzie) to zamiast 23/0 jest 16/7 ,wiem dlaczego tak się dzieje ,sami też to widzicie. Tylko jak zrobić żeby właśnie było 23/0 ,może ktoś poprawić ten kod ? Nie pogardze też wytłumaczeniem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 17 Czerwca 2011 Udostępnij Opublikowano 17 Czerwca 2011 GML if(ammo_w_plecaku[bron] > 0) //jeśli masz ammo w plecaku { ammo_w_plecaku[bron] -= ammo_max_magazynek[bron]-ammo_magazynek[bron] //usuwamy z plecaka tyle pocisków, ile brakuje w magazynku ammo_magazynek[bron] += ammo_max_magazynek[bron]-ammo_magazynek[bron] //ładujemy magazynek na full if(ammo_w_plecaku[bron] < 0) //jeśli w plecaku powstała antymateria { ammo_magazynek[bron] += ammo_w_plecaku[bron] //dodajemy do magazynka tyle antymaterii, ile jest w plecaku ammo_w_plecaku[bron] = 0 //anihilujemy ubytek z plecaka i pochłaniamy energię } } ammo_w_plecaku - ilość posiadanej amunicji odjąć ilość amunicji w magazynku ammo_max_magazynek - pojemność magazynka ammo_magazynek - ilość amunicji w magazynku Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Madness Opublikowano 17 Czerwca 2011 Autor Udostępnij Opublikowano 17 Czerwca 2011 Zaraz spróbuje daj mi chwilke tylko zmienne dam na swoje :thumbsup: EDIT:Niestety ... mam teraz ustawione na początku 3/1 a jak dałem żeby przeładowało to miałem 0/-26 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 17 Czerwca 2011 Udostępnij Opublikowano 17 Czerwca 2011 Źle przepisałeś. Analiza kodu dla parametrów: 3 w magazynku, 1 w plecaku, 30 max w magazynku (pomijam ify): 1. 3 się nie zmienia, 1 zmienia się na (1-30+3), czyli -26 2. 3 zmienia się na (3+30-3), czyli 30 (teraz widzę, że tutaj trochę niepotrzebnie coś zrobiłem, ale mniejsza z tym), -26 nie zmienia się 3. 30 zmienia się na (30+(-26)), czyli 4, -26 się nie zmienia 4. 4 się nie zmienia, -26 zmienia się na 0. Tym sposobem z 3/1 masz 4/0. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Madness Opublikowano 17 Czerwca 2011 Autor Udostępnij Opublikowano 17 Czerwca 2011 a co zrobić jeśli chce mieć max w magazynku 90? a kod mam taki: GML if(zapasowe_naboje[bron] > 0) //jeśli masz ammo w plecaku { zapasowe_naboje[bron] -= naboje_w_magazynku_max[bron]-naboje_w_magazynku[bron] //usuwamy z plecaka tyle pocisków, ile brakuje w magazynku naboje_w_magazynku[bron] += naboje_w_magazynku_max[bron]-naboje_w_magazynku[bron] //ładujemy magazynek na full if(zapasowe_naboje[bron] < 0) //jeśli w plecaku powstała antymateria { naboje_w_magazynku[bron] += naboje_w_magazynku[bron] //dodajemy do magazynka tyle antymaterii, ile jest w plecaku naboje_w_magazynku[bron] = 0 //anihilujemy ubytek z plecaka i pochłaniamy energię } } /*zapasowe_naboje - to sa te po prawej stronie naboje_w_magazynku - to te po lewej naboje_w_magazynku_max - maksymalna il. naboji w magazynku */ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 17 Czerwca 2011 Udostępnij Opublikowano 17 Czerwca 2011 omg To zmieniasz ammo_max_magazynek. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Madness Opublikowano 17 Czerwca 2011 Autor Udostępnij Opublikowano 17 Czerwca 2011 W poście up nad twojim zobacz kod... nie widze błędu w przepisaniu go :rolleyes: do tego patrzyłem na ten kod 2 raz żeby sprawdzić czy jest all ok i było każda zmienna się zgadzała Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 17 Czerwca 2011 Udostępnij Opublikowano 17 Czerwca 2011 Błąd widać na pierwszy rzut oka. GML if(zapasowe_naboje[bron] > 0) //jeśli masz ammo w plecaku { zapasowe_naboje[bron] -= naboje_w_magazynku_max[bron]-naboje_w_magazynku[bron] //usuwamy z plecaka tyle pocisków, ile brakuje w magazynku naboje_w_magazynku[bron] += naboje_w_magazynku_max[bron]-naboje_w_magazynku[bron] //ładujemy magazynek na full if(zapasowe_naboje[bron] < 0) //jeśli w plecaku powstała antymateria { naboje_w_magazynku[bron] += zapasowe_naboje[bron] //dodajemy do magazynka tyle antymaterii, ile jest w plecaku zapasowe_naboje[bron] = 0 //anihilujemy ubytek z plecaka i pochłaniamy energię } } Teraz jest dobrze. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Madness Opublikowano 17 Czerwca 2011 Autor Udostępnij Opublikowano 17 Czerwca 2011 Jasny gwint strasznie przepraszam :thumbsup: i dziękuje zarazem 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ę