Autre méchant problème très courant : les Leaks. Tout le monde en a eu un jour ou l'autre. Vous obtenez une erreur qui ressemble à cela :
hlbsp: Error: Stopped by leak.
A quoi ressemble un Leak ?
Nous avions déjà vu cette image dans le chapitre sur les textures... La zone en rouge est la cause de l'erreur.
Un
Leak est un trou dans votre map. Vous voyez le vide noir que vous avez lorsque vous commencez une nouvelle map sous Worldcraft ? Eh bien c'est votre pire ennemi :
il ne faut jamais montrer ce vide au joueur !
Concrètement, cela veut dire que vous allez devoir en fait créer une sorte de pièce hermétiquement fermée. Dans le cas ci-dessus, pour corriger le problème c'est très simple : il suffit de raccorder les murs pour que le vide ne soit plus visible et le tour est joué !
Oui mais voilà, dans la réalité c'est parfois très difficile de retrouver son Leak : ici le Leak était bien visible, mais l'épaisseur de l'ouverture peut être beaucoup plus petite (1 unité de Worldcraft suffit !). Et alors là c'est le gros bazar pour retrouver le Leak !
Rassurez-vous, il existe des méthodes pour retrouver la position de son Leak : c'est justement ce que nous allons voir...
1\ La bonne méthode
On commence par la meilleure méthode : celle du pointfile. Un pointfile est un fichier à l'extension *.pts qui contient des informations sur des coordonnées de points. Ce type de fichier (avec les *.lin) est automatiquement généré par hlbsp en cas de Leak.
Grâce au pointfile, vous allez pourvoir repérer votre Leak en quelques secondes !
Pour lire les pointfile et les retrouver sous Worldcraft, je vous conseille fortement le logiciel LeakMarker, que vous pouvez télécharger ci dessous :
Pour l'installer, c'est très simple : copiez le programme dans n'importe quel dossier de votre disque dur (comme celui de Worldcraft) et créez un raccourci dans le menu Démarrer ou carrément sur le bureau si vous aimez l'encombrer d'icônes
Le programme ressemble à ceci :
Le principe est le suivant : vous donnez votre map qui a un Leak à ce programme, et il va créer une entité factice (fausse, inutile, qui n'existe pas, qui ne sert à rien), enfin, une entité de nom inconnu mais placée tout près du Leak... En cherchant cette entité dans Worldcraft, vous vous retrouverez nez à nez avec votre Leak !
- En haut apparaissent les noms des fichiers que vous avez sélectionné en cliquant sur le bouton "Select Files". Ici, il s'agit d'une map de tests appelée "tests2" que j'ai créé spécialement pour avoir un Leak (je suis un peu maso je sais).
Notez que l'on doit utiliser 2 fichiers : celui de la map (*.map) et celui du pointfile (*.lin) qui contient des informations sur le Leak.
- Ici, vous pouvez choisir le nom de la texture de l'entité qui sera créée. Je vous conseille de laisser RED, comme ça vous pourrez pas la louper

- C'est la classe de l'entité (le type d'entité, au même titre que func_wall par exemple). LeakMarker fait exprès de mettre un nom d'entité qui n'existe pas : comme ça Worldcraft dira qu'il y a une erreur et vous montrera directement cette entité (et donc le Leak qui se trouve à côté).
Le fonctionnement est tordu, je suis bien d'accord, mais lorsque ce programme vous aura aidé à résoudre votre Leak, vous le bénierez croyez-moi 
- C'est le nom de l'entité : laissez-le tel quel.
- Ce sont les coordonnées des points données par le fichier *.lin qui déterminent la position du Leak.
- Ce bouton est la première chose que vous devez faire : donnez le nom du fichier pointfile (nomdelamap.lin) et celui du fichier de map (nomdelamap.map) pour que le programme sache sur quoi il doit travailler.
- Enfin, si tout est bon, cliquez sur le bouton "Mark Leak" : le programme va alors modifier votre fichier .map et y ajouter une entité près du Leak.
Le fichier *.lin n'a été créé que si les ZHLT ont rencontré un Leak au cours de la compilation. Sinon ce fichier n'existe pas.
Le fichier *.lin se trouve dans le même répertoire que votre map.
A partir de là, vous allez retravailler sous Worldcraft. Ouvrez votre fichier *.map.
N'ouvrez pas le *.rmf car il n'a pas été modifié ! Seul le fichier *.map contient la nouvelle entité, c'est donc lui que vous devez ouvrir.
Bon, si votre map est grosse, il va être assez difficile de retrouver l'entité de LeakMarker à l'aveuglette. Ce serait d'ailleurs complètement débile puisque ça reviendrait à chercher le Leak que vous ne trouvez pas
Heureusement, il existe un moyen pour retrouver l'entité. Allez dans le menu
Map/Entity report, ce qui aura pour effet d'ouvrir cette fenêtre :
Cette fenêtre recense toutes les entités de votre map. Vous allez ainsi pouvoir repérer en 2 secondes l'entité de LeakMarker.
Et là, cliquez sur le bouton "Go to" : Worldcraft sélectionnera alors l'entité.
Maintenant que vous savez où est votre entité, vous n'avez plus qu'à chercher et à boucher le Leak : il est normalement tout proche de l'entité !
Pensez à supprimer l'entité lorsque vous aurez corrigé votre Leak, parce qu'elle ne vous servira plus à rien. Et n'oubliez pas d'enregistrer votre map en *.rmf et en *.map pour être sûr de ne conserver aucun fichier qui contiendrait toujours le Leak !
2\ La mauvaise méthode
Le (très) mauvais truc que l'on a tendance à faire, c'est "d'entourer" la map de murs géants... L'idée que vous avez est simple : "Puisque je n'arrive pas à trouver mon Leak, je vais créer un très grand cube hollowé autour de la map, comme ça il n'y aura plus de Leak".
Le problème, c'est que cette technique marche... et c'est là tout le danger !
Pourquoi ? A cause de quelque chose dont nous allons beaucoup parler dans les prochains chapitres : les
r_speeds.
Je ne vais pas vous expliquer ce que c'est maintenant. Vous devez juste savoir qu'avec cette très mauvaise méthode, votre map va ramer même si vous avez la toute dernière GeForce ! Le nombre d'images par seconde (fps) va chuter lamentablement, et votre map deviendra vite injouable !
Bref, je vous recommande fortement d'utiliser LeakMarker comme nous venons de voir : ça c'est une méthode propre
