So installiert man am Beispiel Counter-Strike 1.5 Mod, einen HLDS Server, ohne WON auf einem Linux-Server:
mkdir hlds_l
(einfach so auf der Konsole eingeben und Enter drücken).cd hlds_l
Enter.nowon2.pl
ausführbar zu machen. Am besten mit chmod +x nowon2.pl
hlds_l_3110_full.tar.gz
entpackencs_15_full.tar.gz
entpacken und den entpackten Ordner cstrike
in den Ordner hlds_l
verschiebenhlds_l_3111e_update.tar.gz
in den hlds_l
-Ordner entpacken. Die alten Dateien dabei überschreiben lassen (ist ja ein Update)perl nowon2.pl hlds_l
ausführenDamit ist der nackte Server mit dem cstrike-Mod installiert und kann getestet werden:
cd hlds_l
./hlds_run -game cstrike -nomaster +sv_lan 1 +maxplayers XX +map de_dust
Eigentlich ist der Grundserver kein CS-Server, sondern ein Half-Life-Server, allerdings mit dem entsprechenden Mod wird er zu einem. Außerdem ist der nackte Server ist ein wenig langweilig. Keine Server-Sounds, wenig administrative Möglichkeiten, Plugins gibt es keine, um z. B. Stats zu führen. Diese Mods verlangen allerdings die Installation von Metamod.
Als erstes benötigt man den Metamod. Dieser ist unter http://www.metamod.org zu finden.
addons
(also cstrike/addons
) anlegenmetamod
mit dem Metamod drin. So: cstrike/addons/metamod
.liblist.gam
in cstrike
und löscht den Eintrag (bzw. kommentiert ihn mit ;
aus): gamedll_linux „dlls/cs_i386.so“
und schreibt anstelle dies hin: gamedll_linux „addons/metamod/dlls/metamod.so“
und speichern.Damit müsste der Metamod laufen. Zum Testen kurz starten. Der CS-Server sollte ihn bereits nennen.
amxmodx-1.60-base.tar.gz
und amxmodx-1.60-cstrike.tar.gz
nach cstrike/addons/
entpacken. Dann muss man lediglich noch in cstrike/addons/metamod/plugins.ini
folgendes eintragen: linux addons/amxmodx/dlls/amxmodx_mm_i386.so
. Den Server danach komplett neustarten und schon läuft auch der AMXmodX.
Der so installierte Server ist ein reiner LAN-Server. D. h., auf Verbindungen die nicht von einer IP im lokalen Netzwerk aus eingehen, reagiert der Server nur durch eine Meldung, dass er nur LAN-Verbindungen zulässt. Das kann man umgehen, indem man ihn patcht. Dazu kann man entweder selbst Hand anlegen, oder aber man benutzt das vorgefertigte File.
Manuell:
nowon.c
erstellen, mit folgendem Inhalt: int NET_IsReservedAdr(){return 1;}
.gcc -c nowon.c -o nowon.o
ld -shared -o nowon.so nowon.o
nowon.so
verwendennowon.so
noch für den Server zugänglich platziert werden, z. B. im Stammverzeichnis des Servers. Sie muss natürlich auch noch vom Server aufgerufen werden. Dazu trägt man in die Datei hlds_run
folgendes nach dem Block mit export
ein: export LD_PRELOAD=<PfadzurLibrary>/nowon.so
. Wenn die Datei im Stammverzeichnis liegt, entsprechend ./nowon.so
als Pfadname.+sv_lan 1
gestartet werden.
Valve Anti Cheat ist auf CS 1.5 Servern ganz sicher nicht mehr aktuell. Dementsprechend kann man es auch gleich abschalten um Problemen vorzubeugen: secure 0
in die liblist.gam
eintragen.
Früher wurden so erstellte Server über das World Oppnent Network, kurz »WON« gelistet, welche widerum von CS-Clients von diesen Servern ausgelesen werden konnten. Die WON-Server wurden 2004 von Valve abgeschaltet, sodass die standardmäßig von CS 1.5 verwendeten Adressen nicht mehr funktionieren. Diese Lücke wurde durch das no-won-Projekt, bzw. Steamless-Projekt geschlossen.
Um den eigenen Server für die CS-Serversuche sichtbar zu machen ist die Liste in valve/valvecomm.lst
durch eine andere zu ersetzen. Die neue Datei gibt es unter http://www.no-won.net/valvecomm.lst. Die alte Datei ersetzen (ggf. vorher noch ein Backup machen, aber wirklich nützlich ist das nicht).
Clients müssen dasselbe mit der Datei valve/woncomm.lst
machen. Danach ist der Server über die übliche interne CS-Server-Suche sichtbar.
*.sma
Datei und *.amxx
Datei runter laden, die *.sma
s sind die Quellcodes, die *.amxx
' sind die compilierten Plugins. Zur Benutzung braucht man nur die *.amxx
.*.amxx
Datei in in $moddir/addons/amxmodx/plugins
platzieren ($moddir
ist für CS das cstrike
-Verzeichnis)$moddir/addons/amxmodx/configs/plugins.ini
öffnenplugin_whatever.amxx
hinzufügen, man kann da auch Kommentare dazu setzen, wenn der Plugin-Name nicht eh schon aussagekräftig ist.
Jetzt sollte der Laden laufen.
Bei Problemen (z. B. für die falsche amx-Version), die #include
s im *.sma
-file ansehen. Evtl. fehlt auch nur etwas entsprechendes.
Wenn #include <vexd_utilities>
nicht vorhanden ist, mit #include <engine>
ersetzen
Es kann sein, dass sich der Code von from vexd_utilities
bei der Umsetzung in engine
geändert hat (z. B.: EntVars_Get_Vector
wurde zu entity_get_vector
).
Wenn das alles nichts hilft, im Forum nach Hilfe fragen.
Für *.sma
-Dateien gibt es auch einen online compiler, falls man kein *.amxx
-File gefunden hat.