Skocz do zawartości

Sloty, tworzenie przedmiotów, problemy


MiChAl200

Rekomendowane odpowiedzi

Chcę zrobić, żeby w inwentarzu, można było wytworzyć inne przedmioty. W tym przypadku mam, że jeśli mam 2 drewna, to mogę zmienić je na deski. Klikam przycisk i odejmują się dwa drewna i zamienia na 4 deski. W tej chwili jeszcze nie ma dodania przerobionych surowców, ale jest "wyjmowanie" potrzebnych surowców ze slotów inwentarza.

 

Jest taki kod, po naciśnięciu przycisku "Twórz":

GML
jeszcze1=crafting.ile1[1]; //zmienna wynosi tyle ile potrzeba danego surowaca do wyrobu przedmiotu

jeszcze2=crafting.ile2[1];

jeszcze3=crafting.ile3[1];

 

 

if(crafting.posiadasz1[1]>=crafting.ile1[1]) // sprawdzanie czy posiadasz wymagającą liczbę surowców

{

for(i=1; i<5; i+=1)

{

for(j=1; j<5; j+=1)

{

if(jeszcze1!=0) // sprawdzanie, czy jeszcze jakieś bloki zostały do "odebrania"

{

if(controler.idObj[j,i]==crafting.potrzeba1[1]) // jeśli w slocie jest surowiec, którego potrzebujemy

{

if(controler.nrObj[j,i]=jeszcze1) // jeśli w slocie jest dokładnie tyle surowca ile potrzebujemy

{

controler.idObj[j,i]=-1; // slot jest wyczyszczony

controler.nrObj[j,i]=0;

crafting.posiadasz1[1]-=crafting.ile1[1]; // odejmujesz ilość potrzebych rzeczy od liczby posiadanych (danego typu)

jeszcze1=0; // już nie potrzeba więcej "odbierać" bloków

}

else if(controler.nrObj[j,i]>jeszcze1) // jeśli w slocie jest więcej niż jeszcze zostało do odebrania

{

controler.nrObj[j,i]-=jeszcze1; //odejmujesz liczbę surowców, które musisz odebrać, od liczby surowców które są w danym slocie

crafting.posiadasz1[1]-=crafting.ile1[1]; // odejmujesz ilość surowców, które musisz odebrać o liczby wszystkich posiadanych

jeszcze1=0; // już nie potrzeba więcej "odbierać" bloków

}

else if(controler.nrObj[j,i]<jeszcze1) // jeśli w slocie jest mniej surowców niż potrzeba do "odebrania"

{

jeszcze1-=controler.nrObj[j,i]; // odejmujesz liczbe surowców

crafting.posiadasz1[1]-=controler.nrObj[j,i]; // odejmujesz liczbe surowców w slocie od liczby wszystkich posiadanych.

controler.idObj[j,i]=-1; // slot jest wyczyszczony

controler.nrObj[j,i]=0;

}

 

}

}

}

}

}

 

Te "jeszcze2" i "jeszcze3" to będzie potem, jak będzie trzeba będzie posiadać więcej przedmiotów. Np. I drewno i kamień itp.

 

 

PROBLEM:

Pobiera mi dwa razy więcej niż to potrzeba.

Jeśli w slotach jest więcej, niż potrzeba (w tym wypadku 2) to zabiera więcej.

Jeśli jest ogólnie 3 to zabiera 2.

Jeśli jest ogólnie 4 to zabiera 4.

Jeśli jest ogólnie 5 to zabiera 4.

Jeśli jest ogólnie 6 to zabiera 6.

 

 

Nie wiem czemu się tak dzieje. Czemu akurat dwa?

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...