Paqoo Opublikowano 26 Grudnia 2007 Udostępnij Opublikowano 26 Grudnia 2007 Oto kod walki dla postaci bohatera w alarmie 0: var atak; atak_npc=o_rozbujnik; if distance_to_object(atak_npc) <= 32 { atak = round(random(1)); if atak = 1 { atak_enemy = round(random(global.sila_atk)); if (atak_enemy < atak_npc.obrona || atak_enemy = atak_npc.obrona) { atak_npc.hlt-=0; sound_play(blok); } else { if atak_npc.obrona < atak_enemy { atak_npc.hlt-=atak_enemy-round(random(atak_npc.obrona)); sound_play(dmg); } } } } atak_enemy ma to być dmg naszego przeciwnika. Chcę aby dostawał dmg tylko przeciwnik, który jest bity przez gracza. Co mam robić? Kiedyś to robiłe z łatwością, ale zapomniałem kodu.. Pomożecie? Przeciwnika zaznaczam myszką i wciskam atak. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 26 Grudnia 2007 Udostępnij Opublikowano 26 Grudnia 2007 przechowuj zaznaczonego przeciwnika w jakiejś zmiennej i wal tylko w niego Oo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 26 Grudnia 2007 Udostępnij Opublikowano 26 Grudnia 2007 Po kliknięciu przeciwnika wsadź jego id do zmiennej global.aprzeciwnik i potem atakuj tą zmienną ; p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 27 Grudnia 2007 Autor Udostępnij Opublikowano 27 Grudnia 2007 Oj nie działa. Wcześniej miałem ten sam kod i działało. Nic nie rozumiem. Jakieś -1 w zmiennej, o to jest? var text,menu; if atak text = 'Przestań atakować'; else text = 'Atakuj'; menu = show_menu(text+'|-|Anuluj',-1); if menu = 0 { if atak { atak_npc = self.id; atak = false; } else { o_gracz.atak_npc = id; atak = true; } } Zaczynam się bulwersować ;d To środkowy etap pomiędzy problemem, a jego rozwiązaniem :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 27 Grudnia 2007 Udostępnij Opublikowano 27 Grudnia 2007 Czyli tak, jak masz w tej zmiennej -1 to znaczy że żaden przeciwnik nie jest wybrany ; p Daj taki kod po kliknięciu lewym guzikiem myszy na przeciwnika: if atak { atak_npc = self.id; atak = false; } else { o_gracz.atak_npc = id; atak = true; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 28 Grudnia 2007 Autor Udostępnij Opublikowano 28 Grudnia 2007 Na logike to właśnie tak powinno być, ale mimo to nie działa. Dam więcej kodu, bo może coś w innym miejscu jest zepsute..? Oto on: if hlt <= 0 { instance_destroy() sound_play(smierc); exit; } if atak && o_gracz.atak_npc != id atak = false; var gracz; gracz=instance_nearest(x,y,o_ludzik); if ( distance_to_object(gracz)<dyst ) { podazaj=true; } else { podazaj=false; } if (podazaj==true) { if (gracz.y>y+32) { if (place_free(x,y+16)) k=dol; else { if (gracz.x>x) k=prawo; else k=lewo; } } if (gracz.y<y-32) { if (place_free(x,y-16)) k=gora; else { if (gracz.x>x) k=prawo; else k=lewo; } } if (gracz.x>x+32) { if (place_free(x+16,y)) k=prawo; else { if (gracz.y>y) k=dol; else k=gora; } } if (gracz.x<x-32) { if (place_free(x-16,y)) k=lewo; else { if (gracz.y>y) k=dol; else k=gora; } } } switch (k) { case gora: if entered { yy -= 16; entered = false; k=stoj; } break; case dol: if entered { yy += 16; entered = false; k=stoj; } break; case lewo: if entered { xx -= 16; entered = false; k=stoj; } break; case prawo: if entered { xx += 16; entered = false; k=stoj; } break; } if place_free(xx,yy) { if mp_linear_step(xx,yy,move_speed,false) { entered = true; if (k=stoj) { image_single=0; image_speed=0; } } } else { xx=x; yy=y; } Jest to STEP event wroga - rozbujnika. Coś źle w kodzie? Pomocy ;( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lord Vayaa Opublikowano 28 Grudnia 2007 Udostępnij Opublikowano 28 Grudnia 2007 Jak uzywasz tego pprzykladu to wejdz do global game settings a pozniej do contans. Zobaczysz roznice miedzy swoim plikiem a przykladem Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 28 Grudnia 2007 Autor Udostępnij Opublikowano 28 Grudnia 2007 Omg. Weź zaprzestań. Stałe to ja już ogarniam ziomek. "Przykład" - po prostu skrypty mam podobne wiem na czym polegają, nie chce mi się specialni pisać jak moge skorzystać. Ktoś pomoże? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 30 Grudnia 2007 Autor Udostępnij Opublikowano 30 Grudnia 2007 Nie daję rady z tym kodem :crying: Na prawdę proszę o pomoc, gdzieś jest błąd! :sp_ike: Mam nadzieję, że nie dostanę warna. Chciałem odświeżyć temat.. :twisted: Czekam.. :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 31 Grudnia 2007 Udostępnij Opublikowano 31 Grudnia 2007 2. "Co tu jest źle?" Pokaże wam swój kod. Ściągnijcie go i zobaczcie, dlaczego to nie działa? Nie wiem, gdzie tu jest błąd. Każdy z nas ma swój kod i swoje błędy. W twoim kodzie błędy możesz znaleźć tylko ty sam - zrobisz to najszybciej i najlepiej, bo już go znasz. Nikt nie będzie analizował dziesiątek czy setek linii twojego kodu albo całego projektu. źródło http://wiki.gamedev.pl/Jak_nie_lami%C4%87 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 31 Grudnia 2007 Autor Udostępnij Opublikowano 31 Grudnia 2007 Moldis ciesz się, że nie mieszkasz u mnie w mieście, bo za takie coś już byś oberwał. Zamiast nabijać sobie posty spamowaniem, pomóż mi. Jak nie potrafisz, to się nie odzywaj. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 31 Grudnia 2007 Autor Udostępnij Opublikowano 31 Grudnia 2007 Przeanalizowałem kod i okazało się, że był błąd w nazwie obiektu. Podmieniłem i działa jak trzeba. Przepraszam za kolejny double post, ale zamykam już to coś :) Moldis wyluzuj! =) Oto miejsce błędu: else { o_ludzik.atak_npc = id; atak = true; } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi