Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

C++ Target information system overload-fix


Rekomendowane odpowiedzi

Opublikowano

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
Opublikowano

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 ;)

Opublikowano

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

Opublikowano

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

Opublikowano

 

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.

Opublikowano
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

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

  • 2 miesiące temu...
  • 2 tygodnie później...
  • 1 rok później...
  • Aive zmienił(a) tytuł na C++ Target information system overload-fix
Opublikowano
9 godzin temu, NoName#2 napisał:

Z czym mieliśmy ogarnąć?

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

Opublikowano
1 godzinę temu, NoName#2 napisał:

no shit sherlock

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

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...