Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Naprawa błędu w umiejętności Czarowane Ostrze

Featured Replies

Opublikowano

Witajcie Developerzy, 

 

Chciałbym podzielić się z Wami rozwiązaniem w związku z błędem, który dotyczy umiejętności czarowanego ostrza.

 

🐛 Opis błędu: 

Umiejętność "Czarowane Ostrze" w klasie postaci Sura WP, która ma na celu przywracanie punktów życia po zadaniu obrażeń, działała niezgodnie z zamierzeniem, prowadząc do poważnego wpływu na rozgrywkę. Zamiast przywracać punkty życia, błąd w kodzie spowodował, że umiejętność odejmowała je.

 

🛠️👨‍💻 Rozwiązanie wymaga skompilowania źródła z minimalną wersją: C++17 🚀🔧

 

Prezentacja błędu:

 

Przejdźmy zatem do rozwiązania... 💡

 

📂 Lokalizacja pliku: 'game -> char_battle.cpp'

 

🔍 Szukamy:

Tylko zalogowani Zaloguj się, aby wyświetlić chronioną treść Ten post zawiera treści dostępne tylko dla członków. Zaloguj się lub utwórz konto, aby odblokować całą zawartość tego posta. Zaloguj się Utwórz konto

 

🔍 Znajdziemy w kodzie tej funkcji taki warunek: 

Ten fragment kodu sprawdza, czy postać ma bonus do odzyskiwania HP po ataku, i jeśli tak, to z 80% prawdopodobieństwem zwiększa jej punkty życia o pewną ilość, jednocześnie tworząc wizualny efekt w grze.

 

🔄 Zamień na poprawiony:

 

Ten sam problem będzie dotyczył również warunku odpowiadającego za przywracanie punktów energii, naprawmy go w ten sam sposób.

 

🔍 Szukamy:

 

🔄 Zamieniamy warunek:

 

Wyjaśnienie błędu i naprawy:

Błąd w pierwotnym kodzie polegał na tym, że umiejętność Czarowane Ostrze mogła odejmować punkty życia zamiast je przywracać, jeśli wartość POINT_HIT_HP_RECOVERY była ujemna. Naprawiłem to, dodając sprawdzenie, czy wartość POINT_HIT_HP_RECOVERY jest większa od zera, przed obliczeniem odzyskiwanego HP.

 

Dodatkowo, użyłem funkcji std::clamp, aby upewnić się, że wartość POINT_HIT_HP_RECOVERY jest w zakresie od 0 do 100, co gwarantuje, że odzyskiwana ilość HP zawsze będzie dodatnia.

Wprowadzone zmiany zapewniły, że umiejętność zawsze działa zgodnie z zamierzeniem, przywracając HP zamiast je odejmować.

 

Zaktualizowałem też kod, zmieniając nazwy zmiennych na bardziej zrozumiałe takie jak 'recoveryRatio' czy 'spRecoveryAmount'. 

  • 1 miesiąc temu...
  • 1 miesiąc temu...
  • 2 miesiące temu...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.