Ich habe folgendes vor:
Nachdem ein User mein Objekt "touched" , öffnet sich ein Dialog mit 12 verschieden Buttons. Für jeden einzelnen Button habe ich eine Funktion die ausgeführt werden soll.
Welche Funktion ausgeführt werden soll habe ich über Listen bestimmt. Allerdings möchte ich nun auch in den Funktionen selbst auf Benutzereingaben hören.
Muss ich dafür das schon bestehende listen() event nutzen? denn wenn ich in der funktion(hier getNumberForOne) ein eigenes listen() event schreibe kommt ein fehler...
CODE
Hi Everybody!
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
danke sehr :)