Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
SSD interne Crucial BX500 2,5″ SATA – 500 Go à 29,99€
29.99 €
Voir le deal

 

 [résolu] Explications sur l'Inventaire et les Items :)

Aller en bas 
3 participants
AuteurMessage
chefgeorges
Cliqueur Emérite
Cliqueur Emérite
chefgeorges


Nombre de messages : 502

Date d'inscription : 01/02/2008


[résolu] Explications sur l'Inventaire et les Items :) Empty
MessageSujet: [résolu] Explications sur l'Inventaire et les Items :)   [résolu] Explications sur l'Inventaire et les Items :) EmptySam 8 Fév 2014 - 14:21

Bonjour,

Mon jeu avance bien et j’ai maintenant besoin de me plonger plus dans l'utilisation de l'inventaire. J'ai fait un GUI spécifique qui fonctionne, les items y apparaissent quand je ramasse des objets. Mais avant de me lancer dans les interactions, j'ai quelques questions :

1) Comment utiliser/coder les events des items pour utiliser un objet de l'inventaire sur un objet (ou hotspot) d'une room ?
2) Comment changer le cuseur de souris avec l'image de l'item ? (je crois avoir compris que c'est avec InventoryItem.CursorGraphic mais je ne sais pas comment le coder)
3) Comment faire interagir/combiner des items entre-eux ?

Tout conseil supplémentaire sera aussi apprécié ;)et merci d'avance ^^


Dernière édition par chefgeorges le Sam 8 Fév 2014 - 19:13, édité 1 fois
Revenir en haut Aller en bas
http://instagram.com/ichefgeorges
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu] Explications sur l'Inventaire et les Items :) Empty
MessageSujet: Re: [résolu] Explications sur l'Inventaire et les Items :)   [résolu] Explications sur l'Inventaire et les Items :) EmptySam 8 Fév 2014 - 16:12

Salut chefgeorges,

1) et 3) Normalement tu as un événement Use inventory on object (utiliser un objet de l'inventaire sur l'objet) pour les zones interactives aussi bien que pour les objets aussi bien que pour les objets d'inventaire. Si je ne me trompe pas, le code que tu mets dans la fonction associée sera alors exécuté lorsque le joueur clique sur l'élément avec le mode de curseur eModeUseInv, ce qui est par défaut le mode de curseur de la souris lorsque tu as sélectionné un objet d'inventaire.
Dans cette fonction (et n'importe où, de manière générale) tu peux vérifier quel objet d'inventaire utilise le joueur grâce à la propriété ActiveInventory. Ça te donnera un code dans cet esprit à l'intérieur des fonctions associées à tes événements :
Code:
// Si le joueur utilise la clef
if (player.ActiveInventory == iClef) {
  player.Say("Ouah, quelle aventure, j'ai récupéré cette clef et il se trouve justement qu'elle ouvre cette porte !");
  player.ActiveInventory = null; // On désélectionne l'objet d'inventaire
}
2) Normalement le curseur prend par défaut l'apparence de l'objet d'inventaire sélectionné. Si ce n'est pas le cas, vérifie que l'option Don't use inventory graphics as cursors (Ne pas utiliser les images d'inventaire comme curseurs) est bien désactivée.

_________________
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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


[résolu] Explications sur l'Inventaire et les Items :) Empty
MessageSujet: Re: [résolu] Explications sur l'Inventaire et les Items :)   [résolu] Explications sur l'Inventaire et les Items :) EmptySam 8 Fév 2014 - 16:22

Coucou chefgeorges !

EDIT: Kitai a dégainé en premier !

1)Dans les events des objets/hotspots, tu as une case "use inventory on object" (je ne sais pas la traduction exacte, mais bon, tu comprends le trucs). Ensuite, il suffit de coder :
Code:
function hKumTree_UseInv()
{
  if (player.ActiveInventory == iPeintureRouge) { // si l'objet sélectionné est la peinture rouge
    if (!oCherry.Visible) {
      player.Say("Fine, I'll do it.");
      oCherry.Visible = true;
      player.ActiveInventory = null;
    }
  } else { // Si c'est un autre objet.
    player.Say("Je vais laisser ça tranquile");
  }
}

Tu voudras peux-être faire des phrases par défauts par objets d'inventaires et non par hotspots/objets. Il y a plusieurs solutions pour le faire mais c'est un poil plus complexe. Moi j'ai fait une fonction personnalisée :
Code:
function DefaultInvInteraction(InventoryItem* item)
{
  String Sentence;
  if (item == iRedPaint) {
    Sentence = "I won't paint this in red!";
  } else if (item == iArceaux) {
    Sentence = "These arches go on the boat.";
  } else if (item == iToileBateau) {
    Sentence = "This covering sheet is only for our boat.";
  } else if (item == iJournalAnnecdote) {
    Sentence = "It does not need my journal. I'll keep it.";
  } else if (item == iRechaud) {
    Sentence = "It doesn't seem to be a suitable place for cooking.";
  } else if (item == iEmptyPot) {
    Sentence = "It boils my blood to say this, but no.";
  } else if (item == iBriquet) {
    Sentence = "I don't want to set this on fire.";
  } else if (item == iBlancket) {
    Sentence = "Take cover! Here's my blue blanket.";
  } else {
    Sentence = "No default sentence. Please contact Billbis.";
  }
  player.Say(Sentence);
}
Que j'utilise comme ça :
Code:
function hKumTree_UseInv()
{
  if (player.ActiveInventory == iPeintureRouge) { // si l'objet sélectionné est la peinture rouge
    if (!oCherry.Visible) {
      player.Say("Fine, I'll do it.");
      oCherry.Visible = true;
      player.ActiveInventory = null;
    }
  } else { // Si c'est un autre objet.
      DefaultInvInteraction(player.ActiveInventory); // <- ici
  }
}

2) En fait, tu peux tout simplement utiliser une option du General Settings : en anglais, c'est la ligne Use selected inventory graphic for cursor qu'il faut mettre sur true.
Tu peux aussi faire des contours. sourire

3) Ca, ça se fait dans les events des objets d'inventaires, la ligne Use inventory on this item. Ou alors tu peux le faire via les unhandled_event.

Sinon, par défaut, AGS gère les clics sur les fenêtre d'inventaire tout seul, mais il y a moyen de tout customiser.

Bon courage !

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
chefgeorges
Cliqueur Emérite
Cliqueur Emérite
chefgeorges


Nombre de messages : 502

Date d'inscription : 01/02/2008


[résolu] Explications sur l'Inventaire et les Items :) Empty
MessageSujet: Re: [résolu] Explications sur l'Inventaire et les Items :)   [résolu] Explications sur l'Inventaire et les Items :) EmptySam 8 Fév 2014 - 19:08

Merci pour vos réponses.

Par contre, mon curseur ne prend pas par defaut l'image de mon item triste
Je en comprend pas pourquoi, j'ai pourtant bien vérifié les Réglages Généraux confus

EDIT:
Non c'est bon, j'avais pas vue qu'il fait tout de même spécifier l'image du curseur dans l'onglet de l'item, quelle nouille, lol ;p
Revenir en haut Aller en bas
http://instagram.com/ichefgeorges
chefgeorges
Cliqueur Emérite
Cliqueur Emérite
chefgeorges


Nombre de messages : 502

Date d'inscription : 01/02/2008


[résolu] Explications sur l'Inventaire et les Items :) Empty
MessageSujet: Re: [résolu] Explications sur l'Inventaire et les Items :)   [résolu] Explications sur l'Inventaire et les Items :) EmptySam 8 Fév 2014 - 19:32

Par contre, petit soucis :

Si je clique sur un item, le curseur change ok. Si je clique 1 fois sur le clic droit, il disparait. MAIS si je clique à nouveau sur clic-droit il réapparait !

Comment faire en sorte que ça ne se produise pas ? sourire
Revenir en haut Aller en bas
http://instagram.com/ichefgeorges
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


[résolu] Explications sur l'Inventaire et les Items :) Empty
MessageSujet: Re: [résolu] Explications sur l'Inventaire et les Items :)   [résolu] Explications sur l'Inventaire et les Items :) EmptySam 8 Fév 2014 - 20:17

Et bien, il nous faudrait voir le code qui gère le clic droit dans le GlobalScript.
Tu utilises quel template ?

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu] Explications sur l'Inventaire et les Items :) Empty
MessageSujet: Re: [résolu] Explications sur l'Inventaire et les Items :)   [résolu] Explications sur l'Inventaire et les Items :) EmptySam 8 Fév 2014 - 20:39

Comme dit Billbis on a besoin d'en savoir plus, mais une possibilité est que tu n'utilises que deux modes pour ta souris et que le clic droit serve à naviguer entre les modes (voir SelectNextMode).

_________________
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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
chefgeorges
Cliqueur Emérite
Cliqueur Emérite
chefgeorges


Nombre de messages : 502

Date d'inscription : 01/02/2008


[résolu] Explications sur l'Inventaire et les Items :) Empty
MessageSujet: Re: [résolu] Explications sur l'Inventaire et les Items :)   [résolu] Explications sur l'Inventaire et les Items :) EmptyDim 9 Fév 2014 - 18:56

Oui c'est ça, voici le code :
Code:
function on_mouse_click(MouseButton button) // called when a mouse button is clicked. button is either LEFT or RIGHT
{
  if (IsGamePaused() == 1) // Game is paused, so do nothing (ie. don't allow mouse click)
  {
  }
  else if (button == eMouseLeft)
 {
    ProcessClick(mouse.x,mouse.y, mouse.Mode);
  }
  else // right-click, so cycle cursor
  {  
   mouse.SelectNextMode();
  }
}

J'ajoute que je trouve ça très bien en même temps. Un clic droit me permet "d'annuler" une action et de revenir au curseur de déplacement. Sauf que dans le cas d'un item ça marche moins bien sourire

(PS: j'utilise le Template vierge, je voulais tout recréer en partant de zéro)
Revenir en haut Aller en bas
http://instagram.com/ichefgeorges
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu] Explications sur l'Inventaire et les Items :) Empty
MessageSujet: Re: [résolu] Explications sur l'Inventaire et les Items :)   [résolu] Explications sur l'Inventaire et les Items :) EmptyDim 9 Fév 2014 - 19:53

Dans ce cas si tu veux que le joueur cesse d'avoir l'objet en main lorsqu'il fait un clic droit, tu peux simplement insérer la ligne 4 du code que j'ai mis plus haut dans le dernier else, comme ça :
Code:
function on_mouse_click(MouseButton button) // called when a mouse button is clicked. button is either LEFT or RIGHT
{
  if (IsGamePaused() == 1) // Game is paused, so do nothing (ie. don't allow mouse click)
  {
  }
  else if (button == eMouseLeft)
  {
    ProcessClick(mouse.x,mouse.y, mouse.Mode);
  }
  else // right-click, so cycle cursor
  {
    player.ActiveInventory = null; // On retire l'objet des mains du joueur
    mouse.SelectNextMode();
  }
}

_________________
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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Contenu sponsorisé





[résolu] Explications sur l'Inventaire et les Items :) Empty
MessageSujet: Re: [résolu] Explications sur l'Inventaire et les Items :)   [résolu] Explications sur l'Inventaire et les Items :) Empty

Revenir en haut Aller en bas
 
[résolu] Explications sur l'Inventaire et les Items :)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]Comment importer un dessin papier/une photo dans AGS?resolu
» [résolu]Importation fichiers Speech, [résolu]idle View coupée, résolution bords
» [Résolu] Png 24 ?
» [résolu]Pb Probleme de variable
» [résolu]think

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: