Jump to content

Search the Community

Showing results for tags 'sensor'.



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
    • 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 6 results

  1. Hello! I am trying to create a script with something like an alarm that sends me a message when someone comes to visit me in my absence. I managed to write something but its not ok. It sends messages all the time while person in range, and I only need one time alert. and at the same time, if a person leaves the range and comes back, the alarm must be triggered again. how to do it? That's what i managed to write so far float range = 10.0; // in meters float rate = 10.0; // in seconds default { state_entry() { llSensorRepeat( "", "", AGENT, range, TWO_PI, rate ); } sensor( integer number_detected ) { llInstantMessage( llGetOwner(), "ALERT!" ); } }
  2. Hello! Please help to combine these two scripts. I am trying to make a script for a linked door without a "hinge". I need to add the closing / opening sensor to the FIRST SCRIPT. Thank's for any help! FIRST SCRIPT (please help to add sensor here) // 2017 Maschinenwerk, Corp. // All Rights Reserved. /* * Define the rotation in degrees, using the door prim's local coordinate * system */ vector ROTATION = <0.0, 0.0, 80.0>; /* * Define the position of the virtual hinge; usually this is half the door * prim's width and thickness */ vector HINGE_POSITION = <-0.8, 0.05, 0.0>; /* * Define how fast the door opens, in seconds */ float SECONDS_TO_ROTATE = 1.0; /* * Define after how much time the door should close automatically, in seconds; * set to 0.0 to disable autolmatic closing */ float AUTO_CLOSE_TIME = 10.0; /* * Define a sound that plays when the door starts to open; set to NULL_KEY * for no sound. */ key SOUND_ON_OPEN = "e5e01091-9c1f-4f8c-8486-46d560ff664f"; /* * Define a sound that plays when the door has closed; set to NULL_KEY * for no sound. */ key SOUND_ON_CLOSE = "88d13f1f-85a8-49da-99f7-6fa2781b2229"; /* * Define the volume of the opening and closing sounds */ float SOUND_VOLUME = 1.0; /* * NORMALLY, THERE IS NO NEED TO CHANGE ANYTHING BELOW THIS COMMENT. IF YOU DO * YOU RISK BREAKING IT. */ integer gClosed; // Door state: TRUE = closed, FALSE = opened rotation gRotationClosed; // Initial rotation of the door (closed) vector gPositionClosed; // Initial position of the door (closed) vector gRotationPerSecond; // The amount to rotate each second doOpenOrClose() { /* * Only perform the rotation if the door isn't root or unlinked */ integer linkNumber = llGetLinkNumber(); if (linkNumber < 2) return; if (gClosed) { /* * Store the initial rotation and position so we can return to it. * * Rotating back purely by calculations can in the longer term cause the door * to be positioned incorrectly because of precision errors * * We determine this everytime before the door is being opened in case it was * moved, assuming the door was closed whilst being manipulated. */ gPositionClosed = llGetLocalPos(); gRotationClosed = llGetLocalRot(); /* * Play the opening sound and preload the closing sound */ if (SOUND_ON_OPEN) llPlaySound(SOUND_ON_OPEN, SOUND_VOLUME); } vector hingePosition = gPositionClosed + HINGE_POSITION * gRotationClosed; /* * Reset the timer and start moving */ llResetTime(); while (llGetTime() < SECONDS_TO_ROTATE) { float time = llGetTime(); if (! gClosed) /* * Invert the timer for closing direction */ time = SECONDS_TO_ROTATE - time; rotation rotationThisStep = llEuler2Rot(gRotationPerSecond * time) * gRotationClosed; vector positionThisStep = hingePosition - HINGE_POSITION * rotationThisStep; llSetLinkPrimitiveParamsFast(linkNumber, [PRIM_ROT_LOCAL, rotationThisStep, PRIM_POS_LOCAL, positionThisStep]); } /* * Set the new state */ gClosed = !gClosed; if (gClosed) { /* * Finalize the closing movement */ llSetLinkPrimitiveParamsFast(linkNumber, [PRIM_ROT_LOCAL, gRotationClosed, PRIM_POS_LOCAL, gPositionClosed]); /* * Play the closing sound and preload the opening sound */ if (SOUND_ON_CLOSE) llPlaySound(SOUND_ON_CLOSE, SOUND_VOLUME); if (SOUND_ON_OPEN) llPreloadSound(SOUND_ON_OPEN); } else { /* * Finalize the opening movement */ rotation rotationOpened = llEuler2Rot(ROTATION * DEG_TO_RAD) * gRotationClosed; vector positionOpened = hingePosition - HINGE_POSITION * rotationOpened; llSetLinkPrimitiveParamsFast(linkNumber, [PRIM_ROT_LOCAL, rotationOpened, PRIM_POS_LOCAL, positionOpened]); /* * Preload the closing sound */ if (SOUND_ON_CLOSE) llPreloadSound(SOUND_ON_CLOSE); /* * Set a timer to automatically close */ llSetTimerEvent(AUTO_CLOSE_TIME); } } default { state_entry() { /* * Assume the door is closed when the script is reset */ gClosed = TRUE; /* * These doesn't change unless the script is changed, calculate them once */ gRotationPerSecond = (ROTATION * DEG_TO_RAD / SECONDS_TO_ROTATE); /* * Preload the opening sound */ if (SOUND_ON_OPEN) llPreloadSound(SOUND_ON_OPEN); } touch_start(integer agentCount) { doOpenOrClose(); } timer() { llSetTimerEvent(0.0); /* * Close the door if it isn't already closed */ if (! gClosed) doOpenOrClose(); } } SECOND SCRIPT (sensor is here) float TIMER_CLOSE = 5.0; integer DIRECTION = -1; // direction door opens in. Either 1 (outwards) or -1 (inwards); integer DOOR_OPEN = 1; integer DOOR_CLOSE = 2; vector originalPos; door(integer what) { rotation rot; rotation delta; vector eul; llSetTimerEvent(0); if (what == DOOR_OPEN) { // llTriggerSound("doorOpen", 1); eul = < 0, 0, 90 * DIRECTION > ; //90 degrees around the z-axis, in Euler form } else if (what == DOOR_CLOSE) { // llTriggerSound("doorClose", 1); eul = < 0, 0, 90 * -DIRECTION > ; //90 degrees around the z-axis, in Euler form } eul *= DEG_TO_RAD; //convert to radians rotation rot = llGetRot(); delta = llEuler2Rot(eul); rot = delta * rot; llSetRot(rot); } default { on_rez(integer start_param) { llResetScript(); } state_entry() { originalPos = llGetPos(); llSensorRepeat("", "", AGENT, 5, PI, 1); } sensor(integer num_detected) { door(DOOR_OPEN); state open_state; } moving_end() { originalPos = llGetPos(); } } state open_state { state_entry() { llSensorRepeat("", "", AGENT, 5, PI, 1); } no_sensor() { door(DOOR_CLOSE); llSetPos(originalPos); state default; } sensor(integer num_detected) {} moving_start() { door(DOOR_CLOSE); state default; } }
  3. integer sensorDetected = 0; default { state_entry() { llSensorRepeat("","",AGENT,35,PI,3.0); } sensor(integer detected) { if (sensorDetected == 0) { sensorDetected = 1; llOwnerSay("Someone is nearby."); } } no_sensor() { if (sensorDetected == 1) { sensorDetected = 0; llOwnerSay("Nobody is nearby."); } } } This script, when worn, should tell me only once whether there is someone nearby or not, until there is a change in whether there is someone or not. This script works everywhere I have been, except at my friend's home on the main land. If I stand there without moving and nobody else is around, every 3 seconds I receive one of the two messages. Nobody is nearby. Someone is nearby. Nobody is nearby. Someone is nearby. Nobody is nearby. Someone is nearby. ... I thought maybe it comes from a nearby item even though it's scanning for agents... so I went a few meters high in the sky where the nearest item is hundreds of metres away, and I still get the message spam, so it's about X Y and not Z positioning. If I walk to the neighboring parcels far enough, it doesn't spam anymore. If someone else is there, it works fine. If I TP out, it works fine in that other sim... As soon as I TP back and there is nobody there, it spams the messages again. I tried PI/2. When someone is nearby and I face them, they are detected once. If I don't face them, they are not detected, again once. That's working as intended. But I need a 360° scan. Doing PI/1 doesn't change anything, it behaves in the same spammy way. The parcel's "options" are 100% health, avatars inside this parcel cannot be seen, Health, no flying, no voice. The spam happens to whoever wears this script in that zone. I have another object there that scans the region occasionally, so I rezzed it in another place to see if causes the spam. It does not. Any ideas? I realize it's not exactly a scripting question, but I don't know a better place to ask. Edit: I have changed it to llInstantMessage to rez it at the home and TP away. It never spams, it works as intended. So the weird loop happens when I'm wearing it and there is nobody else around and I'm at this specific home.
  4. Hello! I'm trying to create a script of an exploding barrel. I want the object (the barrel - a single mesh object) to explode when bullets hit it - throwing out the explosion particles, making a sound, maybe becoming physical and flying off to the side and self destruct. Have any ideas? Thank you! If I ask to scripters - how much could it cost to write such a script these days?
  5. I am trying to scan a nearby scripted object to get its object name. I figure getting its key would be a good start... Could someone please explain why this sensor keeps returning a NULL key when it detects an object? "I detect 00000000-0000-0000-0000-000000000000" What I'm actually trying to accomplish is, I want to wear this sensor. When I walk into a small, non-physical item that has a particular name, it will change my hover height to a predetermined value to make it seem like I'm standing on it normally. key id; default { state_entry() { llSensorRepeat("","",SCRIPTED,1,PI,2); llOwnerSay("beep"); } sensor(integer num_detect) { id = llDetectedKey(num_detect); llOwnerSay("I detect "+(string)id); } no_sensor() { llOwnerSay("no detect"); } }
  6. float sun_height;vector sun_position; default{ state_entry() { llSetTimerEvent(150); } timer() { sun_position = llGetSunDirection(); sun_height = sun_position.z; if(sun_height < 0.0) { llSetPrimitiveParams([PRIM_POINT_LIGHT,TRUE,<1.0, 1.0, 1.0>,1.0,15,0.750, PRIM_GLOW, ALL_SIDES, 0.4]); } else { llSetPrimitiveParams([PRIM_POINT_LIGHT,FALSE,<1.0, 1.0, 1.0>,1.0,15,0.750, PRIM_GLOW, ALL_SIDES, 0.0]); } }} float glow;float time; //------------------------------------- // Main program default { state_entry() { llSetColor(<1.0, 1.0, 1.0>, ALL_SIDES); state begin; }} //------------------------------------- // Begin state state begin { state_entry() { glow = (integer) llRound(llFrand(1)); // Random on or off time = (float) llFrand(2); // Random wait time llSetPrimitiveParams([PRIM_POINT_LIGHT, TRUE, <1.0, 1.0, 1.0>, glow, 5.0, 0.5, PRIM_GLOW, ALL_SIDES, glow]); // Set prim light on/of state wait; // Go to the Wait State } } //------------------------------------- // Wait state state wait { state_entry() { llSetTimerEvent(time); //Wait } timer() { llSetTimerEvent(0.0); //remove the timer state begin; // Go back to the Begin State } }
×
×
  • Create New...