Wiele serwerów z jednej instalacji
Spis treści |
Opis
Na razie krótki opis jako dopalić kilka serwerów z jednego kataogu z grą, bazując na zmiennych przekazywanych do gry.
Przygotowanie
Powieneś miec pojęcie jak stawiac serwer gry ;D. Przykład na HLDS ale mozna zastosowac do innych gier.
Prosta konfiguracja
Po prostu zdefinujemy wartości zmiennych,aby nie były domyślne dla danego serwera.
W katalogu cstrike tworzymy dwa katalogi: logs27015 oraz logs27016
W tym celu robimy pliki:
- server1.cfg, mapcycle1.txt, motd1.txt dla serwera numer 1
- server2.cfg, mapcycle2.txt, motd2.txt dla serwera numer 2
Konfigurujemy pliki pod kątem każdego serwera, a w szczególności zwracamy uwagę aby zdefiniowac poprawnie zmienne:
- dla serwera nr 1 w server1.cfg
logsdir "logs27015" servercfgfile "server1.cfg" mapchangecfgfile "server1.cfg" mapcyclefile "mapcycle1.txt" motdfile "motd1.txt"
- dla serwera nr 2 w server2.cfg
logsdir "logs27016" servercfgfile "server2.cfg" mapchangecfgfile "server2.cfg" mapcyclefile "mapcycle2.txt" motdfile "motd2.txt"
- Teraz robimy dwie komendy uruchamiające serwery, na przykład dla pierwszego komenda będzie wygladała tak:
hlds_run -game cstrike +exec server1.cfg +map de_dust +port 27015
a dla drugiego
hlds_run -game cstrike +exec server2.cfg +map de_aztec +port 27016
Rozszerzenie
Wszystko fajnie, działa, ale jest jeden szkopuł - jak mamy dodatki do serwerów typu amxmodx to będą współdzielone konta adminów itd, może to byc niewygodne, a szczególnie jak się logi zaczną nadpisywać w AMX.
- Specjalnie do tego stworzymi pliki konfiguracyjne pod MetaModa: w cstrike/addons/ tworzymy pliki plugins1.ini oraz plugins2.ini. W nih obu definujemy tak samo nazwy pluginów jak w normalnym plugins.ini. W rzeczywistości mozna zrobic, że te pliki będą identyczne.
- No dobra, ozancza to, że każdy serwer może mieć własne dodatki, ale trzeba go odpowiednio uruchomić.
Modyfikujemy komendy startowe tak aby wyglądały jak poniżej:
hlds_run -game cstrike +localinfo mm_pluginsfile "addons/metamod/plugins1.ini" +exec server1.cfg +map de_dust +port 27015
oraz
hlds_run -game cstrike +localinfo mm_pluginsfile "addons/metamod/plugins2.ini" +exec server2.cfg +map de_aztec +port 27012
- Fajnie, ale to nie załatwia sprawy jeśli uzywamy jednego katalogu AMX (no chyba, że np w plugins1.ini będzie AMX Mod a w plugins2.ini AMX Mod X).
Tak więc trzeba trochę rozszerzyć listę zmian w plikach server1.cfg i server2.cfg aby zmienic konfiguracje dla dodatków.
- Najłatwiej jest teraz skopiować kataog addons/amxmodx do addons/ammxodx-1/ oraz addons/amxmodx-2/, w podkatalogach aanosimy zmiany stosowne go każdego serwera.
Zwracam uwagę szczególnie na plik core.ini. Co więcej należy sprawdzić w plikach .sma czy maja poprawne odnośniki do katalogów konfigurayjnych (niekóre maja na sztywno napisane addons/amxmodx/ - wtedy albo przepisajemy plugin na dynamicznie przydznielane wartości, albo odpowiednio edytujemy pliki dla każdego serwera i kompilujemy.
- Aby zaktualizować wszystkie konfigi najlepiej przeszukać pliki czy zawierają ciąg addons/amxmodx/ albo amxmodx/ i podmienic odpowiednio ścieżkę na amxmodx-1/ oraz amxmodx-2
- Znowu modyfikujemy komendy startowe serwera, tak aby teraz amxmodx działał poprawnie:
hlds_run -game cstrike +localinfo mm_pluginsfile "addons/metamod/plugins1.ini" +localinfo amx_basedir "addons/amxmodx-1" +exec server1.cfg +map de_dust +port 27015
oraz
hlds_run -game cstrike +localinfo mm_pluginsfile "addons/metamod/plugins2.ini" +localinfo amx_basedir "addons/amxmodx-2" +exec server2.cfg +map de_aztec +port 27016
- Opdal i zobacz iel narobiłes błędów :D
Ekstra
Zamiast mordować się w kopiowanie warto zrobić symlinki (linki symboliczne) do plików, uzytecznie jeśli serwery współdzielą np 95% konfiguracji i nie ma sensu wszystkiego kopiować. Szczególnie przydatne jak sie ma kilka serwerów o podobnej konfiguracji - stedy aktualizujemy 1 plik, i jest on od razu aktualny dla wszysktich serwerów. Oczywiście należy dokładnie przemysleć co się robi.
Pamiętajcie też aby uaktualnić wszelkie ścieżki do takich dodatków jak psychostats, czy HLStats. A z AMXBans sami sobie poradzicie :D
Opis można dostosowac do wielu innych dodatków, np AMX, czy HLGuard'a. Jednak nalezy przekpoać się przez dokumentacje pluginu aby poznac wszelkie możliwości modyfikacji.