I cant script for the life of me but I have figured how to mod one to suit my needs.
The project I am working on now needs a menu script (to give food) which I have found and modded. I get the three menus to come up so I can make a choice BUT the object will no longer give me the item I chose from the menu. What have I done and how can I fix it?
I'd actually prefer for the object I choose to rez on the table in front of me instead of ending up in my inventory, is this possible with this script I have?
Below is the script I am playing with. I'd sure appreciate your help

list Menu = ["Burger", "Sandwich", "Slice of Lasagana"]; // menu Text
list Items = ["Burger", "Sandwich", "Slice of Lasagana"];// Inventory object names
list Menu2 = ["Beer", "Cup of Tea", "Island Rum", "Jack and Coke", "Ice Cold Milk", "Coffee/Milk", "Soda Water", "Corona", "Cocoa", "Glass of Champagne"]; // menu Text
list Items2 = ["Beer", "Cup of Tea", "Island Rum", "Jack and Coke", "Ice Cold Milk", "Coffee/Milk", "Soda Water", "Corona", "Cocoa", "Glass of Champagne"];// Inventory object names
list Menu3 = ["Apple Slice", "Birthday Cake", "Cheese/Fruit Plate", "Chocolate Cookies", "Choc Strawberries"]; // menu Text
list Items3 = ["Apple Slice", "Birthday Cake", "Cheese/Fruit Plate", "Chocolate Cookies", "Choc Strawberries"];// Inventory object names
integer handle;
default
{
touch_start(integer num)
{
key id = llDetectedKey(0);
handle = llListen(45, "", id, ""
;llDialog(id, "What Would You Like To Eat?", Menu, 45);
llDialog(id, "What would you like to drink?", Menu2, 45);
llDialog(id, "What would you like for desert?", Menu3, 45);
llSetTimerEvent(30);
}
listen(integer channel, string name, key id, string message)
{
llListenRemove(handle);
llSetTimerEvent(0);
integer index = llListFindList(Menu, [ message]);
if(index >= 0) llGiveInventory(id, llList2String(Items, index));
}
timer()
{
llListenRemove(handle);
llSetTimerEvent(0);
llWhisper(0, "Menu timeout."
;}
}
