Opublikowano 28 Września 20231 r Cześć, Problem dotyczy funkcji 'pc_change_name', która zawiera błąd, pozwalający na duplikację przedmiotów. Oznacza to, że gracze mogą wykorzystać ten błąd do nielegalnego kopiowania przedmiotów w grze, co może zaburzyć równowagę gry i spowodować różne inne problemy. Dodatkowo, funkcja ta miała wiele błędów związanych z bezpieczeństwem. Poniżej przedstawiam poprawioną wersję funkcji. Informacje: Zaktualizowałem nazwy zmiennych na bardziej opisowe dla lepszej czytelności kodu. Zamieniłem przestarzałą funkcję sprintf na nowoczesną i dużo wydajniejszą fmt::format do formatowania zapytań SQL. Dodałem więcej obsługi błędów poprzez sys_err, aby łatwiej diagnozować problemy w przypadku błędów. Usunąłem operację flush cache zamiast tego zapisujemy stan obiektu currentCharacter używając metody Save. Ustawiłem SetExchangeTime na obiekcie currentCharacter po wywołaniu Save. Użyłem std::stoi do konwersji łańcucha znaków na liczbę zamiast używania str_to_number. Dodałem sprawdzanie, czy currentCharacter nie jest null pointerem, aby unikać błędów czasu wykonania. Uwaga: Wymagana biblioteka libfmt oraz standardu C++20 Wdrożenie libfmt Implementacja: 📁 Lokalizacja pliku: 'game -> questlua_pc.cpp' 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ♻️ Zamień: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🗒️Podgląd implementacji: Spoiler 🔍 Szukaj 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się ➕ Dodaj: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 📁 Lokalizacja pliku: 'share -> locale -> poland -> locale_string.txt' ➕ Dodaj: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się
Opublikowano 8 Września 20248 Wrz popraw w tym "PC_CHANGE_CHARACTER_NAME_SUCCES_INFO"; "Sukces zmiany nazwy. Za chwilę zostaniesz wylogowany w celu zastosowania zmian.". na to : "PC_CHANGE_CHARACTER_NAME_SUCCES_INFO"; "Sukces zmiany nazwy. Za chwilę zostaniesz wylogowany w celu zastosowania zmian."
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ą.