Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 [résolu]Remplacer un objet dans l'inventaire par un autre.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
adauca
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 133

Age : 34

Localisation : Strasbourg

Date d'inscription : 10/02/2014


MessageSujet: [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... sourire

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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.mad-day.fr
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue


Nombre de messages : 5376

Age : 38

Localisation : Montpellier

Date d'inscription : 17/04/2006


MessageSujet: 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 sourire

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
adauca
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 133

Age : 34

Localisation : Strasbourg

Date d'inscription : 10/02/2014


MessageSujet: 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!  langue
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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.mad-day.fr
Atavismus
Grand Cliqueur Royal
Grand Cliqueur Royal


Nombre de messages : 1589

Localisation : France

Date d'inscription : 27/01/2014


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

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://store.steampowered.com/app/367110/
adauca
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 133

Age : 34

Localisation : Strasbourg

Date d'inscription : 10/02/2014


MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.mad-day.fr
Atavismus
Grand Cliqueur Royal
Grand Cliqueur Royal


Nombre de messages : 1589

Localisation : France

Date d'inscription : 27/01/2014


MessageSujet: 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).

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://store.steampowered.com/app/367110/
adauca
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 133

Age : 34

Localisation : Strasbourg

Date d'inscription : 10/02/2014


MessageSujet: 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 sourire

_________________
Une agence de publicité, c'est 85 % de confusion et 15 % de commission.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.mad-day.fr
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
adauca
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 133

Age : 34

Localisation : Strasbourg

Date d'inscription : 10/02/2014


MessageSujet: 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!
langue

merci encore

_________________
Une agence de publicité, c'est 85 % de confusion et 15 % de commission.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.mad-day.fr
adauca
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 133

Age : 34

Localisation : Strasbourg

Date d'inscription : 10/02/2014


MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.mad-day.fr
Contenu sponsorisé




MessageSujet: Re: [résolu]Remplacer un objet dans l'inventaire par un autre.   Aujourd'hui à 19:16

Revenir en haut Aller en bas
 
[résolu]Remplacer un objet dans l'inventaire par un autre.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RESOLUE] Mettre un objet dans une bulle récompense
» Script de poids dans l'inventaire
» Déchets coinçés dans l'inventaire
» [Didactitiel] Coller précisément un objet à un autre
» [Clôt] Création d'Objet

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: