... Je le savais que c'était bête... un "s" qui manque... lol
Et merci pour ton conseil! Mais si tu y regarde bien, c'est RemoveItem qui est utilisé sur le PJ. Aussi j'utilise des FormList, et je suis donc certain que seuls les ingrédienst sont visés dans l'inventaire du joueur. Note que ce script est attaché à un conteneur, histoire d'avoir l'animation pour faire plus immersif qu'un activator bidon (c'est logique mais je dois le tester, et si ce n'est pas le cas il sera aisé d'ajouter les animations gamebryo dans le OnActivate event ainsi qu'à la sortie du menu SI le PJ a effectivement trifouillé son stock).
Cependant, le script vise un HUB qui n'est pas le conteneur auquel est attaché le script : ContainerAlchemy (je vais le renommer ContainerAlchemyHUB pour plus de clarté). Une fois les ingrédients rendus dans le HUB, ce n'est qu'à cette occurrence que peut se faire le RemoveAllItems vers le PJ, si le joueur choisit de tout prendre : RemoveAllItems n'est jamais appliqué à un PNJ ni au PJ. Bref, c'est grâce au FormList que je suis certain que rien d'autre n'est traité, donc aucun souci. De plus, aucun des ingrédients nécessaires aux quêtes vanille ne sont marqués tels des objets de quête (par ex. les quêtes de cueillette).
En gros, pour la technique que j'utilise Il n'y a pas qu'un seul scrip : celui qui est montré est attaché à chaque type de conteneur lié un HUB et un FormList (ces deux derniers qui correspondent au type du conteneur). Pour le moment, j'ai catégorisé les ingrédients en 4 grandes familles ou "types", donc le rangement de l'alchimiste est constitué par 4 conteneurs dans chaque maison, + 4 HUB qui leur sont associés dans une cellule fantôme, et 4 FormLists catégorisant les ingrédients (via technique de "
liste blanches"). Un activateur distinct permet de traiter tous les ingrédients et tous les HUB simultanément (rangement + catégorisation automatique). Je suis en train d'ajouter un cinquième type et son FormList pour les ingrédients non vanille liés à d'autres mods (via technique de "
liste noire"... Je m'attelle à savoir si une fonction du genre "IsIngredient" existe ou peut être simulée, ces objets n'ayant pas de Keyword en ce sens dans le monde vanille).
"EDITE"le lendemain "vous vous levez en pleine forme"
VendorItemIngredient serait le mot clé, mais ce ne sont pas tous les ingrédients qui se l'attribuent. Par exemple l'objet Thorax de Flammouche (FireflyThorax 4DA73) ne s’attribue aucun mot clé. D'autres s'attribuent autre chose, par exemple VendorItemFoodRaw, ou encore VendorItemFood, GiftFlower... C'est la raison pour laquelle j'évite de concevoir l'algorithme en me fondant sur les mots clés, qui ne représentent pas structurellement ce que je veux faire.
REdite : Pour les mots clés, et relativement à un autre sujet du forum, t'as raison c'est mieux, comme ça tout ingrédient d'un autre mod utilisant les mêmes mot clés vanille pourrait être traité. Il suffirait que j'ajoute les mots-clés qui manque sur les objets vanille (ce que je n'aime pas trop faire, mais bon, ici pas le choix, et si un autre mod change ces mêmes objets ce n'est pas si grave). Comme le script traite des Formlist, pas grande modification, si ce n'est que pour modifier un peu l'algo. en raidson du bug de Papyrus relativement aux fonction de transfert d'objets, qui ne se comportent pas comme avec les Form d'ObjectReference.
Note aussi que j'avais pensé utiliser des
catégories liées au type de potion que chaque ingrédient puisse générer, mais ce serait beaucoup plus complexe : pour ne pas "casser" le jeux, il faudrait tenir compte des effets qui ne sont pas encore connus. En ce sens, l'utilisation de tableaux dynamiques (array) pourrait être envisageable, mais je crois qu'il est aussi possible d'ajouter ou d'enlever des éléments de FormLists dynamiquement via script (à confirmer), Par contre c'est le traitement de tout cela qui complexifie et alourdit la chose : il faut "saisir" chaque occurrence de découverte d'effet, que ce soit en mangeant, en mélangeant, etc., pour une mise à jour immédiate des Formlists ou Array (les Formlists seraient mieux, car dans le contexte il faudrait lier les array à des variables de quête, chose que j'essaye d'éviter mais peut-être serait-ce impossible de faire autrement, à voir).
"EDITE" le lendemain "vous vous levez en pleine forme"
Finalement, j'anticipe le fait que pour ce type de manip., les array soient plus efficaces à l'exécution que la manip. de FormLists. Ce sera à voir..
Encore merci pour ta réponse
Modifié par HawkFest, 25 septembre 2013 - 03:03.