Podstawowe Obrażenia
Aktualny czas: 28-04-26, 17:08 Witaj! Przejdź do zakładki Logowanie lub Rejestracja


Wątek zamknięty 
[XP] Podstawowe Obrażenia
Yoroiookami Offline
*


Liczba postów: 985
Dołączył: 01-05-13

Pomógł: 137



Post: #1
pytajnik Podstawowe Obrażenia

Próbowałem ustawić sobie obrażenia zadawanych ataków w Game_Battler 3.

I to jest zdaję się ten fragment:
atk = [attacker.atk - self.pdef / 2, 0].max
self.damage = atk + (20 * attacker.str) / 20

Co właściwie robi to "0"? :co:
I co właściwie robi self.damage? Po co ono jest? :ehe:

Chciałbym, żeby obrażenia były zliczane bardziej w stylu:
STR Gracza + ATK Gracza - PDEF Przeciwnika

Więc ustawiłem:
atk = [attacker.str + attacker.atk - self.pdef, 0].max

Tylko coś jest chyba nie tak. Nie wiem po co to "0" ani co robi druga linijka kodu. smiles
Za każdą pomoc będę wdzięczny.

[Obrazek: mt4dzY7.png]
[Obrazek: k5KQGOe.png]
24-09-16 20:33
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
AlmostNoRuby Offline
*


Liczba postów: 174
Dołączył: 22-09-16

Pomógł: 33



Post: #2
zarowa RE: Podstawowe Obrażenia

Dobra, spróbuję to wytłumaczyć.
1)
Cytat:I to jest zdaję się ten fragment:
atk = [attacker.atk - self.pdef / 2, 0].max
self.damage = atk + (20 * attacker.str) / 20
Cały def attack_effect jest odpowiedzialny za efekt końcowy obrażeń, bo później obrażenia są sprawdzane pod innym kątem, takim jak: korekta jeżeli obrażenia = 0, czy są jakieś stany (np. zatrucie) które pogłębiają efekt i czy bohater ma tarczę, czy został użyty unik itd.., nie będę wszystkiego opisywał.
2)
Cytat:I co właściwie robi self.damage? Po co ono jest?
self., czyli własny (dokładniej: Game_Battler).
damage, czyli obrażenia (według słownika).
Czyli self.damage raczej odnosi się do obrażeń.
Obrażeń własnych, bo w późniejszych linijkach jest coś takiego:
# Substract damage from HP
      self.hp -= self.damage
Dokładniej, odejmuje od self.hp (zdrowia) self.damage (zadane obrażenia).
3)
Cytat:Nie wiem po co to "0" ani co robi druga linijka kodu. wink
To zero może dotyczyć się, czy statusy są brane pod uwagę (0 - nic się nie dzieje).

Ale co do tego trzeciego, nie jestem pewnien.

Ogółem, w tym fragmencie kodu:
atk = [attacker.atk - self.pdef / 2, 0].max
self.damage = atk + (20 * attacker.str) / 20
najpierw oblicza się atk (atak), a potem obrażenia, żeby nie było że kod wygląda, hm, chaotycznie.

A i jeśli ten tekst jest trochę niespójny, to z góry przepraszam jako najnowszy użytkownik.

[Obrazek: userbar1.png]
(Ten post był ostatnio modyfikowany: 25-09-16 06:57 przez AlmostNoRuby.)
24-09-16 21:37
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a): Yoroiookami
Mateusz SSJ8 Offline
*


Liczba postów: 511
Dołączył: 10-05-13

Pomógł: 40



Post: #3
RE: Podstawowe Obrażenia

atk = [attacker.atk - self.pdef / 2.0, 0].max
Jeśli wynik odejmowania połowy PDEF atakowanego od ATK atakującego wyniesie mniej niż zero, to ATK wykorzystane przez dalsze wykonywanie funkcji wynosi 0.

Nienawidzony i nienawidzący. Przez nienawiść tego drugiego obaj będą martwi.
26-09-16 18:42
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a): Yoroiookami
Yoroiookami Offline
*


Liczba postów: 985
Dołączył: 01-05-13

Pomógł: 137



Post: #4
RE: Podstawowe Obrażenia

(24-09-16 21:37)AlmostNoRuby napisał(a):  Dobra, spróbuję to wytłumaczyć.
1)
Cytat:I to jest zdaję się ten fragment:
atk = [attacker.atk - self.pdef / 2, 0].max
self.damage = atk + (20 * attacker.str) / 20
Cały def attack_effect jest odpowiedzialny za efekt końcowy obrażeń, bo później obrażenia są sprawdzane pod innym kątem, takim jak: korekta jeżeli obrażenia = 0, czy są jakieś stany (np. zatrucie) które pogłębiają efekt i czy bohater ma tarczę, czy został użyty unik itd.., nie będę wszystkiego opisywał.
2)
Cytat:I co właściwie robi self.damage? Po co ono jest?
self., czyli własny (dokładniej: Game_Battler).
damage, czyli obrażenia (według słownika).
Czyli self.damage raczej odnosi się do obrażeń.
Obrażeń własnych, bo w późniejszych linijkach jest coś takiego:
# Substract damage from HP
      self.hp -= self.damage
Dokładniej, odejmuje od self.hp (zdrowia) self.damage (zadane obrażenia).
3)
Cytat:Nie wiem po co to "0" ani co robi druga linijka kodu. wink
To zero może dotyczyć się, czy statusy są brane pod uwagę (0 - nic się nie dzieje).

Ale co do tego trzeciego, nie jestem pewnien.

Ogółem, w tym fragmencie kodu:
atk = [attacker.atk - self.pdef / 2, 0].max
self.damage = atk + (20 * attacker.str) / 20
najpierw oblicza się atk (atak), a potem obrażenia, żeby nie było że kod wygląda, hm, chaotycznie.

A i jeśli ten tekst jest trochę niespójny, to z góry przepraszam jako najnowszy użytkownik.
Większość z tego już wiedziałem z angielskiego, ale dziękuję. :ehe:

Mateusz SSJ8 napisał(a):
atk = [attacker.atk - self.pdef / 2.0, 0].max
Jeśli wynik odejmowania połowy PDEF atakowanego od ATK atakującego wyniesie mniej niż zero, to ATK wykorzystane przez dalsze wykonywanie funkcji wynosi 0.
Wielkie dzięki Mateusz. To był największy problem. smiles

[Obrazek: mt4dzY7.png]
[Obrazek: k5KQGOe.png]
26-09-16 19:25
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
AlmostNoRuby Offline
*


Liczba postów: 174
Dołączył: 22-09-16

Pomógł: 33



Post: #5
RE: Podstawowe Obrażenia

Ja za często nie siedzę w RPGXP, ale staram się jak mogę ;)

[Obrazek: userbar1.png]
27-09-16 16:44
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Wątek zamknięty 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości

Kontakt | Ultima Forum | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS
Powered By MyBB. © 2013 MyBB Group. All Rights Reserved.
Skórka by Ayene.