Fichier .NBT (Version 0.9) .NBA

A] Format général du fichier NBT NBA

Il a la structure d'un fichier .ini. Les développeurs Windows pourraient utiliser les fonctions fournies par Windows pour l'utiliser mais attention. j'ai entendu dire que les fonctions de Windows ne permettent pas de gérer des fichiers de plus de 64 Ko. Hors il n'est pas impossible qu'un fichier NBT dépasse cette taille.

1) Syntaxe

Les données sont regroupées en section, et sont indexées par des mots clefs. Pour des raisons de concision, les données peuvent être regroupées en liste sous le label d'un seul mot clef. Les chaînes de caractères se présentent de manière individuelle, et ne peuvent pas être regroupées en liste.

a - Section

 

b - Mot clef

Le mot clef sert à référencer les données, c'est à dire à indiquer à quoi elle se rapporte.

 

c - Les chaînes de caractères

 

d - Les listes

Pour éviter de multiplier les mots clefs, qui feraient enfler la taille du fichier NBT, certaines informations sont regroupées en une liste indexées par un seul mot clef.

 

e - Flags


B] L'État actuel

Ce paragraphe décrit les sections et les mots clefs actuellement utilisés.

1) liste des sections

[GENERAL]
   Informations d'ordre général sur la partie et les connaissances du joueur

[TECHNO]
   Informations sur les technologies du joueur

[PSEUDOS]
   Liste des joueurs que connaît le joueur et leur pseudo.

[MDEPS]
   Liste les mondes de départ que connaît le joueur. Nébula ne remplit que le Md du joueur mais s'il y en a d'autres mis ici ils seront affichés comme étant un Md sur la carte.

[SCORES]
   Détail du score du joueur, le même qui apparaît sur le CR

[M_m]
   Informations concernant le M_m. Sont représentés dans le fichier par une section :
      - les mondes connus,
      - parmi les inconnus, ceux qui possèdent une connexion vers un monde connu.
 

[F_f]
   Informations concernant la F_f. Uniquement les flottes qui stationnent sur un monde vu.

[T_t]
   Informations concernant le T_t
 


2) liste des mots clefs :

Nous détaillons ici, sections par sections, les mots clefs disponibles.
 

[GENERAL]

NomPartie=Nom de la partie
Tour=Numéro du tour courant
TourFinal=Numéro du tour final
NomArbitre=Nom de l'arbitre tel qu'il apparait sur les mails envoyés
EmailArbitre=Adresse Email de l'arbitre
PasswordPartie=Mot de passe de la partie
NbRotCode=? ? ?
DateDebut=Date de création de la partie
NoJoueur=Numéro du joueur dans la partie n'existe pas pour le .NBA
Score=Score du joueur n'existe pas pour le .NBA
NbMondes=Nombre de mondes dans la partie
NbFlottes=Nombre de flottes dans la partie
NbJou=Nombre de joueurs dans la partie. Obligatoirement non nul pour un fichier .NBT. Forcément Nul pour les données du programme d'arbitrage.
TaillePlanX=Taille horizontale du plan (en monades)
TaillePlanY=Taille verticale du plan (toujours en monade)
AdresseSM=Adresse Email du Serveur de mail
Lock=? ? ?
VersionSM=Numéro de version du Serveur de Mail
Mds=Liste de mondes supplémentaires à faire apparaitre comme des Md dans l'affichage du plan
PiratageMultiClasse=Piratage à 20 contre 1 pour toutes les classes autres que le pirate (1=oui, 0 = non, defaut=0)
AffichageScore=Affichage du score des joueurs avec qui on est en contact (1=oui, 0=non, defaut=1)
BombesInterdites=Les ordres de construction de de largage de bombes sont interdits (1=oui, 0=non, defaut=0)
MEVAPourTous=Tous les joueurs ont le droit aux ordres de MEVA mais seuls les explos marquent les points (1=oui, 0=non, defaut=0)
DiploInterdite=Les ordres de cadeau hors équipe sont interdits ; les ordres de déclaration sont interdits à l'exception du Jihad (1=oui, 0=non, defaut=0)
PillagesInterdits=Les ordres de pillage sont interdits (1=oui, 0=non, defaut=0)
TirIndustries=1 -> tirs autorisés en toute circonstance ; 0 -> tirs interdits ; 2 -> tirs interdits sur les industries des membres de son équipe (defaut=1)
EmigrationSansHasard=L'émigration se fait sans hasard (1=oui, 0=non, defaut=0)
PartieCRUEL=1 -> La partie est une Partie CRUEL, cet indicateur influe sur l'affichage d'un mini classement tous les 5 tours à partir du tour 10.

 



[TECHNO]

Ce sont des listes de 7 nombres, un par classe (1)

MAXDEP=Niveau maximal qu'il est possible d'atteindre en DEP
DEPCLASSE=Cout d'un niveau en DEP.

Idem pour les autres technologies en remplaçant DEP par ATT, DEF, RAD, ALI et CAR.
 



[J_n]

Infos concernant le joueur n

Pseudo=Son pseudonyme
Nom=Vrai nom
Email=Les adresses Email du jouer séparées par le caractère '|' (barre verticale) comme pour le web du serveur de mail
Md=Numéro du monde de départ
Equipe=Liste des joueurs dans la même équipe (pour les parties par équipe)
ClasseNo=Numéro de sa classe (1)
J=Liste de nombres avec plein d'infos (1.5)
ConNom=Liste variable de nombres listant les joueurs connus de nom
Contact=Liste variable de nombres listant les joueurs en contact
Allies=Liste variable de nombres listant les numéros des joueurs déclarés alliés
Chargeurs=Liste variable de nombres listant les numéros des joueurs déclarés chargeurs
ChargeursPop=Liste variable de nombres listant les numéros de joueurs déclarés chargeurs de pop
DechargeursPop=Liste variable de nombres listant les numéros des joueurs déclarés déchargeurs de pop
Pilleurs=Liste variable de nombres listant les numéros des joueurs déclarés pilleurs
DetailScore=Liste de 31 nombres détaillant les 31 manière possible de gagner des points dans Nébula. Ca ne sert que l'impression du CR. Sera documenté plus tard (1.6).
 
(1) avec : Empereur = 1, Marchand = 2, Pirate = 3, Antiquaire = 4, Robotron = 5, Missionnaire = 6, Explorateur = 7;

(1.5) Liste de 18 nombres :
1. Classe
2. Tour de dernière déclaration de Jihad
3. Jihad
4. DEP
5. ATT
6. DEF
7. RAD
8. ALI
9. CAR
10. DEPReste
11. ATTReste
12. DEFReste
13. RADReste
14. ALIReste
15. CARReste
16. CA
17. CD
18. Score

(1.6) Signification des 31 nombres, dans l'ordre :

1. Populations
2. Industries
3. Capacités minières
4. Flottes
5. Mondes
6. Mondes convertis
7. Convertis
8. Mondes robotisés
9. Trésors
10. Trésors maudits
11. Pillages
12. Martyrs
13. Populations tuées
14. Vaisseaux détruits
15. Largage de bombe
16. La Chose
17. MP Déchargées
18. PC Déchargés
19. Malus Vaisseaux détruits
20. Malus Populations tuées
21. Nouvelles rencontres
22. Mondes localisés
23. Bonus 1er à localiser un monde
24. Mondes observés
25. Bonus 1er à observer un monde
26. Exploration
27. Observation de mondes de départ
28. Musées
29. Familles de trésors
30. (Bonus potentiel de fin de partie)
31. Déconversion

 



[M_m]

M=Liste de nombres avec plein d'infos (2)
ME=Liste de nombres avec plein d'infos (3)
C=Liste des connexions du monde, suivi de la source de l'information. (4)
Coord=Liste des coordonnées du monde sur le plan, suivi de la source de l'information. (5)
Explo=Liste de nombres avec des infos sur l'exploration de ce monde (6)
Nom=Nom du monde
Connu=Liste de numéros de joueur connaissant le monde
AVuConnect=Liste de numéros de joueur voyant les connexions du monde
AVuCoord=Liste de numéros de joueur voyant les coordonnées du monde
StationMonde=Liste de numéros de joueur stationnant sur le monde
1erPr=? ? ?
Possession=Numéro du joueur possédant le monde

(2)
Liste de 24 nombres :
1. Compteur du nombre de tours de possession
2. Propriétaire des convertis (numéro de joueur)
3. Capacité minière
4. Nombre de fois que des PC ont été déchargés
5. Propriétaire du monde (numéro de joueur)
6. Industries
7. Nombre de populations (hors robots mais convertis compris)
8. Nombre de convertis
9. Nombre de robots
10. Maximum de populations
11. MP en stock
12. Nombre de VI
13. Nombre de VP
14. Nombre de fois que le monde a été pillé
15. Nombre de tours avant récupération du pillage
16. Ancien Propriétaire (au tour précédent, numéro du joueur)
17. Nombre d'industries actives
18. Populations disponibles pour la construction des industries et l'extraction de MP
19. Flag indiquant si le monde a été capturé à ce tour
20. Flag indiquant si le monde a été offert en cadeau à ce tour
21. Flag indiquant si le monde est un trou noir
22. Flag indiquant si le monde a été bombé
23. Flag indiquant si le monde a été pillé à ce tour
24. Flag indiquant si le monde est corrompu (bon à bomber) vis à vis du joueur

(3)
Liste de 8 nombres
1. ActionVI (0, 1, 2 : rien, 3 : tir sur une Flotte (CibleVI), 4 : embuscade)
2. ActionVP (0 : rien, 1 : tir sur les Convertis, 2 : tir sur les Non-Convertis, 3 : tir sur une Flotte (CibleVP), 4 : embuscade)
3. CibleVI
4. CibleVP
5. PopMoins
6. ConvMoins
7. RobMoins
8. PC

(4)
Liste de 9 nombres maximum : Il y a au maximum 8 connexions. A la suite de la liste des connexions, on peut placer l'indication de l'origine de la connexion. Cette indication doit être obligatoirement un nombre négatif, pour éviter les confusions avec les numéros de connexions. Si l'information vient du joueur n, il est suggéré d'utiliser la signature -n. La signature du programme d'arbitrage est 0, et comme elle est en bout de ligne, elle est omise.
D'autre part, toutes les connexions ne sont pas forcément connues. Ex : si le monde m, inconnu, est connecté au monde n, qui lui est connu, alors dans la section [M_m], le mot clef "C" ne montrera que la connexion vers n (et plus généralement seulement les connexions vues de l'extérieur). On notera que lors du passage dans un trou noir le joueur ne voit pas à quels mondes ce trou noir est connecté. Il ne voit que les connexions qu'il a pu déduire depuis les autres mondes qu'il connaît : en quelque sorte, on ne peut voir un trou noir que de l'extérieur. 

(5)
Liste de 3 nombres. Les deux premiers nombres sont les coordonnées X et Y du monde. Le troisième nombre est la source de ces informations. On procède comme en (3) pour déterminer la valeur de cette signature. 

(6)
Liste de 7 nombres :
1. Nombre d'explorations qui ont eu lieu
2. Nombre d'explorations avec MEVA CM
3. Nombre d'exploration avec MEVA des populations
4. Nombre de fois que le monde a été localisé par un explorateur
5. Flag indiquant si le monde a été localisé par le joueur
6. Flag indiquant si le joueur a stationné sur ce monde.
7. Flag indiquant si le monde est visible sur le CR à ce tour
8. Potentiel d'exploration du monde 

 



[F_f]

F=Liste de nombres (7)
Chemin=Liste des mondes traversés lors du déplacement de la flotte au tour précédent.

Chemin= C'est une liste variable de nombres. Le premier nombre indique le monde sur lequel se trouvait la flotte au tour précédent. Le dernier nombre indique le dernier monde traversé par la flotte à ce tour lors de son déplacement. le monde sur lequel elle est arrivée est sa localisation (cf. F=...) il n'a pas à y figurer. Si la flotte n'a pas bougé la ligne Chemin= est soit vide soit omise. 
A noter : une succession de mondes inconnus est représentée par la valeur -1.

(7)
Liste de 19 nombres :
1. Numéro du monde où se trouve la flotte
2. Nombre de VC présents sur la flotte
3. Nombre de VT présents sur la flotte. Si le joueur n'a pas le niveau en ALI suffisant les VT sont vus comme des VC.
4. Nombre de MP transportés
5. Nombre de non convertis transportés
6. Nombre de convertis. les convertis appartiennent forcément au propriétaire de la flotte.
7. Nombre de robots transportés
8. Propriétaire de la flotte
9. Ancien propriétaire de la flotte
10. OrdreExclusif de la flotte
11. Cible des vaisseaux de la flotte
12. Flag indiquant si la flotte est en paix
13. Flag indiquant si la flotte transporte la Bombe
14. Flag indiquant si la flotte a été capturée à ce tour
15. Flag indiquant si la flotte a été piratée à ce tour
16. Flag indiquant si la flotte a été offerte à ce tour
17. Flag indiquant si la flotte a fait une embuscade
18. Flag indiquant si la flotte a déchargé des PC
19. Flag indiquant si la flotte a fait une exploration



[T_t]

T=liste de nombre (8)
Nom=Nom du trésor

(8)
Liste de 3 élément, dont un caractère en seconde position :
1. Propriétaire du trésor
2. F ou M selon que le trésor est sur une flotte ou sur un monde
3. Numéro de la flotte ou du monde sur lequel (laquelle) se trouve le trésor
 


C] Le fichier NBT d'arbitrage

Le fichier NBT d'arbitrage est le fichier que l'arbitre poste avec le CR, en attachement.

1) Désignation

Le fichier envoyé par l'arbitre s'appelle : PARTIEnnxx.NBT, avec :
   PARTIE : le nom de la partie, comptant au plus 6 lettres, toutes en majuscules
   nn : le numéro du joueur, toujours en 2 chiffres (jamais plus de 32 joueurs pour le moment)
   xx : le numéro du tour, toujours en 2 chiffres (jamais plus de 30 tours pour le moment)

2) Spécificité du contenu

Les informations contenues dans le fichier NBT d'arbitrage ne recouvre pas (pas encore) les informations du CR, mais presque. Il manque actuellement :

En contrepartie, on trouve dans le fichier NBT quelques informations en plus :

3) Les modifications du NBT d'arbitrage

Le fichier NBT a été conçu pour faciliter les manipulations de la part du joueur. Ce dernier peut plus facilement ajouter des informations, par exemple des coordonnées qui lui permettront de visualiser son plan avec nébutil en début de partie.

Si ces modifications sont plus faciles, elles réclament aussi un minimum de prudence, car même en respectant totalement les regles de syntaxe du fichier NBT, on peut introduire des erreurs qui feront planter nébutil, voire produiront des erreurs dans vos ordres, invisibles... jusqu'à réception du CR suivant.

J'ai essayé ci-dessous de donner quelques idées sur les modifications à faire et à ne pas faire sur le fichier NBT d'arbitrage.

a - Le plan

La création ou l'amélioration du plan est une des fonctionnalités les plus recherchées par les joueurs. Pour que le nouveau plan soit accepté par nébutil, il faut qu'il respecte les règles de placement :

D'autre part, pour que le plan soit affiché, il faut que RAD 0. Par contre, la contrainte sur la direction des liaisons a été supprimée.

b - les autres informations

Les informations sur la nature des mondes, les chargements, les protections, les connexions, etc... sont vitales. Il me semble extrêmement dangereux de les tripatouiller, en particulier pour les unités qui vous appartiennent : aller modifier les nombres de VC sur les flottes, c'est du suicide pure et simple.

Par contre, il est envisageable de :

La liste est ouverte...

c - les autres joueurs

Si le joueur rajoute à la liste des pseudo (section PSEUDO) ceux qu'il a pu découvrir, par la SM ou d'autre façon, nébutil va croire qu'il les connaît déjà. Il va les proposer par exemple pour les cadeaux, et ne va pas protester lors de la vérification des ordres. L'ordre sera bien sûr refusé par Nebula.

d - avis de recherche

Pour automatiser la détermination des scores, il serait agréable d'avoir la liste des scores comme sur le CR. Un format possible serait :

Cont=liste des numéros des joueurs en contact

ListScore=liste des scores correspondants

ContNN, ListScoreNN : la même chose annoncée par le joueur NN

ScoreNN : le score annoncé par le joueur NN.



Pour illustrer tout ceci vous pouvez consulter un fichier .NBT d'exemple. Comme je ne suis pas chien, en voici un autre.
 

Modifications depuis la version 0.8 du fichier

Les changements de règle pour la rentrée 98/99 ont amené une information supplémentaire dans le fichier .NBT :

Modifications depuis la version 0.7 du fichier

Modifications depuis la version 0.6 du fichier

Modifications depuis la version 0.5 du fichier

Modifications depuis la version 0.4 du fichier

Modifications depuis la version 0.3 du fichier

Modifications depuis la version 0.2 du fichier

Modifications depuis la version 0.1 du fichier