Paqoo Opublikowano 21 Sierpnia 2008 Opublikowano 21 Sierpnia 2008 Zamieszczam kod: GRACZ: var atak, dmg; dmg=round(random(oWojownik.atak)); dmg2=dmg if distance_to_object(atak_npc) <= 32 { atak = round(random(oWojownik.celnosc)); if atak = 1 and dmg>0 and atak_npc.obrona<dmg{atak_npc.hlt-=dmg;sound_play(krew);sound_play(choose(uderzenie1,uderzenie2));with atak_npc{instance_create(x,y,oKrewMala);instance_create(x,y,oHit);instance_create(x,y,enemy_dmg);} } else{with atak_npc{instance_create(x,y,oMiss);instance_create(x,y,text_miss);} sound_play(choose(pudlo1,pudlo2,pudlo3)); } } alarm[0] = room_speed*1; //atak co 1 sekunde PRZECIWNIK: var atak, dmg, obj, atak, celnosc; atak=9 celnosc=1 obj=oWojownik dmg=round(random(atak)); dmg2=dmg if distance_to_object(obj) <= 32 { atak = round(random(celnosc)); if atak = 1 and dmg>0 and obj.obrona<dmg{ obj.hlt-=dmg; sound_play(krew); sound_play(choose(uderzenie1,uderzenie2)); with obj{instance_create(x,y,oKrewMala);instance_create(x,y,oHit);instance_create(x,y,player_dmg);} } else{ with obj{instance_create(x,y,oMiss);instance_create(x,y,text_miss);} sound_play(choose(pudlo1,pudlo2,pudlo3)); } } alarm[0] = room_speed*1; //atak co 1 sekunde enemy dmg: if atak_npc.max_hlt-atak_npc.hlt > oWojownik.dmg2 {damaged=oWojownik.dmg2;} else {damaged=atak_npc.max_hlt-atak_npc.hlt;} Problem jest w tym, że nie pokazuje mi konkretnej, prawidłowej liczby nad wrogiem/graczem, ale jakieś dziwne cyfry np. 0, 240 itp. ?? Co się dzieje? :crying: Chciałbym żeby po uderzenie potwora pokazywało dmg jaki mu zadaje. Jeśli ma mniej hp to nie pokazywało np. 9 jeśli ma 6 hp - tylko 6 hp. Rozumiecie? :mellow:
borubarartur Opublikowano 21 Sierpnia 2008 Opublikowano 21 Sierpnia 2008 No nie wiem jak ci pomuc, musisz jaśniej objaśnic kod to może wtedy
Paqoo Opublikowano 21 Sierpnia 2008 Autor Opublikowano 21 Sierpnia 2008 Dałem przecież kod i napisałem co chcę osiągnąć. Po prostu jest on dla ciebie zbyt skomplikowany.
Mistyk Opublikowano 21 Sierpnia 2008 Opublikowano 21 Sierpnia 2008 to nie jest pytanie zaawansowane :P podaj kod "enemy_dmg"
Paqoo Opublikowano 21 Sierpnia 2008 Autor Opublikowano 21 Sierpnia 2008 Ale pogubiłem się w kodzie. Daje ten enemy_dmg: if atak_npc.max_hlt-atak_npc.hlt > oWojownik.dmg2 {damaged=oWojownik.dmg2;} else {damaged=atak_npc.max_hlt-atak_npc.hlt;} A później zmienna jest oczywiście wysyłana jako tekst i idzie w górę :) A później znika..
Powell Opublikowano 21 Sierpnia 2008 Opublikowano 21 Sierpnia 2008 chyba wiem o co ci chodzi, przykładowy kod if obrazenia>hp_gracza then obrazenia=hp_gracza teraz nie powinno udezac wiecej niz gracz ma hp nie jestem pewien ale chyba o to ci chodziło?
Paqoo Opublikowano 21 Sierpnia 2008 Autor Opublikowano 21 Sierpnia 2008 Tak o to chodziło. Ale jak to wbudować w kod? Dodatkowo źle oblicza obrażenia.. W tym tkwi cały problem!
Powell Opublikowano 22 Sierpnia 2008 Opublikowano 22 Sierpnia 2008 Tak o to chodziło. Ale jak to wbudować w kod? Dodatkowo źle oblicza obrażenia.. W tym tkwi cały problem! walnij to w step gracza, czekając na odpowiedź już byś dawno do tego doszedł
Paqoo Opublikowano 22 Sierpnia 2008 Autor Opublikowano 22 Sierpnia 2008 Hmm.. Rzeczywiście nie pomyślałem nad takim banalnym rozwiązaniem.. Dzięki! A co z tymi błędami obliczania obrażeń? Wyskakują kosmiczne liczby!
Matthew Opublikowano 22 Sierpnia 2008 Opublikowano 22 Sierpnia 2008 Ale bazgrolisz... XD Rób odstępy między wyrazami (za wyjątkiem nazw stałych, funkcji, sprite'ów itp.). Nowe linie też są bardziej czytelne (masz tam dwa razy instance create w jednej linii, to też jest nieczytelne). Przeanalizowałem kod. Wydaje się, że wina leży w drawie, w obiekcie wyświetlającym obrażenia lub w obronie gracza/przeciwnika. Pokaż któreś z tych.
Paqoo Opublikowano 22 Sierpnia 2008 Autor Opublikowano 22 Sierpnia 2008 To jest właśnie enemy dmg! Później jest wyświetlanie wyniku damaged jako tekst(liczba). Player_dmg wyświetla kod z POTWORA. Jest to alarm na walkę. System działa ok - zamykam.
Rekomendowane odpowiedzi