Arithael1991 napisał
Rozumiem, że po zrobieniu skosa jest delay na kolejny krok, ale jednak od razu przy pushnieciu po skosie mozna wykonac 1 ruch np w lewo i postac od razu wykonuje ruch ( nie ma opoznienia) ale nie 2 to jest ciekawe :)
Jest opóźnienie, tylko że u ciebie go nie widać. Dlatego napisałem, że to jest złudzenie, gracze obserwujący z boku widzą to normalnie.
Chodzenie w tibii jest oparte na tzw. pre-walku. Chodzi o to, że kiedy wciskasz strzałkę, to client 'dopiero' wysyła pakiet 'walk' do serwera, więc technicznie wciąż jesteś na starej kratce, ale w tym momencie już widzisz jak twój char idzie. To jest ten pre-walk i można go zrobić na maksymalnie 1 krok, klient nie pozwoli na kolejny krok, dopóki nie dostanie potwierdzenia, że poprzedni się udał.
To jest dlatego, że gdyby client miał przed tym 1 krokiem czekać - tzn. wysłać pakiet walk, dostać odpowiedź i dopiero przesunąć chara, to chodzenie nie byłoby płynne. Przy każdym kroku miałbyś tę pauzę na tyle, ile wynosi twój ping. Dlatego client robi tak jakby 1 krok do przodu, zanim zostanie on zarejestrowany na serwerze. I jeżeli potem dostanie odpowiedź potwierdzającą, zanim postać skończy ruch, to pozwoli na kolejny krok. A jak dostanie negatywną, to cofnie chara. Dzięki temu chodzenie jest płynne. I dlatego też jeżeli czas potrzebny na przejście z kratki na kratkę jest dłuższy niż twój ping, to chodzisz bezlagowo, w przeciwnym razie cię przycina.
W opisanej sytuacji, gdy się pushujesz, to omijasz ten mechanizm blokujący pre-walka, bo client nie wie o delayu za skosa (inaczej niż gdybyś wykonał go przez zwykły 'walk'). Ale serwer nie daje się oszukać, wysyła zwrotne info, że ten krok był niemożliwy i client wtedy koryguje do właściwej pozycji.
Zakładki