string offer_anim = "offerrose"; string child_rose = "BlueRose"; integer offering = 0; // Link Commands integer LINK_MENU_DISPLAY = 300; integer LINK_MENU_RETURN = 320; integer LINK_MENU_TIMEOUT = 330; DisplayMenu(key id) { string menuDescripter = "rosemenu"; string menuNavigate = "FALSE"; string menuText = "Your choice?"; string menuButtons = "Offer"; // The buttons, each button separated by a '~'. llMessageLinked(LINK_THIS, LINK_MENU_DISPLAY, menuDescripter+"|"+menuNavigate+"|"+menuText+"|"+ menuButtons, id); } default { state_entry() { llSetAlpha(0, ALL_SIDES); key av = llGetOwner(); llRequestPermissions(av, PERMISSION_TRIGGER_ANIMATION | PERMISSION_ATTACH); DisplayMenu(av); } on_rez(integer start_param) { llResetScript(); } touch_end(integer total_number) { if (offering == 1) { llSetAlpha(0, ALL_SIDES); llStopAnimation(offer_anim); llGiveInventory(llDetectedKey(0), child_rose); offering = 0; integer perm = llGetPermissions(); if(perm & PERMISSION_ATTACH) { llDetachFromAvatar(); } } } link_message(integer intSenderNum, integer num, string message, key id) { if (num == LINK_MENU_RETURN) { list returnMenu = llParseString2List(message, ["|"], []); string menuDescriptor = llList2String(returnMenu,0); if (menuDescriptor == "rosemenu") { string item = llList2String(returnMenu,1); if (item == "Offer") { integer perm = llGetPermissions(); if(PERMISSION_TRIGGER_ANIMATION & perm) { llStartAnimation(offer_anim); llSleep(1.0); llSetAlpha(1, ALL_SIDES); llSleep(1.0); offering = 1; } } } } else if (num == LINK_MENU_TIMEOUT) { if (message == "rosemenu") { key av = llGetOwner(); DisplayMenu(av); } } } }