Problemy z overflowed
SeeK
31.03.2014
Przeczytałem w necie chyba wszystkie możliwe tematy dotyczące błędy reliable chanel overflowed i wszędzie ludzie piszą iż jest to wina wysyłania do graczy zbyt wielu wiadomości, aczkolwiek gdy na serwerze wyłączę praktycznie wszystkie możliwe pluginy, to błąd ten dalej występuje.
No i teraz mam kilka pytań:
- Czy ten błąd może być uwarunkowany hostingiem? To znaczy, że na jednym hostingu przy takiej samej konfiguracji serwera ten błąd będzie występował, a na innym hostingu już nie?
- Czy błąd ten może być powiązany z zbyt dużymi prędkościami z jakimi się gracze poruszają? Problem ten występuje na serwerze DeathRun i nierzadko ludzie tam popierniczają z prędkościami grubo przekraczającymi 1000 unit/sec
- Czy wersja binarek ma wpływ na występowanie tego błędu?
- Czy pluginy bunnyhop ( trzymając spację cały czas skaczemy ), stuck ( sprawdza czy dwaj gracze się w sobie nie zablokowali ), semiclip ( przenikanie się graczy ) albo hud_customizer ( skonfigurowany tak, że wyłącza graczowi wszystko na hud poza amunicją i celownikiem ) mogą powodować ten błąd? Gdy je wyłączyłem, to błąd dalej występował, ale może jeszcze jakiś inny plugin to powoduje.
- Czy są jakieś nieoptymalne ustawienia serwera ( rate, interp itp. ) które mogły by ten błąd nasilać? Lub czy gracze mogą mieć ustawione te wartości w jakiś nieoptymalny sposób i dlatego ten błąd występuje?
- Czy jakiekolwiek ustawienia serwera mogą mieć wpływ na częstotliwości występowania tego błędu?
Przykładowy wycinek z konsoli
Lista pluginów
Edited by SeeK, 31.03.2014 14:48.
Ogen Dogen
31.03.2014
Moim zdaniem sam fakt że masz 2 silniki tak dużych modów może wpływać w dużym stopniu na ten błąd.
Czy pluginy bunnyhop ( trzymając spację cały czas skaczemy ), stuck ( sprawdza czy dwaj gracze się w sobie nie zablokowali ), semiclip ( przenikanie się graczy ) albo hud_customizer ( skonfigurowany tak, że wyłącza graczowi wszystko na hud poza amunicją i celownikiem ) mogą powodować ten błąd? Gdy je wyłączyłem, to błąd dalej występował, ale może jeszcze jakiś inny plugin to powoduje.
Próbowałeś z tym pluginem ?
bestspeed_edition_v2.amxx ; wyswietla info o speedzie
Aemiksowy
31.03.2014
Jest to prawdopodobnie związane albo z nowym HLDS, nowym amxmodx albo dproto. Sam dokładniej tego nie zweryfikowałem, ponieważ nie mam tak naprawdę możliwości, aby coś takiego zrobić. Masz całkowitą rację SeeK w tym i tu Cię poprę, bo mam taki sam problem.
AD 2. Nie.
AD 3. Niewykluczone. Na starym HLDS nie było żadnego problemu, po wgraniu nowego HLDS bez przerwy wyskakuje overflowed. Udało mi się ustalić, że występuje na MARTWYCH graczach, co jest dla mnie trochę dziwne, nawet bardzo.
AD 4. Myślę, że to ma najmniejszy wpływ na taki stan rzeczy.
AD 5. i AD 6. Jak wspomniałem wyżej, 3 czynniki mogą powodować ten błąd. Znaczy ja to rozumiem w ten sposób. Być może stosujemy coś źle przy wyświetlaniu wiadomości do graczy bądź wysyłaniu różnych komend, a w amxmodx nie wyrzuca absolutnie żadnego błędu na ten temat. Pokazał to chociażby HubertTM w temacie o JailBreaku, że drobna pierdoła, a potrafiła coś zepsuć na nowym HLDS, gdzie na starym problemu nie było...
Sprawa jest zagadkowa i do rozwiązania.
Edited by Aemiksowy, 31.03.2014 18:36.
SeeK
31.03.2014
Próbowałeś z tym pluginem ?
bestspeed_edition_v2.amxx ; wyswietla info o speedzie
Także próbowałem. Również wywalało błędy.
Aemiksowy, dokładnie takiej odpowiedzi oczekiwałem, konkretnej i inteligentnej Jednakże nie odpowiada ona na wszystkie pytania, dlatego też oczekuje z niecierpliwością na wypowiedzi kolejnych amxx masterów
Aemiksowy
31.03.2014
Ja mogę dodać, że ograniczyłem wyświetlanie wiadomości na hudzie (wywaliłem dhud), pewne efekty też wyrzuciłem, zainstalowałem plugin na ukrywanie cvarów (może to do końca nie jest związane z overflowed) i nic nie pomogło ani nic się nie ograniczyło.
GwynBleidD
01.04.2014
Ogólnie rzecz biorąc wszelkie informacje wyświetlane na HUD i nie tylko są wysyłane na 2 sposoby - przez kanał reliable i unreliable. Różnią się one tym, że jeśli gracz dostanie zbyt dużo informacji typu reliable w danym momencie, wywali go z serwera. Jeśli dostanie zbyt dużo unreliable, po prostu zignoruje te nadmiarowe i będzie grał dalej.
Co może być przyczyną?
1. Prędkościomierz - odświeżany jest on wiele razy w krótkim czasie, a domyślnie wszystko w HUD jest wysyłane przez reliable. Należy go przerzucić na unreliable, znajdziesz gdzieś w internecie na pewno jakąś metodę na to.
2. DHUD - również domyślnie używa reliable, można go przerzucić na unreliable.
3. Wszelkie statystyki i informacje wyświetlane w HUD, które się często odświeżają: może to być info o expie i nie tylko. Jeśli musi być pokazywane, zmniejszyć częstotliwość odświeżania i przerzucić na kanał unreliable, jeśli nie musi być wyświetlane - usunąć.
4. Informacje w konsoli - jeśli masz dużo map na serwerze, wywalić gracza może samo wpisanie komendy listmaps, bo ilość informacji którą w konsoli mu zwróci w ciągu ułamka sekundy będzie ogromna. To może być właśnie wywalanie tylko martwych graczy, bo jak ktoś jest żywy to raczej nie będzie sprawdzał jakie mapy są na serwerze.
Jak chcesz stworzyć dobry serwer tego typu to jest kilka podstawowych kwestii: po pierwsze, dobre rozplanowanie HUD, pamiętaj, że masz tylko 4 kanały HUD, więc wiadomości umieść tak, żeby wszystko się zmieściło. Zostaw jakieś kanały na statystyki BJ jeśli używasz takiego pluginu. Na swoim serwerze KZ który prowadziłem miałem to dokładnie rozplanowane, jeden kanał na info o wykorzystanych checkpointach, najlepszy czas na mapie, najlepszy własny czas, bieżący czas przejścia i tym podobne. Wrzucone to było na samej górze na środku. 2 kanał przeznaczyłem na prędkościomierz, oczywiście przerzucony na unreliable. Trzeci i czwarty zostawiłem na statystyki BH/LJ itp (uq_jumpstats). I wszystko się ładnie na ekranie mieściło, nic nie migało.
Masz do dyspozycji jeszcze DHUD, gdzie jest nieograniczona ilość wiadomości (w teorii), ale nie możesz wyświetlonej wiadomości usunąć czy modyfikować, więc nie nadaje się to na odświeżające się statystyki (licznik prędkości, czas przejścia itp). Ale nadaje się super na amx_say adminów, więc dobrze jest go w DHUD przerzucić. Pamiętać tylko trzeba, że czcionka jest większa.
Po dobrym rozplanowaniu tego w każdym z pluginów i zadbaniu, żeby nie zapychało graczom konsoli, czatu i innych środków komunikacji (również odświeżanie czasu mapy,gotówki, naboi, message o śmierci, tutor i wiele innych) nie ma prawa Ci wyrzucać graczy z reliable channel overflowed.