APERCU RAPIDE
Toutes les données de statut sont à considérer comme optionnelles. Le fait que l'une soit présente ou non, dépend d'un bit des champs de bits de statut. En conséquence, il est impossible de donner des offsets explicites où les données pourraient êtres trouvées.
Par exemple, quand vous montez de niveau, vous avez 5 points de statut et 1 point d'aptitude à répartir. Mais la plupart du temps vous n'avez pas de points de statut : la donnée points de statut ne sera pas égale à zéro : le bit correspondant sera oté, et la donnée ne sera pas présente du tout !
Un autre exemple facile : si tout votre or est dans votre bourse, alors la donnée Argent dans la bourse sera présente, mais la donnée Argent (sur soi) sera absente. Encore un dernier exemple (pas évident celui-là) : si le joueur est en mode hardcore ET est mort, alors la donnée vie actuelle sera absente.
ASSIGNATION DES BITS
Pour le moment, seuls les 2 premiers champs de bits sont utilisés. Ils fournissent un total de 16 bits, et chacun d'entre eux correspond à une donnée. C'est la raison pour laquelle j'appelle l'octet qui suit les 2 premiers champs de bits, le champ de bits réservé. Il est toujours égal à zéro, comme si Blizzard avait projeté de l'utiliser plus tard.
Les champs de bits sont nommés d'après les données qui ont le plus de chance d'être absentes.
Le premier d'entre eux (à l'offset 232h) est le Statut / aptitudes. Les données correspondantes sont :
  | |||
Bit 0 | : | Force | |
Bit 1 | : | Energie | |
Bit 2 | : | Dextérité | |
Bit 3 | : | Vitalité | |
Bit 4 | : | Points de statut à répartir | |
Bit 5 | : | Points d'aptitude à répartir | |
Bit 6 | : | Vie actuelle | |
Bit 7 | : | Vie maximum |
  | |||
Bit 0 | : | Mana actuel | |
Bit 1 | : | Mana maximum | |
Bit 2 | : | Endurance actuelle | |
Bit 3 | : | Endurance maximum | |
Bit 4 | : | Véritable niveau du joueur | |
Bit 5 | : | Expérience | |
Bit 6 | : | Argent | |
Bit 7 | : | Argent dans la bourse |
Le bit 0 est le bit de poid faible et le bit 7 le bit de poid fort, évidemment.
LIRE LES DONNEES
Tout serait parfait si les données avaient la même taille. Et bien, ce n'est pas le cas. Certaines font 4 octets, d'autres 2 octets, et il existe même 2 données qui ne font qu'un seul octet chacune. Regardons ça de plus près.
En général, toutes les données ont une taille de 4 octets. Comme toujours, elles sont dans l'ordre d'Intel. En commençant à partir de l'offfset 235h, voici les données que l'on peut trouver, mais SEULEMENT si leurs bits respectifs sont posés !
On peut maintenant continuer la lecture normale des données, à une exeption près : ces données ont une taille de 2 octets. Juste après on trouve 2 autres octets avec parfois zéro, parfois de drôles de valeurs. Encore une fois, je n'ai pas compris leurs significations. On dirait qu'elles apparaissent quand certaines données actuelles sont supérieures à leur maximum. Par exemple quand la Vie actuelle est supérieure à la Vie maximum (à cause d'objets magiques).
Après ça, toutes les données ont de nouveau une taille de 4 octets.
Après toutes ces données volatiles, nous trouvons normalement l'entête d'aptitude, qui est égale à 6669h. Dans le cas contraire, ceci peut être la cause du champ de bits Réservé. S'il n'est pas égal à zéro, c'est un problème de version. Mais s'il est égal à zéro, comment savoir ?
Tout ceci est expliqué dans la Partie 3 : Niveaux d'aptitude
Retour à la Partie 1 : Modifications faciles
Aller à la Partie 4 : Objets
Aller à la Partie 5 : Cadavre & Mercenaire
Retour à la Page de menu