llDialog - Ouverture automatique...

Répondre
Partager Rechercher
Bonjour a tous

Voila j'ai crée un simple hud avec plusieurs menus, mai je n'arrive pas a faire que lorsque je clic sur un bouton du menu, une autre fenêtre avec le menu suivant apparaisse, ce qui m'oblige a recliquer sur le hud pour ouvrir ce menu suivant...

j'utilise un menu pour les etats, et un menu par etat...

J'espere que vous voyez de quoi je parle ^^

Merci d'avance
L'as-tu combiné avec llListen pour que le script entende ta réponse (sousmenu1,sousmenu2...) ?
oui biensur, le menu fonctionne bien, mais pour passer d'un menu au sous menu je doit recliquer le hud, en fait impossible de lancer llDialog en state entry, mais en touch start oui... *gratt grattt* lol


Merci de ta rapidité en tout cas, sympa
Humm, merci Ghislain mais ce n'est pas encore ca

Pour résumer, imaginons que je traverse un prim avec llVolumDetect, est ce possible qu'en traversant ce prim le menu s'ouvre de lui même... je m'égare peut être lol

Mais en tout cas, le truc serait que lorsque je clique sur un bouton de ce menu, le script passe a un autre état, et j'aimerais que le menu s'active en state entry et non en touch start... ce qui n'as pas l'air de marcher...

Merci d'avance
En gros, tu recherche la structure suivante :

Code PHP:

list MENU_MAIN = ["Bouton""Bouton""Bouton""Options..."]; // Ton menu principale
 
default { 
    
state_entry() 
    { 
        
llListen(CHANNEL""NULL_KEY""); // listen for dialog answers (from multiple users) 
        
llDialog(llDetectedKey(0), "What do you want to do?"MENU_MAINCHANNEL); // present dialog
    
}
 
    
listen(integer channelstring namekey idstring message
    { 
        
string response_string
listen(integer channelstring namekey idstring message
 

        
// toute ta réponse a chaque bouton...

Vois aussi avec l'appel d'état :
Code PHP:

 
default
{
    
touch_start(integer a)
    {
        
state hello;
    }
}

state hello
{
    
state_entry()
    {
        
llOwnerSay("Hello");
        
state default;
    }
    
state_exit()
    {
        
llOwnerSay("Goodbye");
    }

Ghis.
Merci Ghislain! tu m'as mis sur la bonne voie, 3 heures pour comprendre comment inclure mon menu mais j'ai enfin réussi!

Une looooongue recherche chez notre ami google et j'ai trouvé ca...
Citation :
integer CHANNEL = 42;
list MENU_MAIN = ["Sit", "Stand", "Fly", "Cheat", "Options..."];


list MENU_OPTIONS = ["Cherry", "Blueberry", "Vinegar", "Slime", "Chips", "Salad", "...Back"];


default {

state_entry() {
llListen(CHANNEL, "", llGetOwner(), "");
}
touch_start(integer total_number)
{
llDialog(llDetectedKey(0), "What do you want to do?", MENU_MAIN, CHANNEL);
}

listen(integer channel, string name, key id, string message)
{


if (llListFindList(MENU_MAIN + MENU_OPTIONS, [message]) != -1)


{
llSay(0, name + " picked the option '" + message + "'.");


if (message == "Options...")
llDialog(id, "Pick an option!", MENU_OPTIONS, CHANNEL);


else if (message == "...Back")
llDialog(id, "What do you want to do?", MENU_MAIN, CHANNEL);


else if (message == "Sit")
llSay(0, "This is where stuff would happen if this wasn't just an example");
}

else
llSay(0, name + " picked invalid option '" + llToLower(message) + "'.");
}
}
Le bonheur!
Répondre

Connectés sur ce fil

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