Skocz do zawartości

C++ Target information system overload-fix

Polecane posty

Autor tematu Napisano (edytowany)

Jak wiecie Target Information System czy. taka jakby Wikipedia Dropu posiada buga przez, którego procesy serwera jedą po zasobach maszyny jak ta lala. 

Tutaj macie rozwiązanie, nie wiem czy było, będę udostępniał od dzisiaj na MPCForum wszystkie fix'y potrzebne do bezpiecznego postawienia serwera na Source ;)

https://paste2.org/W4AWYI3z
Edytowano przez metindev

Udostępnij ten post


Link to postu
Pani Kasia

Autor tematu Napisano (edytowany)

To, że ty nie umiesz przejrzeć kodu,  wyciągnąć wniosków i doprowadzić go do porządku to nie wrzucaj od razu wszystkich innych do jednego worka ;)

Ciężko byłoby w tym przypadku, aby ten fix różnił się czymś od udostępnionych na forach skoro ktoś celowo udostępniając ten system wyrzucił owe linijki ;)

 

P.S Wisi mi to czy było to na takim czy owakim forum. Jeżeli masz z tym problem to nie korzystaj z reszty fixów, które selektywnie będę tutaj wrzucał ;)

P.S2 Wszystko co zostało zrobione moimi rękoma będę podpisywał pod siebie czy Ci się to podoba czy nie. 

P.S3 Przez takich ludzi jak Ty te forum spada na psy, a zxc się śmieje i zaciera rączki ;)

Edytowano przez Aive
nazwa innego forum

Udostępnij ten post


Link to postu
Pani Kasia

To że Ty i reszta tego zdechłego forum jest 100 lat za murzynami nie moja wina ;)

Mam tak bogaty kod o jakim możesz sobie pomarzyć. Wyjebane w Ciebie i w to forum.

Nienawidzę ludzi którzy podpisują coś nie swojego za swoje.

Elo.


Metińczyk z Krew_Ma%C5%82py.jpg i Ko%C5%9B%C4%87_Palca.png

Udostępnij ten post


Link to postu

Ja za to Kocham ludzi, którzy twierdzą czego to oni lepszego nie mają nawet nie wiedząc co posiada właśnie ten, którego temat dotyczy ;)

Odpal serwer, wrzuć prezentację. Z miłą chęcią zobaczę ten twój "bogaty kod o jakim mogę pomarzyć".

Udostępnij ten post


Link to postu

 

Dnia 6.03.2018 o 13:39, metindev napisał:

To, że ty nie umiesz przejrzeć kodu,  wyciągnąć wniosków i doprowadzić go do porządku to nie wrzucaj od razu wszystkich innych do jednego worka ;)

Ciężko byłoby w tym przypadku, aby ten fix różnił się czymś od udostępnionych na forach skoro ktoś celowo udostępniając ten system wyrzucił owe linijki ;)

 

P.S Wisi mi to czy było to na takim czy owakim forum. Jeżeli masz z tym problem to nie korzystaj z reszty fixów, które selektywnie będę tutaj wrzucał ;)

P.S2 Wszystko co zostało zrobione moimi rękoma będę podpisywał pod siebie czy Ci się to podoba czy nie. 

P.S3 Przez takich ludzi jak Ty te forum spada na psy, a zxc się śmieje i zaciera rączki ;)

No raczej wniosków nie wyciągnąłeś.

Z tego co tutaj widzę, to jest fix na to, aby w wyjątkowych okolicznościach game się nie crashowało. (fejkowy target wysłany z klienta) Problem w ogóle polegał na czym innym. Każdy dotknięcie potwora powodowało generowanie na jego temat listy przedmiotów i wysyłanie tego do klienta gry. Później po chwili leciało zapytanie do bazy danych o usunięcie tych przedmiotów. Gdy nagle 100 graczy, zabijało w minutę 1000 potworów, gdzie każdy potwór generował listę 20 przedmiotów, robiła nam się kolejka do bazy 100*1000*20 (ok. 2mln) zapytań od 100 graczy na minutę.

Fixy są dwa, albo to co w nowszej wersji, czyli wysyłanie od gracza potwierdzenia, ze chce te listę wygenerować nowy pakiet net.SendTamKurwaListeItemow co zrobił autor tych plików, tylko to i tak w 100% nie naprawi tego problemu, bo może ktoś napisać bota co będzie skanował mapę i w pętli wysyłał pakiet.

Lub drugi 100% fix to m_bSkipSave.

 

Duże Elo Użytniku.

Udostępnij ten post


Link to postu
Pani Kasia

1 godzinę temu, Endymion napisał:

A z jakiej racji coś takiego potrzebuje wykonywać zapytania do bazy danych bo nie bardzo czaję?

Również jestem ciekaw.

// edit

Wait, wait @Lovable chcesz powiedziesz, że ten system, który jak widzę używacie, podczas tworzenia listy przedmiotów dropiących, tworzy fizyczny obiekt tego przedmitu?XD

Edytowano przez NoName#2

Udostępnij ten post


Link to postu
23 godziny temu, NoName#2 napisał:

Również jestem ciekaw.

// edit

Wait, wait @Lovable chcesz powiedziesz, że ten system, który jak widzę używacie, podczas tworzenia listy przedmiotów dropiących, tworzy fizyczny obiekt tego przedmitu?XD

No tak, skoro autor skopiował 1:1 funkcję od Koreańczyka mhh CreateItem, nazwał ją CreateItemVector i usunął tylko warunki range, czyli 100% drop. Dodatkowo po wykonaniu nie wyrzuca przedmiotu na ziemie za pomocą funkcji AddToGround. Na serwerze tworzy się gigantyczna lista fizycznych obiektów jebiąca po zasobach maszyny (ale to nie jest aż takie jaszcze straszne), którą później serwer wywala poprzez funkcje M2_DESTROY_ITEM. Dodatkowo ta funkcja jest dla wszystkich przedmiotów (np. kliknąłeś ostatnią potkę), dlatego profilaktycznie wysyła pakiet do DB HEADER_GD_ITEM_DESTROY i zaczyna się kolejne piekło, bo jak nie ma skipSave to wali do sql DELETE FROM item...

 

I to się w miarę nazywa sensowna analiza kodu, nigdzie niby nie ma nic o query, a tu takie problemy. Niestety jestem programistą z powołania, stąd tak pierdole. Nazwy funkcji mogą się nie zgadzać i trochę różnić od tego co napisałem, bo nie mam src przy sobie, a pisałem z głowy. Dodatkowo ten problem to analizowałem z ok. 2 lata temu.

Udostępnij ten post


Link to postu
Pani Kasia

9 godzin temu, NoName#2 napisał:

Z czym mieliśmy ogarnąć?

Że ten system niepotrzebnie używa dużych zasobów maszyny 

Udostępnij ten post


Link to postu
1 godzinę temu, NoName#2 napisał:

no shit sherlock

Rok temu jakoś wyzywałeś gościa, który tak uważał xD

Udostępnij ten post


Link to postu
6 godzin temu, #Filip napisał:

Rok temu jakoś wyzywałeś gościa, który tak uważał xD

Doprawdy, w którym miejscu?

Udostępnij ten post


Link to postu

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.


×
Okienko zamknie się za 5 sekund...