====== Installation d'un serveur Counter-Strike: Source ====== par **Flubber**, pour Gandi ===== I - Téléchargement de HL-Dedicated Server ===== Le principe du serveur source est le même pour tout les mods (du moins ceux proposés officiellement par valve) conçus sous ce moteur, par exemple Counter Strike Source, Half Life 2 Deathmatch ou encore Team Fortress 2.\\ Il faut en premier lieu télécharger le serveur puis les fichiers correspondants au jeu à installer. Commençons par créer un répertoire pour le déploiement de l'utilitaire d'installation puis téléchargeons le fichier. (Source Dedicated Server soit **srcds**) cd srv mkdir srcds cd srcds wget http://storefront.steampowered.com/download/hldsupdatetool.bin chmod +x hldsupdatetool.bin Lançons maintenant la mise à jour de cet utilitaire et de steam. ./hldsupdatetool.bin ./steam ===== II - Installation des fichiers du jeu ===== Il faut maintenant récupérer les fichiers du jeu correspondants à celui voulant être installé, dans notre cas **Counter-Strike Source**. Créons tout de même un répertoire pour ceux-ci. mkdir css ./steam -command update -game "Counter-Strike Source" -dir css Autant vous prévenir que cette partie de l'installation est de loin la plus longue ! Si vous souhaitez accélérer le téléchargement et le traitement de tous les fichiers, vous pouvez prendre quelques parts de plus le temps de l'installation. Cette commande est la même à utiliser lorsque vous voulez mettre à jour votre serveur si vous n'utilisez pas l'autoupdate, comme nous le verrons plus bas Nous indiquons donc à steam de mettre à jour l'installation (**-command update**) du jeu Counter Strike Source (**-game "Counter-Strike Source"**) dans le répertoire actuel (**-dir .**). Dans notre cas elle est inexistante : le jeu sera donc intégralement téléchargé. Pour installer d'autres mods, il suffit de changer "Counter-Strike Source" par le nom du mod, par exemple "TF" pour Team Fortress 2, "hl2mp" pour HL2-Deathmatch. Une fois le téléchargement terminé, il est bon de vérifier que les fichiers sont tous en bon état. Cette étape n'est pas obligatoire mais elle prend peu de temps et nous assure le bon fonctionnement du serveur. ./steam -command update -game Counter-Strike Source -dir css -verify_all Le serveur de jeu est maintenant complètement téléchargé et prêt à être lancé. Mais il faut le configurer afin d'obtenir un serveur personnalisé et surtout optimisé. ===== III - Personnalisation du serveur ===== ==== A - Le server.cfg ==== Toute les informations nécessaires au serveur se trouve dans le fichier **server.cfg** qui se trouve lui même dans le répertoire **cfg** qui est lui-même dans le répertoire **cstrike** qui se trouve dans **css**. Je résume :\\ cd /srv/srcds/css/cstrike/cfg/ Si il n'existe pas, créez le.\\ Voici les informations de base à lui fournir. Il existe énormement de variables qu'il serait inutile de présenter toutes ici, mais que vous trouverez sans soucis sur le web. C'est assez indigeste comme ça, mais il est nécessaire de connaitre un minimum ces variables pour bien administrer son serveur. **server.cfg** // Nom du serveur - Mettez ici le nom de votre serveur hostname "Server Counter-Strike Chez le Père Flubber @ Gandi" // Mot de passe rcon (ceci est le mot de passe pour l'administration de votre serveur ne le communiquez à personne) rcon_password "motdepasse" // Mot de passe du serveur (Ici vous pouvez mettre un mot de passe pour accéder au serveur, laissez le vide si vous désirez ouvrir un serveur public) sv_password "" **cvars Serveur** (ici commence la longue liste des variables serveurs)\\ Dans la majorité des cas :\\ **0 désactive la fonction**\\ **1 active la fonction**\\ Parfois il faut rentrer une valeur, en particulier sur les variables de temps.\\ Les valeurs commentées (par %%//%%) sont les plus importantes. // active le tir-amis mp_friendlyfire 0 mp_footsteps 1 mp_autoteambalance 1 // Ejection automatique du joueur mp_autokick 0 // Autorise la lampe de poche mp_flashlight 0 //Punition automatique pour team-killing mp_tkpunish 1 //Bloque la caméra des joueurs morts mp_forcecamera 0 //active la discussion vocal pour les deux équipes sv_alltalk 0 //Permet de mettre le serveur en pause sv_pausable 0 //Autorise la triche sv_cheats 0 //Vérifie l'intégrité des données afin que le client et le serveurs aient bien les mêmes fichiers sv_consistency 1 //Autorise l'upload et le download. (des tags par exemple ou des cartes que vous avez ajoutées) sv_allowupload 1 sv_allowdownload 1 sv_maxspeed 320 mp_limitteams 2 mp_hostagepenalty 5 sv_voiceenable 1 mp_allowspectators 1 //Durée de chaque carte (en minute) mp_timelimit 25 mp_chattime 10 //Durée avant l'éjection d'un joueur qui ne répond plus (en seconde) sv_timeout 65 // variables de round //Durée ou les joueurs sont immobilisés en début de round (en seconde) mp_freezetime 6 //Durée d'un round (en minute) mp_roundtime 5 //Montant avec le quelle les joueurs commencent le round mp_startmoney 800 //Durée du timer de la bombe mp_c4timer 45 //Nombre maximum de round avant de changer de carte mp_maxrounds 0 //Nombre maximum de victoire pour une équipe avant de changer de carte mp_winlimit 0 //Durée de protection des joueurs avant le début d'un round (en seconde) mp_spawnprotectiontime 5 **Réglages du réseau**\\ Ces paramètres permettent de forcer les machines des joueurs à transmettre les informations à la même vitesse, afin que tout les joueurs soient logés à la même enseigne et ce quelque soit la rapidité de leur connexion. sv_minrate 4000 sv_maxrate 8000 decalfrequency 60 sv_maxupdaterate 100 sv_minupdaterate 60 // Logs du serveur //Active l'enregistrement des journaux du serveurs (répertoire /logs) variables:on/off log on //Enregistre les joueurs bannis sv_logbans 1 sv_logecho 1 sv_logfile 1 sv_log_onefile 0 //Divers //Défini si le serveur est un serveur locale ou en ligne (Toujours laissé cette variables sur 0) sv_lan 0 //Définis la région on se trouve le serveur (Pour l'Europe c'est 3) sv_region 3 //désactive le système de prix dynamique de valve (très peu de serveurs l'utilisent) mp_dynamicpricing 0 // execute ban files //Le serveur va lire la liste des steam_id bannis exec banned_user.cfg //Le serveur va lire la liste des ips bannis exec banned_ip.cfg Si vous ne voulez pas faire vous même votre server.cfg, il existe des générateurs automatiques qui vous permettent de générer un cfg configuré avec vos variables.\\ Par exemple : http://www.cstrike-planet.com/cfgmaker?cfg=srcds ==== B - Ajouter des maps ==== Aujourd'hui, peu de serveurs ne tournent qu'avec les cartes d'origines. En effet, les joueurs les ont joués des centaines de fois, voire plus.\\ Il convient d'ajouter des cartes qui correspondent au ton de votre serveur et aux désirs des membres de votre clan ou de vos visiteurs.\\ Difficile ici de vous donner des conseils sur quelles cartes il est préferable d'installer. Je ne peux que vous conseiller un site qui, pour moi, est une référence : [[http://www.fpsbanana.com/|fpsbanana.com]] qui liste quasiment toutes les cartes créées par les mappeurs et qui met à disposition un top des cartes les plus téléchargées. Les cartes doivent être copiées dans le répertoire "**maps**" qui se trouve à la racine de votre installation. \\ Une fois copié, il faut les ajouter au **mapcycle**. Pour cela, rien de plus simple : il suffit d'éditer le fichier **mapcycle.txt** qui se trouve lui aussi à la racine de votre serveur et d'y rajouter le nom de la carte récemment installée et enfin de le sauvegarder.\\ Il sera pris en compte dès la prochaine carte jouée sur votre serveur, sans même avoir besoin de le redémarrer. Le moteur d'half-life 2 inclu un décompresseur bzip. Celui-ci permet d'accélérer grandement le téléchargement des cartes par les clients connectés car ceux-ci récupèrent la version compressée de la carte au lieu de la version complète.\\ Tout les fichiers devant être récupérés par le client peuvent être compressés. Il convient de procéder ainsi : cd maps bzip2 nouvellecarte.bsp Vous obtiendrez alors un fichier //**nouvellecarte.bsp.bz2**// qui prendra moitié moins de place que la carte d'origine, divisant ainsi par deux la durée de téléchargement pour les joueurs.\\ à savoir qu'il est possible de tout compresser, les fichiers .bsp pour les cartes, mais aussi les fichiers texte les accompagnant ainsi que les sons que vous voudriez ajouter. :!: Il est possible de créer un miroir de téléchargement afin de ne pas surcharger le serveur lorsqu'un joueur ne possède pas la carte. Sur ce serveur il est impératif de conserver la même architecture que sur le serveur de jeu.\\ Par exemple, imaginons que mon miroir se trouve sur %%"http://www.miroircss.com"%%. Je dois alors créer un répertoire css dans lequel je crée un répertoire maps où je placerais les nouvelles cartes ainsi que leurs versions .bz2 (il est nécessaire de mettre les deux). Une fois le miroir en place il faut ajouter ceci dans le fichier **server.cfg** : // Taille maximum autorisée pour les fichiers à télécharger (Valeur d'origine 15Mo) net_maxfilesize 60 //Indique l'adresse du miroir sv_downloadurl "http://www.miroircss.com/css/" Une fois le miroir mis en place, plus rien n'est téléchargé sur le serveur de jeu : le miroir devient la source exclusive de fichiers pour les joueurs. Si vous installez une carte sur votre serveur de jeu et que vous oubliez de la mettre sur le miroir, les joueurs ne pourront pas la télécharger. ===== IV - Lancement du serveur ===== Après cette longue, mais nécessaire, phase de configuration, il est temps maintenant de lancer notre serveur CS:S.\\ Placez-vous dans le répertoire **/srcds/** et lancez le Source Dedicated Server de la manière suivante : Dans notre exemple le serveur va avoir 24 places, un tickrate de 100 et va se lancer sur la carte de_dust2. cd /srv/srcds/css/ ./srcds_run -console -game cstrike +map de_dust2 -maxplayers 24 -autoupdate -tickrate 100 L'information 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.\\ 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 :) Il est évidemment tout à fait possible de lancer le serveur CS:S dans un screen, afin de conserver un accès à la machine, pour cela il suffit de lancer le serveur de cette manière : screen -A -m -d -S css-server ./srcds_run -console -game cstrike +map de_dust2 -maxplayers 24 -autoupdate -tickrate 100 Un screen css-server sera créé, pour y accéder tapez : screen -x css-server Voila, amusez-vous bien, et n'hésitez pas à poser vos questions à la communauté.