Aller au contenu


[Résolu] Système De Stockage Des Ingrédients - Prob. Avec Removeallite

RemoveAllItems stockage

  • Veuillez vous connecter pour répondre
2 réponses à ce sujet

#1 HawkFest

HawkFest

Posté 19 janvier 2013 - 21:01

Bonjour j'ai un petit problème avec cette fonction, et la solution doit être assez simple : mon script compile sauf pour la ligne ayant RemoveAllItems, le compilateur me dit que la fonction n'en est pas une ou n'est pas reconnue... Voici le script :
Spoiler

Ce script est attaché à cinq "conteneurs", chacun correspondant à une catégorie d'ingrédient. La propriété ContainerAlchemy réfère au HUB du conteneur en question (dans une autre cellule cachée) et accessible des autres conteneurs ayant ce script attaché avec les mêmes propriétés FormIngredients et ContainerAlchemy. (mon mod modifie 4 demeures du PJ pour y ajouter ces cinq conteneurs liés aux HUB correspondants de la cellule cachée).

Problème : la ligne ContainerAlchemy.RemoveAllItem(akActionRef, True, True) ne compile pas, ça me dit

Citation

chemySingleStorageScript.psc(30,21): RemoveAllItem is not a function or does not exist
Quelqu'un a une idée?

Note : ultimement, pour le mod un activateur permettra de traiter les cinq conteneurs en même temps (listant les catégories avec les sous-menus associés au menu du script ci-haut - ou encore l'appel de ce dernier, mais il faudra que je teste à fond les diverses techniques envisageables) afin de tout prendre ou tout ranger par catégorie, et offrira un menu de paramétrage pour personnaliser l'interaction : utilisation des menus ou de l'inventaire standard, automatisation des rangements sans menu et si le PJ n'a rien c'est l'inverse qui se passe, pour tous les conteneurs ou par conteneur, etc.

Modifié par HawkFest, 20 janvier 2013 - 00:49.


#2 Aurix

Aurix

    La Bidouille ou un truc comme ça


Posté 19 janvier 2013 - 22:37

il te manque le S à removeallitems...

par contre, fais attention, removeallitems déplace TOUS les objets... aussi et SURTOUT ceux qui ne sont pas jouables... j'ai un sort pour vider l'inventaire des pnjs qui l'utilise, je l'ai lancé contre un dragon et j'avais 4 objets non nommés dans mon inventaire lors de l'enchantement...
"You are the best Septim that's ever ruled. Well, except for that Martin fellow, but he turned into a dragon god, and that's hardly sporting... You know, I was there for that whole sordid affair. Marvelous time! Butterflies, blood, a Fox, a severed head... Oh, and the cheese! To die for."

Shéogorath - Prince de la folie

Vrai Grand Moddeur et FPIA à ses heures...

#3 HawkFest

HawkFest

Posté 19 janvier 2013 - 23:11

:mosc: ... 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.





0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)