Opublikowano 22 Października 20231 r Cześć, Ostatnio pracowałem nad naprawą funkcji przeładowania questów, która była przyczyną awarii serwera i natknąłem się na kolejny poważny problem. W funkcji 'CQuestManager::Reload' brakuje kodu do wyczyszczenia timerów serwerowych. To zaniedbanie może prowadzić do wycieków pamięci i różnych niezdefiniowanych zachowań. Implementacja: 📁 Lokalizacja pliku: 'game -> questmanager.cpp' 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ➕ Dodaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🗒️Podgląd implementacji: Spoiler Refaktoryzacja: Wprowadzone zmiany w finalnej wersji funkcji CQuestManager::Reload() : Wprowadziłem sprawdzenie poprawności inicjalizacji. Jeżeli inicjalizacja nie powiedzie się, funkcja zwróci komunikat o błędzie, co pozwala na lepszą kontrolę nad procesem ładowania. Aby zapobiec potencjalnym wyciekom pamięci, dodałem procedurę czyszczenia timerów serwerowych. Ulepszyłem sposób iteracji przez m_registeredNPCVnum, korzystając z nowszego, bardziej czytelnego standardu - range-based for loop. Zrezygnowałem z przestarzałej funkcji snprintf na korzyść konwersji liczb na ciągi znaków za pomocą std::to_string. Jest to bardziej efektywny i zwięzły sposób konwersji. Poprawiłem przypisanie wskaźnika L z NULL na bardziej nowoczesne i zalecane nullptr. 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ➕ Dodaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🗒️Finalna wersja: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się
Opublikowano 14 Listopada 20231 r Ten bug od dawna mnie irytował, ale twój kod to zmienił, wielkie dzięki.
Opublikowano 14 Listopada 20231 r Dzieląc się tym kodem, sprawiłeś, że gra jest o niebo lepsza. Dzięki!
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ą.