Quelques informations avant de commencer:
Une connaissance de base de la programmation en C est nécessaire pour pouvoir suivre l'ensemble des tutoriaux proposés. Pour ceux-ci, je m'appuyerais essentiellement sur le logiciel Visual C++ (version 5 ou plus).
Avant de commencer, il vous faut télécharger le "standard System Develloppement Kit" qui contient l'ensemble des fichiers sources dont nous aurons besoin.
Contenu du standard System Develloppement Kit:
Le SDK est composé de 4 répertoires. Toutefois, en règle générale, seulemement les deux premiers (cl_dll et dlls) nous seront utiles.
Le 1er, cl_dll, vous permettra de compiler le fichier client.dll. Il contient les fichiers permettant d'informer le joueur sur son état (vie, armure, hud,...)
Le 2ème, dlls, vous permettra de compiler le fichier mp.dll. Il contient les fichiers des armes, des items, des objets et des règles de jeu.
Le troisième, engine, contient des déclarations de fonctions utiles pour pouvoir compiler vos dlls.
Le dernier, utils, regroupe divers outils qui ont servi pour la création du jeu comme qrad bien connu des mappers.
Retour en haut
Qu'est-ce qu'une dll:
Une dll (Dynamic Link Library) est une bibliothèque de fonctions qu'un éxécutable va pouvoir utiliser librement lors de son déroulement.
L'utilité d'une dll est de permettre aux dévelloppeurs de pouvoir modifier certaines de ces fonctions et d'en créer d'autres sans avoir à recompiler l'ensemble du programme. Un autre avantage est quelle peut-être utilisée par plusieurs progammes. Ainsi, la bibliothèque gdi32.dll est très souvent utilisée pour tout ce qui concerne l'affichage comme tracer des lignes, des points,...
Dans Half-life, les dlls contiennent tout ce qui permet au moteur du jeu de savoir ce qu'il a à faire.
Retour en haut
Comment savoir dans quelle dll faire ses modifications:
Comme vous avez pu le voir plus haut, il existe deux dlls dans half-life. On peut donc se demander laquelle il va falloir modifier pour faire une modification.
Pour répondre à cette question, il faut vous demander si ce que vous voulez faire sera différent pour chaque joueur ou si la fonction est générale.
Ainsi, si vous voulez indiquer a un joueur les points de vies qu'il lui reste, vous irez voir du côté du client (client.dll) car le joueur est le seul a connaitre ses points de vies. Par contre, si vous décidez qu'une arme infligera 20 points de dommages, il faudra modifier le serveur (mp.dll) car tous les joueurs (quand ils possèdent l'arme) infligeront ces points quand ils tireront.
Vous vous en doutez, la majorité des modifications seront faites au niveau serveur.
Retour en haut
Comment configurer le [a href="javascript:PopUp('
http://www.halflifedesign.net/dico/index.php?mode=def&id=19', 'Compilateur','450','330','0','0','1','1')"]
Compilateur[/a] pour votre [a href="javascript:PopUp('
http://www.halflifedesign.net/dico/index.php?mode=def&id=61', 'Mod','450','330','0','0','1','1')"]
Mod[/a] :
Après avoir decompressé le fichier zip, ouvrez le fichier mp.dsp qui se trouve dans le répertoire dlls. Vous voyez alors la fenetre de VC++ s'afficher avec à gauche les fichiers qui constituent le SDK.
Il faut le configurer pour qu'il installe votre [a href="javascript:PopUp('
http://www.halflifedesign.net/dico/index.php?mode=def&id=61', 'Mod','450','330','0','0','1','1')"]
Mod[/a] au bon endroit.
Pour cela, allez dans le menu project/settings. A droite de cette fenêtre ouvrez l'onglet Custom Build, c'est ici qu'il faut renseigner la [a href="javascript:PopUp('
http://www.halflifedesign.net/dico/index.php?mode=def&id=19', 'Compilateur','450','330','0','0','1','1')"]
Compilateur[/a] sur l'emplacement de votre [a href="javascript:PopUp('
http://www.halflifedesign.net/dico/index.php?mode=def&id=61', 'Mod','450','330','0','0','1','1')"]
Mod[/a] .
Dans Buil command, après $(target path), mettez le chemin de votre [a href="javascript:PopUp('
http://www.halflifedesign.net/dico/index.php?mode=def&id=61', 'Mod','450','330','0','0','1','1')"]
Mod[/a] . Il doit être du type : c:\"répertoire de Half-life"\"nom du [a href="javascript:PopUp('
http://www.halflifedesign.net/dico/index.php?mode=def&id=61', 'Mod','450','330','0','0','1','1')"]
Mod[/a] "\dlls.
Dans Output files, avant $(target path), mettez la même chose.
vous pouvez faire la même chose pour le client.
Voilà... vous pouvez maintenant lancer une première compilation build/build mp.dll et tester votre jeux soit avec la ligne de commande -game "nom du [a href="javascript:PopUp('
http://www.halflifedesign.net/dico/index.php?mode=def&id=61', 'Mod','450','330','0','0','1','1')"]
Mod[/a] " soit dans le menu partie personnalisée du jeux. Créez une partie en local sans vous préoccuper du fait qu'il n'y ait aucune [a href="javascript:PopUp('
http://www.halflifedesign.net/dico/index.php?mode=def&id=59', 'Map','450','330','0','0','1','1')"]
Map[/a] dans le menu puis dans la console tapez [a href="javascript:PopUp('
http://www.halflifedesign.net/dico/index.php?mode=def&id=59', 'Map','450','330','0','0','1','1')"]
Map[/a] bounce ou une autre que vous connaissez...
Vous venez de créer votre propre [a href="javascript:PopUp('
http://www.halflifedesign.net/dico/index.php?mode=def&id=61', 'Mod','450','330','0','0','1','1')"]
Mod[/a] . Certes il s'agit du même jeu mais maintenant il s'éxecute a partir de la dll que vous avez compilé.
Retour en haut
Une première modification:
Nous allons faire une première modification toute simple pour s'assurer que tout marche. Je vous propose juste de modifier les dommages infligés par les différentes armes de Half-life :
Ouvrez le fichier multiplay_gamerules.cpp et cherchez la fonction void CHalfLifeMultiplay::RefreshSkillData( void ).
Dans celle-ci vous truoverez des lignes du genre :
gSkillData.plrDmgCrowbar = 25;
Tout ce que vous avez a faire, c'est de changer 25 par la valeur que vous voulez donner a la crowbar.
Si vous mettez 100 par exemple, la crowbar risque fort de devenir la seule arme utilisée en multijoueur

.
Une fois que vous avez défini les valeurs que vous voulez, compilez a nouveau (touche F7) et lancez le jeu comme précédemment. Vous venez de faire votre première modification pour Half-life.
Maintenant, il ne vous reste plus qu'a suivre les autres tutoriaux et trouver des idées pour créer votre propre [a href="javascript:PopUp('
http://www.halflifedesign.net/dico/index.php?mode=def&id=61', 'Mod','450','330','0','0','1','1')"]
Mod[/a] .