Blame
|
1 | # CT 123 – CS 1.6 Web-Server |
||||||
| 2 | ||||||||
| 3 | **IP:** 192.168.178.93 |
|||||||
| 4 | **Domain:** cs.ls-cloud.biz |
|||||||
| 5 | **Image:** yohimik/cs-web-server-metpamx:latest |
|||||||
| 6 | **Stack:** /opt/cs16/docker-compose.yml |
|||||||
| 7 | ||||||||
| 8 | ## Ports |
|||||||
| 9 | ||||||||
| 10 | | Port | Protokoll | Verwendung | |
|||||||
| 11 | |------|-----------|------------| |
|||||||
| 12 | | 27016 | TCP | Web-Client (via Caddy) | |
|||||||
|
13 | | 27015 | UDP | Game-Port Standard (Fritz!Box-Forward) | |
||||||
| 14 | | 27018 | UDP | Game-Port konfiguriert (Fritz!Box-Forward) | |
|||||||
| 15 | ||||||||
| 16 | ## Konfigurationsdateien – Pfade auf CT 123 |
|||||||
| 17 | ||||||||
| 18 | | Was | Pfad auf CT 123 | |
|||||||
| 19 | |-----|-----------------| |
|||||||
| 20 | | Maps | `/opt/cs16/cstrike/maps/` | |
|||||||
| 21 | | server.cfg | `/opt/cs16/cstrike/server.cfg` | |
|||||||
| 22 | | AMX configs (users.ini, plugins.ini, etc.) | `/opt/cs16/cstrike/addons/amxmodx/configs/` | |
|||||||
| 23 | | AMX Plugins (.amxx) | `/opt/cs16/cstrike/addons/amxmodx/plugins/` | |
|||||||
| 24 | | AMX Scripting (.sma) | `/opt/cs16/cstrike/addons/amxmodx/scripting/` | |
|||||||
| 25 | | Metamod (plugins.ini) | `/opt/cs16/metamod/` | |
|||||||
| 26 | | YaPB Bots | `/opt/cs16/yapb/` | |
|||||||
| 27 | ||||||||
| 28 | Alle Ordner sind als Docker-Volumes gemountet – Änderungen sind sofort aktiv ohne Container-Neustart (außer neue Plugins/Maps die einen `changelevel` oder Serverneustart brauchen). |
|||||||
|
29 | |||||||
| 30 | ## Verzeichnisstruktur |
|||||||
| 31 | ||||||||
| 32 | ``` |
|||||||
| 33 | /opt/cs16/ |
|||||||
| 34 | ├── docker-compose.yml |
|||||||
|
35 | ├── valve.zip # CS 1.6 Assets (SteamCMD AppID 90) |
||||||
|
36 | ├── update-ip.sh # Cron: auto-updated public IP |
||||||
|
37 | ├── metamod/ |
||||||
| 38 | │ └── plugins.ini # Metamod Plugin-Liste |
|||||||
| 39 | ├── yapb/ |
|||||||
| 40 | │ ├── bin/yapb.so # YaPB Bot-DLL |
|||||||
| 41 | │ ├── conf/yapb.cfg # Bot-Konfiguration (yb_quota etc.) |
|||||||
| 42 | │ └── data/graph/de_dust2.graph # Waypoints |
|||||||
|
43 | └── cstrike/ |
||||||
|
44 | ├── maps/ # .bsp Dateien hier ablegen |
||||||
| 45 | ├── server.cfg |
|||||||
| 46 | ├── listenserver.cfg |
|||||||
| 47 | ├── config.cfg |
|||||||
|
48 | └── addons/ |
||||||
| 49 | └── amxmodx/ |
|||||||
| 50 | ├── configs/ |
|||||||
|
51 | │ ├── plugins.ini # AMX Plugin-Liste |
||||||
|
52 | │ ├── users.ini # Admin-Accounts |
||||||
| 53 | │ └── amxx.cfg # AMX Hauptkonfiguration |
|||||||
| 54 | ├── plugins/ # .amxx Dateien |
|||||||
|
55 | │ ├── tdm_respawn.amxx |
||||||
| 56 | │ └── admin_menu.amxx |
|||||||
|
57 | └── scripting/ # .sma Quellcode |
||||||
|
58 | ├── tdm_respawn.sma |
||||||
| 59 | └── admin_menu.sma |
|||||||
|
60 | ``` |
||||||
| 61 | ||||||||
| 62 | ## Plugins |
|||||||
| 63 | ||||||||
|
64 | | Plugin | Beschreibung | |
||||||
| 65 | |--------|-------------| |
|||||||
| 66 | | tdm_respawn | Team Deathmatch: Respawn nach 2s | |
|||||||
| 67 | | admin_menu | `/admin` im Chat öffnet AMX-Menü | |
|||||||
| 68 | | YaPB v4.4.957 | Bots (Xash3D-kompatibel, via Metamod) | |
|||||||
|
69 | |||||||
| 70 | ## Admin-Login |
|||||||
| 71 | ||||||||
| 72 | Im Spiel-Console eingeben: |
|||||||
| 73 | ||||||||
| 74 | ``` |
|||||||
| 75 | setinfo _pw "DEIN_PASSWORT" |
|||||||
| 76 | ``` |
|||||||
| 77 | ||||||||
|
78 | Wird über den Spielernamen erkannt. Danach `/admin` im Chat für das Admin-Menü. |
||||||
| 79 | Account-Daten in `/opt/cs16/cstrike/addons/amxmodx/configs/users.ini`. |
|||||||
| 80 | ||||||||
| 81 | ## Bots (YaPB) |
|||||||
| 82 | ||||||||
| 83 | **Warum YaPB?** PODBot und andere Metamod-Bots nutzen `RecursiveLightPoint` – eine HLDS-interne Funktion, die Xash3D FWGS nicht implementiert (SIGSEGV). YaPB unterstützt Xash3D nativ. |
|||||||
| 84 | ||||||||
| 85 | ### Bot-Anzahl dauerhaft ändern |
|||||||
| 86 | ||||||||
| 87 | In `/opt/cs16/yapb/conf/yapb.cfg`: |
|||||||
| 88 | ||||||||
| 89 | ``` |
|||||||
| 90 | yb_quota "5" # Anzahl Bots |
|||||||
| 91 | ``` |
|||||||
| 92 | ||||||||
| 93 | ### Bot-Kommandos (Konsole / RCON) |
|||||||
| 94 | ||||||||
| 95 | | Befehl | Beschreibung | |
|||||||
| 96 | |--------|-------------| |
|||||||
| 97 | | `yb_quota 5` | Dauerhaft 5 Bots halten | |
|||||||
| 98 | | `yb add [skill] [team]` | Bot hinzufügen (skill 0-4, team 0=random 1=T 2=CT) | |
|||||||
| 99 | | `yb kick` | Zufälligen Bot entfernen | |
|||||||
| 100 | | `yb kick t` | Bot aus T-Team entfernen | |
|||||||
| 101 | | `yb kick ct` | Bot aus CT-Team entfernen | |
|||||||
| 102 | | `yb kickall` | Alle Bots rauswerfen | |
|||||||
| 103 | | `yb fill 0 5 2` | Server mit 5 Bots Skill Normal füllen | |
|||||||
| 104 | | `yb kill` | Alle Bots töten (bleiben im Spiel) | |
|||||||
| 105 | | `yb list` | Aktive Bots anzeigen | |
|||||||
| 106 | ||||||||
| 107 | **Schwierigkeitsgrade:** 0=Newbie, 1=Average, 2=Normal, 3=Professional, 4=Godlike |
|||||||
|
108 | |||||||
|
109 | ## Dynamische IP |
||||||
| 110 | ||||||||
| 111 | Der Server läuft hinter einer dynamischen Fritz!Box-IP. Zwei Mechanismen sorgen für Aktualität: |
|||||||
|
112 | |||||||
|
113 | - **Cloudflare DDNS** – A-Record `cs.ls-cloud.biz` wird automatisch aktualisiert |
||||||
| 114 | - **Cron auf CT 123** – `/opt/cs16/update-ip.sh` läuft alle 10 Minuten, erkennt IP-Änderung, updated `docker-compose.yml` und startet Container neu |
|||||||
