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é
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¶m=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/
