Les fichiers .scr

Écrit le 03/07/2003 par Bob le Pointu
Dernière mise à jour : 30/01/2006

Les fichiers .scr, c'est quoi ?

Non, ce ne sont pas seulement les économiseurs d'écran de l'OS le plus utilisé dans les ordinateurs personnels. Il s'agit aussi des fichiers utilisés par Half-Life pour générer les interfaces des options, pour le joueur, lorsque vous cliquez sur [personnaliser], ou pour la création d'un serveur, lorsque vous cliquez sur [options avancées]. Dans le dossier racine du mod, vous constaterez qu'il y a deux fichiers portant l'extension .scr : user.scr et settings.scr.

Généralités

Le fichier user.scr se rapporte aux options du joueur, le fichier settings.scr à celles du serveur, mais leur syntaxe est la même.
Il suffit d'en éditer un avec n'importe quel éditeur de texte pour s'apercevoir qu'une aide sur la syntaxe est contenue dans le fichier lui-même ! Sympa, non ? Cette aide étant en anglais, et la majorité des visiteurs de ce site ne l'étant pas, une traduction en français serait appréciée.
Ce fichier affiche des objets qui sont liés à une cvar.

Syntaxe générale

En règle générale, la syntaxe est de cette forme :

"cvar" { "Prompt" { type [ type info ] } { default } }

Notez que cette syntaxe s'écrit souvent sur plusieurs lignes pour en faciliter la lecture (ou en améliorer la lisibilité, prenez la formule qui vous plait le plus ;p). Ceci donnerait :

"cvar"
{
    "Prompt"
    { type [ type info ] }
    { default }
}

cvar : nom de la cvar que vous désirez associer à l'objet
Prompt : message accompagnant l'objet
type : type de données valides
default : valeur par défaut de la cvar

Types de données & exemples

Il existe quatre types de données :

BOOL : type booléen, affichera une case à cocher. À utiliser si votre cvar ne peut avoir que deux valeurs, 0 ou 1.
STRING : type chaîne, affichera une zone de texte. À utiliser si votre cvar se présente sous forme de texte.
NUMBER : type nombre, affichera un nombre décimal. À utiliser si votre cvar peut prendre un grand nombre de valeurs.
LIST : type liste, affichera une liste déroulante. À utiliser si votre cvar peut prendre des valeurs finies et entières.
Passons aux exemples tout droit sortis du fichier settings.scr de Half-Life originel :

"mp_teamlist"
{
    "Equipes validées, laisser vierge pour tous"
    { STRING }
    { "robo;hgrunt" }
}

Ici, c'est la variable mp_teamlist qui est concernée. Dans l'interface, un message annoncera : « Equipes validées, laisser vierge pour tous » (moi j'aurais mis [toutes]...). Le type STRING est utilisé, il faudra donc entrer une chaîne, qui, par défaut, sera : « robo;hgrunt ».

"mp_fraglimit"
{
    "Limite tués"
    { NUMBER 0.000000 -1.000000 }
    { "0.000000" }
}

Ici, c'est la variable mp_fraglimit qui est concernée. Il faudra entrer un nombre entre 0 et... beaucoup, -1 signifiant qu'il n'y a pas de limite théorique. Par défaut, elle est à 0 ce qui implique qu'il n'y a pas de limites.

"mp_falldamage"
{
    "Dégâts de chute"
    {
        LIST
        "Normaux" "0"
        "Réalistes" "1"
    }
    { "0.000000" }
}

Variable mp_falldamage, gérée sous forme de liste déroulante pouvant prendre les valeurs 0 ou 1. Notons que les listes déroulantes n'affichent que les titres (Normaux, Réalistes). On aurait pu dans ce cas mettre un type booléen puisqu'il n'y a que deux valeurs possibles. Par défaut elle est sur 0, or 0 correspond à Normaux, les dégâts sont donc [Normaux] par défaut.

"mp_friendlyfire"
{
    "Tir fraternel"
    { BOOL }
    { "0" }
}

Ceci gère le FF, sous forme de case à cocher, par défaut désactivé, donc à 0.

Bien, je pense que c'est tout pour cette fois, merci à Croustimiel[HLP] pour m'avoir suggéré à l'insu de son plein gré l'idée de ce tutorial.