- Généralités
- Préparation du serveur Counter-Strike:Source
- Téléchargement de Half-Life Dedicated Server (hlds)
- Installation de Source Dedicated Server (srcds)
- Configuration du serveur de jeu Counter-Strike:Source
- Ajouter des maps Counter-Strike:Source
- Personnalisation du MOTD Counter-Strike:Source
- Lancement du serveur de jeu Counter-Strike:Source
Généralités
Source Dedicated Server (SRCDS) est un serveur officiel de Valve pour héberger des jeux basés sur le moteur Source (CS:GO, TF2, CS:S, etc…). Il permet de gérer des parties multijoueur 24/7, de configurer le serveur et d’ajouter des plugins ou mods avec Sourcemod/Metamod.
SRCDS fonctionne sur Linux et Windows, offre des commandes à distance (RCON) et génère des logs pour le suivi des joueurs et du serveur.
Préparation du serveur Counter-Strike:Source
Si vous utilisez une distribution 64 bits, il faudra installer les paquets des bibliothèques 32 bits avant d’installer le serveur Counter-Strike:Source.
sudo aptitude install ia32-libs lib32gcc1
Le mieux est de créer un nouvel utilisateur qui servira seulement à faire tourner SRCDS. Pour que notre machine soit un minimum protégé, ne lancez JAMAIS SRCDS avec l’utilisateur ROOT.
Nous allons créer un utilisateur, par exemple mic
sudo adduser mic
Le répertoire personnel de mic sera automatiquement créé (/home/mic).
Téléchargement de Half-Life Dedicated Server (hlds)
La manipulation consiste à créer un dossier, télécharger le binaire d’installation hldsupdatetool.bin, le rendre exécutable et le mettre à jour.
Maintenant nous allons nous connecter avec notre nouvel utilisateur, et créer le dossier /hlds dans /home/mic, et nous placer dans ce dossier.
su mic
cd /home/mic
mkdir hlds
cd hlds
Puis nous allons télécharger l’outil d’installation hldsupdatetool.bin (Half-Life Dedicated Server) commun a tous les mods (Counter-Strike:Source, Day of Defeat:Source, Team Fortress 2, Left 4 Dead, ect …).
wget http://www.steampowered.com/download/hldsupdatetool.bin
Nous allons modifier les droits du binaire hldsupdatetool.bin afin de le rendre exécutable et nous allons l’exécuter.
chmod a+x hldsupdatetool.bin
./hldsupdatetool.bin
Taper yes pour accepter les conditions d’utilisation du programme, cela va extraire 2 fichiers (steam et readme.txt).
Nous pouvons supprimer le binaire hldsupdatetool.bin.
rm hldsupdatetool.bin
Maintenant nous pouvons exécuter l’application steam pour obtenir la dernière version des fichiers de base du serveur dédié.
./steam
Vous pouvez relancer ./steam une deuxième fois.
./steam
Mieux vaut deux fois qu’une, non ?
Voila tout est prêt pour installer notre serveur Counter-Strike:Source.
Installation de Source Dedicated Server (srcds)
Il faut maintenant préciser le chemin de destination du serveur Counter-Strike:Source alias SRCDS (Source Dedicated Server) et télécharger les fichiers et les dossiers de celui-ci.
Pour cela nous allons créer un dossier /srcds (dans lequel se trouvera tous les fichiers de notre serveur de jeu) et lancer la commande de téléchargement du jeu dans ce dossier (-dir srcds).
mkdir srcds
./steam -command update -game "Counter-Strike Source" -dir srcds
Cette commande a pour but de télécharger tous les dossiers et tous les fichiers de la version serveur de Counter-Strike:Source, le temps du téléchargement peut être assez long (voir très long, plusieurs Go) suivant la vitesse de connexion de notre ordinateur.
Une fois que tous les fichiers se sont installés, nous allons vérifier l’intégrité de notre installation (assez rapide). En cas d’erreur, il vaut mieux supprimer le dossier /srcds (rm -r srcds), et recommencer (dans 99,9% des cas, il n’y a pas de problème).
./steam -command update -game "Counter-Strike Source" -dir srcds -verify_all
Si tout s’est bien passé, notre serveur est installé et opérationnel !
Notes :
Pour installer d’autres mods, il suffit de changer le paramètre « Counter-Strike Source » par le nom du mod (liste complète des mods), Vous pouvez obtenir cette liste en exécutant cette commande :
./steam -command update -game list -dir srcds
Par exemple pour installer le mods Team Fortress 2, il suffit de changer le paramètre « Counter-Strike Source » par « tf ».
./steam -command update -game "tf" -dir srcds
Configuration du serveur de jeu Counter-Strike:Source
La configuration de notre serveur Counter-Strike:Source se fait dans le dossier ../cfg (../cstrike/cfg).
Le fichier de configuration qui nous intéresse ici s’appelle server.cfg. Il se charge au lancement du serveur (fichier comportant les variables de jeu, exécuté à chaque changement de maps), ce fichier n’est pas créé par défaut, il faut donc le créer.
nano ~/hlds/srcds/css/cstrike/cfg/server.cfg
Puis nous allons le remplir de quelques variables. Voici un exemple de fichier server.cfg :
hostname "nom de votre serveur" // Nom du serveur
rcon_password "motdepasse" // Mot de passe RCON
sv_password "" // Mot de passe serveur (vide = public)
mp_friendlyfire 0 // Tir-amis désactivé
mp_footsteps 1 // Bruits de pas activés
mp_autoteambalance 1 // Équilibrage auto activé
mp_autokick 0 // Ejection automatique du joueur désactivée
mp_flashlight 0 // Lampe de poche désactivée
mp_tkpunish 1 // Punition automatique pour team-kill activée
mp_forcecamera 0 // Blocage de la caméra des joueurs morts désactivée
sv_alltalk 0 // Discussion vocale entre les deux équipes désactivée
sv_pausable 0 // Pause désactivée
sv_cheats 0 // Triche désactivée
sv_consistency 1 // Vérification de l'intégrité des fichiers (entre client et serveur)
sv_allowupload 1 // Upload autorisé
sv_allowdownload 1 // Download autorisé
sv_maxspeed 320
mp_limitteams 2 // Nombre max de joueurs en plus dans une team avant équilibrage
mp_hostagepenalty 5 // Nombre max d'otages tués par un CT avant une punition
sv_voiceenable 1 // Micro activé
mp_allowspectators 1 // Spectateurs autorisés
mp_timelimit 25 // Durée d'une map (en minutes)
mp_chattime 10 // Temps de discussion entre joueurs avant changement de map (en seconde)
sv_timeout 65 // Temps avant l'éjection d'un joueur qui ne répond plus (en seconde)
mp_freezetime 6 // Durée d'immobilisation des joueurs en début de round (en seconde)
mp_roundtime 5 // Durée d'un round (en minute)
mp_startmoney 800 // Argent de départ avec le quelle les joueurs commencent la map
mp_c4timer 45 // Durée du timer de la bombe (en seconde)
mp_maxrounds 0 // Nombre max de round avant de changer de map
mp_winlimit 0 // Nombre max de victoire pour une équipe avant de changer de map
mp_spawnprotectiontime 5 // Durée de protection des joueurs avant début de round (en seconde)
decalfrequency 60 // Temps entre 2 poses de tags par un même joueur
fps_max 300
sv_maxrate 0 // Quantité max de octets/seconde que le serveur envoie au client
sv_minrate 15000
sv_maxupdaterate 66 // Quantité max de update/seconde que le serveur envoie au client
sv_minupdaterate 30
sv_mincmdrate 30
sv_maxcmdrate 66
log on // Activation des logs du serveurs (répertoire /logs)
sv_logbans 1 // Enregistre les joueurs bannis
sv_logecho 1
sv_logfile 1
sv_log_onefile 0
sv_lan 0 // Défini si le serveur est un serveur locale (1) ou en ligne (0)
sv_region 3 // Définis la région on se trouve le serveur (3 pour l'Europe)
exec banned_user.cfg // Liste SteamID bannis
exec banned_ip.cfg // Liste IP bannis
L’autre fichier de configuration qui nous intéresse ici s’appelle autoexec.cfg. Il se charge au lancement du serveur (fichier exécuté une seule fois au démarrage du serveur), ce fichier n’est pas créé par défaut, il faut donc le créer.
nano ~/hlds/srcds/css/cstrike/cfg/autoexec.cfg
Nous allons le laisser vide, bas houé ! (il n’est pas utile pour le moment)
Ajouter des maps Counter-Strike:Source
Il convient d’ajouter des maps qui correspondent au ton de votre serveur et aux désirs des membres de votre clan ou de vos visiteurs.
Les maps (.bsp et parfois .nav) doivent être stockés dans le répertoire ../maps qui se trouve à la racine de notre serveur (../cstrike/maps). Une fois stockés, il faut les ajouter au mapcycle.txt et maplist.txt.
Pour cela, il suffit d’éditer le fichier mapcycle.txt qui se trouve aussi à la racine de notre serveur (../cstrike/mapcycle.txt) et d’y rajouter le nom de la carte récemment installée sans l’extension .bsp, idem pour maplist.txt. Elle sera prise en compte dès la prochaine carte jouée sur notre serveur, sans même avoir besoin de le redémarrer.
nano ~/hlds/srcds/css/cstrike/mapcycle.txt
nano ~/hlds/srcds/css/cstrike/maplist.txt
Note :
Vous trouverez une quantité incroyable de maps pour votre serveur sur le site GameBanana.
Personnalisation du MOTD Counter-Strike:Source
Ce Message Du Jour, en français, est la page qui s’affiche lorsque nous nous connectons sur un serveur (quelque soit le mod). Ce message est utilisé pour présenter le serveur, son clan, ses règles, etc…
Bien que ce fichier ait une extension .txt, son contenu est bel et bien du HTML, ainsi si vous avez quelques connaissances en HTML vous allez pouvoir vous faire une belle page de présentation. Ce fichier a quand même quelques limites, son contenu ne doit pas dépasser 1457 caractères.
Le contenu de cette page est stocké dans le fichier motd.txt qui se situe à la racine de notre serveur (../cstrike/motd.txt).
nano ~/hlds/srcds/css/cstrike/motd.txt
Voici un exemple basique qu’il ne nous restera qu’à personnaliser. Cet exemple va nous permettre d’insérer une image, un texte et le lien d’une page Web. Nous n’avons qu’à modifier les url dans le texte qui suit (écrit en bleu). Nous pouvons bien sûr, modifier le reste du texte (écrit en vert), qui correspond au texte qui sera écrit sur la page une fois affichée.
<html><head><title>Cstrike MOTD</title>
<style type="text/css">
pre { font-family:Verdana,Tahoma; color:#FFB000; }
body { background:#000000; margin-left:8px; margin-top:0px; }
a { text-decoration: underline; }
a:link { color: #FFFFFF; }
a:visited { color: #FFFFFF; }
a:active { color: #FFFFFF; }
a:hover { color: #FFFFFF; text-decoration: underline; }
</style>
</head>
<body scroll="auto">
<div align="center">
<pre>
<img src="http://url.de.limage.que.vous.voulez/mon.fichier.image.jpg">
Bienvenue sur le serveur
Quelques règles à respecter :
* pas d'insultes !
* pas de camp, si vous êtes fatigués allez dormir mais pas ici
* pas de cheats , nous avons votre steam id et n'hésiterons pas à vous dénoncer
Ici nous jouons pour le fun, pas de moqueries envers un joueur moins bon
respectez ces règles et tout se passera le mieux du monde
Bon jeu a tous !
<a href="http://url.du.lien.que.vous.voulez">Visitez mon site</a>
</pre>
</div></body></html>
Pour afficher une page Web, nous n’avons qu’à modifier l’url dans le texte qui suit (écrit en bleu).
<html><head><title>Cstrike MOTD</title>
<style type="text/css">
pre { font-family:Verdana,Tahoma; color:#FFB000; }
body { background:#000000; margin-left:8px; margin-top:0px; }
a { text-decoration: underline; }
a:link { color: #FFFFFF; }
a:visited { color: #FFFFFF; }
a:active { color: #FFFFFF; }
a:hover { color: #FFFFFF; text-decoration: underline; }
</style>
</head>
<body scroll="auto">
<div align="center">
<pre>
<meta http-equiv="refresh" content="0 ;url=http://url.du.site.que.vous.voulez">
</pre>
</div></body></html>
Lancement du serveur de jeu Counter-Strike:Source
Votre serveur Counter-Strike:Source est installé dans le dossier ../hlds/srcds. Vous allez maintenant lancer le programme appelé srcds_run.
Pour lancer votre serveur de jeu, vous allez vous placer dans le dossier ../css (../hlds/srcds/css), puis vous lançez le serveur, en exécutant le programme srcds_run suivi de divers paramètres (Liste complète des paramètre).
cd ~/hlds/srcds/css/
./srcds_run -game cstrike -port 27015 +maxplayers 20 +map de_dust2 -tickrate 66 -autoupdate
- srcds_run : Nom de l’executable (SouRCe Dedicated Server)
- -game cstrike : Lance la version serveur Counter-Strike:Source (« -game tf » pour une installation de Team Fortress 2)
- -port : Le port d’écoute de votre serveur (27015 est le port par défaut pour le 1er serveur)
- +maxplayers : Le nombre de joueurs maximum (64 joueurs est le maximum)
- +map : Le nom de la map de départ
- -tickrate : Le taux de mise à jour des positions des joueurs sur le serveur (100 est le maximum)
- -autoupdate : Met à jour automatiquement le serveur
Et voilà, notre serveur est lancé !
- Connection to Steam servers successful : Notre serveur est visible de tous sur steam.
- VAC secure mode is activated : Notre serveur est sécurisé contre la triche.
Pour arrêter votre serveur,il faut taper exit et/ou maintenir les touches Ctrl + C.
Utilisez Screen pour créer une session détachée en arrière-plan, permettant d’exécuter des commandes sans bloquer le terminal et de s’y rattacher plus tard.
Il suffit d’installer le paquet.
sudo aptitude install screen
Puis.
screen -dmS NOM_DE_LA_SCREEN ./srcds_run -game cstrike -port 27015 +maxplayers 20 +map de_dust2 -tickrate 66 -autoupdate
Pour accéder à la session de terminal Screen et voir votre serveur (histoire de voir ci tout marche bien !).
screen -r NOM_DE_LA_SCREEN
Pour arrêter la session de terminal Screen et votre serveur.
screen -dr NOM_DE_LA_SCREEN -X quit
Si vous êtes dans une session de terminal Screen (via screen -r), maintenez Ctrl + C pour interrompre le serveur.
Note :
La variable -tickrate permet de définir la fréquence de mise à jour des informations clients, elle peut aller de 40 (par défaut) à 100. Plus elle est élevé moins il y aura de décalage entre les informations client et serveurs, mais plus elle est élevé plus la charge processeur (CPU) augmente. Valve Corporation recommande un -tickrate 66.
Un tickrate élevé permet par exemple de ne pas avoir un joueur qui viens de se mettre à l’abris tué par un joueur qui ayant un décalage dans les information de position le voit toujours en face de lui.
Pour faire bref, plus le tickrate est élevé plus les informations relatives à la position des joueurs sont précises et moins nombreuses sont les plaintes des joueurs !
Note :
Voici un script qui vous permet de lancer, stopper et visualiser l’activité d’un serveur Counter-Strike:Source. Pour utiliser ce script vous devez l’éditer pour modifier si besoin les paramètres de configuration puis le rendre exécutable et l’exécuter.
nano serveurcss
#!/bin/bash
#programme pour demarrer, arreter et visualiser un serveur Counter-Strike:Source
#--------------------------------
#PARAMETRES DE CONFIGURATION
#--------------------------------
rep='/home/mic/hlds/srcds/css/' #repertoire execution de ./srcds_run
screen='serveurCSS' #nom de la screen
jeu='cstrike' #jeu Counter-Strike:Source
port='27015' #port du serveur
map='de_dust' #map de depart
players='20' #nombre de joueurs max
tick='66' #tickrate du serveur
#--------------------------------
VERT="\\033[1;32m"
NORMAL="\\033[0;39m"
clear
while true
do
echo -e "
******************************************************************************
* *
* demarrer/arreter/visualiser Counter-Strike:Source serveur *
* *
******************************************************************************
"$VERT"1"$NORMAL" = Demarrer le serveur Counter-Strike:Source
"$VERT"2"$NORMAL" = Arreter le serveur Counter-Strike:Source
"$VERT"3"$NORMAL" = Voir la console du serveur Counter-Strike:Source
(Tapez "$VERT"1"$NORMAL", "$VERT"2"$NORMAL" ou "$VERT"3"$NORMAL" puis "$VERT"ENTREE"$NORMAL") (Ctrl+C pour quitter)"
echo
read -p ' Veuillez entrer votre choix : ' reponse
echo
case $reponse in
1)
echo -e " "$VERT"Vous avez choisi de demarrer le serveur Counter-Strike:Source"$NORMAL""
;;
2)
echo -e " "$VERT"Vous avez choisi d arreter le serveur Counter-Strike:Source"$NORMAL""
;;
3)
echo -e " "$VERT"Vous avez choisi de voir la console du serveur Counter-Strike:Source"$NORMAL""
;;
*)
echo -e " "$VERT"Erreur, vous devez taper 1 ou 2 ou 3"$NORMAL""
;;
esac
sleep 2
if test $reponse -eq 1; then
echo " Demarrage du serveur Counter-Strike:Source..."
cd $rep
screen -dmS $screen ./srcds_run -console -game $jeu -port $port +map $map -maxplayers $players -tickrate $tick -autoupdate
elif test $reponse -eq 2; then
echo " arret du serveur Counter-Strike:Source..."
screen -dr $screen -X quit
elif test $reponse -eq 3; then
echo " console du serveur Counter-Strike:Source..."
screen -r $screen
else
echo " Erreur: entrez un des chiffre proposes"
fi
done
Une fois que vous avez modifier les paramètres (si besoin), vous pouvez continuer.
chmod a+x serveurcss
sh serveurcss
Voila, amusez-vous bien.