HLGuard
Opis
HLGuard - Jeden z najstarszych systemów działających wyłącznie na serwerze gry Half-Life - HLDS. Projekt przejęty przez grupę programistów The Z Project w momencie rozłamu UnitedAdmins i utrzymywany do dziś.
- The Z Project - strona domowa
Zalety
- działa tylko na serwerze - nie trzeba klienta
- rozbudowane możliwości dostosowania programu w działaniu do potrzeb graczy i serwera i dodatków
- ogranicza ruch sieciowy o nadmiarowe dane, które wykorzystują antycheaty
- możliwośc integracji z takimi bazami danych jak SteamBans czy AMX Bans
- działa z większością innych programów antycziterskich
Wady
- czasem fakt, iż jest to tylko wersja serwerowa nie wystarcza i trzeba go wspomagać innymi programami.
- potrafi pożerac pamięć serwera, oznacza to, że trzeba serwer restartować mniej więcej co 48h - wtedy czuje się wyraźne polepszenie grywalności.
Linki
- UnitedAdmins - pierwotna strona projektu.
- The Z Project - aktualna strona projektu.
- Nightly Builds zobacz Nightly Builds
Instalacja
Wymagania
- HLGuard: http://www.thezproject.org/downloads/hlguard/hlg_1_8.zip
- Zainstalowany i działający MetaMod
Instalacja
- Wypakowywujemy ZIP'a z HLGuardem do cstrike/
- Edytujemy /addons/metamod/plugins.ini
Dla Windows dopisujemy:
win32 addons/hlguard/dlls/hlguard_mm.dll
lub, jeśli procesor naszego serwera to athlon-xp/pentium 4 możemy użyć specjalnej biblioteki optymalizowanej pod te procesory
win32 addons/hlguard/dlls/hlguard_mm_optimized.dll
Dla Linux dopiszemy:
linux addons/hlguard/dlls/hlguard_mm_i686.so
lub, jeśli procesor naszego serwera to athlon-xp/pentium 4 możemy użyć specjalnej biblioteki optymalizowanej pod te procesory
linux addons/hlguard/dlls/hlguard_mm_optimized_i686.so
W przypadku wystąpienia problemów z bibliotekami _optimized_ należy używać zwykłych.
Konfiguracja
Podstawowa
- Otwieramy addons/hlguard/config/hlguard.cfg
Widzimy w nim cos takiego (tyle ze po angielsku. Na potrzeby tutorialu przetłumaczyłem, o co mniej więcej chodzi):
hlguard 1 off // [[Aimbot]] Warning System hlguard 2 on // Wykrywanie niedozwolonych aliasów, itd. hlguard 3 on // Detekcja Rapid/BurstFire hlguard 4 on // Blokowanie [[WallHack]]'a hlguard 5 off // Blokowanie [[SpeedHack]]'a hlguard 6 off // Klient [[Steambans]] - jeśli nie wiesz, co to jest, to zostaw na off hlguard 7 on // Wykrywanie szybkich i częstych zmian nicka (tzw. nick spam) hlguard 8 on // Wlaczanie stref blokujących błędy map (np. wyjścia poza mapy)
To, co ma byc włączone zmieniamy z off na on. Bądź, jeżeli cos ma byc wyłączone to z on na off.
Jeżeli chcemy, aby HLG w grze pokazywał ze przeskanował już configi znajdujemy to:
// One-Time messages // hlg_action "a:not found" "hlg_clexec #%u 'alias hlgauth';say '[HLGUARD] %n completed the HLGuard alias scan.'" // // Repeating messages // hlg_action "a:not found" "say '[HLGUARD] %n completed the HLGuard alias scan.'"
I zmieniamy na:
// One-Time messages hlg_action "a:not found" "hlg_clexec #%u 'alias hlgauth';say '[HLGUARD] %n completed the HLGuard alias scan.'" // // Repeating messages hlg_action "a:not found" "say '[HLGUARD] %n completed the HLGuard alias scan.'"
Aby ustawić tryb HLGuarda trzeba znaleźć
// Use ONE of these config files designed for InterNET, LAN and LEAGUE servers: hlg_loadmode net // InterNET mode - Banowanie przez STEAM ID // hlg_loadmode lan // LAN mode - Banowanie przez adres IP (przydatne na LANie) // hlg_loadmode league // League mode - HLG nie banuje. Pokazuje tylko ze ktoś 'coś' ma i zapisuje do logów
Zmieniając tryb należy usunąć // (dwa slashe) sprzed 'nowego' trybu a dodać to samo na tym 'stary'.
Aby włączyć funkcje banowania nickow trzeba znaleźć: Kod:
// hlg_exec addons/hlguard/config/hlg_nameban.cfg
i zamienić na Kod:
hlg_exec addons/hlguard/config/hlg_nameban.cfg
Więcej o tym jest niżej.
Aby włączyć zgodę na przeskanowanie systemu przez HLguard trzeba znaleźć:
// hlg_exec addons/hlguard/config/hlg_agreement.cfg
i zamienic na
hlg_exec addons/hlguard/config/hlg_agreement.cfg
Zawansowana konfiguracja
Pamiętaj, aby zawsze zrobić kopie zapasowa pliku, który edytujesz.
AMXBans
Dostosowywanie HLGuarda, aby działał z AMXBANS.
- Otwieramy plik hlg_net.Cfg i zmieniamy sekcje w pliku:
- Alias Detection Actions
hlg_action "b:found:10" "banid 0.0 %w;kick #%u [HLGUARD] Banned: Permanently. Reason: %y;wait;writeid" hlg_action "t:found:10" "banid 1440.0 %w;kick #%u [HLGUARD] Banned: 24 hours. Reason: %y;wait;writeid"
na
hlg_action "b:found:10" "amx_ban 0 %w [HLGUARD] You have been banned. Reason: %y" hlg_action "t:found:10" "amx_ban 1440 %w [HLGUARD] You have been temporarily banned. Reason: %y"
- Steambans check actions
hlg_action "h:found:10" "banid 1440.0 %w;kick #%u [HLGUARD] Banned: 24 hours. Reason: You are SteamBans blacklisted! Visit www.steambans.com for more information;wait;writeid"
na
hlg_action "h:found:10" "amx_ban 1440 %w [HLGUARD] Banned: 24 hours. Reason: You are SteamBans blacklisted! Visit www.steambans.com for more information"
- Nameban Actions
hlg_action "q:found:10" "banid 120.0 %w;kick #%u [HLGUARD] Banned: 2 hours. Reason: %y;wait;writeid"
na
hlg_action "q:found:10" "amx_ban 120 %w [HLGUARD] Banned: 2 hours. Reason: %y"
- Aimbot Warning System Detection Actions (Abandoned, not updated, no support)
hlg_aimbot "banid 1440.0 %w;kick #%u [HLGUARD] You have been banned for suspected aimbot;wait;writeid"
na
hlg_aimbot "amx_ban 1440 %w [HLGUARD] You have been banned 24 hours for suspected aimbot"
Banowanie po Nickach
Nicki do zbanowania znajdują się w pliku hlg_nameban.cfg. Standardowo jest tam kilka nazw klanów i nickow, które dostają bana. Śmiało możemy się ich pozbyć poprzez wykasowanie ich. Składnia polecenia sprawdzania czy nick jest do zbanowania wygląda tak:
hlg_check "%n:nick:Przyczyna bana i tekst, który zostanie wyświetlony przy banie/kicku" "flagi"
Przy nicku można użyć znaków * i ? które zastępują odpowiednio dowolny ciąg znaków i jeden znak.
W "Przyczyna bana i tekst, który zostanie wyświetlony przy banie/kicku" możemy wpisać, co nam się podoba.
We "flagi" należy stosować którąś z kombinacji: 1) pk - Zapisuje delikwenta do logu i kopie go z serwera. 2) q - Zapisuje delikwenta do logu i banuje go.
hlg_check "%n:*lol*:Niedozwolona część nicka: lol" "q"
spowoduje ze będzie banowany każdy, kto gdzieś w nicku ma słowo lol
hlg_check "%n:ku?a:Z takim nikiem tu nie zagrasz" "pl"
spowoduje ze gracze o nickach kupa, kuba, kuwa itd będą kopani z serwera.
Zgoda na skanowanie systemu
Wszelakie informacje na ten temat znajdują się w pliku hlg_agreement.cfg
Aby zmienić na polski tekst informacji pojawiającej się przy wejściu na serwer trzeba zedytowac w/w plik, zamiast
hlg_agreement " yHLGuard connection agreementw" hlg_agreement " " hlg_agreement " By playing on this server, you" hlg_agreement " agree to have your system scanned and" hlg_agreement " specific features of the game blocked," hlg_agreement " for the purpose of cheat prevention" hlg_agreement " and detection." hlg_agreement " " hlg_agreement " If you don't agree with these conditions," hlg_agreement " press key number 4 to be kicked from" hlg_agreement " this server." hlg_agreement " " hlg_agreement " 1. I agree 4. I disagree"
wpisujemy:
hlg_agreement " y-| Zgoda na przeskanowanie systemu przez HLguard |-w" hlg_agreement " " hlg_agreement " Łącząc się do tego serwera, zgadzasz się" hlg_agreement " by twój system został przeskanowany i niektóre" hlg_agreement " właściwości gry zostały zablokowane, co uniemożliwi" hlg_agreement " uzycie cheatow." hlg_agreement " " hlg_agreement " Jeśli nie zgadzasz się z powyższymi" hlg_agreement " warunkami, wciśnij klawisz 4" hlg_agreement " " hlg_agreement " 1. Zgadzam się 4. Nie zgadzam się"
Inne tłumaczenia znajdują się tutaj: http://board.counter-strike.pl/viewtopic.php?t=3062
Menu HLGuarda w grze
Aby uzyskać dostęp do menu HLGuarda w grze należy edytować plik hlg_menu.cfg Znajdujemy w nim cos takiego:
hlg_menupassword ""
pomiędzy cudzysłowami wpisujemy swoje hasło.
hlg_menupassword "MojeHaslo"
teraz najlepiej do configa sobie dopisać
bind "f2" "hlg_menu MojeHaslo"
Wielkość liter ma znaczenie! Teraz w grze wciskamy F2 i mamy ładne menu HLGuarda.
Blokowanie zmiennych
Blokowanie/Odblokowywanie niektórych zmiennych w grze (chwilowo nie działa)
HLGuard standardowo blokuje niektóre zmienne w grze. Np. ex_interp 0.1 Za pomocą kilku configow możemy sami ustawić jakieś zmienne, aby gracze nie oszukiwali.
Zmienne forsowane przez HLGuarda znajdują się w kilku plikach.
addons\hlguard\config\cstrike\hlg_cvars.cfg
oraz
addons\hlguard\config\hl\hlg_cvars.cfg
Aby pozbyć się blokowania należy w tych configach znaleźć
hlg_conncommand "ex_interp 0.1;alias ex_interp"
i zamienić na
// hlg_conncommand "ex_interp 0.1;alias ex_interp"
Tak samo postępujemy z innymi zmiennymi, których nie chcemy.
Aby dodać jakąś zmienna żeby była forsowana u graczy trzeba w
addons\hlguard\config\cstrike\hlg_cvars.cfg
dopisać:
hlg_conncommand "nazwa_zmiennej <wartość>; alias nazwa_zmiennej"
Czas banów
Zmiana długości trwania banów
Otwieramy hlg_net.cfg lub hlg_lan.cfg w zależności, z jakiego trybu HLGuarda korzystamy i szukamy w nim słowa banid oraz odpowiednio addip. Po tych wyrazach zawsze jest jakąś wartość liczbowa. Ta wartość to właśnie czas w minutach na ile gracz dostaje bana. Gdy ta wartość wynosi 0 wtedy ban jest permanenty (na zawsze).
Komendy i Zmienne
Komendy
hlguard
hlguard hlguard <mode> <on|off|1|0> hlguard <bitmask>
bez parametrów pokazuje tryb w jakim pracuje hlguard, mode to tryb pracy, jest ich sześć, pokazuje status danego trybu:
hlguard 1 off // Aimbot Warning System hlguard 2 on // Wykrywanie niedozwolonych aliasów, itd. hlguard 3 on // Detekcja Rapid/BurstFire hlguard 4 on // Blokowanie WallHack'a hlguard 5 off // Blokowanie SpeedHack'a hlguard 6 off // Klient Steambans - jeśli nie wiesz, co to jest, to zostaw na off hlguard 7 on // Wykrywanie szybkich i częstych zmian nicka (tzw. nick spam) hlguard 8 on // Wlaczanie stref blokujących błędy map (np. wyjścia poza mapy)
bitmask: maska bitowa modów, zero to wyłączenie, rzadko stosowane
hlg_action
hlg_action "<flag>:<found|not found>" "<command>"
dodaje akcję do sprawdzanych aliasów
- flag: identyfikator akcji
- found/not found: gdy hlg sprawdza i jesli znajdzie lub nie znajdzie danej akcji to wykona się komenda
- command: komenda do wykonania jeśli warunek jest spełniony
hlg_aimbot
hlg_aimbot "<command>"
wykonuej komendę jeśli wykryto aimbot'a
hlg_check
hlg_check "<alias>:<description>" "<flags>"
dodaje alias do listy skanów
- alias: alias do skanowania
- description: nazwa cheat'u
- flags: fflagi z którymi łączyc ten skan
hlg_clexec
hlg_clexec <#<userid>|<uniqueid>> "<command>"
wykonuje komendę na graczu
- userid: numer identyfikacyjny gracza
- uniqueid: Steam ID
hlg_reset
hlg_reset hlg_reset <net|lan|league>
resetuje hlguard'a - ignoruje wszelkie komendy hlg_loadmode w chiwli przeładowania, i ładuje moduły na tryb net/lan/league
hlg_log
hlg_log "<hlg string>"
zapisuje do logów dany ciąg zarówno do logów serwera jak i hlguarda
- hlg string: ciąg znaków, rozpoznaje zmienne z % (zobacz niżej)
hlg_menucvar "<cvar>" "<step>" "<maximum>" dodaje pozycje do menu w części hlg server cvar (zmienne)
- cvar: zmienna, na przykład hlg_delay
- step: krok, zmiana wartości od 0 do <maximum>
hlg_menucmd "<description>" "<commmand>"
dodaje pozycje do menu w cześci komend serwera
- description: opis
- command: komenda do wykonania
hlg_menuplayer "<description>" "<commmand>"
dodaje pozycje do menu graczy
- description: opis komendy
- command: komenda do wykonania
hlg_write
hlg_agreement hlg_agreement "<message>" wyświetla oraz dodaje linie do tekstu zasad ( rules agreement), zgoda na skanowanie itp
hlg_write
hlg_write "<hlg string>"
zapisuje komunikat do aktualnego hlg_writefile (logu)
hlg_conncommand
hlg_conncommand "<command>"
dodaje komendę do listy komend wykonwanych u gracza w chwili kiedy ten sie podącza do serwera
hlg_exec
hlg_exec "<config.cfg|config.zcfg>" wykonuje normalny plik konfiguracyjny albo z config z suportem dla zmiennych z %
hlg_listexec
hlg_listexec
wyświetla listę wszystkich plików wykonywanych w chiwli aktywacji hlg_exec
hlg_blockcommand
hlg_blockcommand hlg_blockcommand "<command>"
blokuje komendę gracza jeśli jest uzyta, albo pokazuje liste aktualnie blokowanych komend. Nie wszstkie komendy mozna zblokować.
hlg_loadmode
hlg_loadmode <net|lan|league>
ładuje tryb net/lan/league , powinen być wykonywany tylko raz na mapę.
hlg_updateconfigs
hlg_updateconfigs
wykonuje ręczną aktualizacje konfigów
hlg_swzone
sky walk zone, czyli obszary zakaznego łażenia po niebie.
hlg_swzone mod <mod> hlg_swzone map <map> hlg_swzone point1 <x> <y> <z> hlg_swzone point2 <x> <y> <z> hlg_swzone point3 <x> <y> <z> hlg_swzone point4 <x> <y> <z> hlg_swzone point5 <x> <y> <z> hlg_swzone point6 <x> <y> <z> hlg_swzone point7 <x> <y> <z> hlg_swzone point8 <x> <y> <z> hlg_swzone method <method> hlg_swzone add
- mod: krótka nazwa modu (cstrike, tfc, ...)
- map: nazwa mapy, bez roszerzenia (de_dust, rock2, ...)
- x/y/z: parametry w przestrzeni mamp - origin in game world (246, -284, ...)
- method: 0 = brak, 1 = blokuj, 2 = blokuj + forsuj brak promeni
ustawia parametry dla obszaru albo tworzy nowy
Zmienne
Uwaga, te zmienne są czułe na wielkośc znaków - %s to nie to samo co %S
%n - zwraca imię gracza
%y - zwraca opis aktualnego cheat'a/ ilośc ostrzeżeń aimbota od momentu podączenia się gracza do serwera
%w - zwraca gracza uniqueid -steamid/wonid
%i - zwraca adres ip gracza
%v - zwraca czy alias został lub nie został znaleziony
%d - zwraca datę w formacie miesiąc/dzień/rok (mm/dd/yyyy)
%h - zwraca godzinę (hh:mm:ss)
%g - zwraca wersję HLGuard
%k - zwraca wartośc zmiennej hlg_aimbotrepeat
%c - zwraca numer aimwarn w zadanym czasie hlg_aimbottimeout
%a - zwraca wartość zmiennej hlg_aimbotlevel
%q - zwraca wartość zmiennej hlg_aimbottimeout
%u - zwraca userid gracza (uid)
%m - zwraca nazwę mapy
%t - zwraca nazwę druzyny gracza
%f - zwraca wartość zmiennej hlg_cfgversion
%s - zwraca nazwę serwera
%o - zwraca listę graczy
%M - zwraca nazwę modu (cstrike..)
%L - zwraca aktualną ścieżke pliku z logami
%C - zwraca liczbę skanów aliasów wykonaną na graczy
%S - zwraca numer slotu gracza
%N - zwraca nowy nick gracza na jaki zostaje zmieniony, potrzebny do systemów banujących aby pokazywały nowy nick a nie stary
Nightly Builds
Są to wersje kompilowane ze źródeł, które sa najnowszą wersją HLGuarda. Co oferuje night build:
- najnowsze metody anticheat
- błędy
- niestabiloność
Czy sie opłaca? Jesli możesz chociarz uruchomić to od czasu do czasu to tak, a w razie jakichkolwiek odpowiedzi deweloperzy będą bardzo wdzięczni.
Zobacz Linki
Źródła:
- http://forums.unitedadmins.com/index.php?showtopic=45761
- http://www.zepher.f2s.com/docs/HLG/en/
- Potwierdzenie skanowania przetłumaczone przez zchiz'a