Luren a écrit :Maintenant, ce que tu cherches à faire est de modifier un contenu selon certaines conditions, et là j'ignore dans quelle mesure on peut agir via un script sur le contenu. Si je me souviens bien, les objets que les PJ placent dans les contenant sont enregistrés dans une version modifiée des fichiers .are, elle-même enregistrée dans les fichiers .sav.
De mémoire, je dirais que la Tour de Durlag, les sous-sols de Spellhold et le temple d'ombre utilisent des scripts qui gèrent le fait de placer des objets dans des conteneurs, voire en remplacent le contenu. Par contre je ne sais pas dire si c'est fait via le script de zone ou un script associé au conteneur.
L'enregistrement n'intervient qu'à la sauvegarde, donc il n'y a pas de problème pour modifier le contenu par un script, il n'y a aucune raison qu'il y ait de différence avec le fait que ce soit le joueur qui le fasse.
Par contre je suis plutôt convaincu que deratiseur veut parler d'un conteneur qu'on aurait dans l'inventaire, quoique cela pourrait aussi être un établi d'alchimiste, auquel cas ce pourrait effectivement être un lieu.
Pour un conteneur dans l'inventaire, donc associé à un fichier STO, je doute qu'il y ait un moyen direct, les structures CRE ne prévoyant rien de tel.
Une solution serait d'adopter l'astuce à laquelle avaient recouru les créateurs d'objets dans Baldur's Gate afin d'ajouter des sacs. Il s'agissait d'ajouter une capacité spéciale à l'objet permettant de l'ouvrir, qui provoquait l'apparition d'une créature invisible qui ouvrait le magasin associé pour stocker le contenu. Dès lors que la créature invisible a forcément un script, on pourrait envisager qu'il tienne compte du contenu. Néanmoins, à ma connaissance, dans un script on ne peut que vérifier si un personnage ou l'équipe possède un objet, auquel cas le contenu des sacs est aussi vérifié, mais je ne suis pas sûr qu'on puisse vérifier spécifiquement le contenu d'un sac.
Une autre solution serait d'ajouter le code dans les scripts DPLAYERx, mais il me semble qu'il faut que l'IA soit active pour que le script tourne.