Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Boutique Nike : -25% dès 50€ sur TOUT le ...
Voir le deal

 

 [résolu]ClickAction inventory

Aller en bas 
4 participants
AuteurMessage
adauca
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
adauca


Nombre de messages : 151

Age : 42

Localisation : Strasbourg

Date d'inscription : 10/02/2014


[résolu]ClickAction inventory Empty
MessageSujet: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptyVen 19 Fév 2016 - 22:51

Bonjour,

Nouvelle question sur l'utilisation dans l'inventaire.

J'ai mon inventaire suivant:
[résolu]ClickAction inventory Invent10

Un fois remplit, une flèche apparaît en bas à droite pour indiquer la suite des objets ramassés.
Un clic dessus (gauche ou droite d'ailleurs) fonctionne très bien pour avancer ou reculer sur mes différents plans des objets.
Mon problème se situe lorsque je clique sur la flèche alors que j'ai un objet sélectionné (comme mon pass bleu et gris sur l'image par exemple) afin d'aller au plan suivant et le combiner par exemple avec un autre objet et bien mon pass disparaît et je me rend sur le plan suivant.
Y a-t-il un code spécial à intégrer?

J'ai un ClickAction en RunScript sur ma flèche (btnright) et mon code sur le OnClick est le suivant:
Code:
function btnright_OnClick(GUIControl *control, MouseButton button)
{
 Verbcoin.ScrollInventoryRight();
}


merci

_________________
Une agence de publicité, c'est 85 % de confusion et 15 % de commission.


Dernière édition par adauca le Sam 27 Fév 2016 - 15:02, édité 1 fois
Revenir en haut Aller en bas
http://www.mad-day.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]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptySam 20 Fév 2016 - 0:47

Hm, si je me trompe pas, rien dans le code que tu as donné ne devrait te faire désélectionner l'objet.
Qu'est-ce que tu as dans la fonction on_mouse_click dans le script global ?

_________________
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
adauca
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
adauca


Nombre de messages : 151

Age : 42

Localisation : Strasbourg

Date d'inscription : 10/02/2014


[résolu]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptySam 20 Fév 2016 - 1:03

En fait ma ligne de commande est dans le globalscript.
J'utilise le "Scumm VerbCoin GUI" pour gérer mon inventaire alors je ne sais pas trop quoi t'indiquer comme ligne de code...

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


Nombre de messages : 151

Age : 42

Localisation : Strasbourg

Date d'inscription : 10/02/2014


[résolu]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptySam 20 Fév 2016 - 1:57

En fait, il faudrait que je dise que si j'ai un objet de l'inventaire sélectionné et que je clique sur la flèche, alors je passe au plan suivant avec l'objet de l'inventaire sélectionné comme curseur...

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


Nombre de messages : 144

Age : 52

Localisation : Hyères

Date d'inscription : 29/12/2012


[résolu]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptySam 20 Fév 2016 - 4:28

Peut-être un truc du style
Code:
 mouse.Mode = eModeUseinv;

style
Code:
function btnIconCurInv_Click(GUIControl *control, MouseButton button) {
 
  if (player.ActiveInventory != null)
    mouse.Mode = eModeUseinv;


?

_________________
Projet en cours : KINGEEKS QUEST
http://kingeeks.blogspot.fr/
Revenir en haut Aller en bas
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]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptySam 20 Fév 2016 - 7:06

adauca a écrit:
J'utilise le "Scumm VerbCoin GUI" pour gérer mon inventaire alors je ne sais pas trop quoi t'indiquer comme ligne de code...
Je vois. L'idée c'est que tu ouvres ton script global, que tu cherches le texte "on_mouse_click" et si tu trouves quelque chose alors c'est que tu devrais être tombé sur la fonction on_mouse_click : du coup tu copies-colles son contenu ici.
Il est possible aussi que tu aies aussi ça dans le fichier script spécifique à Scumm (je sais plus son nom) mais du coup tu peux faire la même chose avec ce fichier script : chercher le texte "on_mouse_click" et coller ici le contenu de la fonction si tu trouves quelque chose.

_________________
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
adauca
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
adauca


Nombre de messages : 151

Age : 42

Localisation : Strasbourg

Date d'inscription : 10/02/2014


[résolu]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptySam 20 Fév 2016 - 13:04

J'ai remarqué quelque chose également qui pourrait me mettre sur la piste.
Si j'ai un objet sélectionné et affiché mais que je clique dans l'inventaire ailleurs que sur un autre objet (clic gauche ou droit) et bien l'objet disparaît et le curseur se remet en mode walk (normal).

J'ai vu ce bout de code dans la partie "Scumm". Les débuts de code ne correspondent pas à ça par hasard? Car si déjà en temps normal l'objet se désélectionne par un clic il est normal que lorsque je clique sur ma flèche l'objet disparaît également... Je crois qu'il faut que je parte la dessus nan?

Code:
// Export Functions to be called in the Global Script
//-------------------------------------------------------------------

// Interact with the item under the cursor (Usage: keyboard support)
void _Verbcoin::RunInteraction(CursorMode option)
{
 if (option == eModePointer || option == eModeUseinv || option == eModeWait || option == eModeWalkto)
 {
 //do nothing
 }
 else
 {
 //deselect the item first
 if (mouse.Mode == eModeUseinv)
 {
 player.ActiveInventory = null;
 }
 if (gInventory.Visible == true)
 {
 if (InventoryItem.GetAtScreenXY(mouse.x, mouse.y) != null)
 {
 InventoryItem* item = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);
 item.RunInteraction(option);
 }
 }
 else
 {
 ProcessClick(mouse.x, mouse.y, eModeInteract);
 }
 }
}

// Selects the item under the cursor if in the inventory (Usage: keyboard support)
void _Verbcoin::SelectInventoryItemUnderCursor()
{
 if (InventoryItem.GetAtScreenXY(mouse.x, mouse.y) != null)
 {
 if (player.ActiveInventory == null)
 {
 player.ActiveInventory = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);
 }
 else
 {
 InventoryItem* item = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);
 item.RunInteraction(eModeUseinv);
 }
 }
 else
 {
 ProcessClick(mouse.x, mouse.y, eModeUseinv );
 }
}

// Deselects the active item or quits the inventory if no item selected (Usage: keyboard support)
void _Verbcoin::DeselectInventoryItem()
{
 if (mouse.Mode == eModeUseinv)
 {
 player.ActiveInventory = null;
 }
 else
 {
 if(gui[this.inventory_GuiId].Visible == true)
 {
 gui[this.inventory_GuiId].Visible = false;
 }
 }
}

// Scrolls the inventory to the right, by the visible item count
void _Verbcoin::ScrollInventoryRight()
{
 if(Inv_window.ItemAtIndex[Inv_window.TopItem + (Inv_window.ItemsPerRow * Inv_window.RowCount)] != null)
 {
 Inv_window.TopItem = Inv_window.TopItem + (Inv_window.ItemsPerRow * Inv_window.RowCount);
 btnleft.Visible = true;
 if(Inv_window.ItemAtIndex[Inv_window.TopItem + (Inv_window.ItemsPerRow * Inv_window.RowCount)] == null)
 {
 btnright.Visible = false;
 }
 }
}

// Scrolls the inventory to the left, by the visible item count
void _Verbcoin::ScrollInventoryLeft()
{
 if(Inv_window.ItemAtIndex[Inv_window.TopItem - (Inv_window.ItemsPerRow * Inv_window.RowCount)] != null)
 {
 Inv_window.TopItem = Inv_window.TopItem - (Inv_window.ItemsPerRow * Inv_window.RowCount);
 btnright.Visible = true;
 if(Inv_window.ItemAtIndex[Inv_window.TopItem - (Inv_window.ItemsPerRow * Inv_window.RowCount)] == null)
 {
 btnleft.Visible = false;
 }
 }
}

// Open the inventory
void _Verbcoin::OpenInventory()
{
 if(this.inventory_Enabled == true)
 {
 if(gui[this.inventory_GuiId].Visible == false)
 {
 inv_entered = true;  
 gui[this.inventory_GuiId].Visible = true;
 if (Inv_window.ItemAtIndex[Inv_window.TopItem + (Inv_window.ItemsPerRow * Inv_window.RowCount)] != null)
 {
 btnright.Visible = true;
 }
 else
 {
 btnright.Visible = false;
 }
 if(Inv_window.ItemAtIndex[Inv_window.TopItem - (Inv_window.ItemsPerRow * Inv_window.RowCount)] != null)
 {
 btnleft.Visible = true;
 }
 else
 {
 btnleft.Visible = false;
 }
 }
 }
}

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


Nombre de messages : 151

Age : 42

Localisation : Strasbourg

Date d'inscription : 10/02/2014


[résolu]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptyMar 23 Fév 2016 - 17:39

Alors après avoir réessayer un nouveau jeu pour tester le template verbcoin (au cas où toutes mes modifs et autres codes auraient fait bugger un truc), je me suis rendu compte que celui-ci n'avait pas par défaut la gestion du clic sur la flèche lorsqu'un objet de l'inventaire était sélectionné. J'ai fouillé un peu les scripts mais c'est trop compliqué pour moi. Si quelqu'un connait bien ce template et connait le problème je suis tout oui!


_________________
Une agence de publicité, c'est 85 % de confusion et 15 % de commission.
Revenir en haut Aller en bas
http://www.mad-day.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]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptyMar 23 Fév 2016 - 20:35

adauca a écrit:
je me suis rendu compte que celui-ci n'avait pas par défaut la gestion du clic sur la flèche lorsqu'un objet de l'inventaire était sélectionné
Tu veux dire que le comportement est le même sur ton projet principal et sur le "nouveau jeu" test ? Si le comportement diffère, alors tu as dû changer quelque chose au script.

J'essayerai de jeter un œil dans la semaine (j'oublie pas le module Phylactere non plus) mais ce serait cool pour toi que quelqu'un s'attèle à la tâche avant moi clin d'oeil

_________________
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
adauca
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
adauca


Nombre de messages : 151

Age : 42

Localisation : Strasbourg

Date d'inscription : 10/02/2014


[résolu]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptyMer 24 Fév 2016 - 14:09

Oui effectivement le code sur mon jeu actuel n'a pas été modifié en ce qui concerne la gestion des flèches de l'inventaire et la gestion d'objets avec celles-ci.
Le problème est déjà à la base dans le template. Et le "bug" apparaît alors dans tous nouveaux jeux créés avec celui-ci.
Il faudrait voir du coup si quelqu'un comprend le code de ce template afin de rectifier l'"erreur". Si tu t'attèles à la tâche ou au moins jettes un coup d'oeil je suis déjà rassuré clin d'oeil

En attendant j'ai de quoi faire et continue sur le jeu... Pas d'inquiétude sur le temps que tu prends... haha

En tout cas merci à toi, pour ma part je suis largué avec ce code donc je peux que m'en remettre à toi ou quelqu'un qui connait bien ce template...

@+

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


Nombre de messages : 151

Age : 42

Localisation : Strasbourg

Date d'inscription : 10/02/2014


[résolu]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptySam 27 Fév 2016 - 14:59

Bon, alors j'ai scruté TOUTES LES LIGNES du GUI Scumm VerbCoin, une après l'autre en essayant de comprendre ce que ça voulait dire et sur quoi ça interagissait et bien TADAAA!!!
J'ai trouvé ma réponse et mes flèches se comportent à merveille en gardant mon objet sélectionné.

Si jamais quelqu'un utilise se gui et a le même souci, voilà la partie du code concernée:
Code:
//===================================================================
 // CLICK MOUSE BUTTON (IN INVENTORY)
 //-------------------------------------------------------------------
 if (event==eEventGUIMouseDown && data == gui[Verbcoin.get_Inventory_GuiId()].ID)
 {
 // inventory item under the cursor?
 item = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);
 // Right-click in inventory
 if (mouse.IsButtonDown(getMouseButtonRight(Verbcoin.get_Verbcoin_InvertInventoryMouse())))
 {
 if (item != null && player.ActiveInventory != null)
 {
 if (item == player.ActiveInventory)
 {
 player.ActiveInventory = null;
 }
 else
 {
 item.RunInteraction(eModeUseinv);
 }
 }
 else
 {
 // no item under the cursor, but you are holding an item
 if (player.ActiveInventory != null)
 {
 //player.ActiveInventory = null; //////////C'EST CETTE LIGNE QUI ME FAISAIT CH.....  /////////////////
 }
 else if (item == null && control != btnleft && control != btnright)
 {
 if (!Verbcoin.get_Verbcoin_InvertInventoryMouse())
 {
 Verbcoin.CloseInventory();
 }
 }
 else
 {
 player.ActiveInventory = item;
 }
 }
 }

Ouf, Kitai, tu peux t'économiser du temps là dessus! clin d'oeil
Pas besoin de te prendre la tête sur mon problème...

Problème résolu!

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


Nombre de messages : 161

Age : 52

Localisation : Hyères

Date d'inscription : 21/02/2016


[résolu]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptySam 27 Fév 2016 - 16:14

bravo ! aller Kitai, ça relaisse du temps pour plancher sur Speech avec phylacthère !
sourire
[résolu]ClickAction inventory 1181541269
Revenir en haut Aller en bas
http://www.adipson.com
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]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptySam 27 Fév 2016 - 18:13

adauca a écrit:
Bon, alors j'ai scruté TOUTES LES LIGNES du GUI Scumm VerbCoin, une après l'autre en essayant de comprendre ce que ça voulait dire et sur quoi ça interagissait et bien TADAAA!!!
J'ai trouvé ma réponse et mes flèches se comportent à merveille en gardant mon objet sélectionné.
Super ! T'es un expert sur le sujet maintenant.

Du coup puisque tu as localisé le problème, je remarque maintenant que tu ne peux plus du tout "lâcher" l'objet lors d'un clic dans l'inventaire. Une solution serait donc de remplacer la ligne 27 que tu as commentée par ces lignes :
Code:
GUIControl* sousSouris = GUIControl.GetAtScreenXY(mouse.x, mouse.y);
if (sousSouris == null || sousSouris.AsInvWindow != null) player.ActiveInventory = null;

Si j'ai pas fait de bêtise, ça devrait ne faire lâcher l'objet que lors d'un clic dans le "vide" sur le gui ou bien sur le fond de la fenêtre d'inventaire.

Adipson a écrit:
bravo ! aller Kitai, ça relaisse du temps pour plancher sur Speech avec phylacthère !
sourire
[résolu]ClickAction inventory 1181541269
C'est prévu, c'est prévu !

_________________
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
adauca
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
adauca


Nombre de messages : 151

Age : 42

Localisation : Strasbourg

Date d'inscription : 10/02/2014


[résolu]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory EmptyDim 28 Fév 2016 - 17:46

Exact Kitai, enfin presque clin d'oeil

En fait, je considère que tout le monde n'est pas familiarisé avec ce genre de gameplay et certaines personnes ont tendance (en tout cas dans mon entourage) à cliquer un peu n'importe comment quand ils ne savent plus les commandes.

Les objets peuvent tout à fait être "lâchés" et désélectionnés par un premier clic droit puis un deuxième fait disparaître l'inventaire. C'est quelque chose de voulu que le clic gauche ne désélectionne justement pas l'objet en "main".

Imaginons également que le joueur sorte de l'inventaire et rate le clic sur un personnage ou un hotspot. (car il a cliqué trop vite ou juste à côté...) et bien dans mon cas l'objet sera encore en sa possession. Et il ne sera pas obligé de retourner dans l'inventaire, sélectionner à nouveau l'objet et cliquer à nouveau là où il voulait.

Bref, ça n'est que mon avis mais comme c'est mon jeu je fais comme je pense langue

Toutefois ça n'enlève en rien le fait que j’apprécie grandement ce petit détail et le garde bien au chaud pour mes prochains jeux si besoin...

_________________
Une agence de publicité, c'est 85 % de confusion et 15 % de commission.
Revenir en haut Aller en bas
http://www.mad-day.fr
Contenu sponsorisé





[résolu]ClickAction inventory Empty
MessageSujet: Re: [résolu]ClickAction inventory   [résolu]ClickAction inventory Empty

Revenir en haut Aller en bas
 
[résolu]ClickAction inventory
Revenir en haut 
Page 1 sur 1

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: