Page 1 sur 1

[ITM] Comment créer un objet " à consommables "

Posté : mar. 17 nov. 2015, 17:55
par deratiseur
Imaginons que je veux faire un encensoir qui peut bruler plusieurs types de cristaux magiques, le marchand faisant son beurre sur lesdits cristaux. Chaque cristal est à usage unique : on peut l'utilise si on a l’encensoir, et il disparait après avoir fait son effet. Une idée de comment faire ?

Posté : mar. 17 nov. 2015, 19:04
par Cocrane
L'encensoir a autant de propriétés que de cristaux à brûler.

Pour chaque cristaux est proposé un icône qui est lié au personnage possédant l'objet. (ds capacité spéciale, équipement etc...)

A chaque icône est associé à un script. Si tu cliques sur l'icône, le script se déclenche:
- Si le personnage possède le cristal requis, il est brulé. (suppression de l'objet de l'équipement)
- Sinon tu as un texte au dessus de la tête du pnj qui signale que tu n'as pas le cristal requis.

J'ai repris le principe de mon mod où le golem reçoit des ordres de son maitre (PNJ du groupe).

Si le code t'intéresse, je pourrai te l'envoyer.

Posté : mer. 18 nov. 2015, 22:56
par Isaya
Tu aurais peut-être une possibilité de réaliser la capacité à partir de l'objet lui-même. Mon idée est basée sur l'emploi du trigger Contains(), mais j'ignore s'il fonctionne dans le cas qui t'intéresse. Quand on cherche dans BG II, on le trouve utilisé dans des scripts, avec une indication d'un conteneur de la zone, ou encore avec MySelf, dans des scripts d'éléments de zone. J'ignore si le terme générique O:Object parmi ses paramètres peut aussi s'adresser à autre chose, en particulier à un magasin (STO).
Mon idée repose sur le fait d'associer un fichier STO à ton objet, comme pour les sacs divers et variés. En limitant le type d'objet stockable au type correspondant à tes cristaux, et en limitant le stockage à 1, tu pourrais simuler le fait de placer le cristal dans l'objet. Puis, au travers d'une capacité de l'objet (illimité, rechargeable, à toi de voir), il s'agirait d'utiliser un script qui vérifierait le contenu du sac et appliquerait le sort d'effet associé au cristal se trouvant à l'intérieur.
Mais bon, grosse incertitude sur la faisabilité tout de même.

Posté : mer. 18 nov. 2015, 23:22
par deratiseur
Je vous remercie pour vous idée :
Cocrane, est ce que ton script fonctionnerait si l'encensoir était dans les "objets rapide" ? Un clic dessus ouvre un menu de sélection de cristal, et ensuite le clic sur le cristal désirée valide si oui ou non on l'a (dans le principe, l'utilisation de l'encensoir est illimité, ce sont les cristaux qui sont limités donc s'il disparaisse de l'inventaire après vérification qu'il sont possédé tout va bien). cette solution si elle fonctionne est idéale, rapide, simple.
Isaya, ton idée me parait intéressante, mais elle recoupe directement ce sujet où finalement on arrive à dire que ça n'a rien de "simple et intuitif" :-/

Edit : en fait je vient de tester, je peux créer un objet à usage illimité à mettre dans les objets rapide qui fait "select spell", chaque sort ayant l’icône d'un cristal. me reste juste à faire des sorts qui font tourner un script de vérification, et dans ce cas je veux bien ton script, Cocrane.

Posté : jeu. 19 nov. 2015, 19:56
par Cocrane
Suite à tes réponses, je pense qu'il te faut associer un sort par action que tu veux faire et chaque sort étant déclaré dans ton objet.

Lorsque tu lances un sort, ça va déclencher un script.

Dans le script tu déclenches les évènements que tu désires:
- vérifier que l'utilisateur à le bon cristal
- consommation d'un cristal
- génération de l'effet.

Pour le paramétrage, il faut que tu utilises l'opcode 82.

Tu trouveras un exemple de sort en pièce jointe. La ressource correspond au script à lancer.