Problème avec SUBCOMPONENT, DESIGNATED et REQUIRE_COMPONENT

Regroupe tous les sujets sur les commandes, les fonctions, les routines, les modifications des fichiers systèmes (ids, 2da...)...
Répondre
Avatar du membre
deratiseur
Flagelleur mental
Messages : 4353
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne

Problème avec SUBCOMPONENT, DESIGNATED et REQUIRE_COMPONENT

Message par deratiseur »

Toujours au charbon sur les défis insurmontables.

précédemment la routine installait le mod, puis proposait dans les diverses options de déplacer le golem (donneur de défis)
Les options checkaient l'installation du composant principal et ça marchait.

Mais j'ai pensé que déplacer le golem "ensuite" ce n'est pas pratique, j'ai donc changé en :

Le module propose 3 options dès l'installation : golem à Athkatla, Golem dans la tour de garde et Golem à Amkethran. Ça se présente comme ça :
► Afficher le texte

Code : Tout sélectionner

BEGIN @116	SUBCOMPONENT @0 DESIGNATED 1161	LABEL Px_Defi_Athkatla
REQUIRE_PREDICATE GAME_IS ~BG2EE EET IWDEE~ @0009

EXTEND_TOP ~AR0500.BCS~	~Derats_Defis/base/AR0500.baf~
INCLUDE ~Derats_Defis/Scripts/Installs/Install.tph~
SILENT
COMPILE ~Derats_Defis/Scripts/Zones~
VERBOSE

BEGIN @117	SUBCOMPONENT @0 DESIGNATED 1162	LABEL Px_Defi_Watchtower
REQUIRE_PREDICATE GAME_IS ~BG2EE EET IWDEE~ @0009

EXTEND_TOP ~AR3001.BCS~	~Derats_Defis/base/AR3001.baf~
COPY ~Derats_Defis/Scripts/Zones/pxd100.baf~	~Derats_Defis/Temp/pxd100.baf~
	~Derats_Defis/Scripts/Zones/pxd150.baf~	~Derats_Defis/Temp/pxd150.baf~
	~Derats_Defis/Scripts/Zones/pxd160.baf~	~Derats_Defis/Temp/pxd160.baf~
	~Derats_Defis/Scripts/Zones/pxd180.baf~	~Derats_Defis/Temp/pxd180.baf~
	~Derats_Defis/Scripts/Zones/pxd190.baf~	~Derats_Defis/Temp/pxd190.baf~
	~Derats_Defis/Scripts/Zones/pxd208.baf~	~Derats_Defis/Temp/pxd208.baf~
	~Derats_Defis/Scripts/Zones/pxd404.baf~	~Derats_Defis/Temp/pxd404.baf~
	~Derats_Defis/Scripts/Zones/pxd501.baf~	~Derats_Defis/Temp/pxd501.baf~
	~Derats_Defis/Scripts/Zones/pxd610.baf~	~Derats_Defis/Temp/pxd610.baf~
	~Derats_Defis/Scripts/Zones/pxd903.baf~	~Derats_Defis/Temp/pxd903.baf~
	REPLACE_TEXTUALLY ~AR0500~~AR3001~
	REPLACE_TEXTUALLY ~2387.1252],NNW~~2253.1042],NE~
    REPLACE_TEXTUALLY ~2428.1222],NNW~~2280.1074],NE~
    REPLACE_TEXTUALLY ~2477.1247],NNW~~2238.1108],NE~
    REPLACE_TEXTUALLY ~2437.1281],NNW~~2202.1075],NE~
    REPLACE_TEXTUALLY ~2484.1249],NNW~~2170.1095],NE~
    REPLACE_TEXTUALLY ~2520.1270],NNW~~2191.1132],NE~
	INCLUDE ~Derats_Defis/Scripts/Installs/Install.tph~

BEGIN @118	SUBCOMPONENT @0 DESIGNATED 1163	LABEL Px_Defi_Amkethran
REQUIRE_PREDICATE GAME_IS ~BG2EE EET IWDEE~ @0009

EXTEND_TOP ~AR5500.BCS~	~Derats_Defis/base/AR5500.baf~
COPY ~Derats_Defis/Scripts/Zones/pxd100.baf~	~Derats_Defis/Temp/pxd100.baf~
	~Derats_Defis/Scripts/Zones/pxd150.baf~	~Derats_Defis/Temp/pxd150.baf~
	~Derats_Defis/Scripts/Zones/pxd160.baf~	~Derats_Defis/Temp/pxd160.baf~
	~Derats_Defis/Scripts/Zones/pxd180.baf~	~Derats_Defis/Temp/pxd180.baf~
	~Derats_Defis/Scripts/Zones/pxd190.baf~	~Derats_Defis/Temp/pxd190.baf~
	~Derats_Defis/Scripts/Zones/pxd208.baf~	~Derats_Defis/Temp/pxd208.baf~
	~Derats_Defis/Scripts/Zones/pxd404.baf~	~Derats_Defis/Temp/pxd404.baf~
	~Derats_Defis/Scripts/Zones/pxd501.baf~	~Derats_Defis/Temp/pxd501.baf~
	~Derats_Defis/Scripts/Zones/pxd610.baf~	~Derats_Defis/Temp/pxd610.baf~
	~Derats_Defis/Scripts/Zones/pxd903.baf~	~Derats_Defis/Temp/pxd903.baf~
	REPLACE_TEXTUALLY ~AR0500~~AR5500~
	REPLACE_TEXTUALLY ~2387.1252],NNW~~3662.1637],N~
    REPLACE_TEXTUALLY ~2428.1222],NNW~~3704.1627],N~
    REPLACE_TEXTUALLY ~2477.1247],NNW~~3702.1660],N~
    REPLACE_TEXTUALLY ~2437.1281],NNW~~3659.1667],N~
    REPLACE_TEXTUALLY ~2484.1249],NNW~~3660.1705],N~
    REPLACE_TEXTUALLY ~2520.1270],NNW~~3704.1700],N~
INCLUDE ~Derats_Defis/Scripts/Installs/Install.tph~
Ça marche mais j'ai le problème suivant : les options sont proposées même si je n'ai pas installé le composant principal. Le check des options est :

Code : Tout sélectionner

REQUIRE_COMPONENT ~Setup-Derats_Defis.tp2~ ~0~ @15
Qui marchait pour un composant unique mais plus pour des sous composant. Comment faire ?

Par d'ailleurs, y 'il un moyen de patcher tous les bafs d'un dossier de manière "générale" ? (COPY_EXISTING_REGEXP GLOB c'est pour les fichiers déjà installés)
Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Vous trouvez que pour votre ensorceleur il n'y a que 2-3 sorts vraiment utiles par niveaux de sorts ? Installez L'Interplan.

Empêtré dans deux mods en même temps (un an minimum) et déjà deux autres mods dans les cartons...
Selphira
Adepte de Grondemarteau
Ours des cavernes
Messages : 1178
Enregistré le : dim. 25 juil. 2004, 22:28
Statut : Hors ligne

Message par Selphira »

Le code pour vérifier si ton composant est déjà installé n'est pas présent dans ce que tu nous montres.

Tu devrais ajouter

Code : Tout sélectionner

REQUIRE_COMPONENT ~Setup-Derats_Defis.tp2~ ~0~ @15
en dessous de tes

Code : Tout sélectionner

REQUIRE_PREDICATE GAME_IS ~BG2EE EET IWDEE~ @0009
et ça devrait fonctionner.
Par exemple comme ceci

Code : Tout sélectionner

BEGIN @116	DESIGNATED 1161	LABEL Px_Defi_Athkatla
SUBCOMPONENT @0 
REQUIRE_PREDICATE GAME_IS ~BG2EE EET IWDEE~ @0009
REQUIRE_COMPONENT ~Setup-Derats_Defis.tp2~ ~0~ @1
Avatar du membre
deratiseur
Flagelleur mental
Messages : 4353
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne

Message par deratiseur »

Heu, en fait les 3 options Athkatla, tour de garde et Amkethran SONT le composant principal. (proposé en plusieurs possibilités, comme Le morituri kit ou Imnesvale). il n'y pas de composant avant. Un composant peut se checker lui même ?
Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Vous trouvez que pour votre ensorceleur il n'y a que 2-3 sorts vraiment utiles par niveaux de sorts ? Installez L'Interplan.

Empêtré dans deux mods en même temps (un an minimum) et déjà deux autres mods dans les cartons...
Selphira
Adepte de Grondemarteau
Ours des cavernes
Messages : 1178
Enregistré le : dim. 25 juil. 2004, 22:28
Statut : Hors ligne

Message par Selphira »

Ok, j'avais mal compris ton besoin, vu les numéros des composants (1161, 1162, 1163), je pensais que c'étaient des composant optionnels qui dépendaient de l'installation du composant 0.

Alors je pense qu'il me manque une pièce du puzzle pour bien comprendre ton besoin. Si 1161, 1162 et 1163 est le composant principal en 3 variantes différentes, le SUBCOMPONENT @0 devrait suffire à faire en sorte que les 3 te soient proposés directement, et qu'un seul des 3 ne puisse être sélectionné par installation.
Avatar du membre
deratiseur
Flagelleur mental
Messages : 4353
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne

Message par deratiseur »

Bon, je pense qu'un fichier vaux mieux pour comprendre le truc :
Derats_Defis.tp2
(10.32 Kio) Téléchargé 7 fois
En fait ce sont les derniers composants, 10, 114, 115, 116, 12, 13 et 14 (options) , qui ne devraient pas pouvoir être installés si ni 116 ni 117 ni 118 ne sont installés (composant principal, proposé en 3 versions)
Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Vous trouvez que pour votre ensorceleur il n'y a que 2-3 sorts vraiment utiles par niveaux de sorts ? Installez L'Interplan.

Empêtré dans deux mods en même temps (un an minimum) et déjà deux autres mods dans les cartons...
Selphira
Adepte de Grondemarteau
Ours des cavernes
Messages : 1178
Enregistré le : dim. 25 juil. 2004, 22:28
Statut : Hors ligne

Message par Selphira »

Ok, c'est très clair.
Première chose, tu n'as pas de composant "0" dans ce fichier, tu as utilisé les DESIGNATED avec des nombres différents.
Il te suffit donc d'ajouter ce genre de vérification pour tous les composants que tu désires

Code : Tout sélectionner

REQUIRE_PREDICATE (MOD_IS_INSTALLED ~Setup-Derats_Defis.tp2~ ~1161~ OR MOD_IS_INSTALLED ~Setup-Derats_Defis.tp2~ ~1162~	OR MOD_IS_INSTALLED ~Setup-Derats_Defis.tp2~ ~1163~) @15
Voici quelques exemples

Code : Tout sélectionner

BEGIN @10	
DESIGNATED 10	
LABEL Px_Defi_noxp //Option "les monstres ne confèrent pas d'xp", DEVRAIT nécessiter le composant principal mais non
REQUIRE_PREDICATE (MOD_IS_INSTALLED ~Setup-Derats_Defis.tp2~ ~1161~ OR MOD_IS_INSTALLED ~Setup-Derats_Defis.tp2~ ~1162~	OR MOD_IS_INSTALLED ~Setup-Derats_Defis.tp2~ ~1163~) @15

Code : Tout sélectionner

BEGIN @113
DESIGNATED 1121
SUBCOMPONENT @112
LABEL Px_Defi_treasure3 //Option "les monstres drope un trèsor -> petite valeur", DEVRAIT nécessiter le composant principal mais non
REQUIRE_PREDICATE (MOD_IS_INSTALLED ~Setup-Derats_Defis.tp2~ ~1161~ OR MOD_IS_INSTALLED ~Setup-Derats_Defis.tp2~ ~1162~	OR MOD_IS_INSTALLED ~Setup-Derats_Defis.tp2~ ~1163~) @15
A noter que tu utilises déjà cette astuce dans ton mod "Derat's Auto Rest"
Avatar du membre
deratiseur
Flagelleur mental
Messages : 4353
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne

Message par deratiseur »

Arg, oui. Désolé, comme je pique les trucs dans d'autres mods quand j'en ai besoin, c'est ponctuel et du coup j’oublie ensuite que je m'en suis déjà servi.

ok, merci :)
Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Vous trouvez que pour votre ensorceleur il n'y a que 2-3 sorts vraiment utiles par niveaux de sorts ? Installez L'Interplan.

Empêtré dans deux mods en même temps (un an minimum) et déjà deux autres mods dans les cartons...
Répondre

Retourner vers « Programmation WeiDU »

Qui est en ligne

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