Skocz do zawartości

Zablokowane Kupowanie za np. punkty


Marcin T.

Rekomendowane odpowiedzi

Witam

 

Mam małe pytanka, jak zrobić tak, że np. gdy będziesz miał 0 punktów, to nie możesz już nic kupować, a jak uzbierasz np. 1000 to znowu możesz?

oto ci chodzi O.o?

 

if punkty >=1000

{

 

//kod kupna

punkty-=1000

}

else if punkty=0

{

//Kod na wykop biedaka z sklepu :P

}

 

ps.Tak tylko zacytuje to co jest dużymi czerwonymi literami na samej górze tematu

---------------------------------------------

Zanim zadasz pytanie:

1. Sprawdź czy odpowiedzi nie ma w dziale FAQ lub czy podobnego tematu nie było na forum

2. Zapoznaj się z polskim tłumaczeniem dokumentacji (help)

3. Zapoznaj się też z naszymi kursami i przykładami

 

Powtarzające się pytania będą karane ostrzeżeniami lub usuwaniem tematów !!!

 

Nigdy nie nazywaj tematu "Pomoc", "Help me!" itp. Tytuł tematu powinien być "mówiący" czyli taki, który od razu po przeczytaniu informuje o poruszanym w nim problemie.

---------------------------------------------

ciekawsze punkty pogrubiłem

Odnośnik do komentarza
Udostępnij na innych stronach

Właśnie chudzi mi o ten wykop ze sklepu biedaka. Chodzi mi oto jak zrobić tak, że gdy nie będziesz miał wystarczająco dużo punktów ( masz np. 40, a żeby coś kupić jest potrzebne 50 ) To nie możesz np. postawić jakiegoś budynku, a jak kogoś zabijesz i dostaniesz za to 10 punktów to już możesz. Oczywiście po kupnie danego np. budynku to zmniejszają się twoje punkty o tyle ile kosztował ten budynek, czyli po prostu za niego zapłacisz. A w tych dużych czerwonych napisach tego nie ma.

Odnośnik do komentarza
Udostępnij na innych stronach

A więc tak:

 

CREATE:

GML
global.punkty=0 //ustawia zmienną globalną punkty</span>

 

PODCZAS ZDOBYWANIA PUNKTÓW:

GML
global.punkty +=10 //dodawanie 10 punktów(może być oczywiście inna ilośc punktów)</span>

 

PODCZAS KUPOWANIA JAKIEGOŚ OBIEKTU:

GML
if global.punkty > 50 //jeżeli mamy więcej niż 50 punktów(zamiast 50 możesz wpisac jakąś inną ilość punktów)

{

//akcja jeżeli mamy tyle punktów(kupno itd.)

global.punkty -=50 //zabieranie punktów(musi tu być taka sama liczba jak tam wyżej)

}

else

{

show_message("Sory! Nie masz tyle punktów!!!") //komunikat

//akcja gdy nie mamy tyle punktów

}

EDIT: Kupowanie i zdobywanie punktów oczywiście możesz dać w innych obiektach.

EDIT2: Poczytaj o zmiennych globalnych i innych: Dokumentacja, zmienne

 

No myśle że prościej się chyba nie da.

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra zrobiłem jak mi powiedziałeś, ale gdy włączam grę to pokazuje mi się ten błąd:

 

 

___________________________________________

ERROR in

action number 1

of Step Event

for object object5:

 

Error in code at line 3:

global.punkty +=10

^

at position 2: Unknown variable punkty

 

A oto kod który miał robić tak, że gdy object5 ma 0 życia to znika i do daje mi 10 punktów ( w błędzie o nim jest napisane )

 

GML
if ( hp <= 0 ) instance_destroy()

 

global.punkty +=10

 

Co zrobiłem źle?

Odnośnik do komentarza
Udostępnij na innych stronach

Kod na kupowanie:

 

GML
if global.punkty > 50 //jeżeli mamy więcej niż 50 punktów(zamiast 50 możesz wpisac jakąś inną cene towaru)

{

//akcja jeżeli mamy tyle kasy(kupno itd.)

global.punkty -=50 //zabieranie kasy(musi tu byc taka sama liczba jak tam wyżej)

}

else

{

show_message("Sory! Nie masz tyle kasy!!!") //komunikat

with(editor_controler) instance_destroy()

}

 

Kod na budowanie:

 

GML
if !instance_position(x div 25 * 25,y div 25 * 25,_aktualny) and y>25

instance_create(x div 25 * 25,y div 25 * 25,_aktualny);

 

Kod na dodawanie punktów:

 

GML
if ( hp <= 0 ) instance_destroy()

 

global.punkty +=10

Odnośnik do komentarza
Udostępnij na innych stronach

Kod na kupowanie:

GML
if global.punkty > 50 //jeżeli mamy więcej niż 50 punktów(zamiast 50 możesz wpisac jakąś inną cene towaru)

{

//akcja jeżeli mamy tyle kasy(kupno itd.)

global.punkty -=50 //zabieranie kasy(musi tu byc taka sama liczba jak tam wyżej)

}

else

{

show_message("Sory! Nie masz tyle kasy!!!") //komunikat

with(editor_controler) instance_destroy()

}

Kod na budowanie:

GML
if !instance_position(x div 25 * 25,y div 25 * 25,_aktualny) and y>25

instance_create(x div 25 * 25,y div 25 * 25,_aktualny);

Kod na dodawanie punktów:

Kod na kupowanie i budowanie, musi być ze sobą jakoś powiązany. Nie mogą występować oddzielnie. Sugeruję się tym co wcześniej napisałeś.

Odnośnik do komentarza
Udostępnij na innych stronach

usuń wszystko co jest w evencie Global Left Pressed w editor_controler i daj

GML
if global.punkty>49

{

if !instance_position(x div 25 * 25,y div 25 * 25,_aktualny) and y>25

instance_create(x div 25 * 25,y div 25 * 25,_aktualny);

global.punkty-=50;

}

else

{

show_message("Sory! Nie masz tyle kasy!!!") //komunikat

with(editor_controler) instance_destroy()

}

sorry że tak długa ale przed chwilą dostałem beta key do MOH-a :)

Odnośnik do komentarza
Udostępnij na innych stronach

Sory, że tak późno, ale do rzeczy.

 

Dobra zostały mi tylko 2 błędy :)

 

1. Nawet gdy mam wyznaczaną ilość punktów na kupno obiektu to wyskakuje mi komunikat, że nie mam tyle kasy, na szczęście wtedy już mi się buduje budynek, chodzi mi tylko o ten komunikat.

 

2. Raczej takie pytanie niż błąd: Jak zrobić, żeby pokazywało ile mam tych punktów?, bo gdy robię normalnie to pokazuje mi zwyczajne punkty, a nie te za które kupuję.

Odnośnik do komentarza
Udostępnij na innych stronach

1. Nawet gdy mam wyznaczaną ilość punktów na kupno obiektu to wyskakuje mi komunikat, że nie mam tyle kasy, na szczęście wtedy już mi się buduje budynek, chodzi mi tylko o ten komunikat.

nie, po prostu kod na wyświetlanie wyniku jest zły. Aha i jeszcze zmień na

GML
if global.punkty>49

{

if !instance_position(x div 25 * 25,y div 25 * 25,_aktualny) and y>25{

instance_create(x div 25 * 25,y div 25 * 25,_aktualny);

global.punkty-=50;

}

}

else

{

show_message("Sory! Nie masz tyle kasy!!!") //komunikat

with(editor_controler) instance_destroy()

}

dzisiaj już mnie nie będzie, jutro wstaje o 3 więc trzeba się porządnie wyspać ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Chodzi Ci o cenę budynków? Stwórz nową zmienną np cena w obiekcie który ma to wyświetlać. Następnie piszesz kod, który będzie do tej zmiennej przekazywał wartość budynku. Załóżmy, że masz panel wyboru budynków. Najeżdżasz teraz na któryś z budynków myszką.

GML
if(myszka jest nad budynkiem )

{

if( !wybrany)

{

wybrany=true;

o_rysuj.cena=100;//o_rysuj wyświetla cenę budynku

}

}

else if(wybrany)

{

wybrany=false;

o_rysuj.cena=false;

}

Zmienna wybrany jest po to aby budynki ciągle nie zerowały zmiennej cena. Potem juz tylko rysujesz zmienną cena. Wcześniej dajesz warunek:

GML
if(cena)

draw_text()

Odnośnik do komentarza
Udostępnij na innych stronach

TheMarcQ ja wiem jak to robić już w mojej grze tak jest, chodzi mi o kupno, a nie o budowę.

 

Candy nie o to mi chodziło. Jag by ci to wytłumaczyć...? Gdy chcesz, żeby pokazywało twoje punkty, życia, pasek życia to Score i tam wybierasz Set score, Draw lives itp. Wtedy twoje punkty widać w czasie gry ( klik ). Chodzi mi o to samo tylko, żeby było widać te punkty za które kupuję, czyli te pieniądze. Gdy robię to normalnie to pokazują mi się zwyczajne punkty, a nie te punkty pieniądze za które kupuję budynki.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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