| Souci avec les modes curseurs | |
|
|
Auteur | Message |
---|
neutrinos Cliqueur Amateur
Nombre de messages : 219
Localisation : Nébuleuse du Crabe
Date d'inscription : 30/08/2006
| Sujet: Souci avec les modes curseurs Jeu 22 Mar 2007 - 13:35 | |
| AsrarothJ'ai tourjours pas réussi à règlé le problème avec les modes curseurs en faite tout fonctionne bien, sauf que quand je vais dans l'inventaire pour réccupérer un objet ça ne répond pas ??? Si tu-as le temps pourrais tu y regarder merci. _________________ |
|
| |
Asraroth Disciple de la Grande Tasse Bleue
Nombre de messages : 1468
Age : 49
Date d'inscription : 20/10/2006
| Sujet: Re: Souci avec les modes curseurs Jeu 22 Mar 2007 - 14:10 | |
| Sans le script, pas facile de voir le problème :scratch: Je ne sais pas comment tu gères tes items d'inventaire... Tu peux essayer cette technique : - dans les Game Options, dans la partie Inventory, coche la case "Handle inventory clicks in script". - sur chaque objet de l'inventaire, dans "Interact inventory item", rajoute un script avec - Code:
-
character[EGO].ActiveInventory = ixxxxx; xxxx étant le script-O-Name de l'objet Essaye de faire çà avec quelques objets pour voir si çà marche, avant de te lancer dans un gros chantier de script fastidieux |
|
| |
neutrinos Cliqueur Amateur
Nombre de messages : 219
Localisation : Nébuleuse du Crabe
Date d'inscription : 30/08/2006
| Sujet: Re: Souci avec les modes curseurs Jeu 22 Mar 2007 - 16:20 | |
| J'ai testé toujours pareil, dès que je vais dans l'invenvaire je ne peux pas récupérer l'objet, ça bloque à ce niveau là, je crois je vais laisser tomber.
int modesouris; modesouris = mouse.Mode; if (GetLocationType(mouse.x,mouse.y) == eLocationNothing) { modesouris = 0; } if (GetLocationType(mouse.x,mouse.y) == eLocationHotspot) { Hotspot *HP = Hotspot.GetAtScreenXY(mouse.x , mouse.y); modesouris = HP.GetProperty("ACTION"); } if (GetLocationType(mouse.x,mouse.y) == eLocationObject) { Object *OB = Object.GetAtScreenXY(mouse.x, mouse.y); modesouris = OB.GetProperty("ACTION"); } if (GetLocationType(mouse.x,mouse.y) == eLocationCharacter) { Character *CH = Character.GetAtScreenXY(mouse.x, mouse.y); modesouris = CH.GetProperty("ACTION"); }
if (modesouris != mouse.Mode) mouse.Mode = modesouris; _________________ |
|
| |
Asraroth Disciple de la Grande Tasse Bleue
Nombre de messages : 1468
Age : 49
Date d'inscription : 20/10/2006
| Sujet: Re: Souci avec les modes curseurs Jeu 22 Mar 2007 - 18:25 | |
| Ne laisse pas tomber !!!... et je pense avoir compris essaye de remplacer çà : - Code:
-
if (GetLocationType(mouse.x,mouse.y) == eLocationNothing) { modesouris = 0; }
par çà : - Code:
-
if (GetLocationType(mouse.x,mouse.y) == eLocationNothing) { modesouris = 0; InventoryItem *II = InventoryItem.GetAtScreenXY(mouse.x, mouse.y); if (II != null) modesouris = eModeInteract; } Quand on passe le curseur sur un item de l'inventaire, la fonction GetLocationType renvoie un "eLocationNothing" (= rien de spécial) Donc il faut tester si c'est un item (le pointeur II va recuperer l'adresse en mémoire de l'item qui se trouve sous la souris, si item il y a) S'il n'y a pas d'item sous la souris, le pointeur aura la valeur "null", sinon il y aura une adresse (peu importe laquelle) et dans ce cas, on passe le mode de la souris à Interaction. |
|
| |
Asraroth Disciple de la Grande Tasse Bleue
Nombre de messages : 1468
Age : 49
Date d'inscription : 20/10/2006
| Sujet: Re: Souci avec les modes curseurs Jeu 22 Mar 2007 - 18:50 | |
| Je viens de penser que ce systeme en l'état, a un gros inconveniant (tu viens d'en faire les frais avec les objets de l'inventaire, mais c'est pas tout). Si le joueur doit utiliser un autre pointeur que celui par defaut, çà va être dur... S'il change le mode du curseur, le prog va remettre le curseur par defaut environ 40 fois par seconde. J'ai peut-être une idée pour regler ce problème... je dois y reflechir encore un peu :scratch: |
|
| |
neutrinos Cliqueur Amateur
Nombre de messages : 219
Localisation : Nébuleuse du Crabe
Date d'inscription : 30/08/2006
| Sujet: Re: Souci avec les modes curseurs Jeu 22 Mar 2007 - 19:03 | |
| Oui effectivement ça fonctionne toujours pas le curseur se change et l'item clignote très rapidement quand je click dessus.
Ok merci pour ta patience. _________________ |
|
| |
neutrinos Cliqueur Amateur
Nombre de messages : 219
Localisation : Nébuleuse du Crabe
Date d'inscription : 30/08/2006
| Sujet: Re: Souci avec les modes curseurs Dim 25 Mar 2007 - 19:30 | |
| Tu-as trouvé une solution??? _________________ |
|
| |
Asraroth Disciple de la Grande Tasse Bleue
Nombre de messages : 1468
Age : 49
Date d'inscription : 20/10/2006
| Sujet: Re: Souci avec les modes curseurs Mer 28 Mar 2007 - 13:53 | |
| oups ! desolé... je m'etais mis à autre chose, et je viens seulement de voir ton message.
Je me remets sur le problème ! :study: |
|
| |
Asraroth Disciple de la Grande Tasse Bleue
Nombre de messages : 1468
Age : 49
Date d'inscription : 20/10/2006
| Sujet: Re: Souci avec les modes curseurs Mar 10 Avr 2007 - 14:36 | |
| Voila un petit algo pour mieux gerer les modes de la souris... Dans le script de la room, declaration des variables - Code:
-
Object* OO; Object* OB; Hotspot* OH; Hotspot* HP; Character* OC; Character* CH; et dans le Repeatedly_execute de la room : - Code:
-
int modesouris; modesouris = mouse.Mode; if (GetLocationType(mouse.x,mouse.y) == eLocationNothing) { SetGlobalInt(100, 0); modesouris = 0; } if (GetLocationType(mouse.x,mouse.y) == eLocationHotspot) { HP = Hotspot.GetAtScreenXY(mouse.x , mouse.y); modesouris = HP.GetProperty("ACTION"); SetGlobalInt(100 , 1); } if (GetLocationType(mouse.x,mouse.y) == eLocationObject) { OB = Object.GetAtScreenXY(mouse.x, mouse.y); modesouris = OB.GetProperty("ACTION"); SetGlobalInt(100 , 2); } if (GetLocationType(mouse.x,mouse.y) == eLocationCharacter) { CH = Character.GetAtScreenXY(mouse.x, mouse.y); modesouris = CH.GetProperty("ACTION"); SetGlobalInt(100 , 3); } if (modesouris != mouse.Mode) { if (((GetGlobalInt(100) == 1) && (OH != HP)) || ((GetGlobalInt(100) == 2) && (OO != OB)) || ((GetGlobalInt(100) == 3) && (OC != CH)) || (GetGlobalInt(100) != GetGlobalInt(101))) { mouse.Mode = modesouris; if (GetGlobalInt(100) == 1) OH = HP; if (GetGlobalInt(100) == 2) OO = OB; if (GetGlobalInt(100) == 3) OC = CH; SetGlobalInt(101, GetGlobalInt(100)); } } Ca utilise les variables Globales 100 et 101... donc faudra p-e les changer si tu les utilisais déjà. Le principe, c'est qu'on force le mode de la souris preferé que si on a changé d'objet/hotspot. Si la souris pointe toujours le même objet, on fait rien... donc le joueur peut changer le mode lui-même. J'espère que çà te conviendra... @+ |
|
| |
MilesMando Cliqueur Amateur
Nombre de messages : 310
Age : 43
Localisation : Paris
Date d'inscription : 08/08/2006
| Sujet: Re: Souci avec les modes curseurs Mar 10 Avr 2007 - 16:12 | |
| ça m'apprend des trucs , merci! |
|
| |
neutrinos Cliqueur Amateur
Nombre de messages : 219
Localisation : Nébuleuse du Crabe
Date d'inscription : 30/08/2006
| Sujet: Re: Souci avec les modes curseurs Mar 10 Avr 2007 - 16:52 | |
| Merci Asraroth je vais testé. _________________ |
|
| |
neutrinos Cliqueur Amateur
Nombre de messages : 219
Localisation : Nébuleuse du Crabe
Date d'inscription : 30/08/2006
| Sujet: Re: Souci avec les modes curseurs Mar 10 Avr 2007 - 17:40 | |
| Tout fonction très bien encore merci Asraroth :cheers: _________________ |
|
| |
Shai-la Ouvrière en Chef de la Grande Tasse Bleue
Nombre de messages : 6018
Age : 46
Localisation : Montpellier
Date d'inscription : 17/04/2006
| Sujet: Re: Souci avec les modes curseurs Mar 10 Avr 2007 - 18:40 | |
| Asraroth, le roi du script ! :queen: |
|
| |
Contenu sponsorisé
| Sujet: Re: Souci avec les modes curseurs | |
| |
|
| |
| Souci avec les modes curseurs | |
|