Jump to content

Search the Community

Showing results for tags 'dialog'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • People Forum
    • Your Avatar
    • Make Friends
    • Lifestyles and Relationships
    • Role Play
    • General Discussion Forum
    • Forums Feedback
    • Missed Connections
    • Second Life Education
  • Places and Events Forum
    • Favorite Destinations
    • Upcoming Events and Activities
    • Games in Second Life
  • Official Contests, Events & Challenges
    • Challenges
    • Leap Into Love Snapshot Contest
  • Creation Forum
    • Fashion
    • Art, Music and Photography
    • Animation Forum
    • Bakes on Mesh
    • Environmental Enhancement Project
    • Machinima Forum
    • Building and Texturing Forum
    • Mesh
    • LSL Scripting
    • LSL Library
    • Experience Tools Forum
    • Sansar for Second Life Residents
  • Technology Forum
    • Second Life Server
    • Second Life Viewer
    • Second Life Web
    • General Second Life Tech Discussion
  • Commerce Forum
    • Merchants
    • Inworld Employment
    • Wanted
  • Land Forum
    • General Discussion
    • Mainland
    • Linden Homes
    • Regions for Sale: Full Private Island
    • Region for Rent: Full Private Island
    • Regions for Sale: Homesteads
    • Region Rentals: Homestead
    • Parcels for Sale: Mainland
    • Parcels for Rent: Mainland
    • Wanted: Full Private Island
    • Wanted: Homesteads
    • Wanted: Mainland
  • International Forum
    • Deutsches Forum
    • Foro en español
    • Forum in italiano
    • Forum français
    • 日本語フォーラム
    • 한국어 포럼
    • Fórum em português
    • Forum polskie
    • المنتدى العربي
    • Türkçe Forum
    • Форум по-русски
  • Adult Content Forum
    • Highlight Upcoming Events
    • General Discussion
    • General Announcements
  • Answers
    • Abuse and Griefing
    • Account
    • Avatar
    • Creation
    • Inventory
    • Getting Started
    • Controls
    • Land
    • Linden Dollars (L$)
    • Shopping
    • Technical
    • Viewers
    • Everything Else
    • International Answers

Blogs

  • Commerce
  • Featured News
  • Inworld
  • Tools and Technology
  • Tips and Tricks
  • Land
  • Community News

Categories

  • English
  • Deutsch
  • Français
  • Español
  • Português
  • 日本語
  • Italiano
  • Pусский
  • Türkçe

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 8 results

  1. I have an multi give object dialog menu. Menu recognize names in contents of prim and convert names to a button The problem is if the names are too long I get an 24 character error How can I shorten names on button but still give item when recognize full name to give item on the button? HERE IS THE SCRIPT list object_list; list object_list2; key user = NULL_KEY; composelist() { integer currentobject = 0; integer totalobjects = llGetInventoryNumber(INVENTORY_OBJECT); if(totalobjects > 0 & totalobjects <= 12) { object_list = []; do { object_list = object_list + llGetInventoryName(INVENTORY_OBJECT, currentobject); currentobject++; } while (currentobject > 0 & currentobject < totalobjects); } if(totalobjects > 12 & totalobjects <= 22) { object_list = ["Next Page"]; do { object_list = object_list + llGetInventoryName(INVENTORY_OBJECT, currentobject); currentobject++; } while (currentobject > 0 & currentobject < 11); object_list2 = ["Last Page"]; do { object_list2 = object_list2 + llGetInventoryName(INVENTORY_OBJECT, currentobject); currentobject++; } while (currentobject >= 11 & currentobject < totalobjects); } if(totalobjects > 22) { llWhisper(0, "You may only have a maximimum of 22 Objects. Please remove any extra ones."); } if(totalobjects == 0) { llWhisper(0, "Please add up to 22 Objects to give away. They should be Copy/Transfer."); } } //The Menu integer menu_handler; integer menu_channel; menu(key user,string title,list object_list) { menu_channel = (integer)(llFrand(99999.0) * -1); //random channel menu_handler = llListen(menu_channel,"","",""); llDialog(user,title,object_list,menu_channel); llSetTimerEvent(30.0); //menu channel open for 30 seconds } default { state_entry() { composelist(); //make list from inventory objects } touch_start(integer total_number) { user = llDetectedKey(0); if (user == llGetOwner()) { menu(user,"\n\nPlease select one below.",object_list); } else { llInstantMessage(user,"These items are for the owner only, sorry."); } } listen(integer channel,string name,key id,string message) { if (channel == menu_channel) { if(message == "Next Page") { menu(user,"\n\nPlease select one below.",object_list2); } else if(message == "Last Page") { menu(user,"\n\nPlease select one below.",object_list); } else { llGiveInventory(user,message); //Give Object llSetTimerEvent(0.0); llListenRemove(menu_handler); } } } timer() //Close the Menu Listen or we'll get laggy { llSetTimerEvent(0.0); llListenRemove(menu_handler); } changed(integer change) { if (change & CHANGED_INVENTORY) //inventory has changed { llSleep(0.5); composelist(); //rebuild the list } } }
  2. Hi I found a really great full perm freebie animation/pose HUD script on the mp by Vlad Blackburn. Since most pose names are longer than 12 characters, I'm trying to make it so that the buttons can be numbers and the name of the poses appear as a list above the buttons. I've been working off a script example provided in the below thread. https://community.secondlife.com/forums/topic/38305-dialog-choices-from-numbered-buttons/ https://community.secondlife.com/forums/topic/432512-recipe-dialog-menu/ I'm having a lot of trouble but I know my approach is way off - I've just been trying to copy & paste bits from one script into another. Can anyone help point me in the right direction or is this too much for a noob and I should just go into the Wanted section? 😔 Here's the original animation HUD script: float timeout = 60.0; key owner; list animation_names; list animation_buttons; integer animations_count; string animation; integer listener; integer page; GetAnimations () { animation_names = []; animation_buttons = []; animations_count = llGetInventoryNumber (INVENTORY_ANIMATION); integer index = 0; while (index < animations_count) { string name = llGetInventoryName (INVENTORY_ANIMATION, index++); animation_buttons += llGetSubString (name, 0, 23); animation_names += name; } } Menu () { if (animations_count) { string text = "\n" + llList2String (["Currently playing \"" + animation + "\"\n\n", "" ], animation == "") + "Select an animation:"; list buttons; integer start = 0; integer end = ~-animations_count; if (animations_count > 9) { integer pages = end / 7; if (page < 0) page = pages; else if (page > pages) page = 0; if (page == pages) start = animations_count - 7; else end = (start = page * 7) + 6; buttons = ["<<"] + llListInsertList (llList2List (animation_buttons, start, end), (list) ">>", 1); text += "\n\n(" + (string) (-~start) + " to " + (string) (-~end) + " of " + (string) animations_count + ", page " + (string) (-~page) + " of " + (string) (-~pages) + ")"; } else buttons = llList2List (animation_buttons, start, end); llDialog (owner, text, ["END", llList2String (["STOP", " "], animation == ""), " "] + buttons, StartDialog ()); } else llDialog (owner, "\nNo animations found.", ["END"], StartDialog ()); } integer StartDialog () { integer channel; listener = llListen (channel = (integer) llFrand (-1999000001.0) - 1000000, "", owner, ""); llSetTimerEvent (timeout); return channel; } EndDialog () { llSetTimerEvent (0.0); llListenRemove (listener); } StartAnimation (integer index) { StopAnimation (); llStartAnimation (animation = llList2String (animation_names, index)); } StopAnimation () { if (animation) { llStopAnimation (animation); animation = ""; } } default { state_entry () { owner = llGetOwner (); GetAnimations (); if (llGetAttached ()) llRequestPermissions (owner, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS); } attach (key id) { if (id) llRequestPermissions (id, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS); } run_time_permissions (integer permissions) { if (!(permissions & PERMISSION_TRIGGER_ANIMATION)) { llPlaySound ("d5567c52-b78d-f78f-bcb1-605701b3af24", 1.0); llOwnerSay ("You must give permission for this " + llGetObjectName () + " to animate your avatar for it to work!"); llResetScript (); } if (permissions & PERMISSION_TAKE_CONTROLS) llTakeControls (CONTROL_ML_LBUTTON, FALSE, TRUE); } changed (integer change) { if (change & CHANGED_INVENTORY) GetAnimations (); else if (change & CHANGED_OWNER) llResetScript (); } touch_end (integer count) { EndDialog (); Menu (); } listen (integer channel, string name, key id, string message) { EndDialog (); if (message != "END") { integer index; if (~(index = llListFindList (animation_buttons, (list) message))) StartAnimation (index); else if (message == "STOP") StopAnimation (); else if (message == "<<") --page; else if (message == ">>") ++page; Menu (); } } timer () { EndDialog (); llPlaySound ("d5567c52-b78d-f78f-bcb1-605701b3af24", 1.0); llDialog (owner, "\n" + llGetObjectName () + " menu timeout.", ["END"], -1); } }
  3. Hi I've been trying to set up rezzers for decor purposes so I can change to different scenes via clicking, and I've been working with this script, most of which was from the sl forum archive. The problem I'm having is that when I have more than one rezzer, touching one seems to affect the others. For example, if I had two rezzers, and I click on rezzer 1, rezzer 2 will somehow recognise that it has been touched (when it has not), and it will run the dialog menu and try and rezz out the object as well. How can I make this script work independently regardless of how many other rezzers are present? What I'm trying to do is have one rezzer for a table, another for the deck, etc. list MENU1 = []; list MENU2 = []; integer listener; integer MENU_CHANNEL = 1000; string mainMenuDialog = "\nWhich settings would you like to access?\nClick \"Close\" to close the menu.\n\nYou are here:\nMainmenu"; list mainMenuButtons = ["sub 01", "sub 02", "Close"]; string subMenu_01_Dialog = "\nClick \"Close\" to close the menu.\nClick \"-Main-\" to return to the main menu.\n\nYou are here:\nMainmenu > sub 01"; list subMenu_01_Buttons = ["action 01a", "action 01b", "Close", "-Main-"]; string subMenu_02_Dialog = "\nClick \"Close\" to close the menu.\nClick \"-Main-\" to return to the main menu.\n\nYou are here:\nMainmenu > sub 02"; list subMenu_02_Buttons = ["action 02a", "action 02b", "Close", "-Main-"]; integer dialogChannel; integer dialogHandle; Dialog(key id, list menu) { llListenRemove(listener); listener = llListen(MENU_CHANNEL, "", NULL_KEY, ""); llDialog(id, "Select one object below: ", menu, MENU_CHANNEL); } open_menu(key inputKey, string inputString, list inputList) { dialogChannel = (integer)llFrand(DEBUG_CHANNEL)*-1; dialogHandle = llListen(dialogChannel, "", inputKey, ""); llDialog(inputKey, inputString, inputList, dialogChannel); llSetTimerEvent(30.0); } close_menu() { llSetTimerEvent(0.0);// you can use 0 as well to save memory llListenRemove(dialogHandle); } default { on_rez(integer num) { llResetScript(); } touch_start(integer total_number) { integer i = 0; MENU1 = []; MENU2 = []; integer c = llGetInventoryNumber(INVENTORY_OBJECT); if (c <= 12) { for (; i < c; ++i) MENU1 += llGetInventoryName(INVENTORY_OBJECT, i); llShout(-193245,"Clean_Your_Room"); //Tell Rezzed prim to Go Away llSleep(0.5); //Give Prim A chance to go Away close_menu(); } else { for (; i < 11; ++i) MENU1 += llGetInventoryName(INVENTORY_OBJECT, i); if(c > 22) c = 22; for (; i < c; ++i) MENU2 += llGetInventoryName(INVENTORY_OBJECT, i); MENU1 += ">>"; MENU2 += "<<"; llShout(-193245,"Clean_Your_Room"); //Tell Rezzed prim to Go Away llSleep(0.5); //Give Prim A chance to go Away close_menu(); } Dialog(llDetectedKey(0), MENU1); } listen(integer channel, string name, key id, string message) { if (channel == MENU_CHANNEL) { llListenRemove(listener); if (message == ">>") { Dialog(id, MENU2); } else if (message == "<<") { Dialog(id, MENU1); } else { // todo add offsets so box sites perfect on rezzer llRezAtRoot(message, llGetPos(), ZERO_VECTOR, llGetRot(), 0); } } } }
  4. Hi everyone! Total noob here!!! I am trying to make a recipe board, which shows people different recipes (textures) depending on their choice in the menu. Now of cause there are more recipes released all the time, so I need to be able to add "unlimited" textures. That also means that I need to be able to change the main text (describing the buttons) on each page. The way my script is set up now, I run out of characters when adding new recipe names. The best way I learn is by having comments added to changes made in the script. At this point I am still figuring out how things work together and learning operators. So if I could ask questions after reviewing changes, that would be very helpful as well. https://pastebin.com/FPCeaZxg So if you are interested in helping a total noob, I would really appreciate it. I can pay a little
  5. Hi, i have a question and hopefully it is easy to fix. I does have a HUD and if i clikc on it, it will scan the people witin 10m. A Dialog menu will popup and shows me all the people. If i click on a name i would like to send the person a message in local chat and some particles to that person. Till now everything went well except the particles. I am not able to get the ID of the avatar i selected from the list, i hope i just making a stupid "beginning" mistake. Can somebody please give me tips how i can solve this. Thanks in advance! // Keknehv's Particle Script v1.2 // 1.0 -- 5/30/05 // 1.1 -- 6/17/05 // 1.2 -- 9/22/05 (Forgot PSYS_SRC_MAX_AGE) // This script may be used in anything you choose, including and not limited to commercial products. // Just copy the MakeParticles() function; it will function without any other variables in a different script // ( You can, of course, rename MakeParticles() to something else, such as StartFlames() ) // This script is basically an llParticleSystem() call with comments and formatting. Change any of the values // that are listed second to change that portion. Also, it is equipped with a touch-activated off button, // for when your particles go haywire and cause everyone to start yelling at you. // Contact Keknehv Psaltery if you have questions or comments. MakeParticles(key target) //This is the function that actually starts the particle system. { llParticleSystem([ //KPSv1.0 PSYS_PART_FLAGS , 0 //Comment out any of the following masks to deactivate them //| PSYS_PART_BOUNCE_MASK //Bounce on object's z-axis //| PSYS_PART_WIND_MASK //Particles are moved by wind | PSYS_PART_INTERP_COLOR_MASK //Colors fade from start to end | PSYS_PART_INTERP_SCALE_MASK //Scale fades from beginning to end | PSYS_PART_FOLLOW_SRC_MASK //Particles follow the emitter | PSYS_PART_FOLLOW_VELOCITY_MASK //Particles are created at the velocity of the emitter | PSYS_PART_TARGET_POS_MASK //Particles follow the target | PSYS_PART_EMISSIVE_MASK //Particles are self-lit (glow) //| PSYS_PART_TARGET_LINEAR_MASK //Undocumented--Sends particles in straight line? , PSYS_SRC_TARGET_KEY , target , //Key of the target for the particles to head towards //This one is particularly finicky, so be careful. //Choose one of these as a pattern: //PSYS_SRC_PATTERN_DROP Particles start at emitter with no velocity //PSYS_SRC_PATTERN_EXPLODE Particles explode from the emitter //PSYS_SRC_PATTERN_ANGLE Particles are emitted in a 2-D angle //PSYS_SRC_PATTERN_ANGLE_CONE Particles are emitted in a 3-D cone //PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY Particles are emitted everywhere except for a 3-D cone PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE ,PSYS_SRC_TEXTURE, "" //UUID of the desired particle texture, or inventory name ,PSYS_SRC_MAX_AGE, 5.0 //Time, in seconds, for particles to be emitted. 0 = forever ,PSYS_PART_MAX_AGE, 1.0 //Lifetime, in seconds, that a particle lasts ,PSYS_SRC_BURST_RATE, 0.02 //How long, in seconds, between each emission ,PSYS_SRC_BURST_PART_COUNT, 2 //Number of particles per emission ,PSYS_SRC_BURST_RADIUS, 2.0 //Radius of emission ,PSYS_SRC_BURST_SPEED_MIN, 5.5 //Minimum speed of an emitted particle ,PSYS_SRC_BURST_SPEED_MAX, 6.0 //Maximum speed of an emitted particle ,PSYS_SRC_ACCEL, <0.0,0.0,-0.8> //Acceleration of particles each second ,PSYS_PART_START_COLOR, <0.0,0.0,1.0> //Starting RGB color ,PSYS_PART_END_COLOR, <0.6,0.6,1.0> //Ending RGB color, if INTERP_COLOR_MASK is on ,PSYS_PART_START_ALPHA, 0.9 //Starting transparency, 1 is opaque, 0 is transparent. ,PSYS_PART_END_ALPHA, 0.0 //Ending transparency ,PSYS_PART_START_SCALE, <2.4,2.4,0.0> //Starting particle size ,PSYS_PART_END_SCALE, <1.3,2.3,0.0> //Ending particle size, if INTERP_SCALE_MASK is on ,PSYS_SRC_ANGLE_BEGIN, PI //Inner angle for ANGLE patterns ,PSYS_SRC_ANGLE_END, PI //Outer angle for ANGLE patterns ,PSYS_SRC_OMEGA, <0.0,0.0,0.0> //Rotation of ANGLE patterns, similar to llTargetOmega() ]); } integer dlgHandle = -1; integer dlgChannel = -9999; list avatarList = []; reset() { llSetTimerEvent(0.0); llListenRemove(dlgHandle); dlgHandle = -1; } default { touch_start(integer total_number) { llOwnerSay("Scanning..."); avatarList = []; // Look for any avatars within 10m. llSensor("", NULL_KEY, AGENT, 96.0, PI); } sensor(integer num_detected) { integer i; while((i < num_detected) && (i < 9)) { if (llDetectedKey(i) != llGetOwner()) { avatarList += [llDetectedName(i)]; } ++i; } if (llGetListLength(avatarList) > 0) { state dialog; } } } state dialog { state_entry() { // Set up a listener to detect button clicks. dlgHandle = llListen(dlgChannel, "", llGetOwner(), ""); // Start a new timer. llSetTimerEvent(30.0); // Add a 'Cancel' button. avatarList += ["Cancel"]; // Display the dialog. llDialog(llGetOwner(), "Please select an avatar.", avatarList, dlgChannel); } listen(integer channel, string name, key id, string message) { // The message parameter holds the caption of the // button that was clicked. Search the menu options // list for it. if ((channel == dlgChannel) && (llListFindList(avatarList, [message]) != -1)) { if (message != "Cancel") { llSay(0, llKey2Name(llGetOwner()) + " pokes " + message); MakeParticles(id); } reset(); state default; } } timer() { reset(); state default; } }
  6. JSON radio example with moded VoidSinger dialog code. Parcel radios must usually be deeded. Notecard station format is... SecretAgent = http://mp2.somafm.com:9016 Techno = http://81.88.36.42:8010 etc.... _________________________________________________ /* Xiija Resident, 2017 Json Radio example with moded VoidSinger Dialog code */ string station; string Stations; string name; string url; string NC; string TuneIn; key kQuery; integer iLine; integer len; string Curr; list gLstMnu; string txt; key id; integer chan ; integer handle; integer idx; integer ttlPG; integer currPG = 1; list uDlgBtnLst( integer vIdxPag ) { list vLstRtn; if ((gLstMnu != []) > 9) { integer vIntTtl = -~((~([] != gLstMnu)) / 9); //-- Total possible pages integer vIdxBgn = (vIdxPag = (vIntTtl + vIdxPag) % vIntTtl) * 9; //-- first menu index string vStrPag = llGetSubString( " ", 21 - vIdxPag, 21 ); //-- encode page number as spaces vLstRtn = llListInsertList( llList2List( gLstMnu, vIdxBgn, vIdxBgn + 8 ), (list)(" «" + vStrPag), vIdxBgn + 9 ) + "OFF/CLOSE" + (list)(" »" + vStrPag); } else { vLstRtn = gLstMnu + [" ", "OFF/CLOSE"," "] ; } return //-- fix the order for [L2R,T2B] and send it out llList2List( vLstRtn, -3, -1 ) + llList2List( vLstRtn, -6, -4 ) + llList2List( vLstRtn, -9, -7 ) + llList2List( vLstRtn, -12, -10 ); } init() { chan = 0x80000000 | (integer)("0x"+(string)llGetOwner()); // unique channel based on owners UUID NC = llGetInventoryName(INVENTORY_NOTECARD,0); Stations = llList2Json( JSON_OBJECT, [] ); // must declare JSON object before using. llSay(0,"Stations Loading....."); kQuery = llGetNotecardLine(NC, iLine); txt = "\n Radio Menu\nPage : " + (string) currPG + " of " + (string)ttlPG + "\n \nOff - turns off radio\nCLOSE - closes this menu\n \nCurrently listening to " + "\n " + Curr; } default { state_entry() { init(); } on_rez(integer param) { init(); } touch_start(integer total_number) { id = llDetectedKey(0); llDialog( id, txt, uDlgBtnLst( 0 ), chan ); handle = llListen(chan,"","",""); llListenControl(handle, TRUE); llSetTimerEvent(20); } dataserver(key query_id, string data) { if (query_id == kQuery) { if (data == EOF) { iLine = 0; llSay(0,"Stations Loaded"); list details = llJson2List ( Stations ); details = llList2ListStrided(details,0,-1,2); // strided list of button names from notecard gLstMnu = details; integer c = llGetListLength(gLstMnu); ttlPG = llCeil(c/9.0 ); txt = "\n Radio Menu\nPage : " + (string) currPG + " of " + (string)ttlPG + "\n \nOff - turns off radio\nCLOSE - closes this menu\n \nCurrently listening to " + "\n " + Curr; } else { if(data != "") { list extract = llParseString2List(data,[" "],["="]); name = llList2String(extract, 0); name = llGetSubString(name, 0, 23) ; // a check ..if !( name = 0 < button_text_length < 23) url = llList2String(extract, 2); if (llJsonGetValue (Stations, [name] ) == JSON_INVALID) // if not a JSON key-value pair in the JSON object, add one { Stations = llJsonSetValue (Stations, [name, "URL"], url); } } ++iLine; kQuery = llGetNotecardLine(NC, iLine); } } } listen( integer vIntChn, string vStrNom, key vKeySpk, string vStrMsg ) { if (!llSubStringIndex( vStrMsg, " " )) { integer SSI = llSubStringIndex(vStrMsg, "»"); if(SSI == 1) { ++currPG; if(currPG > ttlPG) { currPG = 1;} } else { --currPG; if(currPG < 1) { currPG = ttlPG;} } txt = "\n Radio Menu\nPage : " + (string) currPG + " of " + (string)ttlPG + "\n \nOff - turns off radio\nCLOSE - closes this menu\n \nCurrently listening to " + "\n " + Curr; llDialog( vKeySpk, txt, uDlgBtnLst( llStringLength( vStrMsg ) + llSubStringIndex( vStrMsg, "»" ) - 2 ), vIntChn ); llSetTimerEvent(20); } else if (vStrMsg == "OFF/CLOSE") { llDialog( vKeySpk, "\n \nPick an option...",["OFF","CLOSE"], vIntChn );} else if (vStrMsg == "CLOSE") { llSetTimerEvent(0.5);} else if (vStrMsg == "OFF") { llListenControl(handle, FALSE); llSetParcelMusicURL(" "); llSay(0,"Turning Radio off... " ); llSetTimerEvent(0); llMessageLinked(LINK_THIS, 0, TuneIn, ""); // for a seperate titler script perhaps? } else { Curr = vStrMsg; llSay(0,"Tuning in to... " + vStrMsg ); TuneIn = llJsonGetValue (Stations, [vStrMsg, "URL"]) ; llSetParcelMusicURL(TuneIn); idx = llListFindList( gLstMnu, (list)vStrMsg ) / 9; txt = "\n Radio Menu\nPage : " + (string) currPG + " of " + (string)ttlPG + "\n \nOff - turns off radio\nCLOSE - closes this menu\n \nCurrently listening to " + "\n " + Curr; llDialog( id, txt, uDlgBtnLst(idx ), chan ); llSetTimerEvent(20); llMessageLinked(LINK_THIS, 1, TuneIn, ""); // for a seperate titler script perhaps? } } timer() { llListenControl(handle, FALSE); llSetTimerEvent(0); } changed(integer change) { if (change & (CHANGED_REGION_START | CHANGED_OWNER | CHANGED_INVENTORY) ) { llOwnerSay("Radio Resetting..."); llResetScript(); } } }
  7. Hello, recently I bought some attachements that only react to chat commands like /1? , /1text , /1reset and so on. So, to no longer just enter those commands, I would have liked to create a dialog menu where I can choose the individual objects and then click on a button that executes the command. I have little experience in LSL, so some (better: a lot of) assistance is required. hope you can help me
  8. I am looking for a scripter to look over a dialog script. I have had a go at doing this myself but cant seem to see where the problem is. Basically the script is working for the owner & or a second toucher in the same group. But when the second toucher takes off the group tag & touches again the script gives no one the menu system making it non usable. I would like it to be able to let the owner use the dialog & anyone in the group. Obviously not at the same time I will negotiate a one off payment only. If you can help for the right price please contact me either here or in world. Thanks, Renegade Travesty.
×
×
  • Create New...