Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

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

Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne

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

.

Message 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 ?
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
deratiseur
Golem de fer
Messages : 3697
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message 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.
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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 ! ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
deratiseur
Golem de fer
Messages : 3697
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message 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.
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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:
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Luren
Adepte de Grondemarteau
Ver charognard
Messages : 656
Enregistré le : dim. 20 juin 2010, 08:51
Localisation : Sûrement quelque part mais je n'arrive pas à bien voir où.
Statut : Hors ligne
.

Message 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.
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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. ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
deratiseur
Golem de fer
Messages : 3697
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message 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)
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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. ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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...
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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.
Fichiers joints
GWTHAC0.txt
(457 Octets) Téléchargé 251 fois
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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... :$
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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".
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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

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. ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message 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?
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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).
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message 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. ^^
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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. ^^
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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:
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message 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é.
:!: Peu disponible
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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...
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message 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
Ç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.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Réponse obtenue et solution trouvée. ^^

Je l'ai publiée ici pour une meilleure lisibilité. ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Répondre

Retourner vers « Créatures, Monstres et NPC »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités