Filar Społeczności ANtY Opublikowano 13 Kwietnia 2012 Filar Społeczności Udostępnij Opublikowano 13 Kwietnia 2012 Nie rozumiałem nigdy i chyba już nie zrozumiem jak można w taki sposób "tworzyć" grę :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 13 Kwietnia 2012 Udostępnij Opublikowano 13 Kwietnia 2012 Niestety po tym co napisałeś, ciężko wyłapać gdzie jest błąd ;/ Najprawdopodobniej przekroczyłeś granicę tablicy(pewnie nie zadeklarowałeś) Daj to, gdzieś w evencie Game Start: GML //pod q i w podstaw rozmiar tablicy q=30; w=40; for(i=0;i<=q;i+=1) for(j=0;i<=w;j+=1) global.inventory[i,j]=0; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kuba2153 Opublikowano 14 Kwietnia 2012 Autor Udostępnij Opublikowano 14 Kwietnia 2012 Ahmm. Znaczy bo ja to robiłem na podstawie przykładu ( https://forum.gmclan.org/index.php?showtopic=26624 ), więc myślałem, że to dobrze będzie ;P Anty jeśli chodzi ci o to, że powinienem samemu tworzyć, to cię rozumiem ;P Ta gra to raczej mój taki samouczek. Jak czegoś nie wiem to pytam się was i zarazem ucze tego, oraz sklejam kod w całość, żeby był bez błędów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 14 Kwietnia 2012 Udostępnij Opublikowano 14 Kwietnia 2012 Wydaje mi się, że koleś po prostu popełnił błąd w tutku i zamiast 3 napisal 36: GML if (global.inventory[1,36] <> noone) {draw_sprite(global.inventory[1,4],global.inventory[1,4],view_xview[0]+920+24+(32*0),view_yview[0]+431+31+(32*0));} if (global.inventory[2,36] <> noone) {draw_sprite(global.inventory[2,4],global.inventory[2,4],view_xview[0]+920+24+(32*1),view_yview[0]+431+31+(32*0));} if (global.inventory[3,36] <> noone) {draw_sprite(global.inventory[3,4],global.inventory[3,4],view_xview[0]+920+24+(32*2),view_yview[0]+431+31+(32*0));} if (global.inventory[4,36] <> noone) {draw_sprite(global.inventory[4,4],global.inventory[4,4],view_xview[0]+920+24+(32*3),view_yview[0]+431+31+(32*0));} if (global.inventory[5,36] <> noone) {draw_sprite(global.inventory[5,4],global.inventory[5,4],view_xview[0]+920+24+(32*0),view_yview[0]+431+31+(32*1));} if (global.inventory[6,36] <> noone) {draw_sprite(global.inventory[6,4],global.inventory[6,4],view_xview[0]+920+24+(32*1),view_yview[0]+431+31+(32*1));} if (global.inventory[7,36] <> noone) {draw_sprite(global.inventory[7,4],global.inventory[7,4],view_xview[0]+920+24+(32*2),view_yview[0]+431+31+(32*1));} if (global.inventory[8,36] <> noone) {draw_sprite(global.inventory[8,4],global.inventory[8,4],view_xview[0]+920+24+(32*3),view_yview[0]+431+31+(32*1));} Zamień na: GML if (global.inventory[1,3] <> noone) {draw_sprite(global.inventory[1,4],global.inventory[1,4],view_xview[0]+920+24+(32*0),view_yview[0]+431+31+(32*0));} if (global.inventory[2,3] <> noone) {draw_sprite(global.inventory[2,4],global.inventory[2,4],view_xview[0]+920+24+(32*1),view_yview[0]+431+31+(32*0));} if (global.inventory[3,3] <> noone) {draw_sprite(global.inventory[3,4],global.inventory[3,4],view_xview[0]+920+24+(32*2),view_yview[0]+431+31+(32*0));} if (global.inventory[4,3] <> noone) {draw_sprite(global.inventory[4,4],global.inventory[4,4],view_xview[0]+920+24+(32*3),view_yview[0]+431+31+(32*0));} if (global.inventory[5,3] <> noone) {draw_sprite(global.inventory[5,4],global.inventory[5,4],view_xview[0]+920+24+(32*0),view_yview[0]+431+31+(32*1));} if (global.inventory[6,3] <> noone) {draw_sprite(global.inventory[6,4],global.inventory[6,4],view_xview[0]+920+24+(32*1),view_yview[0]+431+31+(32*1));} if (global.inventory[7,3] <> noone) {draw_sprite(global.inventory[7,4],global.inventory[7,4],view_xview[0]+920+24+(32*2),view_yview[0]+431+31+(32*1));} if (global.inventory[8,3] <> noone) {draw_sprite(global.inventory[8,4],global.inventory[8,4],view_xview[0]+920+24+(32*3),view_yview[0]+431+31+(32*1));} Jeśli to nie pomoże to nie wiem. Ogólnie to nie lubię korzystać z ekwipunku, etc. innego niż mojego autorstwa bo się gubię. Jak swój napiszę to wiem o co biega wszędzie :P Oczywiście można tą ilość kodu zmniejszyć pętlą for :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kuba2153 Opublikowano 14 Kwietnia 2012 Autor Udostępnij Opublikowano 14 Kwietnia 2012 Wiem, ale ja na GM-ie pracuje około 5dni więc jeszcze nie wszystko łapie ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 14 Kwietnia 2012 Udostępnij Opublikowano 14 Kwietnia 2012 Wiem :P Ja lepszych początków sam nie miałem więc nie masz się czego wstydzić ^^ A wracając do tematu, zadziałała zmiana indeksu tablicy z 36 na 3 ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kuba2153 Opublikowano 14 Kwietnia 2012 Autor Udostępnij Opublikowano 14 Kwietnia 2012 Tak zadziałała, wielkie dzięki ^^ A, mógłbyś mi napisać jakieś prostsze inventory? (O ile takie jest) I z komentami bo chciałbym na tyle to zrozumieć, zeby swoje robić :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 14 Kwietnia 2012 Udostępnij Opublikowano 14 Kwietnia 2012 Jeśli znajdę czas to się postaram :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kuba2153 Opublikowano 14 Kwietnia 2012 Autor Udostępnij Opublikowano 14 Kwietnia 2012 Ok to czekam niecierpliwie :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 14 Kwietnia 2012 Udostępnij Opublikowano 14 Kwietnia 2012 Że tak się zapytam, kto robi tą grę? Ty czy Utermiko Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kuba2153 Opublikowano 14 Kwietnia 2012 Autor Udostępnij Opublikowano 14 Kwietnia 2012 Że tak się zapytam, kto robi tą grę? Ty czy Utermiko Jak juz pisałem, kilka postów wcześniej, ta gra to jest rodzaj mojego samouczka, ucze sie kodów i jak je łączyć w całość ;) A przy okazji chce zobaczyć co z tego wyjdzie ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 14 Kwietnia 2012 Udostępnij Opublikowano 14 Kwietnia 2012 Masz przykład, najprostszy bez zbędnych bajerów: https://gmclan.org/up8194_12_inv.html Pola w eq indeksują się w następujący sposób : obrazek Jak przetestować? Odpalasz w Debug mode(czerwona strzalka) Klikasz E żeby otworzyć eq Dajesz Tools>Execute code No i skrypt dodający itemy do plecaka to additem(iditemka,ilosc), dla przedmiotów nie-stackujących się daj w ilość 0 1 - miecz 2 - tarcza 3 - moneta (stackuje sie) Komentarze są ;) PS Testowałem tylko dla inwentarza o rozmiarze 5x5 @EDIT Myślę, że mechanizm podnoszenia/wyrzucania przedmiotów już sobie sam zrobisz bo to chyba najłatwiejsza część (dodawanie przedmiotów już jest [additem(...)]) :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kuba2153 Opublikowano 14 Kwietnia 2012 Autor Udostępnij Opublikowano 14 Kwietnia 2012 Taa reszte już zrobię ;D Dzięki teraz przynajmniej wiem co i jak :) Jak długo uczysz się gml? Jestem ciekaw ile zajmie mi dojście do tego poziomu ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 14 Kwietnia 2012 Udostępnij Opublikowano 14 Kwietnia 2012 Pierwszy raz z GM'em się spotkałem chyba ze 2 lata temu. Pobawiłem się z pół roku i potem przerwa gdzieś na rok. A teraz wróciłem no i robię ;P Wszystkich funkcji z GM'a nie da się całkiem nauczyć. Po prostu trzeba umieć znaleźć odpowiednią funkcję (np. w dokumentacji) i ją wykorzystać. Poza tym trzeba logicznie myśleć jak się coś pisze, bo nie da się tego wykuć na pamięć. Musisz poznać oczywiście te wszystkie pętle itp. , żeby efektownie pisać :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kuba2153 Opublikowano 14 Kwietnia 2012 Autor Udostępnij Opublikowano 14 Kwietnia 2012 Heh, wydaję mi się że języka szybko się naucze, bo miałem już 8mies. nauki Pascala, 5mies. z C++ i z rok w delphi ;) Więc składnie złożyć potrafię :) Jedynie musze sie nauczyc funkcji :) Pętli większość znam :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 14 Kwietnia 2012 Udostępnij Opublikowano 14 Kwietnia 2012 A to było mówić od razu ;P A ja ci niepotrzebnie opisywałem całą pętle for, która jest identyczna jak w C++ ^^ @EDIT Skoro mówisz, że tyle już się uczyłeś pascala, c++ i delphi, to pisanie w GM'ie nie sprawi Ci chyba żadnych problemów ^^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kuba2153 Opublikowano 14 Kwietnia 2012 Autor Udostępnij Opublikowano 14 Kwietnia 2012 Dużych problemów nie mam, ale muszę sobie przypomnieć, bo tych języków uczyłem się dobre 2 lata temu ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 16 Kwietnia 2012 Udostępnij Opublikowano 16 Kwietnia 2012 Chcę jeszcze dodać, że w Drawie kontrolera jest pewien bug (tak to jest jak się na szybko robi przykład^^)\ Zamiast GML switch(global.eq[j*wys+i,0]) Powinno być: GML switch(global.eq[j*szer+i,0]) Nie ma to znaczenia jeśli używasz plecaka co ma taką samą szerokość jak wysokość, ale w przeciwnym wypadku będą źle numerowane pola. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kuba2153 Opublikowano 16 Kwietnia 2012 Autor Udostępnij Opublikowano 16 Kwietnia 2012 Ok ;) A mógłby mi ktoś powiedzieć, jak przerobić poniższy kod, żeby obrażenia były kierowane do tego wroga, którego aktualnie atakuje ? GML if dzialanie = 2 and distance_to_object(o_mob) <= 10 and bron_mam = 1 and mhp = true{ mhp = false o_mob.hp1 -= damage alarm[0] = 1.5 * room_speed } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karolo320 Opublikowano 16 Kwietnia 2012 Udostępnij Opublikowano 16 Kwietnia 2012 if dzialanie = 2 and bron_mam = 1 and mhp = true{ var mob; mob=instance_nearest(x,y,o_mob) if distance_to_object(mob) <= 10{ mhp = false mob.hp1 -= damage alarm[0] = 1.5 * room_speed } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kuba2153 Opublikowano 16 Kwietnia 2012 Autor Udostępnij Opublikowano 16 Kwietnia 2012 Niby powinno być dobrze, ale nie działa :/. Wpisałem w drawie, żeby pokazało zmienną hp1, i ani troche ona nie ubywa. Próbowałem, troche pozmieniać kod ale nic z tego :(. Proszę o pomoc :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 16 Kwietnia 2012 Udostępnij Opublikowano 16 Kwietnia 2012 Zadeklaruj w create potwora ilość jego hp (jako zmienną lokaną, nie globalną!) GML zyciemoba=100; Przy kolizji z graczem(w obiekcie moba): GML if global.dzialanie = 2 and distance_to_object(o_gracz) <= 10 && global.bron_mam = 1 && global.mhp = true{ mhp = false zyciemoba -= global.damage alarm[0] = 1.5 * room_speed } Wtedy zmienne damage, bron_mam, mhp muszą być zmiennymi globalnymi BTW. Ustawiłeś w alarmie[0] mhp=true? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kuba2153 Opublikowano 16 Kwietnia 2012 Autor Udostępnij Opublikowano 16 Kwietnia 2012 Tak, tylko mi chodzi o to, że kiedy jest kilka mobów tego samego rodzaju, w roomie, to biorąc życie jednemu równocześnie zabiera wszystkim. Znaczy wcześniej, wszystko chodziło gładko, tylko brało życie wszystkim mobom, a po kodzie Karolo, w ogóle nic się nie działo :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 16 Kwietnia 2012 Udostępnij Opublikowano 16 Kwietnia 2012 To zrób tak jak ja napisałem, tylko kodu nie dawaj w obj_bohater w kolizji z obj_mob tylko daj w obj_mob w kolizji z obj_bohater Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 16 Kwietnia 2012 Udostępnij Opublikowano 16 Kwietnia 2012 Kod Utermiko jest dobry, tylko wrzuć go w Step, a nie event kolizji. I oczywiście cały ten kod ma być w obiekcie moba. #990 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kuba2153 Opublikowano 16 Kwietnia 2012 Autor Udostępnij Opublikowano 16 Kwietnia 2012 Już wszystko ok :D A ja niepotrzebnie ten kod wbijałem do stepa gracza :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 16 Kwietnia 2012 Udostępnij Opublikowano 16 Kwietnia 2012 Coś źle robisz, nie wiem jak wygląda u ciebie atak, ale musisz zrobić coś takiego(podczas ataku): GML with(o_mob) { if distance_to_object(o_gracz) < 32 { zyciemoba -= global.damage; } } Jak coś nie pasuje to pisz na gg lub wyślij projekt. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 16 Kwietnia 2012 Udostępnij Opublikowano 16 Kwietnia 2012 GML if dzialanie = 2 and bron_mam = 1 and mhp = true { with(mob) { if distance_to_object(mob) <= 10{ other.mhp = false zyciemoba -= damage other.alarm[0] = 1.5 * room_speed } } } #992 E:Edie byl pierwszy E2:I te kody to mają być w step bohatera Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 16 Kwietnia 2012 Udostępnij Opublikowano 16 Kwietnia 2012 Kod Utermiko jest dobry, tylko wrzuć go w Step, a nie event kolizji. I oczywiście cały ten kod ma być w obiekcie moba. #990 Heh, racja :P Mój błąd. Pomyliło mi się, bo ja zawsze robiłem w swoich grach strzelanie z pistoletu, a tu walka wręcz jest ^^ 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ę