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é...

[TUTO] Paramétrer le SETUP de son mod

Répondre
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne

[TUTO] Paramétrer le SETUP de son mod

.

Message par Cocrane »

Salut les moddeurs!

Sauf erreur de ma part, il n'y a pas de TUTO expliquant comment bien paramétrer le SETUP de son mod pour mettre toutes les chances de son coté pour qu'il soit compatible avec le jeu d'origine et d'autres mods déjà en place.

Ma demande est un peu égoïste car je vais livrer un Mod pour la fin d'année pour moteur BG2.

Voici les points que j'ai noté qui sont à détailler par un pro que je ne suis pas:
- Choisir un préfixe libre pour ses fichiers afin qu'ils soient uniques. De mémoire, il faut aller sur un site pour réserver le préfixe.

- En cas de créations de sorts (.SPL), il faut ajouter ces sorts dans le fichier SPELL.ids. Si on les ajoute en dur, ça peut poser problème. Freddy avait écrit un code pour faire des ajouts automatiques.

- On peut être amené à modifier un fichier existant du jeu (créature, dialogue, carte, sort etc...). Comment traiter ce point et rester compatible?

- On peut avoir besoin d'un mod Kit. Comment tester son existence ou proposer son installation?

Autre?

Cocrane
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 »

Encore un sujet que j'ai laissé passé. :$

Oui, tout ceci est faisable... et bien plus encore. ;)

Pour éviter de me disperser, précise tes questions. D'autant qu'il n'existe pas une réponse unique, mais des méthodes variant selon le type de contrôle que tu veux effectuer.

La tendance en matière de tp2 consiste à écrire des tp2 très court renvoyant à des procédures spécifiques (INCLUDE des fichiers tph ou tpa).

Exemple de mon tp2 :

Code : Tout sélectionner

/**********************************************************************
 * "Menace sur le Royaume de Diamant Eternel for ToB, BGT and BG2:EE" *
 * Combined ToB/BGT/BG:EE installer
 **********************************************************************/

/* Backup folder */
BACKUP ~Diamant_Eternel/Backup~

/* Author */
AUTHOR ~Gwendolyne, aka Freddy_Gwendo, http://www.baldursgateworld.fr/lacouronne/members/freddy_gwendo.html~

/* enable all error messages; nothing suppressed. comment this out for release version */
//MODDER

/* launch the readme file immediately. */

VERSION ~Beta 0.1~	// 17.03.29

AUTO_TRA ~Diamant_Eternel/Tra/autotra/%s~

ALWAYS

/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *
 *	PATCH_IF (ou ACTION_IF) GW_debug_variable :                                                                                                     *
 *  -------------------------------------------                                                                                                     *
 *	INTÉGRATION d'un message dans un fichier .txt et/ou dans le fichier DEBUG pour débogage pendant le développement :                              *
 *	0 = aucun message	-	1 = vérifie certains points clé intermédiaires	-	2 = tous les points clé intermédiaires	-	3 = tous les messages.  *
 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	OUTER_SET GW_debug_variable = 1					// Variable for debugging

	INCLUDE ~%MOD_FOLDER%/Lib/GW_PreReqs.tpa~		// Bibliothèque de fonctions et de macros définissant les variables de compatibilité avec les jeux et les autres mods.
	INCLUDE ~%MOD_FOLDER%/Lib/GW_Variables.tpa~		// Bibliothèque de fonctions et de macros définissant des variables à partir des fichiers ids.
	INCLUDE ~%MOD_FOLDER%/Lib/GW_Fonctions.tpa~		// Bibliothèque de fonctions et de macros générales.


/* ---------------- Handling of correctly formatted tra-files ---------------- */
/* Copies tra files into the autotra folder (to leave the originals untouched) */
	DEFINE_ACTION_FUNCTION ~autotra_workaround~ BEGIN
		COPY ~%MOD_FOLDER%/Tra/%LANGUAGE%~	~%MOD_FOLDER%/Tra/autotra/%LANGUAGE%~
	END

/* Converts tra files to UTF-8 */
	ACTION_IF NOT VARIABLE_IS_SET cd_always THEN BEGIN		// Convertir une seule fois les fichiers .TRA
		OUTER_SET cd_always = 1
		LAF ~autotra_workaround~ END
		ACTION_DEFINE_ARRAY GW#noconvert BEGIN GW_Setup END
		ACTION_DEFINE_ARRAY GW#reload BEGIN GW_Creat GW_Cutscenes GW_Items GW_Sorts GWCDDial END // GW_Cartes GW_Triggers GW_ GW_Jrnl GW_NPC
		LAF HANDLE_CHARSETS 
			INT_VAR	infer_charsets = 1
			STR_VAR	tra_path = EVAL ~%MOD_FOLDER%/Tra/autotra~
					noconvert_array = GW#noconvert
					reload_array = GW#reload
					default_language = francais
					iconv_path = EVAL ~%MOD_FOLDER%/tools/iconv~
		END
	END

/* TRAs declared in LANGUAGE must be reloaded - by hand, because of the copying (for non-EE version */
	LOAD_TRA ~Diamant_Eternel/Tra/autotra/%LANGUAGE%/GW_Setup.tra~

END	// of ALWAYS block

// ===========================================================================================================================================================================
LANGUAGE	~Francais~	~francais~	~Diamant_Eternel/Tra/francais/GW_Setup.tra~

BEGIN @0	// ~Installation de la Campagne~

/* Déplacé dans GW_PreReqs.tpa
REQUIRE_PREDICATE	((GAME_IS ~tob bgt~) 
				&&	(MOD_IS_INSTALLED "SETUP-BG2FIXPACK.TP2" "0") 
				&&	(FILE_EXISTS ~tobex.dll~))
				OR  (GAME_IS ~BG2EE~)
@10010 // ~====== Ce module requiert soit l'installation de l'extension Trône de Bhaal, de ToBEx et du BG2 Fixpack, soit une version Enhanced du jeu (BG2EE). ======~
*/

/* ------------------------------------------------ *
 *  Vérification de la présence des mods 1PP et IA  *
 * ------------------------------------------------ */
ACTION_IF (GW_Classical) AND ($GWCompat(~1PP~) STR_CMP "Y") BEGIN	// 1ppv4 : Additional Shield Animations
	PRINT @10011
	PRINT @10012
	ACTION_READLN test1PP
	OUTER_WHILE NOT(IS_AN_INT %test1PP%) || (%test1PP% > 2) || (%test1PP% < 1) BEGIN
		PRINT @10012
		ACTION_READLN test1PP
	END // of OUTER_WHILE NOT(IS_AN_INT %test1PP%) || (%test1PP% > 2) || (%test1PP% < 1)
	ACTION_IF test1PP = 2 THEN BEGIN
		FAIL @10013	// ~ABANDON de l'INSTALLATION car 1PP n'est pas installé.~
	END
END // of ACTION_IF NOT (MOD_IS_INSTALLED ~1pp.tp2~ 101)

ACTION_IF (GW_Classical) AND ($GWCompat(~IA~) STR_CMP "Y") BEGIN	// Infinity Animations installé
	PRINT @10021
	PRINT @10022
	ACTION_READLN testIA
	OUTER_WHILE NOT(IS_AN_INT %testIA%) || (%testIA% > 2) || (%testIA% < 1) BEGIN
		PRINT @10022
		ACTION_READLN testIA
	END // of OUTER_WHILE NOT(IS_AN_INT %testIA%) || (%testIA% > 2) || (%testIA% < 1)
	ACTION_IF testIA = 2 THEN BEGIN
		FAIL @10023	// ~ABANDON de l'INSTALLATION car Infinity Animations n'est pas installé.~
	END
END // of ACTION_IF NOT (MOD_IS_INSTALLED ~setup-infinityanimations.tp2~ 0)


/* --------------------------------------------------------- *
 * Saisie d'un nom pour le destrier du Chevalier de Diamant. *
 * --------------------------------------------------------- */

PRINT @10051	// ~VEUILLEZ SAISIR LE NOM DU DESTRIER DE VOTRE PALADIN :~
ACTION_READLN GWdestrier
PRINT @10052	// VOUS AVEZ SAISI :      "%GWdestrier%"
PRINT @10053	// ACCEPTEZ-VOUS ce nom : "%GWdestrier%" ?

ACTION_READLN saisie

OUTER_WHILE (~%saisie%~ STRING_COMPARE_CASE "Y") BEGIN
	PRINT @10051
	ACTION_READLN GWdestrier
	PRINT @10052
	PRINT @10053
	ACTION_READLN saisie
END


/* -------------------------------------------------------------- *
 * Saisie d'un nom pour la licorne de la Chevaucheuse de Licorne. *
 * -------------------------------------------------------------- */

PRINT @10055	// ~VEUILLEZ SAISIR LE NOM DE LA LICORNE DE VOTRE CHEVAUCHEUSE :~
ACTION_READLN GWlicorne
PRINT @10056	// VOUS AVEZ SAISI :      "%GWlicorne%"
PRINT @10057	// ACCEPTEZ-VOUS ce nom : "%GWlicorne%" ?

ACTION_READLN saisie

OUTER_WHILE (~%saisie%~ STRING_COMPARE_CASE "Y") BEGIN
	PRINT @10055
	ACTION_READLN GWlicorne
	PRINT @10056
	PRINT @10057
	ACTION_READLN saisie
END

/* ----------------------------------------------------------------------- *
 *  AF Installation des animations de background selon la langue choisie.  *
 * ----------------------------------------------------------------------- */


/* -------------------------------------------------------------------------------------------------------------------- *
 *  Petite assurance pour que les créatures et les objets utilisant la palette étendue de 1PP ne plantent pas le jeu !  *
 * -------------------------------------------------------------------------------------------------------------------- */
ACTION_FOR_EACH GWPalette IN MPALETTE MPAL256 BEGIN
	ACTION_IF FILE_EXISTS_IN_GAME ~%GWPalette%.bmp~ BEGIN
		COPY_EXISTING - ~%GWPalette%.bmp~ ~override/%GWPalette%.bmp~
			PATCH_MATCH ~%GWPalette%~ WITH
				MPALETTE BEGIN	SET size1PP = 9272 END
				DEFAULT			SET size1PP = 196664
			END
		OUTER_SET sizePal = %SOURCE_SIZE%
		PRINT "CONTROLE de la palette %GWPalette%.bmp = %sizePal% - 1PP = %size1PP%"
		ACTION_IF (sizePal != %size1PP%) BEGIN
			PRINT @10014 // ~Copie du fichier %SOURCE_FILE% : palette étendue de 1PP.~
			COPY ~%MOD_FOLDER%/%GWPalette%.bmp~      ~override/%GWPalette%.bmp~
		END
	END
END


/* --------------------------------------------------- *
 *  First, we install all the needed new system stuff  *
 * --------------------------------------------------- */
PRINT @10100 // ~Modification des fichiers IDS : OBLIGATOIRE !~

---------------------"

INCLUDE ~%MOD_FOLDER%/Lib/GW_ids.tph~			// Modification et extension des fichiers ids.
INCLUDE ~%MOD_FOLDER%/Lib/GW_Animate.tph~		// Ajout des nouvelles animations

/* ----------------------- *
 *  Install : Projectiles  *
 * ----------------------- */
INCLUDE ~%MOD_FOLDER%/lib/GW_Pro_fonctions_macros.tpa~	// Bibliothèque de fonctions et de macros pour la gestion des projectiles.
INCLUDE ~%MOD_FOLDER%/lib/200_Projectiles.tph~		// Copie, modification et installation des nouveaux projectiles.

/* --------------------------- *
 *  Install : VVC & VEF files  *
 * --------------------------- */
INCLUDE ~%MOD_FOLDER%/lib/210_vvc.tph~

/* ----------------------------------- *
 *  Variables : Definition & Settings  *
 * ----------------------------------- */
LAM ~GW_VARIABLES_CLASSES~				// Définition des variables GW_C_xxxx à intégrer dans les fichiers.
LAM ~GW_VARIABLES_RACES~				// Définition des variables GW_R_xxxx à intégrer dans les fichiers.
LAM ~GW_VARIABLES_SPECIFICS~				// Définition des variables GW_S_xxxx à intégrer dans les fichiers.
LAM ~GW_VARIABLES_ANIMATIONS~				// Définition des variables GW_A_xxxx à intégrer dans les fichiers.

/* ------------------- *
 *  Loading TRA files  *
 * ------------------- */
ACTION_IF (GW_Classical) BEGIN
	LOAD_TRA ~%MOD_FOLDER%/tra/%LANGUAGE%/GW_Creat.tra~
	LOAD_TRA ~%MOD_FOLDER%/tra/%LANGUAGE%/GW_Items.tra~
	LOAD_TRA ~%MOD_FOLDER%/tra/%LANGUAGE%/GW_Sorts.tra~
	/*LOAD_TRA ~%MOD_FOLDER%/tra/%LANGUAGE%/GW_Cartes.tra~
	LOAD_TRA ~%MOD_FOLDER%/tra/%LANGUAGE%/GW_Triggers.tra~
	LOAD_TRA ~%MOD_FOLDER%/tra/%LANGUAGE%/GW_Jrnl.tra~
	LOAD_TRA ~%MOD_FOLDER%/tra/%LANGUAGE%/GW_NPC.tra~
	LOAD_TRA ~%MOD_FOLDER%/tra/%LANGUAGE%/GW_Cutscenes.tra~
	LOAD_TRA ~%MOD_FOLDER%/tra/%LANGUAGE%/.tra~
	LOAD_TRA ~%MOD_FOLDER%/tra/%LANGUAGE%/.tra~
	LOAD_TRA ~%MOD_FOLDER%/tra/%LANGUAGE%/.tra~
	*/
END

/* --------------------- *
 *  Install : EFF files  *
 * --------------------- */
INCLUDE ~%MOD_FOLDER%/lib/220_Effets.tph~

/* ----------------- *
 *  Install : Items  *
 * ----------------- */
INCLUDE ~%MOD_FOLDER%/lib/GW_Special_traits.tpa~	// Ajout automatique de caractéristiques spéciales à des créatures, des objets ou des sorts.
INCLUDE ~%MOD_FOLDER%/lib/GW_Itm_fonctions_macros.tpa~	// Bibliothèque de fonctions et de macros pour créer et modifier des d'objets.

LAM ~GW_ADJUST_TOOLTIP~					// Ajout automatique des colonnes supplémentaires nécessaires.
INCLUDE ~%MOD_FOLDER%/lib/241_Armes.tph~		// Install Weapons.
INCLUDE ~%MOD_FOLDER%/lib/242_Armures.tph~		// Install Armors.
INCLUDE ~%MOD_FOLDER%/lib/243_Equipement.tph~		// Install misc. Equipments.
INCLUDE ~%MOD_FOLDER%/lib/244_Potions.tph~		// Install Potions.
INCLUDE ~%MOD_FOLDER%/lib/245_Magie.tph~		// Install Magic Items.
INCLUDE ~%MOD_FOLDER%/lib/246_ObjetsDiv.tph~		// Install misc. Items.
INCLUDE ~%MOD_FOLDER%/lib/247_Livres.tph~		// Install Books.
INCLUDE ~%MOD_FOLDER%/lib/248_Tresor.tph~		// Install Jewelry and Gems.
INCLUDE ~%MOD_FOLDER%/lib/250_Trophees.tph~		// Install Trophies and Bodies.
INCLUDE ~%MOD_FOLDER%/lib/251_Cles.tph~			// Install Keys.
INCLUDE ~%MOD_FOLDER%/lib/253_Mines.tph~		// Install Mining, Devices and Machinery.


/* --------------------------- *
 *  Install : KITS and Spells  *
 * --------------------------- */

INCLUDE ~%MOD_FOLDER%/lib/GW_Spl_fonctions_macros.tpa~	// Bibliothèque de fonctions et de macros pour créer et modifier des sorts.
INCLUDE ~%MOD_FOLDER%/lib/300_Sorts.tph~		// Install misc. spells and spell icons.
INCLUDE ~%MOD_FOLDER%/lib/GW_Kits.tph~			// Install Kits.
INCLUDE ~%MOD_FOLDER%/lib/310_Sorts_Kits.tph~		// Install Kits spells.
INCLUDE ~%MOD_FOLDER%/lib/320_Sorts_Pretre.tph~		// Install Priest spells.
INCLUDE ~%MOD_FOLDER%/lib/330_Sorts_Druide.tph~		// Install Druidic spells.
INCLUDE ~%MOD_FOLDER%/lib/340_Sorts_Mage.tph~		// Install Mage spells.
INCLUDE ~%MOD_FOLDER%/lib/350_Sorts_Dragons.tph~	// Install Dragons spells.
INCLUDE ~%MOD_FOLDER%/lib/360_Sorts_Bouffe.tph~		// Install Food component spells.


/*
PRINT ~-----------------------------------
 INSTALLATION de DETECTABLE SPELLS
-----------------------------------~
SILENT
INCLUDE ~%MOD_FOLDER%/lib/ds.tph~

LAF ~detectable_spells~ END
LAF ~GW_DIAMOND_DETECTABLE_SPELLS~ END
VERBOSE
PRINT ~--------------------------------------------
 INSTALLATION de DETECTABLE SPELLS TERMINEE
--------------------------------------------~


// Petit code pour tester rapidement les objets
COPY_EXISTING ~Bag03.itm~ ~override/GWBag101.itm~
COPY_EXISTING ~Bag04.sto~ ~override/GWBag101.sto~	SAY NAME2 #56856	WRITE_SHORT 0x22 999	// Capacity
	PATCH_FOR_EACH item IN
//GWDag01 GWDag02 GWDag03 GWDag04 GWDag51 GWDag52 GWEpB01 GWEpB02 GWEpB03 GWEpB04 GWEpL01 GWEpL02 GWEpL03 GWEpL04 GWEpC01 GWEpC02 GWEpC03 GWEpC04 GWEpT01 GWEpT02 GWEpT03 GWEpT04 GWCim01 GWCim02 GWCim03 GWCim04 GWKat01 GWKat02 GWKat03 GWKat04 GWRapi1 GWRapi2 GWRapi3 GWRapi4 GWRapi5 GWRapi6 GWSab01 GWSab02 GWSab03 GWSab04 GWSab11 GWSab12 GWSab13 GWSab14 GWSab21 GWSab22 GWSab23 GWSab24 GWAxe01 GWAxe02 GWAxe03 GWAxe04 GWFla01 GWFla02 GWFla03 GWFla04 GWHam01 GWHam02 GWHam03 GWHam04 GWMac01 GWMac02 GWMac03 GWMac04 GWMgSt01 GWMgSt02 GWMgSt03 MgSt04 GWDolo1 GWDolo2 GWDolo3 GWDolo5 GWDolo6 GWDolo7 GWEspo1 GWEspo2 GWEspo3 GWPert1 GWPert2 GWPert3 GWPert4 GWPert5 GWSpet1 GWSpet2 GWSpet3 GWVoug1 GWVoug5 GWVoug6
//GWStafAb GWStafAl GWStafCj GWStafDi GWStafEn GWStafIl GWStafIn GWStafNe GWPioche
GWTome01 GWTome02 GWTome03 GWTome04 GWTome05 GWTome06 GWTome07 GWTome12 GWTome31 GWTome32 GWTome51 GWTome52 GWTome53 GWTome71
GWTome54 GWTome55 GWTome56 GWTome57 GWTome58 GWTome59 GWTome60 GWTome61 GWTome36 GWTome37 
//GWTome15 GWTome16 GWTome17 GWTome18 GWTome19 GWTome20 GWTome21 GWTome22 GWTome23 GWTome24 GWTome25 GWTome26 GWTome27 GWTome28 GWTome29 GWTome30
SW1H04 GW1 GW2 GW3 GW4 GW5 

BOW02 AROW01 AROW02 AROW03 
GWBAgiPe GWSAgiPe GWCAgiPe GWWDtGd GWWFrmEt GWWProGd GWWPsgEt GWWPtnDe


GWSac01 GWSac02 GWSac03 GWSac04 GWSac91 GWSac92 GWSac93 
GWGourd1 GWGourd2 
GWSilex GWBriqu GWCassol GWBarat2
GWAncre GWCompas GWLgVue GWSextan GWGouver GWCanneP 
GWSemenc GWPlum01 GWEncre1 GWPlumie GWEncLiq GWHuileB GWHuileV
GWPotVde GWFioleV GWEauBen GWPieSel GWSacOr GWTelDal

GWKey002 GWKey003 GWKey004 GWKey024 GWKey028 GWKey040
GWPelle GWSeau 
GWBody01 GWBody02 GWBody03 GWBody04 GWBody05 GWBody11 GWBody12 GWBody13 GWBody14 GWBody15 GWBody16 GWBody17 GWBody18 GWBody19 GWBody20 GWBody31 GWBody32 GWBody33 GWBody34 GWBody35 GWBody51 GWBody61 GWFred01 GWFred02 GWFred03 GWAmarH
GWEpee1 GWEpee2 GWEpee3 GWEpee7

GWCrane1 GWCrane2 GWCrane3 GWCrane4 GWCrane5 GWOs01 GWOs02 GWOs03 GWOs04 GWOs05 GWOs06 GWOs07 GWOs08 GWOs09 GWOs10 GWOs11 GWOs12
GWScalp1 GWScalp2 GWScalp3 GWScalp4 
GWBRhiCa GWTorgal GWUmbHy GWUmbHo GWGtFdPl GWGtFePl GWGtNuPl GWGalile GWMedHy GWGeanc GWMinoH1 GWMinoH2 GWMariH GWSuccH GWEyeGau GWEyeSpe GWEyeOA
GWRequF GWRequM GWRequD GWPoul1 GWPoul2 GWPoul3 GWPoul4 GWPoul5 

GWEyeDia GWDgEgg GWDgRgE GWDgWhE GWDgBlE GWDgBrE GWDgJaE GWDgNoE GWDgOmE GWDgPoE GWDgVeE GWDgRgG GWDgWhG GWDgBlG GWDgBrG GWDgJaG GWDgNoG GWDgOmG GWDgPoG GWDgVeG GWDgRgD GWDgWhD GWDgBlD GWDgBrD GWDgJaD GWDgNoD GWDgOmD GWDgPoD GWDgVeD GWDgRgO GWDgWhO GWDgBlO GWDgBrO GWDgJaO GWDgNoO GWDgOmO GWDgPoO GWDgVeO GWDgRgT GWDgWhT GWDgBlT GWDgBrT GWDgJaT GWDgNoT GWDgOmT GWDgPoT GWDgVeT

GWPAnge GWAretes GWRequ1 GWRequ2 GWRequ3 GWRequ4 GWRequ5 GWThon1 GWThon2 GWThon3 GWPGuit GWMarlin GWLabre

GWRING01 GWTRESOR GWRuby1 GWRuby2 GWPRevel GWGaxxFa GWEpee4 GWEpee5 GWEpee6

GWListe1 GWListe2 GWMess1 GWMess2 GWMap01 GWNote01
GWBook05 GWBook07 GWBook08 GWBook21 GWBook29
GWBook30 GWBook31 GWBook32 GWBook33 GWBook34 GWBook35 GWBook36 GWBook38 GWBook39 GWBook40 GWBook41 GWBook42 GWBook43 GWBook44 GWBook45 GWBook46 GWBook47 GWBook48 GWBook49
GWBook50 GWBook51 GWBook52 GWBook53 GWBook54 GWBook55 GWBook56 GWBook57 GWBook58 GWBook59 GWBook60 GWBook61 GWBook62 GWBook63 GWBook64 GWBook66 GWBook67 GWBook68 GWBook69
GWBook70 GWBook71 GWBook72 GWBook73 GWBook74 GWBook75 GWBook76 GWBook77 GWBook78 GWBook79 GWBook80 GWBook81 GWBook82 GWBook83 GWBook84 GWBook85 GWBook86 GWBook87 GWBook88 GWBook89 GWBook90 GWBook91 GWBook99

GWAxeCT5 GWEpBCT2 GWEpBCT3 GWEpLCT1 GWEpLCT3 GWEpLCT4 GWEpLCT7 GWEpLCT9 GWEpTCT1 GWEpTCT4 GWEpTCT5
GWCoco1 GWCoco2 GWPoel1 GWMarmit GWGrill GWCafeM GWCafet GWTheie GWBarat1 
	BEGIN
		PATCH_IF FILE_EXISTS_IN_GAME ~%item%.itm~ BEGIN
			ADD_STORE_ITEM ~%item%~ LAST #3 #3 #0 ~IDENTIFIED~ #1
		END
	END
BUT_ONLY

/* --------------------- *
 *  Install : Creatures  *
 * --------------------- */
INCLUDE ~%MOD_FOLDER%/lib/230_Creatures.tph~	// Install .cre files : appelle la librairie GW_Cre_fonctions_macros.tpa et la macro GW_Cre_def_variables.tpa.



/* ------------------ *
 *  Install : Stores  *
 * ------------------ */


/* ------------------------------- *
 *  Compiling Dialogs and Scripts  *
 * ------------------------------- */


/* ---------------- *
 *  Install : Maps  *
 * ---------------- */


/* ------------------------- *
 *  Install : Miscellaneous  *
 * ------------------------- */
ACTION_FOR_EACH rep_sound IN ~Cartes~ ~Effets~ ~Sorts~ ~Cre~ BEGIN
	LAF HANDLE_AUDIO STR_VAR audio_path = EVAL "%MOD_FOLDER%/Sons/%rep_sound%"	oggdec_path = EVAL "%MOD_FOLDER%/tools/audio" END
END

INCLUDE ~%MOD_FOLDER%/lib/GW_Tilesets.tph~		// Décompression et installation des fichiers .MOS et .TIS.


/* -------------------------------- *
 *  Suite de l'installation  *
 * -------------------------------- */
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,
je vois que tu es à l'aise avec le sujet. :whistle3:

En première lecture, je suis loin de tout capter. Je vois que tu peux utiliser des variables (nom entouré de %variable%). Je ne vois pas où seront renseignés leurs valeurs et je pensais que l'on avait pas cette possibilité dans le jeu et à l'installation.

Je te propose deux sujets pour commencer:
1- s'assurer que le mod "Infinity Animations" est installé.

2- ajouter une liste de sorts dans des emplacements libres de Spell.ids.

A mon avis, c'est déjà pas mal vu que le principe .tpa, tph, include etc... je ne pratique pas . :$

Ccorane
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 :En première lecture, je suis loin de tout capter. Je vois que tu peux utiliser des variables (nom entouré de %variable%). Je ne vois pas où seront renseignés leurs valeurs et je pensais que l'on avait pas cette possibilité dans le jeu et à l'installation.
Oui, elles sont générées dans les procédures INCLUDE. ]
1- s'assurer que le mod "Infinity Animations" est installé.
[/QUOTE]

Pour vérifier si un mod (ou un composant d'un mod) est installé, c'est assez simple : MOD_IS_INSTALLED "SETUP-nom_du_mod" "numero_du_composant". Dans ton cas,

Code : Tout sélectionner

BEGIN @0	// ~nom de ton composant (principal ou pas)~
REQUIRE_PREDICATE	((GAME_IS ~bgt~) 
			&&	(MOD_IS_INSTALLED "setup-infinityanimations.tp2" "0") 	// Présence d'IA
//			&&	(MOD_IS_INSTALLED "SETUP-BG2FIXPACK.TP2" "0") 		// Présence de BG2Fixpack ?
//			&&	(FILE_EXISTS ~tobex.dll~)				// Si tu souhaites vérifier que ToBEX est installé
				)
@10010		// ~====== Ce module requiert l'installation de BGT et d'Infinity Animations... ======~
S'il n'est pas présent, tu peux éventuellement forcer l'installation de IA, mais je ne te le conseille pas. En tout cas, moi, j'ai horreur de ça.

Tu peux aussi utiliser ceci :

Code : Tout sélectionner

BEGIN @0	// ~nom de ton composant (principal ou pas)~
REQUIRE_COMPONENT ~setup-infinityanimations.tp2~ 0 @10010
2- ajouter une liste de sorts dans des emplacements libres de Spell.ids.
Pour ajouter des sorts dans le fichier SPELL.IDS, c'est assez facile en théorie. Cependant, puisque ton objectif est de maximiser la compatibilité de ton mod avec les autres, je te conseille une autre technique. Prenons l'exemple suivant : ton nouveau sort est un sort de magicien et tu l'appelles SPWI338.SPL.

Code : Tout sélectionner

ADD_SPELL ~tonmod/sorts/SPWI338.SPL~ 2 3 ~NOM_DE_TON_SORT~ (avec 2 = sort de mage et 3 = niveau du sort)
ajoutera ton sort dans le fichier IDS, mais si un autre mod a déjà installé un sort différent appelé aussi SPWI338, alors soit tu crées un doublon (pas génial), soit il supprimera le sort existant.

Essaie plutôt ceci :

Code : Tout sélectionner

ADD_SPELL ~tonmod/sorts/tonsort.spl~ 2 3 ~NOM_DE_TON_SORT~
    SAY NAME1 @nnnn SAY UNIDENTIFIED_DESC @nnn
tonsort.spl sera automatiquement renommé SPWI3nn, nn étant le premier slot disponible, mais conservera NOM_DE_TON_SORT à utiliser dans les scripts.
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 »

Ajout du sort
> ca marche

Contrôle de la présence de mod etc...
> ca marche pas.

Visiblement le mot clé n'existe pas dans mon installation:
"
[SETUP_PDBA1CH8.TP2] PARSE ERROR at line 12 column 1-17
Near Text: REQUIRE_PREDICATE
GLR parse error

[SETUP_PDBA1CH8.TP2] ERROR at line 12 column 1-17
Near Text: REQUIRE_PREDICATE
Parsing.Parse_error
"
LOAD_TRA ~PDBA1CH8\LANGUAGE\FRENCH\COMPUTER.TRA~
REQUIRE_PREDICATE ((GAME_IS ~bgt~)
&& (MOD_IS_INSTALLED "setup-infinityanimations.tp2" "0") // Présence d'IA
// && (MOD_IS_INSTALLED "SETUP-BG2FIXPACK.TP2" "0") // Présence de BG2Fixpack ?
// && (FILE_EXISTS ~tobex.dll~) // Si tu souhaites vérifier que ToBEX est installé
)
@1 // ~====== Ce module requiert l'installation de BGT et d'Infinity Animations... ======~
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 »

REQUIRE_PREDICATE est un flag de composant (cf la doc WeiDU), il s'utilise donc juste après un BEGIN de composant et avant toute instruction, en particulier LOAD_TRA.
Il existe depuis un grand nombre d'année, je doute que tu aies un WeiDU si vieux qu'il ne le comprenne pas.

L'ordre des instructions est probablement la cause profonde de ton problème.
:!: 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 »

Pas mieux, d'ailleurs :
Freddy_Gwendo a écrit :

Code : Tout sélectionner

[color="#FFFF00"][B]BEGIN @0	// ~nom de ton composant (principal ou pas)~[/B][/color]

REQUIRE_PREDICATE	((GAME_IS ~bgt~) 
			&&	(MOD_IS_INSTALLED "setup-infinityanimations.tp2" "0") 	// Présence d'IA
//			&&	(MOD_IS_INSTALLED "SETUP-BG2FIXPACK.TP2" "0") 		// Présence de BG2Fixpack ?
//			&&	(FILE_EXISTS ~tobex.dll~)				// Si tu souhaites vérifier que ToBEX est installé
				)
@10010		// ~====== Ce module requiert l'installation de BGT et d'Infinity Animations... ======~
L'instruction REQUIRE_PREDICATE doit être placée juste après le BEGIN composant. ;)
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 »

Pas de nouvelles depuis un mois : ça roule (comme on dit par chez moi : "pas de nouvelles, bonnes nouvelles") ou est-ce que ça bloque toujours quelque part ? ;)
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,
effectivement, les semaines s'enchainent et j'ai peu codé dernièrement. J'essaie de m'y remettre dare dare mais j'ai du mal alors que je suis sur ma dernière carte de mon donjon.

Je pense que j'avais besoin de lever un peu le pied. :whistle3:

Pour ce sujet, j'avais testé le code mais j'avais pas encore fait le tour de ce que ça peut donner.

Le fait de mettre un BEGIN (de mémoire) engendrait l'installation comme un composant alors que je veux juste vérifier l'installation, signaler les points à problème si il y en a. Dans ce ca, je veux proposer d'annuler l'installation ou de poursuivre quand même.

Il faut que je me remette dans le test que j'avais fait pour être plus précis. Mais je sens que cette partie "install setup" va pas me plaire. ;)

Cocrane
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'imagine que c'est l'installation de IA que tu veux forcer ?

Je ne suis pas pour (je préfère indiquer au joueur que le mod nécessite IA et qu'il doit l'installer), mais si tu y tiens vraiment, je peux te fournir le code qui va bien.
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 »

Forcer non mais si j'utilise une animation qui nécessite une installation de NI, il est bon de prévenir le joueur que l'absence d'installation va poser problème.

Libre à lui de tenter sans. :-p
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 »

Le code que je t'ai donné empêche l'installation si IA n'est pas installé. Si tu préfères prévenir le joueur qu'il doit installer IA, fais comme moi :

Code : Tout sélectionner

ACTION_IF (GW_Classical) AND ($GWCompat(~IA~) STR_CMP "Y") BEGIN	// Infinity Animations is not installed
	PRINT @10021
	PRINT @10022
	ACTION_READLN testIA
	OUTER_WHILE NOT(IS_AN_INT %testIA%) || (%testIA% > 2) || (%testIA% < 1) BEGIN
		PRINT @10022
		ACTION_READLN testIA
	END			// of OUTER_WHILE NOT(IS_AN_INT %testIA%) || (%testIA% > 2) || (%testIA% < 1)
	ACTION_IF testIA = 2 THEN BEGIN
		FAIL @10023	// ~ABANDON de l'INSTALLATION car Infinity Animations n'est pas installé.~
	END
END				// of ACTION_IF NOT (MOD_IS_INSTALLED ~setup-infinityanimations.tp2~ 0)
avec

Code : Tout sélectionner

@10021 = ~
*******************************************************************************
* ATTENTION !     ATTENTION !     ATTENTION !     ATTENTION !     ATTENTION ! *
*******************************************************************************
*                                                                             *
* Ce module nécessite comme pré-requis l'installation de Infinity Animations. *
* Puisque ce n'est pas le cas, plusieurs sorts (notamment Chargeur spirituel  *
* et Cavalerie spirituelle qui convoquent des esprits de Chevaliers de        *
* Diamant et de Chevaucheuses de licorne avec leurs montures - chevaux et     *
* licornes) ne fonctionneront pas.                                            *
*******************************************************************************~
@10022 = ~
AVEZ-VOUS COMPRIS L'AVERTISSEMENT ?
-----------------------------------

(1) Tapez 1 pour continuer l'installation sans Infinity Animations.
(2) Tapez 2 pour abandonner l'installation.~
@10023 = ~ABANDON de l'INSTALLATION car Infinity Animations n'est pas installé.~
Les variables GW_Classical et $GWCompat(~IA~) sont définies avant ce code, dans le bloc ALWAYS :

Code : Tout sélectionner

/* ========================= *
 * RECHERCHE du JEU UTILISÉ. *
 * ========================= */

OUTER_SET GW_ToB = (GAME_IS ~tob~ AND NOT GAME_IS ~bgt~) ? 1  : 0
OUTER_SET GW_BGT = (GAME_IS ~bgt~) ? 1 : 0
OUTER_SET GW_BG2EE = (GAME_IS ~BG2EE~ AND NOT GAME_IS ~EET~) ? 1 : 0
OUTER_SET GW_Classical = ((GW_ToB = 1) OR (GW_ToB = 1)) ? 1  : 0
En gros, $GWCompat(~IA~) est une variable du style (MOD_IS_INSTALLED "%module%" "%component%") définie pour lancer les ajustements à faire selon les mods installés (Spell et Item Revision, IA, 1PP, etc.).
Tu peux la remplacer par (NOT MOD_IS_INSTALLED "setup-infinityanimations.tp2" "0")

Pour toi, ça donnerait ceci :

Code : Tout sélectionner

ACTION_IF ((GAME_IS ~bgt~) AND (NOT MOD_IS_INSTALLED "setup-infinityanimations.tp2" "0")) BEGIN	// Infinity Animations is not installed
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Répondre

Retourner vers « Généralités sur la création d'un mod »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité