posté le 02/07/2007 à 01h04
Comme j'ai eu un peu de mal à trouver de la bonne documentation pour l'installation d'un serveur Counter-Strike sous Linux, j'ai décidé de compiler les informations utiles dans ce billet.
J'explique également comment installer le plugin AMX et déployer des statistiques avec PsychoStats... avec un peu de tuning en bonus !


1. Récupération du serveur dédié

Le programme d'installation décompresse l'archive dans le répertoire  "/usr/steam", donc il faut préparer le terrain.
Téléchargez ensuite l'archive du serveur dédié. Les sites officiels renvoient sur des serveurs de téléchargement où il faut créer un compte. Je vous conseille donc d'utiliser un des nombreux mirroirs disponibles.
Avec un utilisateur ayant les droits suffisants, lancez donc :

mkdir /usr/steam
wget http://www.cs-amx.com/bonus/hlds_l_1120_full.bin
chmod +x hlds_l_1120_full.bin
./hlds_l_1120_full.bin

Récupérez ensuite l'archive .tgz dans le répertoire "/usr/steam", et vous pouvez continuer avec un utilisateur normal.


2. Installation du serveur dédié

On décompresse donc l'archive qui va créer un répertoire "hlds_l" contenant le serveur dédié Half-Life.
On lance deux commandes Steam pour mettre à jour le moteur et Counter-Strike.

tar zxvf hlds_l_1120_full.tgz
cd hlds_l
./steam update
./steam -command update -game cstrike -dir .

Vous pouvez ensuite éditer la configuration de votre serveur.
De mon côté j'ai changé le fichier "cstrike/motd.txt" pour modifier le message d'accueil, et le fichier "cstrike/mapcycle.txt" pour sélectionner mes cartes préférées.
Enfin, j'ai rajouté les commandes suivantes au fichier "cstrike/server.cfg" :

log on
mp_logdetail 3
rcon_password mot_de_passe

Ceci va permettre de produire des fichiers de log contenant tous les détails de la partie.
Le mot de passe va permettre d'administrer le serveur à distance depuis la console dans le jeu.

Le serveur dédié de base est prêt.


3. Installation de AMX

AMX est un plugin qui permet d'ajouter certaines commandes utiles pour les joueurs et les administateurs.
Il est lui-même extensible à l'aide de plugins qui rajoutent toutes sortes de fonctionnalités plus ou moins utiles...
Une des options utile pour moi est que ce plugin améliore le fichier de log, en ajoutant notamment la localisation des dégâts ce qui est très utiles pour les statistiques.
Téléchargez une version adaptée depuis la page de téléchargement.
Sur ma distribution Debian Etch, j'ai du installer le paquet "libstdc++5" pour être compatible avec les binaires de base fournis.
Décompressez l'archive depuis le répertoire "cstrike" et copiez la configuration de base :

tar jxvf amx-0.9.9-steam.tar.bz2
cd addons/metamod
cp sample_plugins.ini plugins.ini


4. Lancement du serveur dédié

Voici le script que j'utilise pour lancer mon serveur dédié Counter-Strike :

screen -dmS cs nice ./hlds_run -game cstrike +maxplayers 16 +map de_dust2 +port 27015 -dll addons/metamod/dlls/metamod_i386.so

Le "nice" est facultatif, je l'ai mis chez moi comme le serveur Counter-Strike n'est pas ma priorité grin
Pour vérifier que tourne bien, lancez "screen - r cs" et vous devriez récupérer la console de votre serveur dédié.
En tapant "meta list" vous pouvez vérifier que les plugins AMX sont bien chargés et fonctionnent :

Currently loaded plugins:
      description      stat pend  file              vers      src  load  unlod
 [ 1] AMX              RUN   -    amx_mm_i586.so    v0.9.9    ini  ANY   ANY 
 [ 2] CSStats          RUN   -    csstats_mm_i586.  v0.9.9    ini  ANY   ANY 
 [ 3] Fun              RUN   -    fun_mm_i586.so    v0.9.9    ini  ANY   ANY 
3 plugins, 3 running


5. Installation de PsychoStats

Récupérez la dernière version sur la page de téléchargement.
Décompressez l'archive, et copiez le répertoire upload sur votre site web.
Connectez-vous sur le site et suivez les instructions.
Une fois l'installation terminée, pensez à ajouter une logsource pointant sur votre répertoire "cstrike/logs" dans la page d'administration.
Pensez également à récupérer le pack de cartes, et activez le support GD dans PHP.
Enfin, sur votre serveur, modifiez le fichier "~/psychostats/stats.cfg" et installez une crontab pour faire tourner les statistiques à intervalles réguliers, par exemple toutes les 15 minutes :

*/15 * * * * ~/psychostats/stats.pl

De plus, je trouvais le format des adresses pas très optimisé (notamment pour le référencement naturel).
PsychoStats utilise la bufferisation de sortie avec ob_start(), donc j'ai profité de ça pour modifier les adresses à la volée.
J'ai complété le fichier "includes/footer.php" comme suit :

$patterns = array(
        '#(player|clan|weapon|award|map)(\.php|[0-9]+\.html)\?id=([0-9]+)#',
        '#(player|clan|weapon|award|map)([0-9]+)\.html(\?|&)#',
);
$replace = array(
        '\1\3.html',
        '\1.php?id=\2&',
);
print preg_replace($patterns, $replace, ob_get_clean());

Les expressions régulières transforment les adresses de type "player.php?id=1" par "player1.html" (et les remettent sous la forme "player.php?id=1&param=2" si il y a plusieurs paramètres)...
Dans la configuration Apache j'ai rajouté la RewriteRule associée :

RewriteEngine On
RewriteRule ^/(player|clan|weapon|award|map)([0-9]+)\.html /$1.php?id=$2

Et enfin j'ai ajouté un fichier "robots.txt" pour éviter d'indexer les adresses de base avec des paramètres :

User-agent: *
Disallow: /player.php
Disallow: /clan.php
Disallow: /weapon.php
Disallow: /award.php
Disallow: /map.php

Voilà !
Pour voir ce que ça donne chez moi, ça se passe ici : http://cs.zerezo.com/

Commentaires

Pseudo :
Message :
(pas de HTML)

JakeHilfter [ 08/06 - 00:30 ] : Hi, cool post. I have been wondering about this topic,so thanks for writing.

Royale [ 26/03 - 12:51 ] : Mon tutorial utilise steam, donc je pense que ce n'est compatible qu'avec la version steam du client.
Pour un client 1.6 il doit falloir retrouver le serveur 1.6 de l'époque (sûrement disponible qq part sur le net).

SuperRéRé [ 26/03 - 10:59 ] : Ouais le tuto date mais bon qui sait... Donc voila j'ai fait les manips pour installer ca chez moi, sur mon serveur. Tout baigne ca se lance, mais impossible de trouver le serveur dans ma version "maison" de Cs1.6...

Ma question: est on obligé de passer par steam pour se connecter a un serveur CS1.6? N'y a t'il pas une méthode pour créer un serveur fonctionnant sous la version "locale" de CS 1.6 ?(fonctionnant parfaitement en réseau local, et avec les bots)

ANAS [ 11/01 - 16:29 ] : DSF

Royale [ 05/07 - 13:44 ] : C'est la version 1.6 je crois... Mais en fait on ne se pose plus trop la question car cette dernière version est mise à jour en permanence (grâce à Steam).

Eric [ 05/07 - 12:12 ] : C'est quelle version de Counter que tu fais tourner ?

Royale [ 02/07 - 01:20 ] : Bon d'accord les stats ne sont pas encore très remplies...

Infos TiBlog

Pseudo : Royale
Titre : Le blog de Royale
Description : Le blog de l'administrateur de TiBlog.fr où vous trouverez quelques détails techniques sur le fonctionnement de ce site.

Créer un blog !

blog gratuit

Recherche

Photo