Opublikowano 28 Września 20232 l 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 Tylko zalogowani Zaloguj się, aby wyświetlić chronioną treść Ten post zawiera treści dostępne tylko dla członków. Zaloguj się lub utwórz konto, aby odblokować całą zawartość tego posta. Zaloguj się Utwórz konto ♻️ Zamień: 🗒️Podgląd implementacji: Spoiler 🔍 Szukaj ➕ Dodaj: 📁 Lokalizacja pliku: 'share -> locale -> poland -> locale_string.txt' ➕ Dodaj:
Opublikowano 8 Września 20241 r popraw w tym HTMLKod został skopiowany"PC_CHANGE_CHARACTER_NAME_SUCCES_INFO";"Sukces zmiany nazwy. Za chwilę zostaniesz wylogowany w celu zastosowania zmian.". na to : HTMLKod został skopiowany"PC_CHANGE_CHARACTER_NAME_SUCCES_INFO";"Sukces zmiany nazwy. Za chwilę zostaniesz wylogowany w celu zastosowania zmian."
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto