Jump to content

Rider Linden

Lindens
  • Posts

    221
  • Joined

Everything posted by Rider Linden

  1. It's a table scan. But the table is generally small enough (few thousand records?) that it shouldn't be too large a hit.
  2. Writing a zero length string as the value actually deletes the key from the store. llLinksetDataWrite(key, ""); is equivalent to llLinksetDataDelete(key);
  3. I've redeployed an updated version where I've addressed most of the issues brought up here. I'm looking forward to hearing more tomorrow at SLUG.
  4. Checking a users inventory would be a huge processing hit and isn't something that we do anywhere else in LSL. (Giving scripts access to a user's inventory opens up a huge security hole.)
  5. Your project has piqued my interest, I'd love to hear about how it progresses, so keep the updates coming. One thing you might consider is looking at something called a Z-Machine Interpreter. I believe there are a couple out in the wild as open source. (I've had a long back-burnered project to port it to LSL) https://en.wikipedia.org/wiki/Z-machine
  6. Check to be sure that you have "Use Shared Environment" clicked on the "World > Environment" menu.
  7. Yes. Oh! You wanted more detail 😉 It is not supported at this time on purpose. I had it in the initial release of the feature, but it was pointed out to me that it provided an avenue for getting around certain permissions in some cases so I removed it. It is the same reasoning that I had with sun/moon/cloud textures in the LSL for EEP where I will only tell you whether or not the texture is the default texture for the settings, but not give you its UUID.
  8. @Aishagain, you summarized it very well. Thank you. The only thing that I can add is that there are in reality 4 RC channels that in some instances may each get a different version of a new server. The RC channels are: Bluesteel Ferrari Le Tigra Magnum We may also at times create small temporary RC channels that we refer to as "Snack Channels" those are in general rolled/bounced along with the RCs on Wednesdays.
  9. When we say that we are "bouncing" a region we mean that we are stopping the simulator on which it is running and bring that region back up on a new simulator without changing the version. Essentially, it is a mass restart across an entire channel. When we say "Roll" we generally mean that we are stopping a region, installing a new version of the simulator and bringing it back up with the shiny new software. If we are not rolling a new version on any given week we usually like to bounce instead. This is to make sure that the regions don't stay up too long and run into memory issues or other problems... it also gives us a chance to clear out any feral meeroos that may have nested inside the hardware. Rubber servers isn't a bad idea. Please file a Feature Request JIRA for upgrading the simulators from Neoprene to Fluorosilicone.
  10. For the time being PRIM_PROJECTOR is write only. You can use llSetPrimitiveParams to set the value, but you can not read it back.
  11. 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
  12. After some thought (and gentle prompting) I think this does require a permissions check.
  13. 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 😉 )
  14. 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.
  15. 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.
  16. Very nice. I will give you the warning that there are some ordinals that do not map to a valid character.
  17. After an exhaustive search of the marketplace, the closest I was able to find was a paper clip typer...
  18. 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
  19. 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.
  20. 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!
  21. 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.
  22. 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".
  23. 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 . )
×
×
  • Create New...