QUOTE(mar @ 21:05, 8 02 2006) [snapback]56761[/snapback]
trochę dziwne...w jaki sposób ET rozpoznaje, że dźwięk jest podmieniony ? po rozmiarze ?
Można sprawdzic bit po bicie tylko kto normalny będzie przesyłał wszystkie dane do sprawdzenia (pak0.pk3 to ponad 200 Mb) - chociaż to jedyna metoda dająca 100% niezawodności
Z reguły do sprawdzania poprawności danych zarówno podczas przesyłania danych po sieci (protokół IP) jak i działania programów archiwizujących (Winzip, Winrar) oraz sprawdzania gier pod kątem ewntualnych cziterskich przeróbek stosuje się standardowe metody z których najpopularniejsze to
1) suma kontrolna, kontrola parzystości - w uproszczeniu polega na zliczaniu zer i jedynek w bajtach, prosta ale dość zawodna metoda
2) CRC Cyclic Redundancy Check - sprawdzanie reszty z dzielenia. Pakiety danych są dzielone binarnie przez specjalne wielomiany. Wystarczy sprawdzić resztę z takiego dzielenia i porównać z oryginałem (nie potrzeba przesyłać całych danych co zapycha łącze i pożera czas procesora)
Jest nawet oddzielny dział matematyki zajmujący się wynajdywaniem takich wielomianów aby kontrola CRC na ich podstawie była jak najbardziej niezawodna (teoretycznie dane można tak zmienić że ta reszta z dzielenia zostanie taka sama - metoda nie jest w 100% niezawodna ale w większości przypadków wystarczająca).
O ile serwer nie jest pure (sv_pure 1) to każda ingerencja w kod programu w 99,999 % zostanie wykryta i serwer nie wpuści.
Samo grzebanie w pak0.pk3 jest bez sensu. Również serwer musiałby mieć zmieniony ten główny pak co ograniczyłoby dostępność tylko dla osób z tak zmienioną grą.
Dlatego stosuje się dodatkowe paki które nie zajmują tyle miejsca co główny pak a wprowadzają tylko te modyfikacje które chcemy.