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 🚀🔧
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.
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_RECOVERYjest 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'.
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:
🔍 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'.