Jump to content

Ruthven Ravenhurst

Resident
  • Posts

    491
  • Joined

  • Last visited

Everything posted by Ruthven Ravenhurst

  1. of course. as long as it is scripted to do so. most attachments with huds are scripted to listen only to objects with the same owner, to avoid lag, and from other avatars hacking the attachments. but you could certainly script it to listen to all commands on a channel, and respond only to ones coming from avatars (or their objects) who are saved in the script. RLV collars and such work kinda like that. The collar syncs and locks into a master controller. The controller then has control of the avatar wearing the collar
  2. and as a side note. if you don't want to give the sound to the user. you can use UUIDs. You can hard code them into the hud script, or as in rolig's example, pass the uuid via chat instead of the sound name (that's assuming you have full perms of the sound. I get annoyed with creators that sell things "full perm" but then actually make them no mod so you can't change the name, like an animation or sound)
  3. For things like that that I intend to only listen to the owner, I write in the script to listen only to them, and have it check on rez/attach if the current owner is the stored owner key, if not, reset. Of course it's not that simple when it's communicating from a hud, which is where I use llRegionSayTo(llGetOwner()....., and use a channel generated by the owner key, or a keyword translated to numbers (agrippan method), but I don't reduce it down to a single digit, I try to keep it =< 6 digits
  4. Ah that makes since. It would be a prim property I guess. But I figured it would just be replaced with the new sound properties the way you would replace particles, texture anims, etc which don't require the previous ones to be stopped first LOL, autocorrect on my phone replaced texture anims with texture animals
  5. I'm pretty sure it's for objects too. Caspervend has an easter egg that if you put something in the dropbox with a specfic name, it will trigger a sound loop of some crazy sound. I had the dropbox under my stairs. I knew there was an easter egg, but didn't know what it was. I had the sound off when I tried it, so I didn't know it was making noise. Then one day I had my sound on and was confused what the noise was. Thought it was my neighbor. I started camming around to figure out where it was so I could mute it, and it ended up being my own dropbox, lol
  6. That looks correct. From what I understand though, The size of the object also has to do with the volume. Also the settings in your viewer have to do with how you hear it. The setting is a difference of hearing sounds from your avatar's position or your camera's position. So if you're focused on your fountain with your camera, the sound may not change
  7. of course. take a look at the page for it here llGetNextEmail Forgive me for saying, your question seems a little vague, and wonder if there's more to the question you haven't asked?
  8. The object they receive will need to have mod perms. You will need to give them the updated script, and have them drop it in. Otherwise you will need to update the script in a new object, and give them the new object. There is a way with llRemoteLoadScriptPin, but i've never used it, and don't really know how
  9. it's because you're using llDetectedKey(0), so that will always only get the first id from the list of detected keys. that would need to be llDetectedKey(num_detected) however, instead of calling llGetObjectDetails more than once for each object, just call it once, check the creator, and if it is a match, say the description. I cleaned it up a bit below list details;key creatorid = "8fe80e88-9dee-47d6-bbe9-811c547468d4";default{ touch_start(integer total_number) { llSensor( ""," ", ( AGENT | PASSIVE | ACTIVE ), 1, PI ); } sensor(integer num_detected) { while(num_detected--) { key obj = llDetectedKey(num_detected); details = llGetObjectDetails(obj,[OBJECT_CREATOR,OBJECT_DESC]); key creator = llList2Key(details,0); string desc = llList2String(details,1); if (creator == creatorid) { llSay(0,desc); } } }}
  10. What is it you're trying to test? You can run a loop to quickly overload a script with a list. Just run the loop to add a long string to a list over and over until the stack heap occurs
  11. ah yeah. if you look up the api for tiny, it shows you how to extract the long url. also you can use the http headers from the http response to get th uuid of the server object, and use that to send an email
  12. I didn't see it register as a click either when I tested it
  13. that looks promising. I also ran across this when looking for something similar. I played with it and set it up to test, but I haven't used it for anything commercial yet http://wiki.secondlife.com/wiki/Permanent_Primitive_URL
  14. Of course. Two of the functions you could use to split the text would be either llParseString2List or llCSV2List and the to extract that first element you would want to use llList2String
  15. As mentioned above. It hid any texture with an alpha channel. So some hair would disappear, even if not the whole primary. It was also used to hide water. Now though, pulling out some of those old shoes, it'll sometimes show as solid black, or would still work. I think the times it works for me must be when I turn my sliders down in laggy areas
  16. Anything that doesn't have an alpha channel will show. Most mesh bodies seem to use alpha, but might be able to switch that off depending on the creator. the system layers will always have an alpha channel, which is why water, windows, particles, most hair textures, etc, can't be seen through invisiprim. I think though, the official viewer doesn't support it anymore, but it's been a while since I used it. Also, second life can ban a user by their IP address, but not sure how long that would take for them to respond. And any hacker knows how to get around that easily
  17. ok, now I understand better. are there other prims in the link set that you do NOT want to resize? If not try looking at llScaleByFactor along with llGetMaxScaleFactor and llGetMinScaleFactor
  18. try using llDetectedLinkNumber However, the way you have it written, it won't know if the prim has reached its maximum size, it will count up no matter which link is touched. you may need to get the link size and compare it to the max size you want for that specific prim (or global max size if they're all going to have the same max size) Maxx Deischer wrote: Hello all, I have the following code: float up = 0.01;default{ touch_start(integer total_number) { if (up < 0.49) { llSetLinkPrimitiveParams(,[PRIM_SIZE,<0.49,0.49,0.01+up>]); up = up + 0.01; } else { llOwnerSay("Full"); } }}
  19. I think llRotBetween might be the function you need, then rez the projectile at the offset*llRotBetween as well as the accel vector*llRotBetween, I'm not 100% sure though, I have a hard time with rotations myself
  20. Innula Zenovka wrote: When you use llDialog, in effect your avatar says the text on the button to the script, using the channel specified in the llDialog call. So if the user is more than 20 metres from the prim containing the llDialog script, the script won't hear the user's choice. I'm pretty sure that's not true. I think the script hears chat from its own location when coming from the dialog it issued. I've been on one side of the sim and cammed out to click a rezzer on the opposite side. it issues a dialog, and i click the command and it hears it *edit to add* Now, obviously that wouldn't work if the listening object isn't the same as the one issuing the dialog, like a hud for example *edit to also add* Yep, per the Wiki for llDialog The position where the chat is generated is where the root prim of the dialog generating object was when the dialog button was pressed. If the listener resides in the same script that created the dialog, then the dialog button is heard sim-wide.
  21. https://marketplace.secondlife.com/p/Bumper-Full-Permissions/9707783
  22. another tip is to play with the angle end and begin and use the angle patterns. Set it to something like 2.5 on begin, and 3.14 (PI) on end, and also use the flag BOUNCE_MASK. When the snow falls to the same Z level as the emitter, it will bounce upwards. getting the timing and fading right can make that bounce less noticeable Also for anyone who cares and/or didn't know. I was playing with particles and saw some peculiar behaviour with the BOUNCE_MASK. 
  23. I was thinking that too, but she said she's able to touch it when worn. I wonder, are you touching it directly, or right-clicking and choosing Touch from your inventory?
  24. ah that's an easy one. I added the bit to the script to check if it's the root being touched, and highlighted in red. Not in world to check, but should work shaniqua Sahara wrote: I found this very cool script of yours Rolig. thank you for sharing:) would you be able to modify it so that the child prims move only when the root prim is touched instead of any prim? I found a novel use for it and I'd love to use it if you can. this script is a lot of fun. float fTimer = 10.0; //how long to go the entire distanceinteger iSteps = 200; //how many steps to go from start to endvector vAxis = <1.0,0.0,0.0>; //axis to move along. <1,0,0> is x-axis, <0,1,0> is y-axis, <0,0,1> is z-axisinteger iStep = 0; //control variable, don't changeinteger k; // ON/OFF switchinteger toggle; // Reverse direction of slidelist gHome; // Starting positions of child primsdefault{ touch_start(integer num) { integer i; k = !k; if (k) { //ON for (i=2;i<=llGetNumberOfPrims();++i) { //Loop to get the starting positions of all child prims gHome += [llList2Vector(llGetLinkPrimitiveParams(i,[PRIM_POS_LOCAL]),0)]; } iStep = 0; //Set slide position at zero llSetTimerEvent((fTimer/iSteps)); llOwnerSay("on"); } else { //OFF for (i=2;i<=llGetNumberOfPrims();++i) { //Loop to reposition all child prims at their starting positions llSetLinkPrimitiveParamsFast(i, [PRIM_POS_LOCAL, llList2Vector(gHome,i-2)]); } gHome = []; // Empty the home position vector list llSetTimerEvent(0); llOwnerSay("off"); // llResetScript(); } } timer() { //remove un-changeable axis-parameters from scale vector vScale = llGetScale(); if (vAxis.x == 0.0) {vScale.x = 0;} if (vAxis.y == 0.0) {vScale.y = 0;} if (vAxis.z == 0.0) {vScale.z = 0;} if (iStep >= iSteps) { toggle = -1; } else if (iStep <= 0) { toggle = 1; } integer i; for (i=2;i<=llGetNumberOfPrims();++i) { // Loop for all child prims llSetLinkPrimitiveParamsFast(i, [PRIM_POS_LOCAL, llList2Vector(gHome,i-2) + (vScale / iSteps)*iStep]); iStep = iStep + toggle; //add 1 or -1 to step } }}
×
×
  • Create New...