Skocz do zawartości

skrypt inventory


matis3

Rekomendowane odpowiedzi

Pobrałem skrypt z działu download i mam następujący problem, jak zrobić żeby to całe inventory pojawiało się w zasięgu widoku postaci.

Jak widze to inventory zostało zrobione na room bez przesuwania bo inv stoi jak słup w jednym miejscu :(.

Próbowałem wieloma sposobami ale spędziłem z 2 godziny nad rozmyślaniem jak to szybko zrobić zamiast zamieniać pojedyńczo dane :(. Chciałbym aby inventory przesuwało/pojawiało się równomiernie razem z kamerą/postacią.

P.S Jak zrobić aby można było przesuwać to inv myszką w inne miejsce?

 

Z góry dziękuje za pomoc

 

Oto ten skrypt (w obj_draw -> draw):

draw_set_font(font_main);
draw_set_halign(fa_left);
draw_set_valign(fa_middle);

draw_set_color(c_white);
draw_set_alpha(0.5);
draw_rectangle(10,10,210,10+(5*20)+20,false);
draw_rectangle(10,10+(5*20),210,10+(5*20)+20,false);

draw_set_color(c_green);
draw_set_alpha(0.5);
draw_rectangle(10,10+(kursor_y*20),210,10+(kursor_y*20)+20,false);
//5*20 to ilosc pikseli potrzebna na wyswietlenie 5 linijek tekstu
//+20 na koncu dodane jest aby wyswietlic znak > do przewijania stron

draw_set_color(c_black);
draw_set_alpha(1);
draw_rectangle(10,10,210,10+(5*20)+20,true);

for (i=0; i<5; i+=1;)
    {
     /*
    w przypadku gdy mamy strone 0, to 5*0=0 zatem wynik = i,
    czyli itemy od 0 do 4 (i<5)
    natomiast gdy jestesmy na 1 stronie (kursor_x=1), to i=i+5*1 czyli
    naprzyklad 6 dzieki temu wyswietlamy itemy od 5 do 9
    */
    if i+(5*kursor_x)<max_items
        {
        draw_sprite(item_img[i+(5*kursor_x)],0,20,10+(20*i)+10);
        draw_text(30,10+(20*i)+10,item_name[i+(5*kursor_x)]);//+10 dodane aby wysrodkowalo tekst, jest to 20/2
        draw_text(190,10+(20*i)+10,string(item_n[i+(5*kursor_x)]));
        }
    }
if pages>0 then draw_set_color(c_black) else draw_set_color(c_gray);

draw_text(30,10+(5*20)+10,'< Strona '+string(kursor_x+1)+'/'+string(pages+1)+' >');

Odnośnik do komentarza
Udostępnij na innych stronach

view_xview + ilestam, view_yview + ilestam <-- jesli walniesz takie cosik przy kazdej wspolrzednej to inventory bedzie Ci latac za viewem

 

Ale tam jest tyle współrzędnych :( wogole da sie zbadac ktore to x ktore to y ?(w jakiej kolejnosci)

Jeżeli bym pojedyńczo badał to jakieś 3 godziny mi zajmie.

Proszę o pomoc

 

draw_rectangle(10,10,210,10+(5*20)+20,true);

które to x a które y?

 

Kiedyś mi się nudziło i zrobiłem sobie prosty przykład okienek. Jest w nich również przesuwanie.

LINK

Mam nadzieję, że zrozumiesz przykład

 

Thx także spróbuje :)

Odnośnik do komentarza
Udostępnij na innych stronach

draw_rectangle(10,10,210,10+(5*20)+20,true);

Pierwsze cztery (x1,y1,x2,y2). Help w GameMakerze się kłania...tam znajdziesz opis każdego skryptu.

Odnośnik do komentarza
Udostępnij na innych stronach

Wielkie dzięki, powoli już zaczynam wszystko kapować. Mam jeszcze jedno pytanie jak ten skrypt przerobić aby item nie był kasowany a tylko wyrzucany w miejsce gdzie stoi postać?

 

//usuwamy item

if kursor_y+(5*kursor_x)<max_items

{

remove_item(item[kursor_y+(5*kursor_x)],1);

event_perform(ev_other,ev_user0);

}

Odnośnik do komentarza
Udostępnij na innych stronach

To co, zrobiles inventory i nawet nie wiesz jak ?? :P

 

if kursor_y+(5*kursor_x)<max_items
{
remove_item(item[kursor_y+(5*kursor_x)],1);
event_perform(ev_other,ev_user0);
instance_create(player.x,player.y,obj_item)
}

...

Nieeee, tak sie nie da, dawaj, pokaż ten pełny skrypt :P bo inaczej sie nie dowiem jak to trza...

Odnośnik do komentarza
Udostępnij na innych stronach

Oo no widzę, że to profesjonalny skrypt ! Gratz i pozdro dla gnyska ! xD

 

No musiałbym jeszczę chwilę nad tym posiedzieć, bo tera nie mam czau, ale niedługo ci pokaże, najpierw spróbuj zrobić jak mówiłem wcześniej...

 

btw. Kto mu, gnyskowi pozwolił uzyć grafik z Golden Sun'a !!! :D

Odnośnik do komentarza
Udostępnij na innych stronach

Zamiast obj_item daj po prostu item, bo chyba tak też się tam określa itemy... A zresztą możesz osobiście o to zapytać gnyska, albo poszukać tematu związanego z tym przykładem, bo sądzę, że takowy był... Jak nie to jutro podam ci skrypt, ale wcześniej dla pewności poszukaj jakiejś informacji, np. właśnie u gnyska.

Odnośnik do komentarza
Udostępnij na innych stronach

Hmmm za pierwszym razem zadziałało ale raczej nie tak jak trzeba xD pojawiła się druga postać (bohater) i za drugim razem napisało że nie może stworzyć obiektu...

 

Szukałem trochę ale za nic nie moge znaleść.

 

To będe wdzięczny jak mi jutro odpiszesz.

Odnośnik do komentarza
Udostępnij na innych stronach

Wtedy to stworzy niekoniecznie ten obiekt :) ale chyba chodzi ci o to ze jak stworze osobne przedmioty... wtedy nasuwa się 2 problem mianowicie że skrypt musi sam rozpoznawać obiekt albo wyrzucać nie zwracając uwagi na obiekt a na slota bo innaczej zadziała tylko jakbym miały dany item w specjalnym miejscu.

Odnośnik do komentarza
Udostępnij na innych stronach

Przepraszam za double posta ale temat już zszedł troche w dół i ponawiam moje pytanie a także pytam czy można to przerobić:

draw_sprite(item_img[i+(5*kursor_x)],view_yview+0,view_xview+20,view_yview+10+(2

0*i)+10);

Chce to przerobić aby rysowało ograniczone sprity a nie takie jakie są w rzeczywistości. Bo jak pojawia się tam np. Miecz to zajmuje pół okna inventory.

 

Z góry thx

Odnośnik do komentarza
Udostępnij na innych stronach

Heh, no to zmniejsz rozmiary samego sprite'a na takie jak mają inne itemy xD

 

Btw. masz tu ten skrypcik: https://gmclan.org/up1726_11_inventory_ripped.html - ty ale ja nie wiem, musiałbym popracować nad tym, bo na razie to robi losowe itemy tak ja normalnie w obiekcie item_random - zrobiłem tak, bo tak było najłatwiej :P

Odnośnik do komentarza
Udostępnij na innych stronach

Co do zmienienia rozmiarów sprite to o czymś takim nie ma mowy : miecz wielkości grzyba? to nie przejdzie.

 

Co do robienia losowych itemów to ja też zrobiłem (do tego doszliśmy wcześniej)

 

Ale wielkie dzięki za starania

Odnośnik do komentarza
Udostępnij na innych stronach

;/ Ale przecie nawet jak zmienisz rozmiar sprite'a to rozdzielczość i tak się zmieni - 8 na 8 pixeli w rozmiarach to w końcu 8 na 8 pixeli w rezolucji, nie ?? xD (rozdzielczości)... Chyba że masz rozdzielczość monitora przynajmniej 1600:1200 (tak jak ja :P) to wtedy możesz pokombinować bardziej z grafiką...

Odnośnik do komentarza
Udostępnij na innych stronach

Nie chodzi o rozdzielczośc mi chodzi o to że jak itemy mają mieć taką samą wielkość to grzyb leżący na ziemi i miecz będą tej samej wielkości... co raczej nie jest normalne. Ja chciałbym żeby dopiero inv ograniczało wielkość wyświetlania sprite (minimalizowało by obrazek do potrzebnych mi rozmiarów)

Odnośnik do komentarza
Udostępnij na innych stronach

To wtedy zmieni się i w wyświetlaniu

 

EDIT: Poradziłem sobie, dodałem 1 zmienną do get_item w której zawarłem 2 spirita ktorego drawował w inventory.

 

Jeśli jeszcze ktoś mógłby mi pomóc z tym dropem byłbym wdzięczny

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ę...