Textbox par les menus

Répondre
Partager Rechercher
Bonjour, alors je sait, je sent que cela existe parce que je le vois plein de fois, comme pour rentrer des utilisateurs autorisé dans un orb
Mais la , cela fait trois jours que je suis dessus, et je commence a avoir mal à la tète
en reprenant un exemple sur "les communications" de the best
je peut expliquer mon problème
quand je demande à rentrer le nom d'un utilisateur par TextBox, elle ne reste que 1 seconde, et en vérifiant (la présence de "llInstantMesage") le message reste celui de la touche précédente , c'est comme si il n'écoutais , voir le prenais pas en compte ma box ?


Code:
integer iEcoute;
integer iCanal = -124578;
integer iInhibe = FALSE;
float fTimeOut = 30.0;
key kAva;
list MAIN_MENU = ["Fin","Couleur","Alpha"];
list COLOR_MENU = ["Retour","Rouge","Vert","Bleu","Box"];
list ALPHA_MENU = ["Retour","20%","40%","60%","80%","100%"];
list lColor = [<1.0,.0,.0>,<.0,1.0,.0>,<.0,.0,1.0>];
set_menu(key id, string texte, list menu)
{
    iInhibe = TRUE;
    kAva = id;
    iEcoute = llListen(iCanal, "", kAva, "");
    llSetTimerEvent(fTimeOut);
    llDialog(kAva, texte, menu, iCanal);
}
reset_menu()
{
    llSetTimerEvent(.0);
    llListenRemove(iCanal);
    iInhibe = FALSE;
}
default
{
    touch(integer total_number)
    {
        key id = llDetectedKey(0);
        if(iInhibe && id != kAva)
        llInstantMessage(id, "Désolé mais le menu est déjà utilisé...");
        else
        set_menu(id, "Choisissez une option", MAIN_MENU);
    }
    listen(integer channel, string name, key id, string message)
    {
        reset_menu();
        if(message == "Retour")
        set_menu(id, "Choisissez une option", MAIN_MENU);
        else if(~llListFindList(MAIN_MENU, [message]))
        {
            if(message == "Couleur")
            set_menu(id, "Choisissez une couleur", COLOR_MENU);
            else if(message == "Alpha")
            set_menu(id, "Choisissez une transparence", ALPHA_MENU);
        } 
        else if(~llListFindList(COLOR_MENU, [message]))
        {
            if(message=="Box")
            llTextBox(id, "fill in the name", channel); // la textBox apparait 1 seconde, pas le temps de rentrer une information
            llInstantMessage(id, "Vous avez choisi l'option " + message); // le message est "Box" bien evidement 
            set_menu(id, "Choisissez une option", MAIN_MENU);
        } 
        else if(~llListFindList(ALPHA_MENU, [message]))
        {
            llSetAlpha(((float)llList2String(ALPHA_MENU,
            llListFindList (ALPHA_MENU, [message])) / 100.0), ALL_SIDES);
            set_menu(id, "Choisissez une option", MAIN_MENU);
        }
    }
    timer()
    {
        reset_menu();
        llInstantMessage(kAva, "Délai écoulé, désolé...");
    }
}
Merci pour tout conseils , j'ai la tête comme un soupière vide ^^

Princess Venusia

Dernière modification par Princess Venusia ; 27/06/2023 à 17h09.
hello, bien que n' étant pas pro, il m' a fallu 5 sec pour trouver ton prob de textbox fugace, mais comme tout le script est un peu boiteux, tu devrais mettre le vrai....sans vouloir te faire de la peine, tous les scripts que tu as l' impression d' inventer, l' ont déjà été ya un moment...tu ne perdras pas des millions en le postant ici....et on saurait exactement comment corriger....
Comme tu es le seul a me regarder, ^^
et j'imagine bien que tout les scripts on déjà été sous d'autre forme
bon, j'ai fait quelques modifications, en cherchant, donc ce qui est après // c'est des tests, de la même manière j'ai des retours, toujours pour savoir ce qu'il se passe
Merci tout de meme

Venusia

Code:
integer iEcoute; integer iCanal = -124578; integer iInhibe = FALSE; float fTimeOut = 30.0; key kAva; list MAIN_MENU = ["Fin","Couleur","Alpha"]; list COLOR_MENU = ["Retour","Rouge","Vert","Bleu","Box"]; list ALPHA_MENU = ["Retour","20%","40%","60%","80%","100%"]; list lColor = [<1.0,.0,.0>,<.0,1.0,.0>,<.0,.0,1.0>]; set_menu(key id, string texte, list menu) { iInhibe = TRUE; kAva = id; iEcoute = llListen(iCanal, "", kAva, ""); llSetTimerEvent(fTimeOut); llDialog(kAva, texte, menu, iCanal); } reset_menu() { llSetTimerEvent(.0); llListenRemove(iCanal); iInhibe = FALSE; } default { touch(integer total_number) { key id = llDetectedKey(0); if(iInhibe && id != kAva) llInstantMessage(id, "Désolé mais le menu est déjà utilisé..."); else set_menu(id, "Choisissez une option", MAIN_MENU); } listen(integer channel, string name, key id, string message) { reset_menu(); if(message == "Retour") set_menu(id, "Choisissez une option", MAIN_MENU); else if(~llListFindList(MAIN_MENU, [message])) { if(message == "Couleur") set_menu(id, "Choisissez une couleur", COLOR_MENU); else if(message == "Alpha") set_menu(id, "Choisissez une transparence", ALPHA_MENU); } else if(~llListFindList(COLOR_MENU, [message])) { if(message=="Box") llTextBox(id, "fill in the name", channel); // la textBox apparait 1 seconde, pas le temps de rentrer une information llInstantMessage(id, "Vous avez choisi l'option " + message); // le message est "Box" bien evidement set_menu(id, "Choisissez une option", MAIN_MENU); } else if(~llListFindList(ALPHA_MENU, [message])) { llSetAlpha(((float)llList2String(ALPHA_MENU, llListFindList (ALPHA_MENU, [message])) / 100.0), ALL_SIDES); set_menu(id, "Choisissez une option", MAIN_MENU); } } timer() { reset_menu(); llInstantMessage(kAva, "Délai écoulé, désolé..."); } }

Dernière modification par Princess Venusia ; 11/07/2023 à 07h56.
piouf, dis moi que t 'as essayé ce script et que ça donne qlq chose ?? parce que là, il est encore plus boiteux que le 1er....c 'est presque aussi confus que du ChatGPT.....il y a des trucs inutiles (par ex llListenRemove(mCanal)...ton integer inhibe est inutile aussi...) et des trucs qui ne peuvent pas marcher....genre le fait du sit....ne déclenche pas des détections....donc, tous les llDetectedVel, llDetectedName etc....ne peuvent pas marcher....bref....si j' ai compris, quand l' owner se sit, il reçoit un menu permettant de rentrer qlq un dans une liste d' accès...si qlq un d' autre s' assoit, on verifie qu ' il est dans la liste, sinon il dégage, aurais-je compris ??
Citation :
Publié par MenthalOH
piouf, dis moi que t 'as essayé ce script et que ça donne qlq chose ?? parce que là, il est encore plus boiteux que le 1er....c 'est presque aussi confus que du ChatGPT.....il y a des trucs inutiles (par ex llListenRemove(mCanal)...ton integer inhibe est inutile aussi...) et des trucs qui ne peuvent pas marcher....genre le fait du sit....ne déclenche pas des détections....donc, tous les llDetectedVel, llDetectedName etc....ne peuvent pas marcher....bref....si j' ai compris, quand l' owner se sit, il reçoit un menu permettant de rentrer qlq un dans une liste d' accès...si qlq un d' autre s' assoit, on verifie qu ' il est dans la liste, sinon il dégage, aurais-je compris ??
Alors oui le script marche, le owner peut s'assoir, et qi quelqu'un d'autre s'assoie détecté par le changement d'attachement si il est sur la liste ok, autrement il ne peut pas s'assoir, d'où la simulation du sit, il est eject immédiatement ou plutôt ca refuse qu'il s'assoie, ensuite hors les menus, mon script fonctionne si je rajoute par le chat add name ou remove name (c'est pas celui ci modifié) et la aussi ca marche, j'aurais voulu avoir cette possibilité par menu plutôt que de rajouté /1 add machin, ou le canal 1 est très prêt du 0 et détecté par mon traducteur qui le traduit dans le chat général, et aussi, mais c'est une autre histoire par un scan sur 10m qui me donnerais le choix des avatars présent
et j'ai prévenu qu'il y a des choses que j'ai essayé pendant trois jour, dont le fait de faire des actions qui serais appeler par le menu add, et le menu remove et effectuées dans ses boucles d'où certainement des bout qui restent de mes essais
ha et non, le owner s'assoit oki, ensuite le menu est appeler par un chat en - quelque chose mais j'ai fait une gesture déclenchée par "ctrl X" pour ca

Dernière modification par Princess Venusia ; 05/07/2023 à 08h38.
Une reponse ? et puis ...
Juste une petite réponse pour suivre et finir ce post (merci au modérateur de le fermé, puisque de toute façon ca n'avance pas )
Mental Ho me dit qu'il lui fallu trente seconde pour savoir pourquoi cela ne marchais pas, pourtant depuis il ne me donne pas la solution, sur un script que j'ai copié direct de best Momo, il remet en doute son fonctionnement
alors le script fonctionne, mais j'ai toujours le problème ma dialog box ne fonctionne pas , elle revient a avant ,
mais je suis passée a autre chose,
et je vous laisse entre spécialistes , corrigé vous même le script de the best
et j'ai compris une chose, c'est qu'il ne faut rien demandé ici
merci et au revoir

Princess Venusia
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés