Search the Community
Showing results for tags 'touch'.
-
trying to make a llListen animation script work, help?
WickedAndWild posted a topic in LSL Scripting
so im trying to get a llSay from the same wearable object in a differant script that triggers on touch from someone else to register with this script to trigger an animation on me (owner), and i cant figure out what im doing wrong, any help is appreciated, or even if someones willing to fix the mistake would be even better string productName = "Product Name"; integer channel = 9; default { changed(integer change) { if (change & (CHANGED_OWNER | CHANGED_INVENTORY)) llResetScript(); } state_entry() { llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION); } run_time_permissions(integer perm) { if(PERMISSION_TRIGGER_ANIMATION & perm) { llListen( channel, productName, NULL_KEY, "" ); } } listen(integer chan, string name, key id, string msg) { list detail = llGetObjectDetails(id,[OBJECT_OWNER]); if(llList2Key(detail,0) != llGetOwner()) return; { if( msg == "Anim") { llStartAnimation("Anim1"); llSetTimerEvent(0.3); } else { llStopAnimation("Anim1"); } } } timer() { llSetTimerEvent(0.0); llStopAnimation("Anim1"); } } -
I'm having a brain fart on this one.... I'm sure it's just obvious, but I'm tired and just can't see where I made the mistake. I'm back to SL after about a 10 year hiatus, and trying to pick up the scripting and such again with builds. Help please. Trying to make a simple check for group > if in group allow touch to turn object transparent on/off, if not in group doesn't allow touch. key kGroup = llList2Key(llGetObjectDetails(llGetKey(),[OBJECT_GROUP]),0); default { touch_start(integer total_number) { llSetAlpha(0.0, ALL_SIDES); state texture; } if ( ( kGroup != NULL_KEY) && (llSameGroup(llDetectedKey(0)) ) { Dialog(llDetectedKey(0), MENU1); } } state texture { touch_start(integer total_number) { llSetAlpha(1.0, ALL_SIDES); state default; } if ( ( kGroup != NULL_KEY) && (llSameGroup(llDetectedKey(0)) ) { Dialog(llDetectedKey(0), MENU1); } }
-
Hello! I am trying to figure out how to make a Script that, when a single prim is touched, it will publicly say something and includes the person name who touched it. Example: Avatar touches prim. Prim emits publicly, "Johndoe touced the box" Thanks in Advance!
-
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); } } } }
-
For some reason, now when I click "Touch" on tip jars nothing happens. No matter where I am at. They are not working for me in any location I go to but they use to work before. I'm not sure what the problem is. Did I turn something off or something? I've even tried uninstalling the viewer and reinstalling. I'm using firestorm viewer and I tried switching to the regular viewer and it's not working for that either. Any ideas?
-
Hello! Help please create a script of a police siren. So far I have managed to create such a script, but for some reason it does not work. please tell me where did i make a mistake? It should turn on / off by click and blink blue / red lights. the sound is excellent, but there is a problem with the light. And when i turn it off, it gives an error : llSetPrimitiveParams error running rule #2 (PRIM_POINT_LIGHT): arg #2 is missing. Thanks for any help! //* script_starts_here // integer run; default { touch_start(integer total_number) { if(llDetectedKey(0)==llGetOwner()) { if(run) { run = FALSE; llStopSound(); llSetLinkPrimitiveParamsFast(llGetLinkNumber(),[PRIM_GLOW,ALL_SIDES,llFrand(0.10),PRIM_POINT_LIGHT,FALSE ]); } else { run = TRUE; llLoopSound("Siren", 1.0); { llSetTimerEvent(0.01); } { llSetLinkPrimitiveParamsFast(llGetLinkNumber(),[PRIM_GLOW,ALL_SIDES,llFrand(0.10),PRIM_POINT_LIGHT,TRUE, <1.0,0.0,0.0> // START COLOR ,1.0 // START INTENSITTY ,10.0 // START RADIUS ,0.2 // START FALLOFF ]); llSleep(llFrand(0.3)); llSetLinkPrimitiveParamsFast(llGetLinkNumber(),[PRIM_GLOW,ALL_SIDES,0.0,PRIM_POINT_LIGHT,TRUE, <0.0,0.0,1.0> // END COLOR ,1.0 // END INTENSITTY ,10.0 // END RADIUS ,0.2 // END FALLOFF ]); llSleep(llFrand(0.3)); } } } } } //* script_ends_here
-
Why isn't the touch script working? Please, I need help from a scripter ASAP. Here's the snippet: integer setting; float wait; float rand; default { state_entry() { @blink; llSetText((string)setting, <1, 1, 1>, 1); if(setting == 0) { llOffsetTexture(0, 0.2, -1); llOffsetTexture(0, 0.4, -1); wait = 0; rand = llFrand(0.2) + 0.1; while(wait < rand) { wait = wait + 0.25; llOffsetTexture(0, 0.4, -1); } llOffsetTexture(0, 0.2, -1); llOffsetTexture(0, 0, -1); wait = 0; rand = llFrand(8.0); while(wait < rand) { wait = wait + 0.25; llOffsetTexture(0, 0, -1); } } if(setting == 1) { llOffsetTexture(0, 0, -1); } if(setting == 2) { llOffsetTexture(0, 0.4, -1); } if(setting == 3) { llOffsetTexture(0, -0.1, -1); } if(setting == 4) { llOffsetTexture(0, 0.2, -1); } jump blink; } touch(integer total_number) { if(setting == 4) { setting = 0; } else { setting = setting + 1; } llOwnerSay((string)setting); } }
- 4 replies
-
- touch script
- scripting help
-
(and 3 more)
Tagged with:
-
Hi fellow scripters and builders! I'm working on a control HUD to one of my upcoming projects, and I've kind of hit a dead end thanks to my insufficient trigonometry. What I need is the following: I've got a face on the HUD. It's middle point represents a pivot. The HUD wearer can click the face, and I need to be able to get the angle (calculated from the "upwards" Z axis) from that. The click provides coordinates in the form of a vector <u,v,0> where U is the horizontal coord, V is the vertical coord, and they both are a range from 0.0 to 1.0 - using function llDetectedTouchUV() I'm attaching a visualization of what I have in mind. I'm sure this is a trivial problem, but for someone who had long forgotten everything about trigonometry, it's a total blocker. Thank you to whoever will be able to help me out! ♥
-
Hey all! i'm in need of some assistance. So i've built a Mesh "Musical Impressions" wheel for a Karaoke scenario in SL, and what i'm looking for is a script that can rotate two separate wheels on touch, that will then slowly come to a stop after a random amount of seconds between 1 and maybe 10. I'm not a scripter and so don't have the first clue about how to do this. I'll link a picture to give an idea of what it looks like. There is an outer wheel and an inner wheel, that as i said, need to rotate in opposite directions. If anyone can help it would be greatly appreciated
-
Hello, I am Tomix, and I am new to scripting LSL. I was wondering how I would be able to create a touch limit on an Object. The Limit being one, I already have the object playing a sound and increasing a count by one per click, sort of like signing a guestbook. vector color = <0.5, 1.0, 1.0>; string default_text = "//default_text// \n "; string text; string sound1 = "sound1"; //uuid or name of item in inventory string sound = "sound"; //uuid or name of item in inventory integer count=0; default { state_entry() { text = default_text; llSetText(text, color, 1.5); llTargetOmega(<0,0,.2>,PI,1.0); } touch_start(integer total_num) { llTriggerSound(sound1, 2.0); llTriggerSound(sound, 2.0); } touch_end(integer number) { count = count + 1; text = (string)count + "//new_text// \n"; llSetText(text, color, 1.5); } }