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

Nieaktywny

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:

🔐 Ukryta Treść 🔐

 

🔍 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.

🔐 Ukryta Treść 🔐

 

🔄 Zamień na poprawiony:

🔐 Ukryta Treść 🔐

 

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

 

🔍 Szukamy:

🔐 Ukryta Treść 🔐

 

🔄 Zamieniamy warunek:

🔐 Ukryta Treść 🔐

 

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.