| Curseur choisit automatiquement son mode sur les objets | |
|
|
Auteur | Message |
---|
Scorpion C'est quoi la Tasse Bleue ?
Nombre de messages : 8
Date d'inscription : 31/05/2010
| Sujet: Curseur choisit automatiquement son mode sur les objets Mer 29 Sep 2010 - 18:42 | |
| Bonjour à tous. J'ai un soucis depuis quelques temps, et je ne trouve pas la solution. Je voudrais que le curseur passe au mode "Look At" et "Interact" automatiquement quand il passe sur un objet auquel il peut interagir (Comme dans Runaway ou le curseur passe en mode regarder et parler automatiquement) j'ai parcouru le forum, je vois des indices un peu partout, mais je ne trouve pas la solution. Je ne sais pas ou je dois mettre les codes ni comment l'écrire. Je souhaterais aussi que le verbe de l'action apparaisse dans le @Overshot@ ... j'ai donc mis un encart dans le bas de l'écran de jeu de facon a faire apparaitre le nom de l'objet sur lequel passe le curseur, mais je voudrais que s'ajoute automatiquement "Marcher vers" et "Regarder" ou "Parler" en plus en fonction du curseur activé. La aussi j'ai lu un code sur le forum - Code:
-
function repeatedly_execute() { String buffact; String buffobj; if (mouse.Mode == eModeWalkto) {buffact = "Marcher vers ";} if (mouse.Mode == eModeClose) {buffact = "Fermer ";} if (mouse.Mode == eModegive) {buffact = "Donner ";} if (mouse.Mode == eModeLookat) {buffact = "Regarder ";} if (mouse.Mode == eModeOpen) {buffact = "Ouvrir ";} if (mouse.Mode == eModePickup) {buffact = "Prendre ";} if (mouse.Mode == eModepull) {buffact = "Tirer ";} if (mouse.Mode == eModepush) {buffact = "Pousser ";} if (mouse.Mode == eModeTalkto) {buffact = "Parler ";} if (mouse.Mode == eModeInteract) {buffact = "Utiliser ";} buffobj = Game.GetLocationName(mouse.x , mouse.y ); buffact = buffact.Append(buffobj); MonLabel.SetText(buffact); }
Mon probleme dans ce code s'est que la ligne - MonLabel.SetText(buffact); est eronée, pourtant je met bien le nom du Label de mon Overshot a la place... Et j'avoue ne pas comprendre ce que sifnigie le terme Buffact ... Je vous remercie d'avance pour toutes aides que vous pourez m'apporter. |
|
| |
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: Curseur choisit automatiquement son mode sur les objets Mer 29 Sep 2010 - 19:11 | |
| Utilise le code
if(mouse.IsButtonDown(eMouseLeft)==true){ if(GetLocationType(mouse.x, mouse.y)==eLocationHotspot){ ProcessClick(mouse.x, mouse.y, eModeLookAt); } if(GetLocationType(mouse.x, mouse.y)==eLocationCharacter){ ProcessClick(mouse.x, mouse.y, eModeTalkTo); } if(GetLocationType(mouse.x, mouse.y)==eLocationObject){ ProcessClick(mouse.x, mouse.y, eModeLookAt); }
} |
|
| |
Scorpion C'est quoi la Tasse Bleue ?
Nombre de messages : 8
Date d'inscription : 31/05/2010
| Sujet: Re: Curseur choisit automatiquement son mode sur les objets Mer 29 Sep 2010 - 20:12 | |
| Ca marche pas mal ce code, mais ca ne donne pas ce que je cherche il faudrait que le curseur change de mode en passant sur les elements sans devoir cliquer. Par exemple si je passe sur une plante, le curseur se transforme en "look at" et si je clique ensuite, il lance la fonction regarder. Je sais que je peux le faire avec la fonction "Mouse move over.." dans les options de Hotspots mais il faudrait que ce soit général, pour m'éviter de taper le code sur chaque Hotspot, objet et perso du jeu. : |
|
| |
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: Curseur choisit automatiquement son mode sur les objets Jeu 30 Sep 2010 - 7:33 | |
| if(GetLocationType(mouse.x, mouse.y)==eLocationHotspot){ mouse.mode=eModeLookAt; } if(GetLocationType(mouse.x, mouse.y)==eLocationCharacter){ mouse.mode=eModeTalkTo; } if(GetLocationType(mouse.x, mouse.y)==eLocationObject){ mouse.mode=eModeLookAt; }
|
|
| |
Asraroth Disciple de la Grande Tasse Bleue
Nombre de messages : 1468
Age : 49
Date d'inscription : 20/10/2006
| Sujet: Re: Curseur choisit automatiquement son mode sur les objets Jeu 30 Sep 2010 - 7:54 | |
| Pour le @Overshot@ avec verbe, je completerai le script de Shai-la : - Code:
-
function repeatedly_execute() { if(GetLocationType(mouse.x, mouse.y)==eLocationNothing){ mouse.Mode = eModeWalkto; Label1.Text = ""; } if(GetLocationType(mouse.x, mouse.y)==eLocationHotspot){ mouse.Mode = eModeLookat; String s = "Regarder "; s = s.Append(Game.GetLocationName(mouse.x, mouse.y)); Label1.Text = s; } if(GetLocationType(mouse.x, mouse.y)==eLocationCharacter){ mouse.Mode = eModeTalkto; String s = "Parler a "; s = s.Append(Game.GetLocationName(mouse.x, mouse.y)); Label1.Text = s; } if(GetLocationType(mouse.x, mouse.y)==eLocationObject){ mouse.Mode=eModeLookat; String s = "Regarder "; s = s.Append(Game.GetLocationName(mouse.x, mouse.y)); Label1.Text = s; } } |
|
| |
Scorpion C'est quoi la Tasse Bleue ?
Nombre de messages : 8
Date d'inscription : 31/05/2010
| Sujet: Re: Curseur choisit automatiquement son mode sur les objets Jeu 30 Sep 2010 - 17:45 | |
| Bonsoir à tous, merci pour votre aide... Ce script est a 90% de ce que je recherche, je vais essayer de le modifier par moi meme pour avoir ce que je veux, il y a que comme ca qu'on apprend. Je vous tiens au courant. |
|
| |
Scorpion C'est quoi la Tasse Bleue ?
Nombre de messages : 8
Date d'inscription : 31/05/2010
| Sujet: Re: Curseur choisit automatiquement son mode sur les objets Jeu 30 Sep 2010 - 19:35 | |
| Oula, ce fut difficile mais je crois avec réussi ... je vous explique. - Code:
-
{ //Premiere partie pour que le curseur se mette automatiquement en mode marche si je ne suis pas sur un Hotspot //j'ai reactiver les autres modes, car ils sont desactivés plus loin)
if(GetLocationType(mouse.x, mouse.y)==eLocationNothing){ mouse.Mode = eModeWalkto; Label1.Text = ""; mouse.EnableMode(eModeTalkto); mouse.EnableMode(eModeWalkto); mouse.EnableMode(eModeInteract); }
//Ici, les options sont les meme que ce soit sur un Hotspot que sur un objet, j'ai donc groupé les deux, j'ai mis les phrases texte comme me l'a expliqué Asraroth
if((GetLocationType(mouse.x, mouse.y)==eLocationHotspot)||(GetLocationType(mouse.x, mouse.y)==eLocationObject)){ mouse.DisableMode(eModeTalkto);
// je commence par desactiver le mode qui me sert pas
if (mouse.Mode==eModeLookat){ String s = "Regarder "; s = s.Append(Game.GetLocationName(mouse.x, mouse.y)); Label1.Text = s;} if (mouse.Mode==eModeInteract){ String s = "Prendre"; s = s.Append(Game.GetLocationName(mouse.x, mouse.y)); Label1.Text = s;}
if (mouse.Mode==eModeWalkto){ mouse.Mode = eModeLookat;} mouse.DisableMode(eModeWalkto);
//Alors ici, j'ai demande que le curseur passe en mode lookat uniquement si le curseur est en mode Walk, ceci permet une fois sur l'objet de pouvoir acceder aux autres modes, sauf le mode marche et Talk qui me servent pas, si je laisse le mode Walk, au fait le curseur Walk s'affiche un mini seconde quand je passe d'un curseur a l'autre meme chose pour les Characters
}
if(GetLocationType(mouse.x, mouse.y)==eLocationCharacter){ mouse.DisableMode(eModeInteract); if(mouse.Mode==eModeTalkto){ String s = "Parler a "; s = s.Append(Game.GetLocationName(mouse.x, mouse.y)); Label1.Text = s;} if (mouse.Mode==eModeLookat){ String s = "Regarder "; s = s.Append(Game.GetLocationName(mouse.x, mouse.y)); Label1.Text = s;} if(mouse.Mode==eModeWalkto){ mouse.Mode = eModeTalkto; mouse.DisableMode(eModeWalkto);} } } PS Merci Asraroth et Shai-la pour vos aides, j'ai appris bcp en language AGS ce soir lol... Par contre je ne comprend pas comment fonctionne le String, comment le programme sait avec ce code que le String "name" se lie a mon @Overshot@ |
|
| |
Scorpion C'est quoi la Tasse Bleue ?
Nombre de messages : 8
Date d'inscription : 31/05/2010
| Sujet: Re: Curseur choisit automatiquement son mode sur les objets Jeu 30 Sep 2010 - 20:55 | |
| Rebonsoir j'ai crié victoire trop vite, maintenant c'est mon inventaire qui ne fonctionne plus. Avec le mode souris automatique, je ne sais plus acceder aux curseurs "Regarder" et "Utiliser" une fois l'inventaire ouvert. Forcement les commandes - Code:
-
"if(GetLocationType(mouse.x, mouse.y)==eLocationNothing){ " s'appliquent sur les Gui et inventaires aussi... j'ai cherche le moyen de faire une condition inverse si l'inventaire est ouvert, mais je ne trouve pas, toutes commandes du genre "if(Ggui.visible=true){} ou If(Inventory, etc etc) sont refusée par le logiciel Avez vous une idée pour contourner le probleme ? L'ideal serait d'avoir une souris dynamique comme sur les Hotspots et objets au niveau de l'inventaire. :s Merci d'avance |
|
| |
Scorpion C'est quoi la Tasse Bleue ?
Nombre de messages : 8
Date d'inscription : 31/05/2010
| Sujet: Re: Curseur choisit automatiquement son mode sur les objets Ven 1 Oct 2010 - 16:36 | |
| Bonsoir a tous
pour infos j'ai trouve la solution.
Il me fallait juste activer une variable au moment ou l'inventaire s'affiche pour recuperer l'usage normal des curseurs, et la desactivé au moment ou je quitte l'inventaire.
Bonne soirée |
|
| |
Contenu sponsorisé
| Sujet: Re: Curseur choisit automatiquement son mode sur les objets | |
| |
|
| |
| Curseur choisit automatiquement son mode sur les objets | |
|