MatchMod for MetaMod
M4 (MatchMod for MetaMod) est un plugin MetaMod (donc) (AdminMod ou HLGuard en sont d'autres) se servant d'une base de données MySQL et d'une interface web en PHP. Une version 'light' est également disponible, n'utilisant pas de base MySQL ni d'interface web.

Présenté et utilisé en avant-première à la BurdigaLAN, lan-party de 400 joueurs (dont les meilleures équipes françaises : aAa, nGK...) sur Bordeaux les 22, 23 et 24 mars 2002.

Mais à quoi peut-il bien servir ?

M4 est un soft de gestion de matchs de tournoi. Attention, à ne pas confondre avec un pack de gestion de tournois (PHPLanArena par exemple).



Sans M4

Etre administrateur de serveur lors d'une lan est tâche difficile. Vous vous retrouvez devant 4, 8, 16 consoles de serveurs, à regarder défiler les logs. Au mieux, vous utilisez un logiciel de gestion à distance avec support rcon (comme HLSW ou AgentOrange).

Dans tous les cas, vous papotez avec les joueurs, demandez s'ils sont prêts, faites les restarts nécessaires à la remise à zéro des scores... Vous surveillez la fin du match aller, et c'est reparti pour le match retour. Et re-belote s'il y a égalité : prolongations...

Bref, c'est très rébarbatif. Et plus on a de serveurs à gérer en même temps, plus c'est décourageant.



Avec M4

Vous disposez d'une interface web simpliste, intuitive et concise. Vous rentrez la liste des clans participant au tournoi. Chacun se voit attribuer un numéro. Vous avez ensuite une liste de vos serveurs, et pouvez facilement assigner un match à chacun.

Côté joueurs, si comme toute lan qui se respecte vous fournissez un gui, vous pouvez intégrer facilement deux choses : un champ indiquant le clan du joueur (setinfo clan X, X étant le numéro identifiant le clan dans l'interface web), et une touche bindée sur une commande spécifique à M4 (configurable, par exemple le nom de la lan).

Lors de parties publiques, cette touche rappelle le clan d'appartenance en fonction du setinfo. Lors d'un match : voir ci-dessous.



Lancement d'un match

  • vous lancez le serveur en trois clics sur l'intranet
  • le serveur se configure, va chercher dans la base toutes les infos sur le match (clans, map, CVARs), et décide au hasard quel clan va commencer dans quel camp
  • attente d'au moins un joueur par équipe pour commencer le warm-up (échauffement)
  • le warm-up dure X (10) minutes maximum, et peut être abrégé si tous les joueurs sont prêts ; comment font-ils pour dire qu'ils sont prêts ? par la touche M4 bien sûr :-)
  • le serveur observe en permanence les numéros de clans des joueurs connectés, et les place en fonction (Terro, CT, Spectateur)
  • à la fin du warm-up : deux restarts
  • début du match aller
  • en cours de match, la touche M4 sert à afficher le score global, ce qui est en outre fait à chaque début de round
  • à chaque fin de round, le serveur rappelle le score en cours et le score global (incluant les scores des phases précédentes s'il y en a)
  • fin du match aller (m4 peut gérer des matches en roundlimit, timelimit, co-rules et winlimit)
  • temps de latence après le match aller, échange automatique des camps
  • deux restarts, match retour
  • fin du match retour
  • éventuellement prolongations (en maxround 3, aller et retour)
  • fin du match, envoi du score définitif dans la base de données, affichage du clan gagnant



Et puis aussi...

En permanence, une page d'état des matchs est disponible sur l'intranet (éventuellement sur un vidéoprojecteur), rappelant l'avancement des matchs (warm-up, aller, retour, prolongations), les deux équipes s'affrontant et le camp de chacune, et le score global.

A noter également que les serveurs envoient toutes les cinq secondes dans la base la liste des joueurs connectés, ce qui est bien pratique en intranet pour retrouver quelqu'un (fonction actuellement indisponible).


Je ne vois rien à rajouter... Si vous voulez plus d'infos, vous savez où me trouver !


Mais moi j'ai juste un serveur que je paye pour mon clan !

Hé hé hé... Il y a quelques temps j'aurais dit « ah ben non m4 c'est que pour les lans ! » ; mais ça tombe bien : une version "light" est désormais disponible, permettant de bénéficier de toute la partie in-game de m4 (placement automatique des joueurs, warm-up, restarts) ! Plus de limites à l'amusement, puisque vous pouvez donc utiliser m4 sur votre petit serveur de clan tout seul sans base MySQL derrière...



Pour le téléchargement, ça se passe comme d'hab sur cette page !
Sinon vous avez aussi le changelog ci-dessous (oui, qu'en Anglais !).
ChangeLog
v0.90d - Nov 2002, 1 latest development beta
(light mode is not concerned by this update ; changes are only for full mode)
  • overtime (scores tied) not obliged anymore, configurable (default : on)
  • fixed php interface not displaying the correct amount of remaining rounds
  • changed cvar values size to 128 chars (prev. 32) in mysql table
  • hid rcon password from hlds console & logs
  • removed some php warnings (undefined variables)



v0.90c - Sep 2002, 9 development beta
  • removed phprcon code
  • added "mysql-rcon" feature & multi-threading
  • fixed crashes when no-team players sent "m4" command



v0.90b - Sep 2002, 8 development beta
  • fixed php warnings ('notices') with iis (full mode)
  • fixed motd bug with chooseteam vgui on connection
  • changed m4_motd cvar (light) / motd config field (full) :
    . 0 : console OFF / motd OFF
    . 1 : console ON / motd OFF
    . 2 : console OFF / motd ON
    . 3 : console ON / motd ON
    (default : 3)
    ("console" : console connection message
     "motd" : graphical motd right after game entrance ; ON=override counter-strike's motd when not running a match)



v0.90 - Sep 2002, 3
  • now addon development standards compliant
  • added 'motd-like' in-game information messages
  • added match rules (cf. light.cfg / 'create' web page) :
    . timelimit
    . winlimit
    . count only one team's wins ('t', 'ct', or 'attackers' for co-rules)
      (only supported in timelimit matches) (otherwise they'd never end :p)
  • server now goes back to a normal state 90 seconds after a match
    (reloads normal config & reloads the map)
  • added ability to disable console connection message (default:enabled)
    . light mode : "m4_motd" (0/1) cvar
    . full mode : global configuration page
  • fixed "Public #1" hostname bug in full mode
  • fixed server crashing when client using hlirc
php interface
  • removed admin features from fullscreen status page
  • added map column (status page)
  • added 'remaining' (time/rounds/wins) column (status page)
    (also displays warmup's remaining time)



v0.85 - Aug 2002, 1
  • cleaned mysql error messages
  • added light mode (no mysql, no php) for individual online servers
    (see m4-light.txt)
  • added english language support
  • added clan password support (optional) (full mode only)
  • added ability to specify which team begins Terrorist (& CT)
  • moved config files to cstrike/m4 subfolder
  • m4/mysql.cfg is now loaded automatically
  • server number / light mode can be specified on hlds commandline
    (see readme.txt)
php interface
  • fixed global variables issues with php 4.2.x
  • added a page to issue rcon commands (beta version)



v0.81 -- Jul 2002, 16
  • added hostname customization
  • added more verbose mysql error messages
  • fixed win32 crashing when creating timer
engine
  • removed some dead code
  • win32 binary (m4.dll) :
    now built with gcc-2.95.2 (linux cross-compilation)
    with custom builds for mysqlclient (3.23.49) & zlib (1.1.4) libraries
  • linux binary (m4_i386.so) :
    built with mysqlclient library version 3.23.51
  • changed general timer from entity/nextthink to gpGlobals->time checks
php interface
  • fixed login button type (from 'button' to 'submit')



v0.80 -- Jul 2002,15
  • first public release