Dawidds Opublikowano 23 Lutego 2009 Udostępnij Opublikowano 23 Lutego 2009 Nudzi mi się, to chcę se RPG'a jakiegoś zrobić. Jestem świadom, że go pewnie nie skończę - ale to co :D Najwyżej dam jako przykład, bo na razie mam fajoskie inventory xd No ale wróćmy do tematu. W jaki sposób powinienem podliczać atak i obronę au graczy, aby stwierdzić, jakie który zadał któremu obrażenia... Gra w widoku od góry, ruch po kratkach, system ataku al'a Tibia/MiniRPG, czyli zaznaczamy przeciwnika, i jednocześnie zaczynamy z nim walczyć, a co powiedzmy sekundę zadają się obrażenia każdemu z graczy (lub nie zadają). Ale napotkałem na pewien głupi problem, dodam, czysto teorytyczny (raczej nie będę miał problemu z opisaniem tgo w kodzie, ale nie mam ogólnego pomysłu, jak taki system ma działać :P) Przykład: Gracz: Atak: 48 Obrona: 71 Enemy: Atak: 31 Obrona: 26 W czasie walki powinny się pojawiać mniej więcej takie obrażenia: (strata hp potwora/strona hp gracza) 6/2, 4/0, 3/2, 4/1... itepe. I jakoś, jakbym tego nie robił, zawsze wychodzi mi źle - albo zbyt losowe, albo za mało losowe, albo z duże obrażenia, albo za małe... :P Chodzi o coś mniej więcej takiego: obrazenia_enemyego = round(random(atak_playera-obrona_enemyego)); Ale to jest: 1. Zbyt losowe. 2. Wystarczy mieć większa obronę od taku przeciwnika, i już jesteśmy bezpieczni... Tyko proszę, odpowiedz ktoś... :P PS: A, jeszcze do tego pewien udział powinien mieć aktualny level xd... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Crackkk-GM Opublikowano 23 Lutego 2009 Udostępnij Opublikowano 23 Lutego 2009 a może obrazenia_enemyego = ( atak_playera-obrona_enemyego / 2 ) + ( round(random(atak_playera-obrona_enemyego/2 ) ) );? I wtedy nie będzie mniejsze niż połowa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 23 Lutego 2009 Udostępnij Opublikowano 23 Lutego 2009 http://opentibia.svn.sourceforge.net/viewvc/opentibia/ Poszukaj sobie w źródłach OTServ formułkę na obliczania damage. ; D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
David Dark Opublikowano 23 Lutego 2009 Udostępnij Opublikowano 23 Lutego 2009 Nie polecam uzywania jednej startystyki do obliczania i szansy trafienia i ilosci obrazen ale oczywiscie mozna tak zrobic. Polecalbym taki oto system: Gracz ma 50% szansy trafienia potwora wiec robimy zwykle round(random(100)) i jesli wynik jest mniejszy niz 50 to gracz trafil. Teraz mamy statystyki atak i obrona. Atak zwieksza ta liczbe a obrona zmniejsza wiec jesli mamy silniejszy atak niz obrona przeciwnika to mamy wieksza szanse na trafienie. Przy czym zawsze powinnismy zostawic jakas szanse na trafienie atakujacemu nawet jesli przeciwnik ma bardzo wysoka obrone wtedy nie bedzie sytuacji ze przeciwnik jest nie do zdarcia. Przyklad: GML szansa = 50; szansa += moj_atak; szansa -= jego_obrona; // /\ oczywiscie mozna to zrobic w jednym dzialaniu, poprostu napisalem to tak aby bylo bardzo czytelne ^^ if szansa < 10 { szansa = 10} los = round(random(100)) if los <= szansa { //kod obrazen; np. jego_hp -= round(random(moj_atak / 10))+1 //jesli chcemy utrzymac obrazenia przy mniejszych liczbach. +1 aby pozbyc sie zera w obrazeniach. } Ogolnie polecam wlasnie taki sposob na obliczanie szansy na trafienie czy test umiejetnosci. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 23 Lutego 2009 Autor Udostępnij Opublikowano 23 Lutego 2009 Po drobnej modyfikacji działa super :D W każdym razie, dzięki :) 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ę