Fichier .NBT (Version 0.9) .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.
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.
Une section s'ouvre par le caractère '[' placé en début de ligne, suivi du nom de la section, suivi du caractère ']'.
Le mot clef sert à référencer les données, c'est à dire à indiquer à quoi elle se rapporte.
Un mot clef commence en début de ligne. Il est
séparé des données par un caractère '='.
Les données étant comprises par défaut comme des chaînes de caractères, il ne faut pas les encadrer par des guillemets.
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.
Une liste peut contenir des nombres entiers, et parfois des lettres
(M ou F, pour le mot clef "T" de la section [T_t], hélas)
Un flag est un nombre auquel on donne la valeur 1 pour indiquer "vrai". Si la valeur du flag est 0, la signification est indistinctement "faux", "inconnu" ou "sans objet".
Ce paragraphe décrit les sections et les mots clefs actuellement utilisés.
[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
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.
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.
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=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=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=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
Le fichier NBT d'arbitrage est le fichier que l'arbitre poste avec le CR, en attachement.
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)
Les informations contenues dans le fichier NBT d'arbitrage ne recouvre pas (pas encore) les informations du CR, mais presque. Il manque actuellement :
la liste des joueurs que l'on voit directement (Vous êtes en
contact avec)
En contrepartie, on trouve dans le fichier NBT quelques informations en plus :
Le nombre de mondes dans la partie, et les dimensions de l'univers
(respectivement "NbMondes", "TaillePlanX" et
"TaillePlanY" dans la section [GENERAL].
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.
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 :
toutes les coordonnées doivent être comprise dans les
intervalles définies par TaillePlanX et TaillePlanY
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.
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 :
ajouter un Md à la section MDEP. Le programme d'arbitrage ne
connaît qu'un seul Md, le votre. Les autres peuvent être
rajoutés soit avec les mots clefs "JouNN" si le Md a
un proprio, soit avec "Autre" dans le cas contraire.
L'effet de la modification ne concerne que le plan.
La liste est ouverte...
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.
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.
Les changements de règle pour la rentrée 98/99 ont amené une information supplémentaire dans le fichier .NBT :
Ajout du flag corrompu [M_m] M=.... 24ème paramètre
Le nombre de Jihad a été remplacé par le numéro du dernier tour où le jihad a été déclaré/modifié
Ajout d'un 7ème élément à la liste Explo=
dans la description d'un monde. Ce flag permet de savoir si le monde
est visible ou non sur le CR.
La structure du fichier a été revue en ce qui concerne les infos personelles du joueur. maintenant le fichier .NBT peut stocker des infos concernant plus d'un joueur. Ca servira pour publier les archives d'une partie. Surtout le programme d'arbitrage utilisera ce format pour stocker ces données. Seule le format du fichgier .NBt utilisé pour un joueur est décrite. Ce qu'utilise le programme d'arbitrage en est une surcouche entièrement compatible.
Cette version du NBT ne devrait plsu connaitre d'évolution vu
que toutes les informations du programme d'arbitrage s'y trouvent. On
ne peut exclure une légère modification mais il n'y
aura plus de boulversement.
Les UP déjà dépensées pour le passage au niveau suivant d'une techno ont été ajoutées.
La spécification a été redécrite de
manière plus précise
Ajout d'une précision : les mots-clé sont toujours en
début de ligne
Les champs C= d'un monde et Chemin= d'une flotte sont maintenant des
liste variables de nombre (ça fait gagner de la place dans le
fichier .NBT)
Il n'y a plus la liste des points que peuvent rapporter chaque trésor.