| [résolu]Remplacer un objet dans l'inventaire par un autre. | |
|
|
Auteur | Message |
---|
adauca Adepte de la Grande Tasse Bleue
Nombre de messages : 151
Age : 42
Localisation : Strasbourg
Date d'inscription : 10/02/2014
| Sujet: [résolu]Remplacer un objet dans l'inventaire par un autre. Dim 30 Aoû 2015 - 15:14 | |
| Bonjour à tous, J'espère pouvoir avoir de l'aide sur mon problème suivant: J'ai dans une room (BureauFabrication) 2 objets (Pochette1 et Pochette2). Je les ai rajouté dans "inventory items" (iPochette1 et iPochette2). Pochette1 et 2 sont simplement 2 pochettes rouges une à côté de l'autre dans un creux de commode. iPochette1 est affiché dans l'inventaire seul. iPochette2 est l'image de iPochette1 avec une deuxième dessous pour en afficher 2. (tout simplement) Pour plus de clarté, je vous illustre tout ça ici: J'aimerai alors que lorsque je prend une pochette(1 ou 2) il m'ajoute la iPochette1 dans l'inventaire, mais si je prend la deuxième il m'ajoute la iPochette2. Si je fais un après l'autre (dans l'ordre) c'est facile, mais j'aimerai que n'importe qu'elle pochette soit considérée comme la première si je la prend en premier (logique) et qu'ensuite peu importe la seconde il va m'ajouter la iPochette2 en effaçant la iPochette1. Je ne sais pas si je suis clair, alors n'hésitez pas si vous avez besoin de plus de détails... J'essaye de chercher un peu partout même sur les forums anglais et j'arrive de plus en plus à me débrouiller, mais là j'avoue que je sèche... Merci d'avance _________________ Une agence de publicité, c'est 85 % de confusion et 15 % de commission.
|
|
| |
Shai-la Ouvrière en Chef de la Grande Tasse Bleue
Nombre de messages : 6018
Age : 46
Localisation : Montpellier
Date d'inscription : 17/04/2006
| Sujet: Re: [résolu]Remplacer un objet dans l'inventaire par un autre. Dim 30 Aoû 2015 - 16:26 | |
| Crée une variable, par exemple nbpochettes, définie sur 0 au départ. Quand le joueur prend une pochette, tu mets : - Code:
-
nbpochettes = nbpochettes + 1 ; if (nbpochettes == 1){ player.addInventory(iPochette1); } if (nbpochettes == 2){ player.LoseInventory(iPochette1); player.AddInventory(iPochette2); } Et tu mets le même code pour chaque objet pochette |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Remplacer un objet dans l'inventaire par un autre. Dim 30 Aoû 2015 - 16:30 | |
| Une variante de la proposition de Shai-la : Dans chacune des fonctions "Prendre l'objet", tu vérifies si le joueur possède déjà l'objet d'inventaire iPochette1 et si c'est le cas tu l'enlèves et le remplaces par iPochette2. Comme ça : - Code:
-
if (player.HasInventory(iPochette1)) { player.LoseInventory(iPochette1); player.AddInventory(iPochette2); } else player.AddInventory(iPochette1); _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
adauca Adepte de la Grande Tasse Bleue
Nombre de messages : 151
Age : 42
Localisation : Strasbourg
Date d'inscription : 10/02/2014
| Sujet: Re: [résolu]Remplacer un objet dans l'inventaire par un autre. Dim 30 Aoû 2015 - 18:15 | |
| Merci pour les réponses, ce forum est très réactif ça fait plaisir. J'avais presque le code de Kitai (il me manquait la partie else) du coup bah ça marchait pas! J'ai rajouté également la partie "Pochette1.Visible = false;" pour la pochette n°1 et "oPochette2.Visible = false;" pour la n°2 afin que les pochettes disparaissent du décor. Je me posais encore une question. Y a-t-il moyen de garder l'emplacement du premier objet dans l'inventaire? Je galère avec ID mais je ne pense pas être sur la bonne voie... Quelqu'un saurait faire ça? _________________ Une agence de publicité, c'est 85 % de confusion et 15 % de commission.
Dernière édition par adauca le Dim 30 Aoû 2015 - 20:56, édité 1 fois |
|
| |
Atavismus Grand Cliqueur Royal
Nombre de messages : 1857
Localisation : France
Date d'inscription : 27/01/2014
| Sujet: Re: [résolu]Remplacer un objet dans l'inventaire par un autre. Dim 30 Aoû 2015 - 20:26 | |
| - adauca a écrit:
Je me posais encore une question. Y a-t-il moyen de garder l'emplacement du premier objet dans l'inventaire?
Tu voudrais faire quoi exactement ? - adauca a écrit:
Je galère avec ID mais je ne pense pas être sur la bonne voix... Je pense que tu es sur la bonne voie. En effet, la fonction AddInventory accepte un deuxième paramètre pour indiquer l'index de positionnement dans l'inventaire. |
|
| |
adauca Adepte de la Grande Tasse Bleue
Nombre de messages : 151
Age : 42
Localisation : Strasbourg
Date d'inscription : 10/02/2014
| Sujet: Re: [résolu]Remplacer un objet dans l'inventaire par un autre. Dim 30 Aoû 2015 - 20:54 | |
| En fait, lorsque je récupère ma première pochette, elle se place à la suite des objets déjà présent. Ensuite par exemple je continue à ramasser des objets et je décide de prendre la deuxième pochette. Et bien au lieu de garder l'emplacement de la première et se rajouter, j'aurais le premier emplacement qui ne sera plus disponible et tous les objets de l'inventaire qui suivent vont se décaler. Au final j'aurais la deuxième pochette qui sera à la fin de l'inventaire au lieu d'avoir pris l'emplacement de base... _________________ Une agence de publicité, c'est 85 % de confusion et 15 % de commission.
|
|
| |
Atavismus Grand Cliqueur Royal
Nombre de messages : 1857
Localisation : France
Date d'inscription : 27/01/2014
| Sujet: Re: [résolu]Remplacer un objet dans l'inventaire par un autre. Dim 30 Aoû 2015 - 21:12 | |
| Ok je vois.
Alors ça dépend comment tu comptes utiliser tes pochettes, mais plutôt que de perdre l'item pour en ajouter un autre, tu pourrais changer le .Graphic de cet item, comme ça plus de problème d'index/placement. Et quand tu utilises l'item, tu testes quel .Graphic a il a pour savoir quelle interaction lancer.
Si tu ne peux pas faire ça, tu pourrais faire une boucle sur tous les items et tester pour connaître l'index/emplacement à remplacer (ça demande un peu de code, je ne sais pas où tu en es niveau script, mais si tu ne vois pas comment faire, je devrais pouvoir te montrer). |
|
| |
adauca Adepte de la Grande Tasse Bleue
Nombre de messages : 151
Age : 42
Localisation : Strasbourg
Date d'inscription : 10/02/2014
| Sujet: Re: [résolu]Remplacer un objet dans l'inventaire par un autre. Dim 30 Aoû 2015 - 22:42 | |
| Très bonne idée Atavismus! J'avais pensé à ça sans savoir le faire du coup je m'étais pas penché plus dessus. Mais j'ai essayé de trouver d'après le code que j'ai du coup en changeant le .Graphic mais aussi le .Name afin d'avoir le pluriel de pochette. J'ai testé ceci qui fonctionne bien, avec mes pochettes qui ne bougent pas de place et qui s'ajoutent sans problème: - Code:
-
if (cNico.HasInventory(iPochette1)) { iPochette1.Graphic = 622; iPochette1.Name = "Pochettes rouges"; } else cNico.AddInventory(iPochette1); oPochette1.Visible = false; merci beaucoup pour le coup de main _________________ Une agence de publicité, c'est 85 % de confusion et 15 % de commission.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Remplacer un objet dans l'inventaire par un autre. Lun 31 Aoû 2015 - 2:30 | |
| Si tu veux tu peux aussi ajouter player.AddInventory(iPochette1); dans ton premier if, comme ça le joueur possède réellement deux copies de l'objet (et ensuite tu peux vérifier le nombre de copies avec la propriété InventoryQuantity). _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
adauca Adepte de la Grande Tasse Bleue
Nombre de messages : 151
Age : 42
Localisation : Strasbourg
Date d'inscription : 10/02/2014
| Sujet: Re: [résolu]Remplacer un objet dans l'inventaire par un autre. Lun 31 Aoû 2015 - 9:13 | |
| Exact Kitai, c'est vrai que l'utilisation de mes pochettes dans le jeu fait que je ne me rends pas compte que j'en ai qu'une vu que j'utilise les 2 en une fois. Mais je vais l'utiliser c'est clairement nécessaire! Pour InventoryQuantity je vais faire un test histoire de parfaire ma connaissance du code c'est toujours utile et intéressant à faire. Plus j'essaye de coder et plus j'ai l'impression qu'il y a de possibilités c'est dingue! Ça s'arrête plus! merci encore _________________ Une agence de publicité, c'est 85 % de confusion et 15 % de commission.
|
|
| |
adauca Adepte de la Grande Tasse Bleue
Nombre de messages : 151
Age : 42
Localisation : Strasbourg
Date d'inscription : 10/02/2014
| Sujet: Re: [résolu]Remplacer un objet dans l'inventaire par un autre. Lun 31 Aoû 2015 - 20:43 | |
| J'ai testé le tout et c'est tout bon, même InventoryQuantity qui est très simple à utiliser.
Je clos le sujet. _________________ Une agence de publicité, c'est 85 % de confusion et 15 % de commission.
|
|
| |
Contenu sponsorisé
| Sujet: Re: [résolu]Remplacer un objet dans l'inventaire par un autre. | |
| |
|
| |
| [résolu]Remplacer un objet dans l'inventaire par un autre. | |
|