Jump to content

Rider Linden

  • Posts

  • Joined

Everything posted by Rider Linden

  1. If you have questions about what we are rolling I usually discuss it, or at least give an update at the Server User Group meetings. We gather at noon SLT on Tuesdays in Denby, I usually give an update and then we open the floor for discussion. You can find a schedule and calendar here: http://wiki.secondlife.com/wiki/Linden_Lab_Official:User_Groups#Calendar
  2. After some thought (and gentle prompting) I think this does require a permissions check.
  3. I'm considering adding the following LSL function and would welcome some community feedback. Function: integer llIsFriend(key agent_id) The llIsFriend function will return TRUE if agent_id is a friend of the script owner and either the owner or the agent is in the same region. If agent_id is not an agent, not a friend, or neither the agent nor the script owner is on the region this function returns FALSE. (I am also considering adding llIsFiend just to be cruel... it would return TRUE only on Halloween 😉 )
  4. For general purposes llHash() would probably serve your needs. An option for the original question, I believe that the sender key in the listen event should be the UUID of the HUD that sent the message. (Verify this to see if I'm misremembering.) Take that UUID, pass it to llGetObjectDetails() and ask for OBJECT_CREATOR. If it is you then you can be reasonably sure that HUD is not a forgery.
  5. Actually, those functions operate from an experience, so the user will only be asked once. Although, you do need to follow the llRequestExperiencePermissions()/experience_permissions model before attempting to modify their environment.
  6. Very nice. I will give you the warning that there are some ordinals that do not map to a valid character.
  7. After an exhaustive search of the marketplace, the closest I was able to find was a paper clip typer...
  8. Yes. Whirly is correct. This is a script issue that the creator will need to address. The script is making repeated HTTP calls to a server which is returning 500 class status responses(see below). In order to trigger that warning it needs to make quite a few requests in a very short amount of time with no non-500 responses. In more poetic terms: The script is sitting in the back seat of the car asking "arewethereyet?arewethereyet?arewethereyet?arewethereyet?howboutnow?arewethereyet?" HTTP response can be broken down into 4 broad ranges: 200: All is right with the world 300: What you are looking for is over there 400: I don't know what you want or you asked wrong. Try again 500: Server is on fire
  9. If you are importing multiple Windlights there is a trick you can do. Create a new sky (or water, or day cycle. Whichever sort of setting that you are importing). Double click it in your inventory to open the editor Use the Import button to bring in the first windlight on your list Use the "Save As" option on the save button. Click the Import button again to get the second one, and repeat the process.
  10. Now, THAT is pretty sweet! This conversation has me thinking about how to port something like Frotz into LSL... I mean, who wouldn't want to play Zork on a prim!
  11. LSL is Turing Complete. So in theory you could do any of projects that you outlined. In practice however, that way lies madness, and you would probably not want to tackle them for any reason other than the perverse pleasure of bringing such a horror into the world. You would need to operate in rather severe memory constraints. You could work around this by dividing the logic and memory usage among multiple scripts each handling a specific function (how very Minsky!). This strategy however will start to run into limits with script timing since the number of scripts needed would balloon quickly and the simulator only has so much time each frame to execute scripts. I/O will also be a problem, your storage would be limited to volatile script state memory and graphics could be done, after a fashion, but would be to slow for a real time display. I once saw a Mandelbrot Zoomer done in LSL where each "pixel" on the screen was a small cube in a linkset. I'll see if I can find the video.
  12. Yes AFK, that is actually very easy to do. In the About Land floater you can set the length of the day and number of hours to offset. You will want to set a 24 hours day and the set the Day Offset to match your timezone. There is a label just below these two sliders that can assist you in making the adjustments by showing you the "Apparent Time of Day".
  13. White space and indentation is not meaningful in LSL beyond making your code easier to read. Code blocks in LSL are delineated by curly braces if (test) { statement; } and if (test) { statement; } for instance are identical to the compiler. (Python will 💔 every time . )
  14. There is a feature request for this and I would like very much to get it into an upcoming simulator. I don't have any sort of ETA for you however. Nor do I have an explanation about why it was left off in the first place. BUG-6961
  15. The short answer is that sleep time is the mean amount of time in ms per simulator frame that the simulator has spent idling over the last minute. The long answer is that the simulators attempt to keep a constant number of processing frames (one cycle through the main loop) per second. This number is displayed in the statistics window as Sim FPS. This value is not the same as the Viewer's FPS. When the Sim FPS starts to fall below 45 you will begin to see lag events like delayed movement and rubber banding, among other symptoms. A single frame should take about 21ms. (21ms * 45) = ~1 second (less about 50ms overhead). If a single simulator frame takes less than that 21ms we need to add a few extra ms in order to maintain the constant rate. This extra time is reported as "Sleep Time" and tracks closely to "Spare Time". Every frame on the simulator is divided into a number of phases. The big ones are network message processing, advancing the state of the physics simulation, processing agents in the region and updating their interest lists, and executing scripts. The amount of time allowed per frame to execute scripts is capped. The simulator will attempt to execute all the scripts in the region in that allotted time slice, if it can not make it all the way through the list it will stop and pick up where it left off on the next frame (this gives you the "Scripts Run %" statistic.) Since the time for script execution is capped you can see situations where the % of scripts executed per frame begins to fall even though there is idle time reported on the simulator.
  16. Yes, All of the sun and moon functions (direction, rotation) and the day length day offset functions are EEP aware. The llGetRegion* (Sun/Moon)(Rotation/Direction) functions will always return the value for the region even if there is an environment set on the parcel. This family of functions are also altitude aware. This means that if the object containing the script is at 1100 meters and the region or parcel owner has set a custom environment at 1000 meters they will recognized the sun position from the custom environment.
  17. We had to reverse the RC and Main Channel rolls this week. That is likely what you encountered. https://community.secondlife.com/forums/topic/455707-deploy-plan-for-the-week-of-2020-06-01/
  18. The dates on the group notices is a known bug (BUG-228696 and others). A fix rolled to two of the Release Candidate channels yesterday (server version 2020-05-15T18:31:37.542403). Our plan is to roll that to the rest of the grid next Tuesday.
  19. He could send the object in question a message on a predetermined channel (llRegionSayTo) and add a script to your discovered object that would respond with a "yes, I'm your object". If you don't get the response back you know it isn't one of yours.
  20. Comments will never affect script performance. LSL is compiled into byte code and that is what is actually executed, comments are not included in the byte code.
  21. The sun and moon actually follow what is called a great circle path across the sky dome, which is the shortest distance between two points on the surface of a sphere. When projected to an observer on the ground this path can appear to be a curve. (This is actually the same reason that a plane traveling from SFO to London will go through the Arctic.)
  22. Conversation logs are stored on your local computer. The file with your past chat transcripts will contain the old name after a name change.
  23. In a nutshell, parts of the server were not expiring old names correctly. Rather than being time based it would keep a name cached until the entire server was either restarted or the server had collected more than 20,000 names and decided it was time to cull some of them (whichever event came first...) This has been corrected and names will be marked as stale after some period if time and then culled (or refreshed) a little while later. The entire process can take as long as 24 hours.
  • Create New...