Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Un truc qui bloque tout Mar 8 Fév 2022 - 15:47 | |
| Hello la compagnie !! Bon bah désolé de monopoliser le forum ces derniers jours mais décidément, je rencontre problème(s) sur problème(s)... En ce moment, donc... Ce sont les dialogues... J'ai testé le module NBD (plus moyen de le retrouver d'ailleurs...) mais cela ne me plaît pas, ça me paraît même bien trop compliqué et encombrant pour ce que je souhaite obtenir au bout du compte... Bref... J'utilise donc les fonctions dialogues basiques et après deux aprem prise de tête jsuis enfin arrivé à configurer le truc sans que ça fasse nawak... j'ai réussi à bloquer le curseur (par ailleurs invisible dans ce cas précis) pendant les choix multiples au moyen d'un mouse.setbounds (); dont je n'ai pas vraiment trop compris le paramétrage mais ouf, je peux enfin sélectionner mes dialogues, chose que je n'arrivais pas à faire à cause du Parser qui chevauchait tout et m'empêchait de choisir cesdites options. Je l'ai donc foutu en dehors de la zone histoire qu'il ne m'embête plus. Par ailleurs, existe-t-il un moyen plus "propre" de l'ignorer? Au moyen d'un "Disable" par exemple ?... Par contre, si juste avant le lancement des options de dialogues, je suis impatient et que j'appuie un peu trop rapidement (genre avec un doubleclic) sur ma souris, le jeu se bloque sur les options, sans possibilité de les choisir ensuite. Il ne reconnait même plus la touche echap qui me sert à quitter... il ne répond plus, quoi... Obligé de faire un ctrl alt suppr pour fermer le test !! Donc voilà voilà... Je souhaiterais savoir ce qui ne va pas, et évidemment comment régler ce petit désagrément ma foi fort fâcheux... Voici une capture de mon General Settings... ainsi que le code relatif aux dialogues (pompé sur le manuel en français et adapté à ma sauce) - Code:
-
function dialog_options_get_dimensions(DialogOptionsRenderingInfo *info) { // Crée une zone de dimensions 200x200 à la position (50,100) pour les options info.X = 320; info.Y = 890; info.Width = 1280; info.Height = 400; // Place l'analyseur de texte (parser) tout en bas (s'il est activé) info.ParserTextBoxX = 0; info.ParserTextBoxY = 800; info.ParserTextBoxWidth = 0; }
function dialog_options_render(DialogOptionsRenderingInfo *info) { // Remplit la zone en jaune info.Surface.Clear(0); int i = 1, ypos = 8; // Affiche toutes les options disponibles while (i <= info.DialogToRender.OptionCount) { if (info.DialogToRender.GetOptionState(i) == eOptionOn) { if (info.ActiveOptionID == i) info.Surface.DrawingColor = 65522; else info.Surface.DrawingColor = 15615; info.Surface.DrawStringWrapped(5, ypos, info.Width - 950, eFontFont0, eAlignLeft, info.DialogToRender.GetOptionText(i)); ypos += GetTextHeight(info.DialogToRender.GetOptionText(i), eFontFont0, info.Width - 950); } i++; } }
function dialog_options_get_active(DialogOptionsRenderingInfo *info) { int i = 1, ypos = 0; // Trouve l'option située où le joueur a cliqué while (i <= info.DialogToRender.OptionCount) { if (info.DialogToRender.GetOptionState(i) == eOptionOn) { ypos += GetTextHeight(info.DialogToRender.GetOptionText(i), eFontFont0, info.Width - 950); if ((mouse.y - info.Y) < ypos) { info.ActiveOptionID = i; return; } } i++; } }
function dialog_options_mouse_click(DialogOptionsRenderingInfo *info, MouseButton button) { mouse.EnableMode (eModeAller)// faites quelque chose ici si vous le voulez ! mouse.SetBounds (1920, 870, 0, 0); }
Si quelqu'un parmi vous sait où ça cloche... En vous remerciant... _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Un truc qui bloque tout Mar 8 Fév 2022 - 17:07 | |
| Si j'en crois cette entrée, il y a une option à (dé)cocher pour chaque dialogue qui détermine si l'analyseur de texte doit ou non être affiché. Difficile à dire d'où vient le problème du double-clic exactement, mais j'ai du mal à comprendre l'intérêt de ta fonction dialog_options_mouse_click : son code est exécuté lors d'un clic alors que le dialogue est affiché, mais que le curseur ne survole aucune option de dialogue. Ça veut dire que tu actives le mode eModeAller et tu restreins la zone de la souris à "rien" (=rends la souris inutilisable) uniquement si le joueur clique hors d'une option de dialogue alors que le dialogue est affiché _________________ 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 ! |
|
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Un truc qui bloque tout Mar 8 Fév 2022 - 17:41 | |
| Bon bah effectivement, Kitai, tu as encore vu très juste !... C'est bien cette fonction qui produisait ce bug, et effectivement, elle ne servait à rien. _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
Contenu sponsorisé
| Sujet: Re: Un truc qui bloque tout | |
| |
|