(script) Donner l'objet de l'inventaire d'un placeable

Répondre
Partager Rechercher
Bonjour,

Je cale sur une fonction qui me semblait tout conne mais qui refuse de fonctionner. J'ai actuellement un système dans lequel le joueur doit déposer des objets dans un placeable. Lorsque le joueur ferme l'inventaire un script se déclenche et en analyse le contenu et si il n'est pas valide le script doit rendre les objets au joueur.

Mais je n'y parviens pas de la façon voulue, j'explique. J'ai bien réussi à le faire avec la ligne suivante :

Citation :
CreateItemOnObject(GetTag(oItem),oPC,1);
Cela est très bien mais me convient qu'à moitié car dans le système certains objet se voient être modifiés par le script (nouvelles propriétés, description etc). et donc cette ligne de commande rend l'objet de la palette pas celui qui est dans l'inventaire

j'ai bien essayé avec ActionGiveItem, ActionTakeItem mais rien n'y fait. Comment transférer un objet de l'inventaire d'un placeable vers celui du joueur ?
Car si cela ne fonctionne pas je devais devoir ruser et rendre l'objet et ensuite lui appliquer les effets mais c'est "moins propre"
Bonjour !
La première partie du script de vérification implique que les objets déposé ne sont pas ceux souhaités donc ils retournent dans l'inventaire du joueur c'est ça ? Dans ce cas il ne sont pas modifiés ou ça peut arriver ?
Ensuite dans le cas où ce sont les bons objets, il se passe quoi exactement ? On dirait un peu le système de forge existant dans la campagne officielle (Marrok).
C'est pour un système craft en effet. Le joueur dépose l'arme à modifier + des composants. Le script analyse le contenu. si il est invalide il le rend au joueur sinon il applique les modif et rend l'objet modifié.

Pour le moment j'ai rusé en rendant l'objet au joueur et en le modifiant dans son inventaire directement mais bon j'aurai préféré un truc clean ou l'objet modifié est dans l'inventaire du placeable puis donné au joueur mais impossible de le faire passer du placeable au joueur directement
Le système de Marrok que j'utilise dans mon module détruit les composants et crée un nouvel objet, qui reste dans le contenant. Je n'ai jamais essayé de l'envoyer directement dans l'inventaire du joueur... La recette applique les modifications sur l'objet existant c'est ça ?
Est-ce que tu as essayé un
Code PHP:

CopyItem(oItemoPCTRUE);
DestroyObject(oItem); 
La première ligne créant une copie de l'objet du contenant vers le joueur et la deuxième détruisant l'original ?!
CopyItem marche très bien, merci pour l'astuce j'avais jamais vu les fonction CopyItem et CopyObject. Dans mon système c'est d'ailleurs ce dernier que j'ai retenu car il a la particularité de conserver les descriptions modifiées, ce que ne fait pas CopyItem
C'est cool content que ça fonctionne^^
Moi je m'en servais pour une bibliothèque dans laquelle on ne pouvait ranger que des livres et des parchemins, les autres objets étant renvoyés dans l'inventaire du joueur !
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés