Opublikowano 21 Października 20232 l Cześć, Wprowadzenie Istnieje krytyczny błąd w funkcji obsługującej przenoszenie przedmiotów w ekwipunku. W pewnych specyficznych sytuacjach umożliwia on duplikację przedmiotów. Problem pojawia się, gdy gracz rozdziela przedmiot na mniejsze ilości i następnie próbuje umieścić nowo utworzony przedmiot z powrotem na pierwotnym miejscu w ekwipunku. Chociaż przedmiot staje się niewidoczny w interfejsie klienta, w rzeczywistości nadal istnieje w bazie danych. To prowadzi do sytuacji, gdzie po przeniesieniu się na inny kanał lub ponownym zalogowaniu, gracz może sklonować przedmiot. Co więcej, ten błąd może powodować niewielkie wycieki pamięci na serwerze, co stanowi zagrożenie dla jego stabilności. Wykorzystanie tej luki wymaga zaawansowanej wiedzy i odpowiednich narzędzi. Niemniej jednak istnieją pewne systemy, takie jak system zmiany kanałów, które mogą ułatwić graczom wykorzystanie tego błędu. Sposób naprawy Rozwiązanie tego problemu polega na dokładnym sprawdzeniu, czy źródło i docelowe miejsce przedmiotu w funkcji "MoveItem" są takie same. Jest to błąd wymagający natychmiastowej naprawy! Udało mi się znaleźć przedstawienie tego błędu: W tym przypadku został użył użyty specjalny skrypt wykonujący powyżej opisaną akcję. Spoiler Implementacja: 📁 Lokalizacja pliku: 'common -> length.h' 🔍 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 ➕ Dodaj 🗒️Podgląd implementacji: [hide] Spoiler [/hide] 📁 Lokalizacja pliku: 'game -> char_item.cpp' 🔍 Szukaj ➕ Dodaj 📁 Lokalizacja pliku: 'game -> safebox.cpp' 🔍 Szukaj ➕ Dodaj
Opublikowano 12 Listopada 20232 l Ten bug od dawna mnie irytował, ale twój kod to zmienił, wielkie dzięki.
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto