Créer des Zoom/Régions visibles via /map

Pré-requis:
- une carte, carrée, de la zone voulue et son ID.
- un logiciel de retouche d'image.
- le Bloc-note.
- une calculette.
- 1 crayon.
- 1 bout de papier.
- ne pas être allergique aux maths

1/ Les Bases.


Toutes les zones de DAoC on un système de coordonnées ([color=DarkSlateBlue]/loc[/color]) auquel se réfère l'interface pour l'affichage des cartes.

Une zone a, invariablement, des côtés de 65536 unités (u). Le système de coordonnées affiche donc la position du joueur en sa basant sur ces unités.
Lorsque vous tapez [color=DarkSlateBlue]/loc[/color] le jeu vous renvoie 3 valeurs X,Y,Z (je reviendrais sur le Z plus tard) selon le principe illustré ci-dessous.



[left]
Ainsi quand le jeu doit afficher votre position via [color=DarkSlateBlue]/map[/color], il ne fait qu'afficher vos coordonnées de manière graphique.

2/ Le principe des "régions".

Nous savons donc que les cartes affichent notre position si et seulement si X et Y sont compris entre 0 et 65536.
Les régions ne font que modifier cet intervalle.

Exemple concret:

Je souhaite afficher un Zoom ([color=black]en jaune[/color]) de la région [color=black]en rouge[/color].




[left]Je vais donc devoir définir la zone via ses coordonnées pour que le jeu puisse me l'afficher quand j'entre dedans.

Pour cela il va me falloir 4 valeurs:
x1, y1, u1 et u2

Comment obtenir ces valeurs ?
tout simplement avec notre logiciel de retouche.

- L'image que j'ai utilisé a une résolution de 512/512, comme l'image ne contient QUE la carte j'en déduis donc que ma carte fais aussi 512/512.
- Je sais qu'une zone du jeu fais 65536/65536

Je note:
a = 512
b = 512
u = 65536


Je délimite dans mon logiciel de retouche la zone que je vais zoomer.
99% des logiciels de retouche affichent les coordonnées du curseur en fonction de l'image.

Photoshop:



Gimp:


Je note les coordonnées de mon curseur au début de ma sélection:
x1 = 160
y1 = 384

je fais ma sélection (carrée de préférence, mais ce n'est pas obligatoire) et je note la taille (width/height) de ma sélection que ne manquera pas de m'afficher mon logiciel préféré:
u1 = 96
u2 = 96


Voilà c'est merveilleux j'ai mes chiffres, il ne reste plus qu'a les rendre exploitable par mon interface.

3/ Areas.dat:

Maintenant il ne nous reste plus qu'a créer la zone dans mon interface.

Quand on ouvre le fichier areas.dat avec le bloc-note on y trouve ceci:
Nous allons donc conserver la même présentation sans les ";"

Je connais l'ID de la zone principale de mon Zoom: 172
[zone172]

Je n'ai créé qu'un seul zoom:
area_count=01

Pour la suite ça se complique. Tout ce que j'ai fais jusqu'a présent je l'ai fais avec une carte de 512/512, je vais donc devoir tout transposer en fonction de la taille réelle d'une zone.
area0_left= (x1/a)*u = (160/512)*65536 = 20480
area0_top= (y1/b)*u = (384/512)*65536 = 49152
area0_z=
optionnel donc on ne mets rien
area0_width= (u1/a)*u = (96/512)*65536 = 12288
area0_height= (u2/b)*u = (96/512)*65536 = 12288
area0_depth= optionnel donc on ne mets rien
area0_name= le nom que vous voulez
area0_desc= la description que vous voulez

Au final nous avons donc:
Il ne reste plus qu'a enregistrer.

Pour le reste le Zoom doit être nommé z172_00.dds carte il se rapporte à la zone dont l'ID est 172 et qu'il est le premier Zoom (area0) donc _00


Pour la suite rien ne vous empêches donc d'éclater une zone en parts égales et de remplir le fichier areas.dat à la volée:






Voilà bonne prise de tête, vous savez tout sur le fonctionnement des Zoom en extérieur, il ne vous reste qu'a faire vos cartes :D

Réactions


Personne n'a encore réagi. Soyez le premier.

Que pensez-vous de Dark Age of Camelot ?

1314 aiment, 189 pas.
Note moyenne : (1534 évaluations | 58 critiques)
8,7 / 10 - Excellent
Evaluation détaillée de Dark Age of Camelot
(906 évaluations détaillées)

Evaluer ce jeu

1197 joliens y jouent, 5895 y ont joué.