Bonjour,
12 ans plus tard ... Je ressors ce topic, moins en ce qui concerne les kits (quoique ...) mais plus sur le message "Utilisation d'arme magique".
Il m'est arrivé la même chose en moddant un PNJ assassin (jeu : BGT en commençant à Châteausuif -BG1-) et je pense avoir compris d'où vient le problème.
Ici, il est bien probable que cela vienne de cette ligne et que l'objet créé "QQCOF" soit magique :
Pourquoi ? Car l'objet créé ne serait pas mis dans l'inventaire -visible- mais dans un slot fantôme "Magically Created Weapon" apparemment utilisé pour utiliser un objet magique (dont les potions et les scrolls). C'est ce que j'ai découvert il y a peu, après de nombreux tests et en scrutant le fichier de sauvegarde de la partie avec NI à chaque fois.
C'est pour cela que l'on ne le verrait pas forcément et que des slots (ceux des emplacements rapides pour les armes et ceux des munitions) renvoient ce message et empêchent alors d'utiliser n'importe quel autre objet dans ces emplacements.
J'ai aussi rencontré la même chose avec les actions TakePartyItem() et PickUpItem().
Une solution que j'ai trouvée pour remédier à cela (et qui a marché dans mon cas) : Bloquer ce "slot fantôme" par un autre objet magique (l'idéal serait un objet qui ne fasse rien -et qui disparaisse une fois utilisé-) avant d'utiliser les actions ci-dessus permettant de ramener des objets dans l'inventaire du PNJ. Puis, enfin, libérer le slot "Magically Created Weapon" par l'action UseItem() sur l'objet bloquant :
Code : Tout sélectionner
...
[color="#00FF00"]ActionOverride(Player1,CreateItem("objvide",0,0,0))[/color] //"objvide" est l'objet magique bloquant qui se retrouverait dans le "slot fantôme".
ActionOverride(Player1,CreateItem("QQCOF",1,0,0)) //création normale de "QQCOF" qui ne se retrouvera pas dans le "slot fantôme" (car occupé).
[color="#00FF00"]ActionOverride(Player1,UseItem("objvide",Player1))[/color] //Utilisation de "objvide" élaboré à ne rien faire et disparaitre après => Le "slot fantôme" est vide.
...
Note : Pas testé sur d'autres types de PNJ ou dans d'autres contextes.
Edit : Peut-être inutile si on a compris l'explication, voilà un autre exemple plus complet et sans override pour finaliser mon message :
► Afficher le texte
Portion du script de mon PNJ assassin qui est au 1er étage de l'auberge de Château-Suif à côté de Player1, qui doit récupérer une potion de maître-voleur auprès de Player1, s'avancer vers un coffre difficile à crocheter, boire la potion (pour le RP), ouvrir le coffre, y prendre un petit katana magique puis joindre l'équipe joueur :
Code : Tout sélectionner
...
TakePartyItem("POTN36") //Prend la potion de maître-voleur détenue par le PJ => elle se retrouve dans le "slot fantôme" [I](pas gênant ici)[/I]
MoveToPoint([394.196])
UseItem("POTN36",myself) //Utilise cette potion => "slot fantôme" vide.
Unlock("Container 5")
CreateItem("entpvide",0,0,0) //Création de l'objet "bloquant" qui sera dans le "slot fantôme".
PickUpItem("entlunen") //Récupère le katana magique dans le coffre => sera dans l'inventaire visible du PNJ.
UseItem("entpvide",myself) //Utilise l'objet "bloquant" => "slot fantôme" vide.
JoinParty() //Rejoint l'équipe [I](ce qui permettra aussi de vérifier s'il peut utiliser le katana sans problème)[/I]
...
Remarques :
1. Bien que non testé dans un autre contexte (par exemple dans BGT/BG2 - cf message #3 de ce fil de discussions), cette portion de script ne devrait normalement pas poser de problème si un objet magique ne se retrouve pas dans le "slot fantôme" puisque UseItem peut utiliser cet objet dans l'inventaire visible.
2. Si le slot fantôme était déjà occupé par un objet magique, cette portion de script ne marchera pas. Dans ce cas, il faut voir avant cette dernière et trouver où ce "slot fantôme" a été occupé.
3. L'objet "bloquant" est très facile à faire. Il suffit d'utiliser NI ou DLTCEP, d'ouvrir par exemple la potion de soin mineur, d'enlever tous ses effets et de sauvegarder l'objet avec un autre nom dans son mod perso. Puis, dans le fichier .tp2, de l'implémenter comme pour n'importe quel objet nouveau.[/color]