Ale z tego co kojarzę np. w Killzone 2 (yhm, ja + online tylko na konsolach), jak czasem host się zawieszał, to mogłem chodzić, strzelać, przeciwnicy stali w miejscu, ale krew z nich leciała. Jedyne co, to wybuch granata wyzwalany był przez serwer więc wtedy nie wybuchał (swoją drogą w grze był też bug, że czasem jakiś odległy granat nie wybuchł, bo serwer Ci nie przesłał info i potem do końca rozgrywki leżał i pikał....). Nieraz w godzinach szczytu przy słabym hoście miałem też tak, że naparzałem w kolesia 4 magazynki a on nic - czyli w profesjonalnych produkcjach właśnie tak mają zrobione.
Z racji, że wyświetlasz energię gracza nad nim samym, to zauważysz strzelając, ze kurcze coś jest nie tak i energia nie ucieka, więc pewnie lag. Ja bym tego spróbował - można przygotować kod tak, że na serwerze ukrywasz skrypt wysyłający naboje, a w kliencie po wystrzale wykonujesz skrypt który by je stworzył - dwie linijki komentarza, a system działa inaczej (zakładając, ze kod jest napisany jako wywoływanie skryptów, u mnie każdy case z serwera to osobny skrypt dla ułatwienia, jak coś chcę przetestować to podmieniam nazwę skryptu tylko).