Page 1 sur 2

[CRE] Fichiers cre : Utilité des champs rarement utilisés

Posté : mar. 11 août 2015, 22:32
par Freddy_Gwendo
Je suis en train de terminer une procédure de création automatique de fichiers .cre.

J'y ai inclus la plupart des champs classiques, mais je me demande si ça vaut la peine que je me penche sur le codage de ceux-ci :

Code : Tout sélectionner

[color="#FFFF00"]0x006b 	1 (byte) 	Fatigue (0-100)
0x006c 	1 (byte) 	Intoxication (0-100)
0x006d 	1 (byte) 	Luck

0x0082 	1 (byte) 	Turn undead level[/color]
0x0083 	1 (byte) 	Tracking skill (0-100)
0x0084 	32 (char array) Tracking target
[color="#00FF00"]
0x0276 	5 (bytes) 	OBJECT.IDS references

0x027c 	2 (word) 	Global actor enumeration value
0x027e 	2 (word) 	Local (area) actor enumeration value[/color]
En effet, soit je ne sais pas à quoi ils correspondent, soit je ne vois pas leur utilité car j'ai comme l'impression (ou bien j'ai lu) qu'ils ne sont pas utilisés par le moteur.

Les avez-vous déjà utilisés, comment et dans quel but ?


Par ailleurs, j'aimerais savoir comment vous calculez le champ 0x0018 qui sert essentiellement au codage des créatures convoquées :

Code : Tout sélectionner

0x0018 	4 (dword) 	Creature Power Level (for summoning spells) / XP of the creature (for party members)

Edit.

Pendant que j'y suis, voici la liste des différents "créatures flags" :

Code : Tout sélectionner

BIT0	Show longname in tooltip (Identified)
BIT1	No corpse
BIT2	Keep corpse
BIT3	Original class was Fighter
BIT4	Original class was Mage
BIT5	Original class was Cleric
BIT6	Original class was Thief
BIT7	Original class was Druid
BIT8	Original class was Ranger
BIT9	Fallen Paladin
BIT10	Fallen Ranger
BIT11	Exportable
BIT12	Hide injury status in tooltip
BIT13	Quest critical / affected by alternative damage (Large creature)
BIT14	Can activate "Can not be used by NPC" triggers (Moving between areas)
BIT15	Been in Party
BIT16	Restore item in hand (Holding item)
BIT17	Un-sets bit 16 (Clear all flags)

BIT24	Related to random walk [Allegiance tracking]
BIT25	id [General tracking]
BIT26	id [Race tracking]	
BIT27	id [Class tracking]
BIT28	id [Specific tracking]
BIT29	id [Gender tracking]
BIT30	id [Alignment tracking]
BIT31	Un-interruptable (memory only)
Si certains n'ont aucun intérêt car ils concernent des faits de jeu ou la gestion de NPC (BIT 3 à 11 par exemple), ou bien sont utilisables pour répondre à des événements précis (BIT1 ou 2 notamment) , avez-vous utilisé les autres, sachant que la plupart des créatures vanilla ne contiennent que les BIT0-24-26 ?

Je pense notamment aux BIT 24 à 30 qui semblent permettre une détection par script. Dans ce cas, pourquoi les BIT 25, et 27 à 30 ne sont-ils quasiment jamais cochés dans les fichiers vanilla ?

Posté : mer. 12 août 2015, 05:41
par deratiseur
le 0x0018 c'est la valeur pour quand tu convoques la créature avec l'effet #167 (convocation via 2da). C'est arrondi au supérieur.
Par exemple, si ta créature à 30"xp" en 0x0018 et que ton sort en effet #167 convoque 100"xp de créatures" tu en convoqueras 4 (30x3 = 90, il reste de la place ->4).

c'est pratique si tu veux invoquer des créatures aléatoires : dans l'exemple si dessus, si tu crées 4 créatures que tu veux invoquer aléatoirement, et que tu assignes la valeur 0x0018=30 à chacune, et que tu les liste toutes dans un 2DA, et que tu appelles ce 2DA avec l'effet 167 à valeur 100 dans un sort, ce sort te convoquera 4 créatures au hasard parmi les 4 possibles.
Si tu veux en convoquer 5 tu as le choix : soit passer la valeur 0x0018 à 20 soit passer la variable de l'effet 167 à 150.
Le maitre de l'essaim utilise beaucoup la valeur 0x0018.

Posté : mer. 12 août 2015, 10:15
par Freddy_Gwendo
OK, c'est un peu comme je l'imaginais. Mais ton explication est bien plus claire. J'irai faire un tour dans le DUKP ce soir pour voir comment tu l'as utilisée.

Mais comme c'est une "pure" valeur de modding qui dépend des sorts de convocation créés, je vais la laisser en variable à définir par l'utilisateur dans la fonction. Ça n'a donc aucun sens d'essayer de la calculer automatiquement.

J'avais peur qu'elle ait un lien plus direct avec le champ 0x0014 (XP gained for killing this creature). :whistle3:

Et un souci de moins, un ! ^^
Si les retours concernant les autres champs sont du même type, la semaine commencera plutôt bien en m'épargnant un boulot fastidieux.

Merci ! ;)

Posté : mer. 12 août 2015, 11:38
par deratiseur
Freddy_Gwendo a écrit :J'irai faire un tour dans le DUKP ce soir pour voir comment tu l'as utilisée.
En fait regarde aussi le chasseur de vermine, il utilise pleinement cet effet et n'a que 2 sorts de convocation pour tout voir d'un coup.

Posté : jeu. 13 août 2015, 09:55
par Freddy_Gwendo
Vérifié sur le DUKP : effectivement, l'utilisation est assez simple. Un autre regard sur les sorts vanilla m'a conforté dans la décision de laisser ce champ en saisie libre avec une valeur par défaut à 0.

Par ailleurs, selon de vieux échanges entre les concepteurs d'IESDP, le champ 0x083 (Tracking skill) n'est pas utilisé. Et un de moins à intégrer dans la procédure ! :dance4:

Posté : jeu. 13 août 2015, 10:13
par Luren
En effet, soit je ne sais pas à quoi ils correspondent, soit je ne vois pas leur utilité car j'ai comme l'impression (ou bien j'ai lu) qu'ils ne sont pas utilisés par le moteur.

Les avez-vous déjà utilisés, comment et dans quel but ?
Les paramètres Fatigue, Intoxication et Luck peuvent avoir un intérêt du point de vue du scénario. Un personnage fatigué, intoxiqué (-> ce qui inclus ivre, quand on boit trop dans les tavernes), chanceux ou malchanceux (Luck <100) aura des taux de réussite différents dans les combats (puisque ces paramètres influent sur les lancés de dé).
Par exemple dans IWD2, au début dans Targos, on est peut aller demander à un groupe de mercenaires qui se sont fait payer pour venir en aide à la ville assiégée de se bouger un peu, vu qu'ils passent leur temps à s'alcooliser dans une taverne... les choses peuvent s'envenimer et l'on peut se retrouver à les combattre. Le fichier .cre respecte le scénario et les mercenaires ont une valeur de 10 en intoxication (alcool).

C'est aussi un moyen d'abaisser globalement les stats d'un même personnage. Tu peux ainsi avoir différentes versions .cre d'un même personnage dont certaines stats comme la fatigue ou l'intoxication varieront selon les moments de ton histoire et influeront sur sa capacité de combat.

En tout cas, ces trois paramètres semblent fonctionner et être pris en charge par le moteur.

Posté : jeu. 13 août 2015, 10:24
par Freddy_Gwendo
Pour ces trois-là (Fatigue, Intoxication, Luck), effectivement, je connaissais leur utilité, mais dans BG2, je n'ai trouvé aucune valeur > 0.

Je comptais tester un perso ivre avec eux mais tu me confirmes que ça fonctionne dans IWD2.

Mais vu leur faible utilisation et comme les valeurs "naturellement" modifiées par les sorts et les effets sont celles de STATE.ids , je vais quand même les considérer comme des valeurs de pure modding et les laisser tripatouiller par le moddeur s'il en a besoin.

Bref, inutile d'alourdir la procédure qui est déjà bien assez complexe. ;)

Merci encore pour le retour.

Par ailleurs, je n'ai pas encore trouvé d'info sur 0x0082 (Turn undead level) qui elle, si elle fonctionne vraiment, m'apparaît très utile pour les prêtres.

Posté : jeu. 13 août 2015, 15:46
par Freddy_Gwendo
Je viens de vérifier sur IESDP : les champs Fatigue, Intoxication et Luck d'IWD2 n'ont pas les mêmes adresses que ceux de BG2.

Donc c'est définitif, je ne les inclus pas dans la procédure et les laisse modifier directement par l'utilisateur.

Je termine les flags et les status avant de mettre en partage la procédure. ;)

Posté : ven. 14 août 2015, 09:30
par deratiseur
Pour tester la 0x0082 (Turn undead level) c'est facile : crée une partie d'introduction avec un nouveau personnage prêtre. Crée un squelette perso et invoque le à la console. Vois si ton prêtre peut le détruire ou le repousser avec "repousser les MVs".
Modifis alors le 0x0082 dudit squelette en mettant 20 et ré-invoque le. Si tu peux encore le repousser, c'est que la valeur ne sert à rien. Sinon, tu sais qu'elle fonctionne

Pour modifier ton squelette SANS devoir relancer le jeu, utilise l'astuce citée ici (tests et modifications en temps réel)

Posté : ven. 14 août 2015, 13:01
par Freddy_Gwendo
Euh... :$

Si la variable fait bien ce que je pense qu'elle devrait faire, c'est la valeur du prêtre qui doit changer : le niveau auquel il repousse les mort-vivants.
Mais je peux me tromper.

Je testerai ça se soir : d'abord ton idée, parce que la plus rapide, et si j'ai tort, tant mieux, j'aurai gagné du temps !


PS : Champs flags et status intégrés pour les valeurs utilisées usuellement (pas les 32 valeurs de chaque champ dont certaines ne servent à rien ou sont utilisées dans des cas très précis). Reste celles du fichier specific à rajouter à une procédure de lecture automatique, plus une partie des valeurs concernant les sorts que je peux automatiser "relativement" facilement.

Posté : ven. 14 août 2015, 20:45
par Freddy_Gwendo
Voici l'état actuel de la procédure en état de fonctionner :

Code : Tout sélectionner


[color="#00FF00"]LAM[/color] [color="#EE82EE"]~GW_READ_2DAS~[/color]						// Construction de tableaux de variables pour attribuer directement les valeurs ids et 2da.

[color="#00FF00"]ACTION_PHP_EACH[/color] Creatures_NPC [color="#0000FF"]AS[/color] donnees => Creature [color="#0000FF"]BEGIN[/color]	// A partir d'un tableau créé avec OpenOffice

[color="#00FF00"]COPY_EXISTING[/color] [color="#EE82EE"]~%donnees_1%.cre~  ~override/%Creature%.cre~[/color]	// ToDO Différencier avec ~Diamant_Eternel/Clones/%donnees_1%.cre~  ~override/%Creature%.cre~
  [color="#FF0000"]TO_UPPER[/color] %DEST_RES%

  [color="#FF0000"]PATCH_IF[/color] (SOURCE_SIZE > [color="#EE82EE"]0x2d3[/color]) [color="#0000FF"]THEN BEGIN[/color]			// protects against invalid files

	[color="#FF0000"]LPM[/color] [color="#EE82EE"]~GW_CRE_DEF_VARIABLES~[/color]				// Redéfinition des variables pour leur intégration dans le fichier .cre

// Création aléatoire des caractéristiques
// ---------------------------------------
	[color="#FF0000"]PATCH_IF[/color] ([color="#EE82EE"]"%GW_random_stats%"[/color] [color="#800080"]STRING_COMPARE_CASE[/color] [color="#EE82EE"]"Y" = 0[/color]) [color="#0000FF"]BEGIN[/color]	// Données créées aléatoirement
		[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_CRE_STATS_RANDOM~[/color] [color="#00FF00"]RET[/color] GW_str_random GW_str_ex_random GW_dex_random GW_int_random GW_wis_random GW_con_random GW_chr_random [color="#0000FF"]END[/color]
		[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_CRE_STATS_ADJUST~ [/color][color="#00FF00"]INT_VAR[/color] GW_str_random GW_str_ex_random GW_dex_random GW_int_random GW_wis_random GW_con_random GW_chr_random
				          [color="#00FF00"]RET[/color] GW_str_ajust GW_str_ex_ajust GW_dex_ajust GW_int_ajust GW_wis_ajust GW_con_ajust GW_chr_ajust [color="#0000FF"]END[/color] // adjust statistics to match class and racial minimums, maximums and modifiers
	[color="#0000FF"]END ELSE BEGIN[/color]								// Données fixées par le moddeur

// Ajustement des caractéristiques
// -------------------------------
		[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_CRE_STATS_ADJUST~[/color] [color="#00FF00"]INT_VAR[/color] GW_str GW_str_ex GW_dex GW_int GW_wis GW_con GW_chr RET GW_str_ajust GW_str_ex_ajust GW_dex_ajust GW_int_ajust GW_wis_ajust GW_con_ajust GW_chr_ajust [color="#0000FF"]END[/color]	// adjust statistics to match class and racial minimums, maximums and modifiers
	[color="#0000FF"]END[/color]

// Forçage des caractéristiques (Y = définies par l'utilisateur - N = calculées)
// -----------------------------------------------------------------------------
	[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_CRE_STATS_ENFORCE~[/color] [color="#00FF00"]INT_VAR[/color] GW_str GW_str_ex GW_dex GW_int GW_wis GW_con GW_chr GW_str_ajust GW_str_ex_ajust GW_dex_ajust GW_int_ajust GW_wis_ajust GW_con_ajust GW_chr_ajust 
				   [color="#00FF00"]STR_VAR[/color] GW_force_stats [color="#00FF00"]RET[/color] GW_nvstr GW_nvstr_ex GW_nvdex GW_nvint GW_nvwis GW_nvcon GW_nvchr [color="#0000FF"]END[/color]

// Ajustement du THAC0 selon la classe et le niveau
// ------------------------------------------------
	[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_CRE_THAC0_ADJUST~[/color]  [color="#00FF00"]INT_VAR[/color] GW_thac0 GW_nvlevel1 GW_rechTH [color="#00FF00"]STR_VAR[/color] FileTH2DA Classecre [color="#00FF00"]RET[/color] GW_thac0_ajust [color="#0000FF"]END[/color]
	[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_CRE_THAC0_ENFORCE~[/color] [color="#00FF00"]INT_VAR[/color] GW_thac0 GW_thac0_ajust [color="#00FF00"]STR_VAR[/color] GW_force_thac0 [color="#00FF00"]RET[/color] GW_nvthac0 [color="#0000FF"]END[/color]

// Ajustement des JS selon la classe, le niveau et la race (mixée à la Constitution pour les Nains, Gnomes...)
// -----------------------------------------------------------------------------------------------------------
	[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_CRE_JS_ADJUST~[/color]  [color="#00FF00"]INT_VAR[/color] GW_save_vs_death GW_save_vs_wands GW_save_vs_poly GW_save_vs_breath GW_save_vs_spell GW_nvlevel1 GW_nvlevel2 GW_nvlevel3 GW_save_palouf
				[color="#00FF00"]STR_VAR[/color]	File1JS2DA File2JS2DA File3JS2DA JSmulti RET GW_save_vs_death_ajust GW_save_vs_wands_ajust GW_save_vs_poly_ajust GW_save_vs_breath_ajust GW_save_vs_spell_ajust [color="#0000FF"]END[/color]
	[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_CRE_JS_ENFORCE~[/color]	[color="#00FF00"]INT_VAR[/color]	GW_save_vs_death GW_save_vs_wands GW_save_vs_poly GW_save_vs_breath GW_save_vs_spell
				GW_save_vs_death_ajust GW_save_vs_wands_ajust GW_save_vs_poly_ajust GW_save_vs_breath_ajust GW_save_vs_spell_ajust
				[color="#00FF00"]STR_VAR[/color] GW_force_JS [color="#00FF00"]RET[/color] GW_nvsave_vs_death GW_nvsave_vs_wands GW_nvsave_vs_poly GW_nvsave_vs_breath GW_nvsave_vs_spell [color="#0000FF"]END[/color]

// Calcul des HP selon la classe, le niveau et la constitution
// -----------------------------------------------------------
	[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_CRE_HP_CALC~[/color] 	[color="#00FF00"]INT_VAR[/color] GW_nvlevel1 GW_nvlevel2 GW_nvlevel3 GW_nvcon GW_dice_size GW_dice_bonus [color="#00FF00"]STR_VAR[/color] Classecre1 Classecre2 Classecre3 HPMulti GW_full_HP [color="#00FF00"]RET[/color] GW_hp_calc [color="#0000FF"]END[/color]
	[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_CRE_HP_ENFORCE~[/color] [color="#00FF00"]INT_VAR[/color] GW_hp GW_hp_calc [color="#00FF00"]STR_VAR[/color] GW_force_HP [color="#00FF00"]RET[/color] GW_nvhp_current GW_nvhp_max [color="#0000FF"]END[/color]

// Calcul de la valeur CONNAISSANCE selon la classe, le niveau, l'intelligence et la sagesse
// -----------------------------------------------------------------------------------------
	[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_CRE_LORE_CALC~[/color]	[color="#00FF00"]INT_VAR[/color] GW_lore GW_nvlevel1 GW_nvlevel2 GW_nvlevel3 GW_nvint GW_nvwis [color="#00FF00"]STR_VAR[/color] Classecre1 Classecre2 Classecre3 HPMulti [color="#00FF00"]RET[/color] GW_nvlore [color="#0000FF"]END[/color]

// Calcul de la valeur du Kit
// --------------------------
	[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_CRE_KIT_DEF~[/color]	[color="#00FF00"]STR_VAR[/color] GW_kit_lib [color="#00FF00"]RET[/color] GW_nvkit [color="#0000FF"]END[/color]

// Ecriture des valeurs de la créature
// -----------------------------------
	[color="#0000FF"]LPF[/color] [color="#EE82EE"]~GW_WRITE_CRE~[/color] [color="#00FF00"]INT_VAR[/color] GW_nvxp GW_nvgold GW_nvhp_current GW_nvhp_max GW_nvanimation // GW_nvxp_power
		GW_nvcolor_metal GW_nvcolor_minor GW_nvcolor_major GW_nvcolor_skin GW_nvcolor_leather GW_nvcolor_armor GW_nvcolor_hair GW_nvreputation GW_nvhide_in_shadows 
		GW_nvac_natural GW_nvac_effective GW_nvac_crushing GW_nvac_missile GW_nvac_piercing GW_nvac_slashing
		GW_nvthac0 GW_nvattacks GW_nvsave_vs_death GW_nvsave_vs_wands GW_nvsave_vs_poly GW_nvsave_vs_breath GW_nvsave_vs_spell 
		GW_nvresist_fire GW_nvresist_cold GW_nvresist_electricity GW_nvresist_acid GW_nvresist_magic GW_nvresist_magic_fire GW_nvresist_magic_cold 
		GW_nvresist_slashing GW_nvresist_crushing GW_nvresist_piercing GW_nvresist_missile GW_nvdetect_illusions GW_nvset_traps GW_nvlore GW_nvopen_locks GW_nvmove_silently 
		GW_nvfind_traps GW_nvpick_pockets GW_nvlevel1 GW_nvlevel2 GW_nvlevel3 GW_nvsex GW_nvstr GW_nvstr_ex GW_nvstr GW_nvint GW_nvdex GW_nvwis GW_nvcon GW_nvchr GW_nvmorale 
		GW_nvmorale_break GW_nvmorale_recovery GW_nvkit GW_nvreaction GW_nvgeneral GW_nvrace GW_nvclass GW_nvgender GW_nvalignment 
		[color="#00FF00"]STR_VAR[/color] GW_nvcre_flags GW_nvcre_status GW_nvportrait GW_nvscript_override GW_nvscript_class GW_nvscript_race GW_nvscript_general GW_nvscript_default GW_nvdeath_variable GW_nvdialog 
	 [color="#0000FF"]END[/color]

  [color="#0000FF"]END[/color]
[color="#0000FF"]END[/color]
L'affectation de soundsets clonés fonctionne aussi ainsi que l'attribution de compétences aux armes à partir du tableau, mais je cherche encore un moyen de le faire automatiquement, ou au moins de vérifier que les valeurs attribuées sont compatibles avec la classe et le niveau.
Id. pour les sorts et les objets.

Lorsque tout sera en place, je communiquerai aussi le fichier des fonctions et macros. ;)

Posté : mar. 25 août 2015, 23:42
par Freddy_Gwendo
Ça y est : calcul du nombre de points de compétences martiales selon la classe et le niveau, et vérification que les valeurs attribuées sont compatibles avec la classe, et si besoin est, le kit. Si la valeur saisie est supérieure au maximum prévue, elle est corrigée et un message prévient qu'il reste x points à attribuer.

J'ai renoncé à attribuer automatiquement les points dans les compétences car ça suppose de vérifier l'équipement de la créature (quel type d'armes elle porte), et c'est trop pénible.

En revanche, je réfléchis à la possibilité d'attribuer certains points selon des critères pré-établis : combat à deux armes, armes à deux mains, etc...

Posté : jeu. 27 août 2015, 20:23
par Freddy_Gwendo
Ajouts :

1. Calcul aléatoire possible du montant d'or possédé par les créatures.
2. Calcul automatique de la Furtivité du Rôdeur.

Posté : mar. 01 sept. 2015, 17:28
par Freddy_Gwendo
Ajouts :

1. Calcul automatique de la valeur de Pick-pocket pour les Bardes.
2. Ajout de la prise en compte des kits pour la vérification des caractéristiques des persos.
3. Calcul automatique du nombre d'attaques par round.
4. Attribution automatique d'un bonus spécial lorsque trois * sont attribuées au combat à deux armes pour supprimer le malus de la main secondaire.

Table de TAC0 pour les monstres

Posté : ven. 04 sept. 2015, 18:25
par Freddy_Gwendo
J'ai créé une table 2da pour attribuer automatiquement le TAC0 des monstres.

Qu'en pensez-vous ?

Est-elle crédible, jouable ?

Je suis preneur de toute modification pertinente.

Posté : sam. 12 sept. 2015, 10:44
par Freddy_Gwendo
Ça avance :

- Ajout de l'attribution automatique des sorts divins connus selon le niveau et la classe (prêtre, druide, paladin et rôdeur, mono ou multi-classés).
- Ajout de la procédure automatique de lecture des CLAB et d'attribution des capacités innées (connues et mémorisées) selon le niveau. Un grand merci aux définitions d'arrays de Stratagems qui m'ont permis de simplifier mon code, déjà assez complexe en l'état !
- Ajout de l'attribution automatique des capacités AP_******* des fichiers CLAB après transformation en effets à appliquer sur les créatures.

Là, je butte sur les fichiers LUA. Sur le principe, la procédure est simple à définir. En pratique, c'est une autre paire de manches à coder... :$

Posté : mer. 16 sept. 2015, 14:10
par Freddy_Gwendo
Comme je cale toujours sur les LUA, j'ai avancé en ajoutant certains effets spéciaux :

- Effet "bump" pour les dragons et certains PNJ qui doivent se frayer leur chemin pour initier les dialogues : Spell Effect: NPCBump [300]
- Détection automatique des créatures invisibles : Spell Effect: Invisible Detection by Script [193]
- Immunité à l'attaque sournoise : Protection: Backstab [292]
- State: Infravision [63]
- Recoloration des créatures (effets 8, 9, 51 et 52) à partir d'une table "maison".

Posté : mer. 23 sept. 2015, 22:34
par Freddy_Gwendo
- Modification de l'attribution des couleurs à partir des valeurs RGB avec ou sans effet de transparence (#65 et/ou #66) et suppression automatique des effets de colorations existants (merci à Isaya pour m'avoir expliqué pourquoi ce code fonctionnait sans que je comprenne pourquoi !).
- Ajout d'une procédure permettant d'attribuer automatiquement des caractéristiques spéciales par type de créature (Troll, Dragon, Mort-Vivant, Démon...) : soit par écriture directe dans le fichier, soit par acquisition d'objets leur attribuant ces caractéristiques, soit par ajout d'effets globaux dans le fichier de la créature.

Posté : jeu. 08 oct. 2015, 12:16
par Freddy_Gwendo
J'ai modifié mes fonctions pour qu'elles puissent servir à ajouter des immunités à des créatures OU à objets

Liste des fonctions d'immunités :
  • GW_ADD_SPECIAL_EFFECTS : Two Weapon Skill +2 Stat: THAC0 Modifier (Off-Hand) - NPCBump [300] - Invisible Detection by Script [193] - Protection from Backstab [292] - Infravision [63] - Protection from Turn [297].
  • GW_IMMUN_POISON : Immunité au Poison.
  • GW_IMMUN_DISEASE : Immunité à la Maladie.
  • GW_IMMUN_BLEEDING : Immunité à l'Hémorragie.
  • GW_IMMUN_BLIND : Immunité à la Cécité.
  • GW_IMMUN_CHARM : Immunité aux Charmes.
  • GW_IMMUN_CONFUS : Immunité à la Confusion.
  • GW_IMMUN_DEATH : Immunité à la Mort.
  • GW_IMMUN_DRAIN : Immunité à l'Absorption d'énergie.
  • GW_IMMUN_FEAR : Immunité à la Peur.
  • GW_IMMUN_HOLD : Immunité à l'Immobilisation.
  • GW_IMMUN_ILLUSION : Immunité à l'Illusion.
  • GW_IMMUN_MIND_EFFECTS : Immunité aux effets affectant l'Esprit.
  • GW_IMMUN_PETRIF : Immunité à la Pétrification.
  • GW_IMMUN_SILENCE : Immunité au Silence.
  • GW_IMMUN_SLEEP : Immunité au Sommeil.
  • GW_IMMUN_SLOW : Immunité à la Lenteur.
  • GW_IMMUN_STUN : Immunité à l'Étourdissement.
  • GW_IMMUN_MISSILE_NORM : Immunité aux projectiles normaux.
  • GW_IMMUN_FLIGHT : Immunité des créatures volantes à certains sorts.
  • GW_IMMUN_ENTANGLE : Immunité à l'effet d'Enchevêtrement.
  • GW_IMMUN_WEB : Immunité à l'effet de Toile.

Il me reste :
  1. à définir et/ou coder les immunités suivantes : Enchantement, Son, Métamorphose, Protection vs Loi, Mal et compagnie, immunités à certains sorts ou à des niveaux de sorts. Ainsi que la régénération.
  2. Rajouter une fonction spéciale pour les adapter aux sorts.
  3. Définir une routine pour classer les sorts selon leurs effets et les intégrer directement dans les immunités.

Posté : mer. 14 oct. 2015, 23:42
par Freddy_Gwendo
Comme je n'arrive toujours pas à trouver un moyen simple de gérer les sorts mémorisables dans les HLA, je me suis concentré sur d'autres points :

1. FONCTION GW_IMMUN_POLYM : Immunité à la Métamorphose.
2. FONCTION GW_CRE_IMMUN : AJOUT automatique d'un objet accordant des immunités particulières à un type de créature.
3. Ajout automatique des effets de régénération.
4. Id. pour les immunités aux armes.
5. Id. pour les immunités ou traits spéciaux à des sous-types de créatures.

Le tout appelé par des tables 2da qui permettent soit d'ajouter des effets dans le fichier cre., soit de doter les créatures d'objets (anneaux, amulettes, ceintures...) qui leur donnent ces immunités.

Par ailleurs, une procédure permet de créer ces objets selon le type d'immunité choisi.

Enfin, et c'est en cours et presque terminé, j'ai rajouté des contrôles qui permettent de ne pas saisir de valeurs (ex : ID reprend les données du fichier source, AF signifie que l'on a pas encore défini certaines caractéristiques. Dans ce cas, la procédure entre des données basiques afin de ne pas planter le tp2 et un fichier txt est créé avec la liste des données manquantes et leur valeur de remplacement temporaire.

Posté : jeu. 15 oct. 2015, 19:29
par Freddy_Gwendo
Ajout de :

- Modification de la vitesse de déplacement de la créature : soit State: Haste [16] (0 Normal Haste - 1 Improved Haste - 2 Speed haste without attack bonuses) ,soit Stat: Modifier (II) [176].


Sinon, la plupart des contrôles sont effectifs :
► Afficher le texte

Code : Tout sélectionner

Créature	Nom					       Code	-->	Valeur de remplacement
=============================================================================================================================================================
GW0001FI	Firmin
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SEXE manquante pour traitement		:	AF	-->	Calcul des points de vie impossible pour classe = INNOCENT.
										Remplacée par la valeur du fichier source (GWCreNul.cre) : MALE.
  ==>   Valeur ALIGNEMENT manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : NEUTRAL.
  ==>   Valeur GENERAL manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : HUMANOID.
  ==>   Valeur REACTION manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : NEUTRAL.
  ==>   Valeur RACE ENNEMIE manquante pour traitement	:	AF	-->	Remplacée par celle du fichier source (GWCreNul.cre) : NO_RACE.
  ==>   Valeur RACE manquante pour traitement		:	AF	-->	Remplacée par celle du fichier source (GWCreNul.cre) : HUMAN.
  ==>   Valeur CLASSE manquante pour traitement		:	AF	-->	Remplacée par celle du fichier source (GWCreNul.cre) : NO_CLASS.
  ==>   Valeur KIT manquante pour traitement		:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : NO_KIT.
  ==>   Valeur ANIMATION manquante pour traitement	:	AF	-->	Remplacée par celle du fichier source (GWCreNul.cre) : FIRE_RING.
  ==>   Valeur SPECIFIC manquante pour traitement	:	AF	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP manquante pour traitement		:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 1.
  ==>   Valeur HP max manquante pour traitement		:	AF	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur Level 1 manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 1.
  ==>   Valeur Level 2 manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 1.
  ==>   Valeur Level 3 manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 1.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur IMMUN. ARMES manquante pour traitement	:   IMMUNE3	-->	Immunité aux armes définie par le fichier GWCREIMM.2da.
  ==>   Valeur IMMUNITÉS GEN. manquante pour traitement :   DRAGON	-->	Immunités générales définies par le fichier GWCREIMM.2da.
  ==>   Valeur IMMUNITÉS SPEC. manquante pour traitement :  ST
				-->	Immunités spéciales définies par la table (array) GW_cre_immunites.
		CE = Cécité (Blindness) - CH = Charmes - CF = Confusion - DE = Mort (Death) - DR = Absorption (Drain) - FE = Peur (Fear)
		HD = Paralysie (Hold) - IL = Illusions - LE = Lenteur (slow) - MD = Mind effects - PE = Pétrification - PO = Métamorphose (Polymorph)
		SG = Hémorragie (Bleeding) - SI = Silence - SL = Sommeil (Sleep) - ST = Étourdissement (Stun) - NM = Projectiles normaux (Normal missiles)
		FL = Créatures volantes (Flight) - EN = Enchevêtrement (Entangle) - WE = Toile (Web)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0003AL	Albert
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur XP manquante pour traitement		:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur XP sum. manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur SEXE manquante pour traitement		:	ID	-->	Calcul des points de vie impossible pour classe = INNOCENT.
										Remplacée par la valeur du fichier source (GWCreNul.cre) : MALE.
  ==>   Valeur ALIGNEMENT manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : NEUTRAL.
  ==>   Valeur GENERAL manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : HUMANOID.
  ==>   Valeur REACTION manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : NEUTRAL.
  ==>   Valeur RACE ENNEMIE manquante pour traitement	:	ID	-->	Remplacée par celle du fichier source (GWCreNul.cre) : NO_RACE.
  ==>   Valeur RACE manquante pour traitement		:	ID	-->	Remplacée par celle du fichier source (GWCreNul.cre) : HUMAN.
  ==>   Valeur CLASSE manquante pour traitement		:	ID	-->	Remplacée par celle du fichier source (GWCreNul.cre) : NO_CLASS.
  ==>   Valeur KIT manquante pour traitement		:	AF	-->	Remplacée par celle du fichier source (GWCreNul.cre) : NO_KIT.
  ==>   Valeur SPECIFIC manquante pour traitement	:	ID	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur IMMUNITÉS GEN. manquante pour traitement :   DRAGON2	-->	Immunités générales définies par le fichier GWCREIMM.2da.
  ==>   Valeur IMMUNITÉS SPEC. manquante pour traitement :  ST-FE
				-->	Immunités spéciales définies par la table (array) GW_cre_immunites.
		CE = Cécité (Blindness) - CH = Charmes - CF = Confusion - DE = Mort (Death) - DR = Absorption (Drain) - FE = Peur (Fear)
		HD = Paralysie (Hold) - IL = Illusions - LE = Lenteur (slow) - MD = Mind effects - PE = Pétrification - PO = Métamorphose (Polymorph)
		SG = Hémorragie (Bleeding) - SI = Silence - SL = Sommeil (Sleep) - ST = Étourdissement (Stun) - NM = Projectiles normaux (Normal missiles)
		FL = Créatures volantes (Flight) - EN = Enchevêtrement (Entangle) - WE = Toile (Web)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0003AU	Augustin
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur CLASSE manquante pour traitement		:	AF	-->	Remplacée par celle du fichier source (GWCreNul.cre) : NO_CLASS.
  ==>   Valeur KIT manquante pour traitement		:	ID	-->	Remplacée par celle du fichier source (GWCreNul.cre) : NO_KIT.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur REGENERATION manquante pour traitement	:   REG1HPSC	-->	Régénération définie par le fichier GWCREREG.2da.
  ==>   Valeur IMMUNITÉS GEN. manquante pour traitement :   UNDEAD	-->	Immunités générales définies par le fichier GWCREIMM.2da.
  ==>   Valeur IMMUNITÉS SPEC. manquante pour traitement :  CH-HD-PE
				-->	Immunités spéciales définies par la table (array) GW_cre_immunites.
		CE = Cécité (Blindness) - CH = Charmes - CF = Confusion - DE = Mort (Death) - DR = Absorption (Drain) - FE = Peur (Fear)
		HD = Paralysie (Hold) - IL = Illusions - LE = Lenteur (slow) - MD = Mind effects - PE = Pétrification - PO = Métamorphose (Polymorph)
		SG = Hémorragie (Bleeding) - SI = Silence - SL = Sommeil (Sleep) - ST = Étourdissement (Stun) - NM = Projectiles normaux (Normal missiles)
		FL = Créatures volantes (Flight) - EN = Enchevêtrement (Entangle) - WE = Toile (Web)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0003DI	Didier
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur REACTION manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : NEUTRAL.
  ==>   Valeur SPECIFIC manquante pour traitement	:	AF	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur IMMUNITÉS GEN. manquante pour traitement :   TROLLS	-->	Immunités générales définies par le fichier GWCREIMM.2da.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0003ER	Ernest
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur REPUTATION manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RACE ENNEMIE manquante pour traitement	:	AF	-->	Remplacée par celle du fichier source (GWCreNul.cre) : NO_RACE.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST FIRE manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST COLD manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST ELECT. manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST ACID manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST FIRE MAG manquante pour traitement :	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST COLD MAG manquante pour traitement :	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST MAGIC manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST SLASHING manquante pour traitement :	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST CRUSHING manquante pour traitement :	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST PIERCING manquante pour traitement :	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST MISSILE manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	AF	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	AF	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0003FE	Félix
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST FIRE manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST COLD manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST ELECT. manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST ACID manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST FIRE MAG manquante pour traitement :	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST COLD MAG manquante pour traitement :	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST MAGIC manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST SLASHING manquante pour traitement :	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST CRUSHING manquante pour traitement :	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST PIERCING manquante pour traitement :	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST MISSILE manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	ID	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	ID	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0003OW	Owen
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	50	-->	Résistance de 50 % au poison.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0003D1	Docker
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0003D2	Docker
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0003M1	Marin
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0003M2	Marin
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0003M3	Marin
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur IMMUNITÉS SPEC. manquante pour traitement :  ST-SL-HD-NM
				-->	Immunités spéciales définies par la table (array) GW_cre_immunites.
		CE = Cécité (Blindness) - CH = Charmes - CF = Confusion - DE = Mort (Death) - DR = Absorption (Drain) - FE = Peur (Fear)
		HD = Paralysie (Hold) - IL = Illusions - LE = Lenteur (slow) - MD = Mind effects - PE = Pétrification - PO = Métamorphose (Polymorph)
		SG = Hémorragie (Bleeding) - SI = Silence - SL = Sommeil (Sleep) - ST = Étourdissement (Stun) - NM = Projectiles normaux (Normal missiles)
		FL = Créatures volantes (Flight) - EN = Enchevêtrement (Entangle) - WE = Toile (Web)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0007AD	Adèle
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	AF	-->	Aucun calcul n'est lancé. Au pire les valeurs sont celles du fichier source (GWCreNul.cre).
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	AF	-->	Les valeurs sont celles du moddeur ou du fichier source (GWCreNul.cre).
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	AF	-->	Aucun calcul n'est lancé. Au pire les valeurs sont celles du fichier source (GWCreNul.cre).
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	AF	-->	Les valeurs sont celles du moddeur ou du fichier source (GWCreNul.cre).
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	AF	-->	La valeur est celle du moddeur ou du fichier source (GWCreNul.cre).
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	AF	-->	Les valeurs sont celles du moddeur ou du fichier source (GWCreNul.cre).
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	AF	-->	La valeur est celle du moddeur ou du fichier source (GWCreNul.cre).
  ==>   Valeur STRENGTH manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 9.
  ==>   Valeur STRENGTH EXC. manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur INTELLIGENCE manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 9.
  ==>   Valeur WISDOM manquante pour traitement		:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 9.
  ==>   Valeur DEXTERITY manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 9.
  ==>   Valeur CONSTITUTION manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 9.
  ==>   Valeur CHARISME manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 9.
  ==>   Valeur XP manquante pour traitement		:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur XP sum. manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur REPUTATION manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur AC manquante pour traitement		:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 10.
  ==>   Valeur AC vs CRUSHING manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur AC vs MISSILES manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur AC vs PIERCING manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur AC vs SLASHING manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur MORALE manquante pour traitement		:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 10.
  ==>   Valeur MORALE BREAK manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 7.
  ==>   Valeur MORAL RECOVERY manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 60.
  ==>   Valeur METAL COLOUR manquante pour traitement	:	AF	-->	Soit en dehors du spectre des couleurs (> 255), soit manquante (AF).
										Remplacée par la valeur du fichier source (GWCreNul.cre).
  ==>   Valeur MINOR COLOUR manquante pour traitement	:	AF	-->	Soit en dehors du spectre des couleurs (> 255), soit manquante (AF).
										Remplacée par la valeur du fichier source (GWCreNul.cre).
  ==>   Valeur MAJOR COLOUR manquante pour traitement	:	AF	-->	Soit en dehors du spectre des couleurs (> 255), soit manquante (AF).
										Remplacée par la valeur du fichier source (GWCreNul.cre).
  ==>   Valeur SKIN COLOUR manquante pour traitement	:	AF	-->	Soit en dehors du spectre des couleurs (> 255), soit manquante (AF).
										Remplacée par la valeur du fichier source (GWCreNul.cre).
  ==>   Valeur LEATHER COLOUR manquante pour traitement	:	AF	-->	Soit en dehors du spectre des couleurs (> 255), soit manquante (AF).
										Remplacée par la valeur du fichier source (GWCreNul.cre).
  ==>   Valeur ARMOR COLOUR manquante pour traitement	:	AF	-->	Soit en dehors du spectre des couleurs (> 255), soit manquante (AF).
										Remplacée par la valeur du fichier source (GWCreNul.cre).
  ==>   Valeur HAIR COLOUR manquante pour traitement	:	AF	-->	Soit en dehors du spectre des couleurs (> 255), soit manquante (AF).
										Remplacée par la valeur du fichier source (GWCreNul.cre).
  ==>   Valeur ANIMATION manquante pour traitement	:	AF	-->	Remplacée par celle du fichier source (GWCreNul.cre) : FIRE_RING.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP manquante pour traitement		:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 1.
  ==>   Valeur HP max manquante pour traitement		:	AF	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur THAC0 manquante pour traitement		:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 20.
  ==>   Valeur ST vs DEATH manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 20.
  ==>   Valeur ST vs WANDS manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 20.
  ==>   Valeur ST vs POLYM manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 20.
  ==>   Valeur ST vs BREATH manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 20.
  ==>   Valeur ST vs SPELLS manquante pour traitement	:	AF	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 20.
  ==>   Valeur NB ATTAQ. / RD manquante pour traitement	:	AF	-->	Remplacée par la valeur 1.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	AF	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	AF	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur REGENERATION manquante pour traitement	:	AF	-->	Remplacée par la valeur no : régénération du fichier source (GWCreNul.cre).
  ==>   Valeur IMMUN. ARMES manquante pour traitement	:	AF	-->	Remplacée par la valeur no : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur IMMUNITÉS GEN. manquante pour traitement :	AF	-->	Remplacée par la valeur no : immunités du fichier source (GWCreNul.cre).
  ==>   Valeur IMMUNITÉS SPEC. manquante pour traitement :	AF	-->	Remplacée par la valeur no : immunités du fichier source (GWCreNul.cre).
  ==>   Valeur COLORATION manquante pour traitement	:	AF	-->	Remplacée par la valeur no : colorisation du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0007F1	Arlette
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	ID	-->	Aucun calcul n'est lancé. Au pire les valeurs sont celles du fichier source (GWCreNul.cre).
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	ID	-->	Les valeurs sont celles du moddeur ou du fichier source (GWCreNul.cre).
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	ID	-->	Aucun calcul n'est lancé. Au pire les valeurs sont celles du fichier source (GWCreNul.cre).
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	ID	-->	Les valeurs sont celles du moddeur ou du fichier source (GWCreNul.cre).
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	ID	-->	La valeur est celle du moddeur ou du fichier source (GWCreNul.cre).
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	ID	-->	Les valeurs sont celles du moddeur ou du fichier source (GWCreNul.cre).
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	ID	-->	La valeur est celle du moddeur ou du fichier source (GWCreNul.cre).
  ==>   Valeur STRENGTH manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 9.
  ==>   Valeur STRENGTH EXC. manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur INTELLIGENCE manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 9.
  ==>   Valeur WISDOM manquante pour traitement		:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 9.
  ==>   Valeur DEXTERITY manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 9.
  ==>   Valeur CONSTITUTION manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 9.
  ==>   Valeur CHARISME manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 9.
  ==>   Valeur XP manquante pour traitement		:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur XP sum. manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur REPUTATION manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur AC manquante pour traitement		:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 10.
  ==>   Valeur AC vs CRUSHING manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur AC vs MISSILES manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur AC vs PIERCING manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur AC vs SLASHING manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur MORALE manquante pour traitement		:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 10.
  ==>   Valeur MORALE BREAK manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 7.
  ==>   Valeur MORAL RECOVERY manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 60.
  ==>   Valeur ANIMATION manquante pour traitement	:	ID	-->	Remplacée par celle du fichier source (GWCreNul.cre) : FIRE_RING.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP manquante pour traitement		:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 1.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur THAC0 manquante pour traitement		:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 20.
  ==>   Valeur ST vs DEATH manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 20.
  ==>   Valeur ST vs WANDS manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 20.
  ==>   Valeur ST vs POLYM manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 20.
  ==>   Valeur ST vs BREATH manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 20.
  ==>   Valeur ST vs SPELLS manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GWCreNul.cre) : 20.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	ID	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	ID	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur REGENERATION manquante pour traitement	:	ID	-->	Remplacée par la valeur no : régénération du fichier source (GWCreNul.cre).
  ==>   Valeur IMMUN. ARMES manquante pour traitement	:	ID	-->	Remplacée par la valeur no : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur IMMUNITÉS GEN. manquante pour traitement :	ID	-->	Remplacée par la valeur no : immunités du fichier source (GWCreNul.cre).
  ==>   Valeur IMMUNITÉS SPEC. manquante pour traitement :	ID	-->	Remplacée par la valeur no : immunités du fichier source (GWCreNul.cre).
  ==>   Valeur COLORATION manquante pour traitement	:	ID	-->	Remplacée par la valeur no : colorisation du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0007F2	Julie
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	Y	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur REGENERATION manquante pour traitement	:   TROLLBLI	-->	Régénération définie par le fichier GWCREREG.2da.
  ==>   Valeur COLORATION manquante pour traitement	:   TROLLBLI	-->	Colorisation définie par le fichier GWCRECOL.2da.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0007F3	Marie
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0007F4	Léonce
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0007TI	Tine
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0007JA	Jeannot
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0007B2	Fillette
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0007G1	Maréva
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0007G2	Garçon
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0008FL	Capitaine Florence
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur NB ATTAQ. / RD manquante pour traitement	:	AF	-->	Remplacée par la valeur 1.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0008CO	Second Colas
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur NB ATTAQ. / RD manquante pour traitement	:	AF	-->	Remplacée par la valeur 1.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0008JA	Jeannot
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0008BO	Bosco
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur NB ATTAQ. / RD manquante pour traitement	:	AF	-->	Remplacée par la valeur 1.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0008C1	Monsieur Sylvain
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur NB ATTAQ. / RD manquante pour traitement	:	AF	-->	Remplacée par la valeur 1.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0008C2	Corsaire
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur NB ATTAQ. / RD manquante pour traitement	:	AF	-->	Remplacée par la valeur 1.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0008C3	Corsaire
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur NB ATTAQ. / RD manquante pour traitement	:	AF	-->	Remplacée par la valeur 1.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0008C4	Corsaire
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0008OW	Owen
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur KIT manquante pour traitement		:	ID	-->	Remplacée par celle du fichier source (GW0003Ow.cre) : KENSAI.
  ==>   Valeur ANIMATION manquante pour traitement	:	same	-->	Remplacée par celle du fichier source (GW0003Ow.cre) : L_FIGHTER_MALE_HUMAN.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GW0003Ow.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur Level 1 manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GW0003Ow.cre) : 5.
  ==>   Valeur Level 2 manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GW0003Ow.cre) : 1.
  ==>   Valeur Level 3 manquante pour traitement	:	ID	-->	Remplacée par la valeur du fichier source (GW0003Ow.cre) : 1.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GW0003Ow.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GW0003Ow.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0008M3	Marin
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur ANIMATION manquante pour traitement	:	ID	-->	Remplacée par celle du fichier source (GW0003M3.cre) : SAILOR_MAN.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GW0003M3.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GW0003M3.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GW0003M3.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0017CH	Christine
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0025ED	Edmond
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GW0029SO	Sophie
  ==>   CALCUL ALÉATOIRE des CARACTÉRISTIQUES		:	N	-->	Y = 'Oui'. - N = 'Non'
  ==>   NÉGLIGER les CONTRÔLES des CARACTÉRISTIQUES	:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   CALCUL ALÉATOIRE des POINTS de VIE		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des POINTS de VIE	:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES du THAC0			:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER les CONTRÔLES des JS (ST)		:	Y	-->	Y = 'Oui'. - N = 'Non'.
  ==>   NÉGLIGER le CALCUL de la RÉPUTATION		:	N	-->	Y = 'Oui'. - N = 'Non'.
  ==>   Valeur SPECIFIC manquante pour traitement	:	NO	-->	Remplacée par celle du fichier source (GWCreNul.cre) : 0.
  ==>   Valeur HP max manquante pour traitement		:	ID	-->	Remplacée par la valeur de base des PV : ID.
  ==>   Valeur RESIST DISEASE manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
  ==>   Valeur RESIST POISON manquante pour traitement	:	N	-->	Remplacée par la valeur 0 ('no') : immunité du fichier source (GWCreNul.cre).
-------------------------------------------------------------------------------------------------------------------------------------------------------------

Je mets de côté les derniers ajustements car la procédure fonctionne en l'état et je me focalise sur des éléments plus concrets du mod.
J'y reviendrai à l'occasion. ;)

Posté : jeu. 15 oct. 2015, 22:22
par Cocrane
Salut Freddy,

ça fait un moment que je veux poster sur ton sujet. Car je ne suis pas sur d'avoir tout compris. ^^

Pour moi, tu es à des années lumières devant moi au niveau technique. Donc je vais essayer d'y voir clair.

Tu as fait des fonctions pour le TP2 afin d'automatiser des caractéristiques de créatures?

Je comprends pas trop comment l'intégrer dans mon mod.

Moi j'utilise DLTCEP, je crée un CRE avec les caractéristiques dont j'ai besoin. Et parfois je me dis combien il devrait avoir de points vie, de THACO etc... selon son niveau. C'est sur l'automatisation de ce point que tu travailles?

Posté : ven. 16 oct. 2015, 01:29
par Freddy_Gwendo
Cocrane a écrit : Tu as fait des fonctions pour le TP2 afin d'automatiser des caractéristiques de créatures?

Je comprends pas trop comment l'intégrer dans mon mod.

Moi j'utilise DLTCEP, je crée un CRE avec les caractéristiques dont j'ai besoin. Et parfois je me dis combien il devrait avoir de points vie, de THACO etc... selon son niveau. C'est sur l'automatisation de ce point que tu travailles?
En fait, j'en avais marre de faire des aller-retour entre la doc et mes fichiers pour vérifier que mes créatures étaient conformes. Alors, j'ai commencé par faire un tableau OpenOffice avec quelques valeurs calculées (PV par exemple selon la classe et le niveau).
Mais ça n'allait pas bien loin : il y a plus de 120 variables à renseigner par créature.

Alors j'ai commencé par automatiser la procédure avec WeiDU. Le principe est simple : je lis les fichiers ids et 2da qui contrôlent les règles du jeu, puis WeiDU renseigne automatiquement les champs.
Par exemple, les PV, les THAC0, les JS, le nombre d'attaques par round, la réputation, la connaissance, etc...

Petit-à-petit, le projet s'est étoffé : maintenant, je peux choisir de créer aléatoirement les stats des persos, vérifier si celles que j'ai entrées "manuellement" sont conformes aux règles et décider de les corriger ou pas.

De même, j'en avais assez de renseigner les sorts à la main : pour l'instant, la procédure calcule automatiquement les sorts divins mémorisables par les persos et les rentre en mémoire. Il ne reste plus qu'à saisir à la main ce que l'on veut apprendre.
Idem pour les kits : quand je crée un cavalier, toutes ses habilités sont automatiquement insérées dans le fichier .cre.

Là, je viens de terminer les fonctions d'immunités : par exemple, les morts-vivants disposeront automatiquement des immunités qui leur sont propres. Idem pour les dragons. Plus besoin de les saisir, ni de leur ajouter un objet particulier : WeiDU le fait tout seul.

Pareil pour la coloration : j'ai créé un fichier 2da qui recense toutes les colorations dont j'ai besoin. Il suffit que je renseigne la colonne COLOR par GOLEMAMB pour que WeiDU écrive les codes correspondant à la coloration du Golem d'Ambre que je t'avais passé.

Enfin, comme c'est pénible de remplir toutes les colonnes du tableau, je viens de terminer les contrôles qui permettent de zapper certaines saisies et les remplacent par des valeurs "moyennes".

Bref, je suis en train de tester tout ça avec mes créatures à partir d'un fichier calc d'OpenOffice : dans mon tp2, je lance la sous-routine (203_creatures.tpa) qui charge le fichier OpenOffice (en fait une version csv) et les librairies de fonctions et de macros, puis fait le travail toute seule : selon que je copie un fichier existant ou que j'en crée un nouveau, tout est automatique.

Si je veux modifier une valeur, par exemple augmenter une créature d'un, ou bien modifier ses PV (les rendre maximum ou aléatoires) il suffit que je modifie un champ du tableau et que je relance la routine.

J'ai même poussé le vice jusqu'à automatiser l'attribution des noms des créatures. ;)

Bref, tout est malléable et modifiable à tout instant. Si je veux rajouter une immunité aux sorts de soins (ce que je vais faire bientôt), il me suffit de rajouter la fonction adéquate (en fait, un copier-coller d'une fonction existante en modifiant ses paramètres) et de rajouter une ligne au fichier 2da qui gère les immunités pour qu'elle soit prise en compte.
Id. si je veux rajouter une coloration. Là je n'ai plus qu'à ajouter la ligne GOLEMBLEU avec ses paramètres dans le fichier GWCRECOL.2da et à saisir GOLEMBLEU dans la colonne COLOR de la créature X pour qu'elle soit colorée en conséquence.


Bref, si ça t'intéresse, tu pourras utiliser la procédure et l'adapter à tes besoins en ajoutant ou en modifiant des paramètres.

Le plus gros du boulot a été fait (près de 10 000 lignes de code), là je teste.

Tout n'est pas renseigné mais pour l'instant, il ne me reste plus qu'à saisir à la main les sorts mémorisés (leur nombre est déjà calculé selon le niveau).

Posté : ven. 16 oct. 2015, 23:59
par Cocrane
Impressionnant. C'est le mot.

Effectivement ça pourrait être un gain de temps très intéressant.

Je n'ai pas le recul sur le confort d'utilisation mais l'aspect automatisation des règles est vraiment un atout.


Donc Ok pour le tester, lorsque tu seras satisfait de ton code.

En tout cas bravo.

Avec tes passionnés comme toi BG a encore une longue vie. ^^

Posté : sam. 17 oct. 2015, 00:20
par Freddy_Gwendo
Je pense qu'une version "utilisable" sera disponible d'ici une semaine ou deux : il faut que je la teste sur plus de 200 ou 300 créatures pour m'assurer qu'elle fonctionne plus ou moins et identifier les éventuels dysfonctionnements. Puis rédiger un petit guide d'utilisation qui prévoira les cas où ça ne fonctionne pas, car il y en aura forcément !

Mais je vais consacrer mon week-end à finaliser le chapitre I du mod (sans les scripts de créatures, ou plutôt en les dotant de scripts "vanilla") pour le proposer en test.

Plus quelques bam à pondre, et enfin me mettre à jour avec Infinity Animations (publier mon fix de la wyverne blanche et inscrire l'animation du Golem d'Ambre), maintenant que SHS est de retour. ;)

Tu pourras enfin l'inclure dans ton tp2 sans squatter le slot du golem d'argile. ^^

Posté : mar. 20 oct. 2015, 18:54
par Freddy_Gwendo
Bon, j'ai un léger problème avec la fonction CREATE : Toutes mes créatures dotées d'objets créés avec elle provoquent invariablement un CTD :
ASSERTION FAILED! Return Address: 0x9FFB75 File: ChVidImage3d.cpp Line: 899 Expression: FALSE Message: CVidCell::FXRender3dSetPalette: LoadFrame() failed
Pourtant, ces fichiers ne sont pas corrompus.

Chose encore plus étrange, lorsque je les charge et les sauve dans DLTCEP, sans les modifier, miracle : plus de CTD ! :$

Bref, quelqu'un a-t-il une petite idée du pourquoi du comment de ce foutu bug ?

Sinon, je vais devoir modifier ma fonction et me passer de CREATE, mais ça me gonfle plus que sérieusement ! :gign:

Posté : mar. 20 oct. 2015, 22:47
par Isaya
Peux-tu poster les deux fichiers avant et après réenregistrement par DLTCEP, s'il te plaît ? Une comparaison au niveau binaire permettra de mettre en évidence ce qui a été changé.

Par le passé, Shadow Keeper était connu pour enregistrer de façon non standard, en ne suivant pas forcément l'ordre habituel (après tout il y a des offsets dans certains formats pour le début de chacun des blocs, rien n'oblige à ce qu'ils soient toujours dans le même ordre). A l'époque cela avait causé des tensions entre son auteur et le responsable de TeamBG, qui avait annoncé vouloir faire une version modifiée de Shadow Keeper. La légende dit que c'est la raison pour laquelle les sources n'ont plus été mises en ligne à partir d'une certaine version.

Bref, il me semble que DLTCEP réenregistre les fichiers dans l'ordre considéré habituel et corrige également certains défauts lorsqu'il en trouve (en particulier pour la worldmap).
Peut-être y a-t-il un phénomène de ce type-là qui corrige ton fichier.

Quasiment tous les éditeurs hexa doivent permettre de faire une comparaison. Kdiff3 pourrait déjà t'indiquer si quelque chose à changé.

Posté : mar. 20 oct. 2015, 22:56
par Freddy_Gwendo
Argh ! Désolé, j'étais persuadé de l'avoir fait...

Je t'envoie deux séries : un casque et une plate.

Ce qui m'étonne, c'est que c'est une fonction WeiDU, donc elle devrait fonctionner...

Posté : mer. 21 oct. 2015, 03:04
par Freddy_Gwendo
Confirmation, c'est bien la fonction CREATE qui pose problème.

J'ai remplacé

Code : Tout sélectionner

ACTION_FOR_EACH GW_HelmH3 IN ~GWHelmOr~ BEGIN
	CREATE ITM "%GW_HelmH3%"
		LPF ~GW_CREATE_ITEM~ STR_VAR GW_item_type = HELMH3 END
		LPF~GW_ITM_COLORISATION~ STR_VAR GW_item_code = H3 GW_itm_color = "SHINY_GOLD" END

LPF ag_spl_itm_validity RET valid END	// Une fonction empruntée à DS pour vérifier la validité du fichier créé : ça marche !
PRINT "valid = %valid%"
END

ACTION_FOR_EACH GW_PlateC IN ~GWPlatOr~ BEGIN
	CREATE ITM "%GW_PlateC%"
		LPF ~GW_CREATE_ITEM~ INT_VAR GW_item_bonus_AC = 3 STR_VAR GW_item_type = FULLPLATE END
		LPF~GW_ITM_COLORISATION~ STR_VAR GW_item_code = 4A GW_itm_color = "SHINY_GOLD" END

LPF ag_spl_itm_validity RET valid END
PRINT "valid = %valid%"
END
par

Code : Tout sélectionner

ACTION_FOR_EACH GW_HelmH3 IN ~GWHelmOr~ BEGIN
	COPY ~Diamant_Eternel/Clones/GWCreate.itm~  ~override/%GW_HelmH3%.itm~	// Un fichier itm vide.
		LPF ~GW_CREATE_ITEM~ STR_VAR GW_item_type = HELMH3 END
		LPF~GW_ITM_COLORISATION~ STR_VAR GW_item_code = H3 GW_itm_color = "SHINY_GOLD" END

LPF ag_spl_itm_validity RET valid END
PRINT "valid = %valid%"
END

ACTION_FOR_EACH GW_PlateC IN ~GWPlatOr~ BEGIN
	COPY ~Diamant_Eternel/Clones/GWCreate.itm~  ~override/%GW_PlateC%.itm~
		LPF ~GW_CREATE_ITEM~ INT_VAR GW_item_bonus_AC = 3 STR_VAR GW_item_type = FULLPLATE END
		LPF~GW_ITM_COLORISATION~ STR_VAR GW_item_code = 4A GW_itm_color = "SHINY_GOLD" END

LPF ag_spl_itm_validity RET valid END
PRINT "valid = %valid%"
END
Et plus de CTD.

Je pensais que ça provenait de ma librairie de fonctions, mais apparemment non puisqu'elles fonctionnent dans le second cas.

D'ailleurs les voici :
► Afficher le texte
FONCTION GW_CREATE_ITEM

Code : Tout sélectionner

DEFINE_PATCH_FUNCTION ~[color="#00FFFF"]GW_CREATE_ITEM[/color]~
	INT_VAR	GW_item_bonus_AC = 0
	STR_VAR	GW_item_type	 = "no"
BEGIN

	SET GW_itm_created = 0
	PATCH_IF ("%GW_item_type%" STRING_COMPARE_CASE "no") AND ("%GW_item_type%" STRING_COMPARE_CASE "") BEGIN

// Vérification des correspondances avec la table (array) GW_itm_types.
// --------------------------------------------------------------------
		PHP_EACH GW_itm_types AS itm_types => type_item BEGIN

			PATCH_IF ("%GW_item_type%" STRING_COMPARE_CASE "%type_item%" = 0) BEGIN
				WRITE_LONG	0x08 %itm_types_7%		// Name1
				WRITE_LONG	0x0c %itm_types_7%		// Name2
				WRITE_LONG	0x50 %itm_types_8%		// Unidentified Description
				WRITE_LONG	0x54 %itm_types_8%		// Identified description
				WRITE_SHORT 0x1c ~%itm_types_0%~		// Item type
				WRITE_LONG	0x18 THIS | BIT3 | BIT5		// Flags
				PATCH_IF ("%itm_types_3%" STRING_COMPARE_CASE "0") BEGIN	// No Paperdoll
					WRITE_ASCIIE 0x22 ~%itm_types_3%~ #2	// Item animation
				END
				WRITE_SHORT 0x38 1			// Stack amount
				WRITE_ASCIIE 0x3a ~%itm_types_4%~ #8	// Inventory icon
				WRITE_ASCIIE 0x44 ~%itm_types_5%~ #8	// Ground icon
				WRITE_ASCIIE 0x58 ~%itm_types_6%~ #8	// Description icon
				SET GW_itm_created = 1
			END	// of PATCH_IF "%GW_item_type%
		END		// of PHP_EACH
	END			// of PATCH_IF ("%GW_item_type%" STRING_COMPARE_CASE "no")

// Calcul des bonus d'AC.
// ----------------------
	PATCH_IF GW_itm_created = 1 BEGIN
		PATCH_IF VARIABLE_IS_SET $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~ALL~) BEGIN	// Vérification des correspondances avec le fichier GWItemAC.2da

			PATCH_IF ($GW_2da(~GWItemAC~ ~%GW_item_type%~ ~BASE~) > 0) BEGIN	// LEATHER, STUDDED, HIDE, CHAIN, SPLINT, PLATE, FULLPLATE
				SET parameter16 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~BASE~) - GW_item_bonus_AC
				SET parameter01 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~BLUNT~)
				SET parameter02 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~MISSILE~)
				SET parameter04 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~PIERCING~)
				SET parameter08 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~SLASHING~)
				SET parameter00 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~ALL~)
			END	ELSE BEGIN							// SHIELDS
				SET parameter00 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~ALL~) + GW_item_bonus_AC
				SET parameter16 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~BASE~)
				SET parameter01 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~BLUNT~)
				SET parameter02 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~MISSILE~)
				SET parameter04 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~PIERCING~)
				SET parameter08 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~SLASHING~)
				PATCH_MATCH ~%GW_item_type%~ WITH
					RONDACHE	BEGIN SET parameter02 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~MISSILE~) - GW_item_bonus_AC END
					TARGE		BEGIN SET parameter02 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~MISSILE~) - GW_item_bonus_AC 
							      SET parameter04 = $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~PIERCING~) - GW_item_bonus_AC END
					DEFAULT
				END
			END	// of PATCH_IF ($GW_2da(~GWItemAC~ ~%GW_item_type%~ ~BASE~) > 0)

// Écriture des bonus à l'AC ==> Stat: AC vs. Damage Type Modifier [0].
// --------------------------------------------------------------------
			PATCH_IF ($GW_2da(~GWItemAC~ ~%GW_item_type%~ ~MISSILE~) != 0) BEGIN
				LPF ~ADD_ITEM_EQEFFECT~ INT_VAR opcode = 0 target = 1 timing = 2 parameter1 = EVAL "%parameter02%" parameter2 = 2 END
			END
			PATCH_IF ($GW_2da(~GWItemAC~ ~%GW_item_type%~ ~BLUNT~) != 0) BEGIN
				LPF ~ADD_ITEM_EQEFFECT~ INT_VAR opcode = 0 target = 1 timing = 2 parameter1 = EVAL "%parameter01%" parameter2 = 1 END
			END
			PATCH_IF ($GW_2da(~GWItemAC~ ~%GW_item_type%~ ~SLASHING~) != 0) BEGIN
				LPF ~ADD_ITEM_EQEFFECT~ INT_VAR opcode = 0 target = 1 timing = 2 parameter1 = EVAL "%parameter08%" parameter2 = 8 END
			END
			PATCH_IF ($GW_2da(~GWItemAC~ ~%GW_item_type%~ ~PIERCING~) != 0) BEGIN
				LPF ~ADD_ITEM_EQEFFECT~ INT_VAR opcode = 0 target = 1 timing = 2 parameter1 = EVAL "%parameter04%" parameter2 = 4 END
			END
			PATCH_IF ($GW_2da(~GWItemAC~ ~%GW_item_type%~ ~BASE~) != 0) BEGIN
				LPF ~ADD_ITEM_EQEFFECT~ INT_VAR opcode = 0 target = 1 timing = 2 parameter1 = EVAL "%parameter16%" parameter2 = 16 END
			END
			PATCH_IF ($GW_2da(~GWItemAC~ ~%GW_item_type%~ ~ALL~) != 0) BEGIN
				LPF ~ADD_ITEM_EQEFFECT~ INT_VAR opcode = 0 target = 1 timing = 2 parameter1 = EVAL "%parameter00%" parameter2 = 0 END
			END

		END	// of PATCH_IF VARIABLE_IS_SET $GW_2da(~GWItemAC~ ~%GW_item_type%~ ~ALL~)
	END		// of PATCH_IF GW_itm_created = 1

END			// of DEFINE_PATCH_FUNCTION

Avec les tables suivantes :

GW_itm_types :

Code : Tout sélectionner

ACTION_DEFINE_ASSOCIATIVE_ARRAY [color="#FFFF00"]GW_itm_types[/color] BEGIN

// Type	      Poids	       Ench	     Paperd	IconeI		IconeG		IconeD		nom	desc	=> Nom
//-- 0 -------- 1 ------------- 2 ------------- 3 -------- 4 ------------- 5 ------------- 6 ----------- 7 ------ 8 -------------------------------------
0x0001,		0,		0,		0,	IAMUL01,	GAMUL02,	CAMUL01,	6913,	6900	=> AMUL
0x0003,		0,		0,		0,	IBELT01,	GBELT01,	CBELT01,	6465,	6466	=> BELT
0x0004,		0,		0,		0,	IBOOT01,	GBOOT01,	CBOOT01,	6339,	6824	=> BOOTS
0x0006,		0,		0,		0,	IBRAC01,	GBRAC01,	CBRAC01,	6341,	6791	=> BRACERS
0x0020,		0,		0,		0,	ICLCK01,	GCLCK01,	CCLCK01,	4385,	6889	=> CLOAK
0x000a,		0,		0,		0,	IRING01,	GRING01,	CRING01,	6348,	17054	=> RING
0x0007,		0,		0,		H0,	1HELM01,	GHELM01,	CHELM04,	6346,	6807	=> HELMH0	// H0-Helm #1 (Standard)	==>		Casque basique
0x0007,		0,		0,		H1,	AF,		GHELM01,	CHELM04,	6346,	6807	=> HELMH1	// H1-Helm #2	==>		Ouvert avec 2 grandes cornes + 2 petites sur la tête + 1 petite centrale.
0x0007,		0,		0,		H2,	AF,		GHELM01,	CHELM04,	6346,	6807	=> HELMH2	// H2-Helm #3 (Bronze Winged)	==>		Ouvert avec 2 grandes ailes sur le côté.
0x0007,		0,		0,		H3,	IHELM22,	GHELM01,	CHELM04,	6346,	6807	=> HELMH3	// H3-(Gold Winged)	==>		Fermé avec 2 ailes recourbées vers le bas sur le côté.
0x0007,		0,		0,		H4,	AF,		GHELM01,	CHELM04,	6346,	6807	=> HELMH4	// H4-Helm #5	==>		A moitié fermé avec 2 petites cornes et un grand plumet.
0x0007,		0,		0,		H5,	AF,		GHELM01,	CHELM04,	6346,	6807	=> HELMH5	// H5-Helm #6 (Feathers)	==>		Ouvert avec petit Plumet en éventail.
0x0007,		0,		0,		H6,	AF,		GHELM01,	CHELM04,	6346,	6807	=> HELMH6	// H6-Helm #7	==>		Ouvert avec 2 grandes cornes horizontales et un rond sur le front.
0x0007,		0,		0,		J0,	1HELM01,	GHELM01,	CHELM01,	6346,	6807	=> HELMJ0	// H0-Helm #1 (Standard)	==>		Casque basique
0x0007,		0,		0,		J1,	AF,		GHELM01,	CHELM01,	6346,	6807	=> HELMJ1	// H1-Helm #2	==>		Ouvert avec 2 grandes cornes + 2 petites sur la tête + 1 petite centrale.
0x0007,		0,		0,		J2,	IHELM21,	GHELM01,	CHELM21,	6346,	6807	=> HELMJ2	// Heaume Dragon H2-Helm #3 (Bronze Winged)	==>		Ouvert avec 2 grandes ailes sur le côté.
0x0007,		0,		0,		J3,	IHELM22,	GHELM01,	CHELM04,	6346,	6807	=> HELMJ3	// H3-(Gold Winged)	==>		Fermé avec 2 ailes recourbées vers le bas sur le côté.
0x0007,		0,		0,		J4,	AF,		GHELM01,	CHELM04,	6346,	6807	=> HELMJ4	// H4-Helm #5	==>		A moitié fermé avec 2 petites cornes et un grand plumet.
0x0007,		0,		0,		J5,	AF,		GHELM01,	CHELM04,	6346,	6807	=> HELMJ5	// H5-Helm #6 (Feathers)	==>		Ouvert avec petit Plumet en éventail.
0x0007,		0,		0,		J6,	AF,		GHELM01,	CHELM01,	6346,	6807	=> HELMJ6	// 				==>		Ouvert avec 2 petites cornes.
0x0007,		0,		0,		J7,	IHELM14,	GHELM01,	CHELM07,	6346,	6807	=> HELMJ7	// H6-Helm #7	==>		Ouvert avec 2 grandes cornes horizontales et un rond sur le front.
0x0007,		0,		0,		J8,	AF,		GHELM01,	CHELM01,	6346,	6807	=> HELMJ8	// 				==>		Ouvert avec 2 grandes ailes sur le côté.
0x0007,		0,		0,		J9,	AF,		GHELM01,	CHELM01,	6346,	6807	=> HELMJ9	// 				==>		Fermé avec 2 grandes cornes tordues et un grand Plumet.
0x0007,		0,		0,		JA,	AF,		GHELM01,	CHELM01,	6346,	6807	=> HELMJA	// 				==>		Fermé avec 2 grandes ailes pleines et un grand Plumet.
0x0007,		0,		0,		JB,	AF,		GHELM01,	CHELM01,	6346,	6807	=> BANDEAU	// JB-Headband
0x0007,		0,		0,		JC,	AF,		GHELM01,	CHELM01,	6346,	6807	=> HELMJC	// 				==>		Ouvert avec 2 grandes ailes pleines et arêtes.
0x0007,		0,		0,		0,	1HELM01,	GHELM01,	CHELM01,	21321,	21321	=> HELMNOAN
0x0002,		0,		0,		2A,	ILEAT04,	GLEAT01,	CLEAT04,	6664,	6667	=> STUDDED
0x0002,		0,		0,		2A,	ILEAT01,	GLEAT01,	CLEAT01,	2890,	6652	=> LEATHER
0x0002,		0,		0,		2A,	ILEAT10,	GLEAT01,	CLEAT10,	22714,	22716	=> HIDE
0x0002,		0,		0,		3A,	ICHAN01,	GCHAN01,	CCHAN01,	214,	6673	=> CHAIN
0x0002,		0,		0,		3A,	ICHAN05,	GCHAN01,	CCHAN05,	6677,	6679	=> SPLINT
0x0002,		0,		0,		4A,	IPLAT01,	GPLAT01,	CPLAT01,	267,	6681	=> PLATE
0x0002,		0,		0,		4A,	IPLAT04,	GPLAT01,	CPLAT04,	6642,	6683	=> FULLPLATE
0x0002,		0,		0,		2W,	ICLCK09,	GCLCK02,	CCLCK09,	9642,	10046	=> ROBESM	// 2W-Small Robe
0x0002,		0,		0,		3W,	ICLCK09,	GCLCK02,	CCLCK09,	9642,	10046	=> ROBEMD	// 3W-Medium Robe
0x0002,		0,		0,		4W,	ICLCK09,	GCLCK02,	CCLCK09,	9642,	10046	=> ROBELG	// 4W-Large Robe	
END
et GWItemAC.2da :

Code : Tout sélectionner

2DA V1.0
0
		ALL	BASE	BLUNT	MISSILE	PIERCING	SLASHING
LEATHER,	0	8	0	-2	-2		0
STUDDED,	0	7	0	1	1		2
HIDE		0	6	0	-2	-2		0
CHAIN		0	5	-2	0	0		2
SPLINT		0	4	2	1	1		0
PLATE		0	3	0	0	0		3
FULLPLATE	0	1	0	3	3		4
RONDACHE	1	0	0	-1	0		0
ECU		1	0	0	0	0		0
PAVOIS		1	0	0	1	0		0
TARGE		1	0	0	-1	-1		0
FONCTION GW_ITM_COLORISATION :

Code : Tout sélectionner

DEFINE_PATCH_FUNCTION ~[color="#00FFFF"]GW_ITM_COLORISATION[/color]~
	STR_VAR GW_itm_color = "no"
		GW_item_code = "no"
BEGIN

	PATCH_IF VARIABLE_IS_SET $GW_2da(~GWITMCOL~ ~%GW_itm_color%~ ~grey~) BEGIN		// Vérification des correspondances avec le fichier GWITMCOL.2da

		PATCH_IF VARIABLE_IS_SET $GW_2da(~GWITMBAM~ ~%GW_item_code%~ ~grey~) BEGIN	// Vérification des correspondances avec le fichier GWITMBAM.2da

			PATCH_FOR_EACH GW_item_location IN grey teal pink yellow red blue green BEGIN
				SPRINT GW_color_location $GW_2da(~GWITMBAM~ ~%GW_item_code%~ ~%GW_item_location%~)
				PATCH_IF ("%GW_color_location%" STR_CMP "Y" = 0) BEGIN
					SET GW_gradient = $GW_2da(~GWITMCOL~ ~%GW_itm_color%~ ~%GW_item_location%~)
					SPRINT GW_color_abrev $GW_2da(~GWITMBAM~ ~%GW_item_code%~ ~type~)
					SPRINT GW_location_code EVAL "%GW_color_abrev%%GW_item_location%"	// Abréviation du code couleur : a(rmor), h(elmet)...
					SET GW_location = EVAL "%GW_location_code%"
					LPF ~GW_ADD_COLOR_EFFECT~ STR_VAR GW_color_macro = "colour" END
				END	// of PATCH_IF ("%GW_color_location"% STR_CMP "N")
			END	// of PATCH_FOR_EACH GW_item_location
		END	// of PATCH_IF VARIABLE_IS_SET $GW_2da(~GWITMBAM~ ~%GW_item_code%~ ~grey~)
	END	// of PATCH_IF VARIABLE_IS_SET $GW_2da(~GWITMCOL~ ~%GW_item_color%~ ~grey~)

END	// of DEFINE_PATCH_FUNCTION
Avec les tables suivantes :

GWITMCOL (extrait) :

Code : Tout sélectionner

2DA V1.0
0
		grey	teal	pink	yellow	red	   blue	  green
SHINY_GOLD	 67	 67	 67	 67	 67	    67	    67
SUN_KISSED	115	115	115	115	115	   115	   115
et GWITMBAM :

Code : Tout sélectionner

2DA V1.0
0
	grey   teal	pink yellow    red	blue green	type
2A	Y	N	N	N	Y	Y	N	a
3A	Y	N	N	N	Y	Y	N	a
4A	Y	N	N	N	Y	Y	N	a
2W	Y	N	N	N	Y	Y	N	a
3W	Y	N	N	N	Y	Y	N	a
4W	Y	N	N	N	Y	Y	N	a
H0	Y	Y	N	N	Y	Y	N	h
H1	Y	N	Y	N	Y	Y	N	h
H2	Y	N	N	N	Y	Y	N	h
H3	Y	N	N	N	Y	Y	N	h
H4	Y	N	Y	N	Y	Y	N	h
H5	Y	N	Y	N	Y	Y	N	h
H6	Y	Y	Y	N	N	Y	N	h
J0	Y	Y	N	N	Y	Y	N	h
J1	Y	N	Y	N	Y	Y	N	h
J2	Y	N	N	N	Y	Y	N	h
J3	Y	N	N	N	Y	Y	N	h
J4	Y	N	Y	N	Y	Y	N	h
J5	Y	N	Y	N	Y	Y	N	h
J6	Y	Y	N	N	Y	Y	N	h
J7	Y	Y	Y	N	N	Y	N	h
J8	Y	N	N	N	N	Y	N	h
J9	Y	Y	Y	N	Y	Y	N	h
JA	Y	Y	Y	N	Y	Y	N	h
JB	N	N	N	N	Y	N	N	h
JC	Y	Y	N	N	Y	Y	N	h
Ça résout provisoirement mon problème en me permettant une installation sans bug.

Sauf que j'ai utilisé la fonction CREATE pour créer des effets qui paraissent nickel dans NI et DLTCEP ; mais s'ils se comportent de la même manière ingame, il faut que je revois toute ma procédure. C'est peut-être ce dysfonctionnement qui explique pourquoi mes effets de bonus au toucher et aux dégâts contre les dragons ne fonctionnent pas et ont ruiné la vocation de mon Kit du Chevalier de Diamant. :gign:

J'ai donc posé la question à Wisp en attendant de trouver une soluce par ici.

Posté : mar. 27 oct. 2015, 20:38
par Freddy_Gwendo
Réponse obtenue et solution trouvée. ^^

Je l'ai publiée ici pour une meilleure lisibilité. ;)