Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- key owner;
- string originalName;
- list avatars = [];
- string firstName = "";
- string secondName = "";
- string selectedAction1st = "";
- string selectedAction2nd = "";
- integer listenHandle1;
- integer listenHandle2;
- integer listenHandle3;
- integer listenHandle4;
- list actions1st = ["hugs", "cuddles", "smiles at", "kisses", "waves to", "winks at", "slaps", "high-fives", "glances at", "whispers to", "farts on"];
- list actions2nd = ["tightly", "hopelessly" , "firmly", "lovingly", "gently", "playfully", "warmly", "shyly", "mischievously", "passionately", "softly", "on the butt"];
- default
- {
- state_entry()
- {
- owner = llGetOwner();
- originalName = llGetObjectName();
- }
- touch_start(integer total_number)
- {
- if(llDetectedKey(0) == owner)
- {
- avatars = []; // Clear avatars list
- llListenRemove(listenHandle1);
- llSensor("", NULL_KEY, AGENT, 10.0, PI);
- }
- }
- sensor(integer num_detected)
- {
- avatars = [];
- integer i;
- integer ownerFound = FALSE; // Flag to track if owner is in the detected list
- for (i = 0; i < num_detected; i++)
- {
- avatars += [llDetectedName(i), llDetectedKey(i)];
- if (llDetectedKey(i) == owner)
- {
- ownerFound = TRUE;
- }
- }
- // Ensure the owner is always included
- if (!ownerFound)
- {
- avatars += [llKey2Name(owner), owner];
- }
- list avatarNames = llList2ListStrided(avatars, 0, -1, 2);
- listenHandle1 = llListen(-12345678, "", owner, "");
- llDialog(owner, "Choose an avatar:", avatarNames, -12345678);
- }
- listen(integer channel, string name, key id, string message)
- {
- if(id == owner && channel == -12345678) // first menu
- {
- firstName = message;
- llListenRemove(listenHandle1); // Close the first listener
- // Open Action 1st dialog
- listenHandle2 = llListen(-12345679, "", owner, "");
- llDialog(owner, "Choose an action:", actions1st, -12345679);
- }
- else if(id == owner && channel == -12345679) // Action 1st menu
- {
- selectedAction1st = message;
- llListenRemove(listenHandle2); // Close the second listener
- // Open Second Avatar dialog
- list secondAvatarNames = llList2ListStrided(avatars, 0, -1, 2);
- listenHandle3 = llListen(-12345680, "", owner, "");
- llDialog(owner, "Choose a second avatar:", secondAvatarNames, -12345680);
- }
- else if(id == owner && channel == -12345680) // second menu
- {
- secondName = message;
- llListenRemove(listenHandle3); // Close the third listener
- // Open Action 2nd dialog
- listenHandle4 = llListen(-12345681, "", owner, "");
- llDialog(owner, "How?", actions2nd, -12345681);
- }
- else if(id == owner && channel == -12345681) // Action 2nd menu
- {
- selectedAction2nd = message;
- string msg = selectedAction1st + " " + secondName + " " + selectedAction2nd;
- llSetObjectName(firstName);
- llSay(0, msg);
- llSetObjectName(originalName);
- llListenRemove(listenHandle4);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement