Skocz do zawartości

Naprawa krytycznego błędu w funkcji 'MoveItem', zapobiegając duplikacji przedmiotów

Opublikowano

bugfix.webp.0a739ad15af71c44f5367650b6c9e164.webp

 

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

image.gif.9a85c461421d3ea8c2b82f5286a6bc35.gif

 

Implementacja:

📁 Lokalizacja pliku: 'common -> length.h'

 

 🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐

 

 🗒️Podgląd implementacji:

🔐 Ukryta Treść 🔐

 

📁 Lokalizacja pliku: 'game -> char_item.cpp'

 

 🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐

 

 

 📁 Lokalizacja pliku: 'game -> safebox.cpp'

 

 🔍 Szukaj

🔐 Ukryta Treść 🔐

 

  Dodaj

🔐 Ukryta Treść 🔐

 

Featured Replies

Opublikowano

ciekawie, ten skrypt udostępnisz moze? 😄

Opublikowano

dobra robota !

Opublikowano

Mega robota ! jestem wdzięczny za udostępnienie tego 🙂

  • 2 tygodnie później...
Opublikowano

+

  • 2 tygodnie później...
Opublikowano

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

 

  • 3 tygodnie później...
Opublikowano

Dziękuje za rozwiązanie

  • 1 miesiąc temu...
Opublikowano

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

 

  • 3 miesiące temu...
Opublikowano

dzięki wariacie

Opublikowano

diakuju 😄

Opublikowano
  • Autor

Temat został zaktualizowany o walidację również w magazynie. 

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