Learn · modules
Czym jest przebijanie w Minecraft? Wyjaśnienie uderzania przez ściany
Przebijanie pomija sprawdzanie linii wzroku, pozwalając na trafienia przez ściany. Oto jak to działa i dlaczego serwery prawie zawsze to wykrywają.
Czym jest Przebijanie?
Przebijanie to moduł bojowy, który pozwala atakowi trafić nawet wtedy, gdy solidny blok znajduje się bezpośrednio między atakującym a celem. Normalna walka w Minecrafcie najpierw wykonuje sprawdzenie: gra rysuje linię od ciebie do tego, w co uderzasz, a jeśli ta linia trafi w teren zanim dotrze do celu, atak nie zostanie zarejestrowany. Przebijanie pomija to sprawdzenie. Żadna zasieka, ściana, płyta kamienna – to już nie ma znaczenia. Sprawdzenie albo przejdzie, albo nie, a Przebijanie po prostu usuwa to wymaganie, co jest dokładnie tym, co sprawia, że jest to jedna z łatwiejszych rzeczy do wykrycia przez serwer.
Jak to działa
Standardowy Minecraft wykonuje raycast zanim pozwoli na trafienie. Gra rysuje prostą linię od atakującego gracza do celu i zatrzymuje się na pierwszym solidnym bloku, który ta linia dotknie. Jeśli ten blok jest bliżej celu, atak mija, kropka. To pojedyncze sprawdzenie jest powodem, dla którego zwykle wystarczy ściana, zamknięte drzwi, a nawet słupek ogrodzeniowy, aby zamach nie zdziałał nic.
Przebijanie usuwa lub omija promień raycasta, dzięki czemu atak przechodzi jakby bloku tam nie było. Usunięcie nie zawsze jest całkowite. Niektóre implementacje zachowują kolizję bloku podczas ruchu, ale rezygnują z niej specjalnie podczas walki, a niektóre ograniczają sprawdzanie przeszkód tylko do postaci, a nie terenu – węższa wersja tej samej idei. Efekt końcowy we wszystkich przypadkach jest jednak taki sam: coś stałego znajdowało się między dwoma graczami, a atak i tak trafił
Przecięcie vs. Zasięg
Warto to oddzielić od zasięgu. Zasięg określa, jak daleko może dotrzeć atak. Przebijanie nie ma nic wspólnego z odległością, chodzi o to, co znajduje się na linii między dwoma punktami, a nie o długość tej linii. Gracz może mieć całkowicie zwykły zasięg i jednocześnie używać Przebijania, a oba te efekty pojawiają się razem wystarczająco często, że ludzie je mylą.
| Przebijanie | Zasięg | |
|---|---|---|
| Co zmienia | Wymóg linii widzenia | Limit zasięgu ataku |
| Działa przez | Ściany między graczami | Otwartą przestrzeń w każdym zasięgu |
| Wykrywanie | Sprawdzanie promienia przez serwer | Zasięg ataku w stosunku do pozycji |
Dlaczego serwery to łapią
Krótko mówiąc: sprawdzanie jest geometryczne i niepodważalne. W momencie uderzenia serwer może wykonać własny raycast między rzeczywistymi pozycjami dwóch graczy. Jeśli na tej drodze znajduje się solidny teren, nie ma żadnego uzasadnienia dla tego, aby uderzenie w ogóle wylądowało. W przeciwieństwie do wygładzania zasięgu lub rotacji, gdzie serwer musi uwzględnić opóźnienia i normalną ludzką niedoskonałość, ściana albo tam była, albo jej nie było. To pozostawia bardzo mało miejsca na fałszywe pozytywy, co również oznacza bardzo mało miejsca dla gracza, żeby się wymigać.
FAQ
Pozwala ataku trafić w cel, nawet jeśli między tobą a nim znajduje się blok, taki jak ściana lub płot. Zwykłe bloki Minecrafta, które uderzają bezpośrednio.
Nie. Zasięg określa, jak daleko może się rozciągnąć atak. Przebijanie ignoruje wszystko, co fizycznie zasłania drogę. Rozwiązują różne problemy, choć często są używane razem.
Ponieważ serwer w momencie trafienia może samodzielnie sprawdzić widoczność między dwoma graczami, a solidna przeszkoda na tej trasie to coś, na co klient nie może wpłynąć.
Zależy od implementacji, ale atak wychodzi dokładnie tak samo jak legalny atak. Kłamstwo tkwi w sprawdzeniu uprawnień, a nie w formacie pakietu. Serwer weryfikuje, co powinno się wydarzyć, napotyka przeszkodę i wie, że coś poszło nie tak.