CookiewooD Adepte de la Grande Tasse Bleue
Nombre de messages : 54
Age : 35
Localisation : Gard
Date d'inscription : 18/09/2018
| Sujet: 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/7545e4a22dJ'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 |
|
CookiewooD Adepte de la Grande Tasse Bleue
Nombre de messages : 54
Age : 35
Localisation : Gard
Date d'inscription : 18/09/2018
| Sujet: 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 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 ? |
|
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: 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 ! |
|
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: 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. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
CookiewooD Adepte de la Grande Tasse Bleue
Nombre de messages : 54
Age : 35
Localisation : Gard
Date d'inscription : 18/09/2018
| Sujet: 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 Merciiiiiii beaucoup en tout cas les garçons |
|
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: 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 ! |
|
Contenu sponsorisé
| Sujet: Re: Problème Curseur inventaire | |
| |
|