Opublikowano 26 Sierpnia 20231 r Cześć,👋 Podczas analizy funkcji "Damage" natrafiłem na kilka problemów związanych z umiejętnością 'Strach'. Po dokładnym przyjrzeniu się sytuacji odkryłem następujące kwestie: Okazało się, że prawdopodobieństwo aktywacji efektu "Strach" było znacznie niższe niż przewidywano, co było wynikiem błędnych obliczeń. To nie zgadzało się z opisem umiejętności. Brakowało funkcji blokującej obrażenia w przypadku aktywacji "Strachu", a zmienna "pct" była używana w różnych obliczeniach, co mogło prowadzić do nieprawidłowości. W zaktualizowanej wersji kodu, kiedy postać jest pod wpływem efektu 'Strach', mechanika blokowania obrażeń została zaktualizowana. Teraz, na podstawie mocy umiejętności 'Strach', obliczane jest prawdopodobieństwo zablokowania ataku. Jeśli wylosowana wartość mieści się w obliczonym zakresie (mniejsza lub równa wartości 'terrorEffectProbability'), funkcja 'SendDamagePacket' jest wywoływana z flagą 'DAMAGE_BLOCK'. To skutkuje zablokowaniem ataku, który jest następnie zwracany jako 'miss'. Dodatkowo, zmieniłem kolejność sprawdzania warunków. Teraz kod najpierw sprawdza, czy postać ma aktywny efekt "Strach", a dopiero potem analizuje typ obrażeń. Dzięki temu, jeśli postać nie jest pod wpływem "Strachu", nie ma potrzeby sprawdzania typu obrażeń, co może przyspieszyć działanie kodu. Prezentacja działania: Rozwiązanie: 📁 Lokalizacja pliku: 'game -> char_battle.cpp' 🔍 Szukamy: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🚫 Usuwamy powyższy blok kodu i przenosimy go do innego pliku. 📁 Lokalizacja pliku: 'game -> char.h' 🔍 Szukamy: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ➕ Dodajemy: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Wracamy do pliku: char_battle.cpp funkcja ::DAMAGE szukamy kodu odpowiadającego za działanie Strachu: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔄 Zamień: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.