Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
»
#1
Cześć Bilou! Świetna praca nad wątkiem wydania! Nadchodzę i próbuję odtworzyć ten sam system, i udało mi się dotrzeć tam, ale znalazłem coś dziwnego, próbowałem to zrobić sam, ale w końcu się zamknąłem i pomyślałem, że rzucę nad wiadomością zobacz czy trafiłeś coś podobnego?   Używałem contentexample z demo sieci do testowania nierzeczywistego i udało mi się uzyskać stabilną pętlę, łącząc pakiety w pęczki, tworząc kanały, aktorów, uzyskując netguids + nazwy itp. Wszystko działa świetnie.   Ale próbuję tego z ograniczonymi pakietami PUBG i wygląda na to, że otrzymywane pakiety są zupełnie inne. Bajki są w jakiś sposób inne, więc nigdy nie powiem, że ładunek BunchDataBits z początkowych zmiennych pęczkowych, bReliable, bControl itp. Wydaje się również trochę podejrzany i wydaje mi się, że mam 20 takich zestawów w porównaniu do mojego przykładu.   Nie mogę tego rozgryźć. Wygląda też na to, że pakiety są na ogół dużo mniejsze niż te, przez które przechodziłem przez mój nierzeczywisty projekt testowy.   Czy coś, co zauważyłeś, różni się od tego, co rzuci Ci strumień bitów, o którym wiesz? Wielkie dzięki za wszystkie posty na ten temat, było to niezwykle przydatne!   Seb
Reply
#2
Możesz również wysłać mu prywatną wiadomość, aby upewnić się, że czyta Twój wpis. Inaczej mówiąc o nim przy użyciu @ i jego pseudonimu w ten sposób: @ bilou dostarczy mu powiadomienie prowadzące do tego posta.
Reply
#3
Dzięki! Próbowałem tego najpierw, ale nie mam tu wystarczająco dużo wpisów, aby wysłać bezpośrednie wiadomości Gdy dostanę się do czterech! @ Bilou jeszcze raz dziękuję za wszystkie informacje w wątku, każda pomoc, jaką mógłbyś zaoferować, byłaby bardzo cenna! Powinienem dodać jeszcze kilka szczegółów (przepraszam, że nie mogę edytować postów jako nowy użytkownik) 1) Próbowałem nierealistycznie budować przesyłkę, a jedyną różnicą, która powinna wpłynąć na pakiety, które widziałem, jest ich dodatkowe zapakowanie w pakiety na czas serwera, który jest uwzględniany. 2) Po pewnym poklepaniu wydaje mi się, że mam teraz rozsądny BitReading z tego, co widzę z ładunków po ustawieniu zmiennych pęczków, jednak wydaje mi się, że NIGDY nie dostaję pojedynczego pakietu poza pierwszym pakietem kontrolnym, który ma bOpen, więc nigdy nie mogę odrodzić się dowolni aktorzy w moim kodzie. Nigdy też nie widzę pojedynczego bPartiala. To trochę dziwne. 3) Ja też nigdy nie otrzymuję pojedynczego pakietu z zestawem bHasPackageMapExports. Choć to dziwne, bo takie rzeczy, jak kanał, niezawodne, typ kanału itp., Wszystkie wydają się poprawne, więc jest mylące, jak może to być jakiś problem ze strumieniem bitów.
Reply
#4
Czy jesteś pewien, że otwierasz kanał kontrolny? Jeśli go nie otworzysz, nie otworzysz żadnych innych kanałów.
Reply
#5
EDYTOWAĆ: JESTEM TAKIM MORONEM JEST RYTANULUJĄCY Przez cały ten czas nie zdawałem sobie sprawy z połączenia się z żywym PUBGiem w celu przechwytywania, że przechwytywałem tylko wychodzące dane. Jestem głupcem - przepraszam za wątek, który jest dla mnie głupi. @Sisinn - dzięki za pomoc. (prawie w stanie po południu) W tej chwili czekam, aż Unreal wykona pełną rekompilację, aby móc ponownie przejść przez to. Zarządzam przechowywanie wszystkich identyfikatorów NetGUID, powinien to być przypadek wyodrębnienia ruchu CharComp, ale wciąż otrzymuję złe strumienie bitów w bitach, podejrzewam, że winowajca to takie rzeczy jak: OnActorChannelOpen Ciekawi mnie, jak innym ludziom udało się wypracować rozmiary bitowe różnych konkretnych rzeczy PUBG. Twoje zdrowie!
Reply
#6
Zacząłem dziś zaglądać w to. Niestety nie mogę skompilować sdk na Linuksie z powodu braku miejsca na dysku. Wygląda na to, że czytam za dużo lub za mało bitów, gdy próbuję odczytać pierwszy pakiet FString, zanim ten pierwszy nadejdzie ...
Reply
#7
Ciężko jest zacząć - robię to w C #, więc musiałem pisać wszystko mniej więcej (dobrze skopiować -> wkleić i ciężko edytować, aby pozbyć się c ++ isms) - Nie przeszkadza ci, że mówię " d borykałem się, nie mogąc debugować sdk ... (i tak i tak walczyłem) Gdzie jesteś z tym? Nie jestem skończony, ale prawdopodobnie mogę zaoferować porady dotyczące ruchów otwierających.
Reply
#8
Zasadniczo jestem w punkcie, w którym nazywa się UActorChannel :: ReceivedRawBunch, ale najwyraźniej wtedy próbuje przejść do ReceiveNetGUIDBunch i odczytać FStrings, których po prostu nie ma (również 1 miliard + znaków). Sądzę więc, że mam gdzieś jakiś błąd. Niestety, ponieważ nie mogę debugować z faktycznym źródłem, które daje dane wejściowe z niektórych nagranych meczów, nużące jest znalezienie błędu. Wiem tylko, że mój błąd jest najprawdopodobniej w funkcji DataChannel :: ReceivedRawBunch, ale nie potrafię tego teraz dokładnie określić. Dodatkowym problemem, z którym prawdopodobnie borykam się jest to, że nie używam C ++, ale nie powinno to być zbyt złe.
Reply
#9
Przykro mi, koledzy, próbuję również przez tydzień, aby uzyskać co najmniej wskazówkę, jak to wszystko działa, jestem w stanie złapać pakiety, ale naprawdę nie mam tego typu kodowania i nigdy nie pracowałem naprawdę z rzeczami związanymi z siecią, czy ktoś może dać podpowiedź, co powinienem przeczytać, aby zrozumieć, jak dekodować zawartość paczki Czytałem wszystkie posty bilousowe i próbowałem przejść przez kod źródłowy, ale być może jestem po prostu głupi, aby zrozumieć, w jaki sposób pakiety są kodowane, pewna pomoc byłaby naprawdę doceniana z mojej strony . (tak jak zasób do odczytu lub coś, czego nie chcę, aby ktoś wykonał dla mnie pracę)
Reply
#10
Cóż, to po prostu podążanie za kodem, poczynając od połączenia z ActorChannel, analizując dane. Niestety nie ma dokumentacji na temat tego, jak protokół jest faktycznie zbudowany, więc musisz przejść przez kod, aby przeczytać o nim i mieć nadzieję, że niczego nie przegapisz. Zacytować: Napisał SuperNovaAO Zasadniczo jestem w punkcie, w którym nazywa się UActorChannel :: ReceivedRawBunch, ale najwyraźniej wtedy próbuje przejść do ReceiveNetGUIDBunch i odczytać FStrings, których po prostu nie ma (również 1 miliard + znaków). Sądzę więc, że mam gdzieś jakiś błąd. https://github.com/EpicGames/UnrealE...lient.cpp#L715 Okazuje się, że moje Visual Studio wysłało mnie do niewłaściwego pliku dla implementacji i zrobiłem odczyt uint32 tam zamiast serializeIntPacked, skutecznie pomijając wiele danych. Również tak, Visual Studio, znalazłem komputer z zainstalowanym systemem Windows z wystarczająco dużym dyskiem twardym, aby uruchomić teraz pakiet SDK.
Reply




Users browsing this thread: 1 Guest(s)