Skocz do zawartości
Opublikowano

 

bugfix.webp.0a739ad15af71c44f5367650b6c9e164.webp

 

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ść 🔐

 

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐

 

 🗒️Podgląd implementacji:

Spoiler

image.png.fecd5d0f3e6045de7837a13ddd6e1603.png

 

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ść 🔐

 

♻️ Zamień:

🔐 Ukryta Treść 🔐

 

 🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

  🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐

 

   🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 ♻️ Zamień

🔐 Ukryta Treść 🔐

 

 🗒️Finalna wersja:

🔐 Ukryta Treść 🔐

Featured Replies

Opublikowano

+++++

  • 2 tygodnie później...
Opublikowano

Dziękuje 

  • 2 tygodnie później...
Opublikowano

Ten bug od dawna mnie irytował, ale twój kod to zmienił, wielkie dzięki.

 

Opublikowano

Dzieląc się tym kodem, sprawiłeś, że gra jest o niebo lepsza. Dzięki!

 

  • 2 tygodnie później...
Opublikowano

mmm

Opublikowano

Babciu to jest zaje&iste!

Opublikowano

Dziękuje

  • 2 tygodnie później...
Opublikowano

dzięki

Opublikowano

Dziękuję za udostępnienie poprawki. Bardzo mi pomogła. 🔥👌

 

  • 1 miesiąc temu...
Opublikowano

dzięki

  • 3 miesiące temu...
Opublikowano

thx

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

Gość
Dodaj odpowiedź do tematu...