When a resident touches my object a dialog opens with 12 button. I wrote a function for each single button. Via a listen() event i can control which button is pressed an open the regarding function.
but in between those function i also wanna listen to user inputs via chat. do i have to use the already existing listen() event? cause if i define a new listen() event in my functions i'll get an error.
CODE
integer i;
integer spieleBisher = 0;
integer maxSpiele;
integer channelChoosing = 1; // dialog channel
list NUMBER_OF_PLAYCARDS = ["10","15","20","7","8","9","4","5","6","1","2","3"]; // the main menu
list NUMBERS = ["1","2","3"];
string playername;
getNumbersForOne()
{
llListen(100, "", NULL_KEY, ""); // listen for numbers
maxSpiele = 0;
for(i=1; i<=6; i++)
{
llSay(0,"Please choose your " +(string) i+ ". Number");
listen(integer channel, string name, key id, string message) {
if (llListFindList(NUMBERS, [message]) != -1)
llSay(100,"U chose number "+ message);
} //listen
}//for
}//getNumbersForOne
default
{
state_entry()
{
llListen(50, "", NULL_KEY, ""); // listen for dialog answers (from multiple users)
}
touch_start(integer total_number)
{
string name = llDetectedName(0);
playername = name;
llSay(0,"Hello"+ (string) playername);
llDialog(llDetectedKey(0), "How many playcards would you like to buy?", NUMBER_OF_PLAYCARDS, 50); // present dialog on click
}
listen(integer channel, string name, key id, string message)
{
if (llListFindList(NUMBERS, [message]) != -1)
llSay(0,"Sie haben die Nummer " +message);
if (llListFindList(NUMBER_OF_PLAYCARDS, [message]) != -1) // verify dialog choice
{
llSay(50, name + " wants to buy '" + message + " playcard"); // output the answer
if (message == "1")
{
getNumbersForOne();
//integer ergebnis = getNumbers(1);
//llSay(0,(string) ergebnis);
}
} else
llSay(50, name + " picked invalid option '" + llToLower(message) + "'."); // not a valid dialog choice
}//listen
}//default
thx so much. i am driving nuts....