bonjour à tous -)
je réquisitionne une fois de plus votre aide j'ai tourné et retourné dans tous les sens le wiki du lsl je n'arrive pas au même résultat. mon problème est très simple
dans mon state_entry je fais ceci
integer CHANNEL_DIALOG = 1000;
integer CHANNEL_SUBDIALOG = 1002;
{
llListen(CHANNEL_DIALOG, "", llGetOwner(), "");
llListen(CHANNEL_SUBDIALOG, "", llGetOwner(), "");
llListen(0, "", llGetOwner(), "");
}
je dois en effet écouter le channel dialog lorsque j'affiche un dialog à l'utilisateur et le channel 0 car il peut taper des commandes pour diriger mon objet.
ensuite il y a mon event
listen(integer channel, string name, key id, string message)
{
if (channel == CHANNEL_DIALOG)
{
// analyse du retour
}
if (channel == CHANNEL_SUBDIALOG)
{
// analyse du retour
}
if (channel == 0)
{
// analyse de la commande
}
llOwnerSay((string)channel + "#" + (string)message);
}
Et la surprise, le llOwnerSay me retourne toujours le CHANNEL_SUBDIALOG ! Même si j'ai tapé un mot dans le chat (0) il me retourne bien ce mot dans message, mais channel correspond toujours au CHANNEL_SUBDIALOG.
Est-ce que je fais qqch de faux ??? J'ai regardé les nombreux exemple pour écouter plusieurs channel à la fois et il me semble que je ne l'utilise pas faux. J'ai essayé de jouer un peu avec llListenControl en activant le bon channel au bon moment mais rien n'y fait, ça ne fonctionne pas!
Pour faire de la simple communication sur un channel ça fonctionne très bien mais dès que je dois faire des boîtes de dialogues avec sous-menu etc. je me retrouve dans ce genre de cas :/
Si qqn peut m'aider ça serait vraiment génial, et peut-être que ça en débloquera d'autres.
P.s. s'il y a des erreurs de syntaxe inutile de les préciser c'est un code d'exemple pour montrer juste ce que je fais.
Merci de m'avoir lu