Wiele serwerów z jednej instalacji
(→Prosta konfiguracja) |
|||
Linia 26: | Linia 26: | ||
motdfile "motd2.txt" | motdfile "motd2.txt" | ||
− | Teraz robimy dwie komendy uruchamiające serwery, na przykład dla pierwszego komenda będzie wygladała tak: | + | *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 | hlds_run -game cstrike +exec server1.cfg +map de_dust +port 27015 | ||
a dla drugiego | a dla drugiego |
Wersja z 02:41, 20 lis 2006
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.
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.