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

Partagez | 
 

 Problème Curseur inventaire

Aller en bas 
AuteurMessage
CookiewooD
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
avatar

Nombre de messages : 38

Age : 30

Localisation : Gard

Date d'inscription : 18/09/2018


MessageSujet: Problème Curseur inventaire   Mar 16 Oct 2018 - 7:48

Coucou les tasses bleues !

Petite vidéo pour vous montrer mon problème. Quand j'essaye de sélectionner un item dans l'inventaire, l'image du curseur se ne transforme pas en image de l'objet (pourtant j'ai bien précisé dans les Inventory item quelle serait l'image cursor désirée) MAIS j'ai l'impression que l'item est bien sélectionné...

https://vimeo.com/user90659735/review/295324086/7545e4a22d

J'utilise le template BASS2clicks (pas taper) et c'est bizarre car quand je lance "la démo" fournie avec le template 2clicks, les objets d'inventaires se sélectionnent tout a fait normalement avec leur cursor image et je n'ai rien changé du tout au script "2clicksHandler" fourni avec le template.... J'ai du toucher quelque chose ailleurs qui fait "interférence" mais je ne trouve pas quoi... Avez vous une idée ?

Voici à quoi ressemble le 2click handler :
Code:
//----------------------------------------------------------------------------------------------------
// game_start()
//----------------------------------------------------------------------------------------------------
function game_start()
{
 lblActionText.Text = "";
}

//----------------------------------------------------------------------------------------------------
// on_mouse_click()
//----------------------------------------------------------------------------------------------------
function on_mouse_click(MouseButton button)
{
 // when mouse is clicked, text label is cleared
 lblActionText.Text = "";
 
 // when game is paused, clicks aren't processed
 if (IsGamePaused())
 {
 return;
 }
 
 // Left Mouse Button on Object/Character/Hotspot/Location
 // when no inventory is selected:
 // - INTERACT with target
 // - walk to location
 // else
 // - USE inventory on target
 else if (button == eMouseLeft)
 {
 if (GetLocationType(mouse.x, mouse.y) != eLocationNothing)
 {
 if (player.ActiveInventory == null)
 {
 ProcessClick(mouse.x, mouse.y, eModeLookat);
 }
 else
 {
 ProcessClick(mouse.x, mouse.y, eModeUseinv);
 }
 
 }
 else
 {
 if (player.ActiveInventory == null)
 {
 ProcessClick(mouse.x, mouse.y, eModeWalkto);
 }
 else
 {
 player.ActiveInventory = null;
 }
 }
 }

 // Right Mouse Button on Object/Character/Hotspot/Location
 // when no inventory is selected:
 // - EXAMINE target
 // else
 // - DESELECT inventory
 else if (button == eMouseRight)
 {
 if (player.ActiveInventory != null)
 {
 player.ActiveInventory = null;
 }
 
 else if (GetLocationType(mouse.x, mouse.y) != eLocationNothing)
 {
 ProcessClick(mouse.x, mouse.y, eModeInteract);
 }
 }
 
 // Left Mouse Button on Inventory Item
 // when no inventory is selected:
 // - INTERACT with target
 // - SELECT target
 // else
 // - USE inventory on target
 else if (button == eMouseLeftInv)
 {
 InventoryItem *i = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);
 if (i != null)
 {
 if (i.GetProperty("propInstantUse") == true)
 {
 if (player.ActiveInventory == null)
 {
 i.RunInteraction(eModeInteract);
 }
 else
 {
 i.RunInteraction(eModeUseinv);
 }
 }
 else
 {
 if (player.ActiveInventory == null)
 {
 player.ActiveInventory = i;
 }
 else
 {
 if (i.ID != player.ActiveInventory.ID)
 {
 i.RunInteraction(eModeUseinv);
 }
 }
 }
 }
 }
 
 // Right Mouse Button on Inventory Item
 // when no inventory is selected:
 // - EXAMINE target
 // else
 // - DESELECT INVENTORY
 else if (button == eMouseRightInv)
 {
 if (player.ActiveInventory != null)
 {
 player.ActiveInventory = null;
 return;
 }
 
 InventoryItem *i = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);
 if (i != null)
 {
 i.RunInteraction(eModeLookat);
 }
 }
 
}

//----------------------------------------------------------------------------------------------------
// repeatedly_execute()
//----------------------------------------------------------------------------------------------------
function repeatedly_execute()
{
 // Inventory GUI:
 // - make visible if mouse "touches" trigger zone
 // - make invisible if mouse leaves inventory GUI
 if (!gInventoryBar.Visible && mouse.y <= INVENTORY_POPUP_POSITION)
 {
 gInventoryBar.Visible = true;
 }
 
 if (gInventoryBar.Visible && mouse.y > gInventoryBar.Height)
 {
 gInventoryBar.Visible = false;
 }
    if (gPause.Visible == true){
    gInventoryBar.Visible = false;
  }
 
 // Action Text
 // We always display the name of what is under the mouse, with one exception:
 // IF the player has an inventory item selected and hovers over the same inventory item,
 // we display nothing to indicate that an item can not be used on itself
 if (player.ActiveInventory == null)
 {
 lblActionText.Text = Game.GetLocationName(mouse.x, mouse.y);
 }
 else
 {
 InventoryItem *i = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);
 if (i != null && (i.ID == player.ActiveInventory.ID))
 {
 lblActionText.Text = "";
 }
 else
 {
 lblActionText.Text = Game.GetLocationName(mouse.x, mouse.y);
 }
 }

}


Dernière édition par CookiewooD le Mar 16 Oct 2018 - 7:51, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
CookiewooD
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
avatar

Nombre de messages : 38

Age : 30

Localisation : Gard

Date d'inscription : 18/09/2018


MessageSujet: Re: Problème Curseur inventaire   Mar 16 Oct 2018 - 10:05

Okkkaaayyyy !! j'ai réussi à isoler les lignes de codes qui font "interférence" !!

C'est le curseur dynamique que j'ai crée dans le global script qui fou la m****...

Quand je supprime ces quelques lignes, ça fonctionne :

Code:
  Hotspot* hsurvol = Hotspot.GetAtScreenXY(mouse.x,  mouse.y);
  Object* osurvol = Object.GetAtScreenXY(mouse.x,  mouse.y);
  Character* csurvol = Character.GetAtScreenXY(mouse.x,  mouse.y);
 
  if(hsurvol != hotspot[0]) Mouse.Mode = eModeInteract;
  else if (osurvol != null) Mouse.Mode = eModeInteract;
  else if (csurvol != null) Mouse.Mode = eModeTalkto;
  else Mouse.Mode = eModeWalkto;

Mais évidemment mon curseur n'est plus dynamique et ça m'embeyte langue

Quelqu'un a une idée pour que je garde mon curseur dynamique codé comme ceci (ou autrement) mais qui n’empêche pas de se saisir de mon objet d'inventaire avec son image cursor ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2637

Date d'inscription : 01/08/2006


MessageSujet: Re: Problème Curseur inventaire   Mar 16 Oct 2018 - 16:31

Salut !

Insère cette ligne juste entre la ligne 7 et la ligne 8 :
Code:
else if (player.ActiveInventory != null) Mouse.Mode = eModeUseinv;

EDIT : en fait si tu fais ça le curseur sera l'objet d'inventaire seulement si tu survoles pas de zone d'interaction, d'objet ou de personnage. Peut-être que tu préférerais quelque chose comme ça :
Code:
  Hotspot* hsurvol = Hotspot.GetAtScreenXY(mouse.x,  mouse.y);
  Object* osurvol = Object.GetAtScreenXY(mouse.x,  mouse.y);
  Character* csurvol = Character.GetAtScreenXY(mouse.x,  mouse.y);
 
  if (player.ActiveInventory != null) Mouse.Mode = eModeUseinv;
  else if (hsurvol != hotspot[0]) Mouse.Mode = eModeInteract;
  else if (osurvol != null) Mouse.Mode = eModeInteract;
  else if (csurvol != null) Mouse.Mode = eModeTalkto;
  else Mouse.Mode = eModeWalkto;
Après si tu a scripté des interactions qui par ailleurs dépedent du mode du curseur (par exemple si tu exécutes du code uniquement lors d'une interaction avec un objet en mode eModeInteract) elles seront pas exécutées lorsque tu cliques avec un objet d'inventaire. Mais c'est peut-être le comportement que tu veux, justement : tu veux peut-être pouvoir scripter des interactions spécifiques lorsque tu cliques sur l'objet avec un objet d'inventaire dans la main.

_________________
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
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 1546

Age : 29

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: Re: Problème Curseur inventaire   Mar 16 Oct 2018 - 16:56

Oups ! Je viens de me rendre compte que j'ai omis d'indiquer cette ligne dans mon tuto sur le sujet (peut-être que j'avais jugé inutile de trop entrer dans les détails mais effectivement vu que le dernier curseur n'est pas associé à une condition spécifique ça pose souci). My bad. rougit

_________________
"Je ne suis point cet assemblage de membres que l’on appelle le corps humain ; je ne suis point un air délié et pénétrant répandu dans tous ces membres ; je ne suis point un vent, un souffle, une vapeur, ni rien de tout ce que je puis feindre et m’imaginer, puisque j’ai supposé que tout cela n’était rien, et que, sans changer cette supposition, je trouve que je ne laisse pas d’être certain que je suis quelque chose."

René Descartes
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
CookiewooD
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
avatar

Nombre de messages : 38

Age : 30

Localisation : Gard

Date d'inscription : 18/09/2018


MessageSujet: Re: Problème Curseur inventaire   Mer 17 Oct 2018 - 7:21

En effet Valoufef, j'en mettrai pas ma main à couper mais je crois bien que ça vient d'un de tes tuto vidéo !  

ça marche nickel, je me sens bête, c'était tout simple :'( J'apprends un peu plus chaque jour langue


Merciiiiiii beaucoup en tout cas les garçons sourire
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2637

Date d'inscription : 01/08/2006


MessageSujet: Re: Problème Curseur inventaire   Mer 17 Oct 2018 - 17:42

OKEI!

_________________
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
Contenu sponsorisé




MessageSujet: Re: Problème Curseur inventaire   

Revenir en haut Aller en bas
 
Problème Curseur inventaire
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» problème flux rss "paramètres non vide"
» [Résolu]Problème de nez qui clignote orange - Freebox HD
» MTGO problème lié à la vente de cartes
» problème connexion livebox 2
» Problème applications

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: