Jump to content

Wulfie Reanimator

  • Posts

  • Joined

  • Last visited

Everything posted by Wulfie Reanimator

  1. The only problem I have with [insert operating system] is the public testing period that's gonna last a couple years after release. I have enough headaches with my current systems, I'll move over after the biggest ones are already fixed on the next one.
  2. The permission is stored into the script that requested permission with llRequestPermissions. The animation is started with llStartAnimation. Permanently (unless the script makes another permission request). You can't revoke them if the script doesn't currently exist in the same sim as you. You can't. There may be hundreds, if not tens of thousands of scripts holding permission on your avatar right now. (Any furniture you've ever sat on, for example.) Many of those scripts won't even exist in-world, just stored in someone's inventory, possibly with further copies made of them.
  3. Omega, kind of? The problem with "texture changers" vs AV Sitter is that one is inherently more complicated than the other as far as assumptions about the environment goes. As long as the build has enough links for sit targets, you can write a general set of scripts to handle 98% of use-cases. Changing textures though... that gets out of hand very fast. There are a lot of parameters per face, and there can be a lot of faces on an object.
  4. Draw distance 96-32, LOD factor 1-2, texture resolution limited to 512, FPS limited to 2-5 while not in focus. At crowded places I'll set maximum non-impostors to 1.
  5. Here's an official "getting started" article: If you're asking for mesh specifically, since you poted in the mesh section, there's this, assuming you at least know how to make models:
  6. Depends what kind of efficiency you're looking for. From the script's point of view, obviously it would be more memory-efficient to change everything to the same thing and then replace a couple pieces, assuming that the replacements are fewer than the rest. It may even be faster within the script to do that if you're building the list(s) at runtime. Whether that holds true on the server/viewer side when the call is made may be a different answer.
  7. No. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type Content-type tells the receiver what kind of data was sent. It may be ignored, but often it affects how the data is handled. For example, a request sent to a server may be completely ignored (or responded with an error) if it's the wrong type of content. Your browser displaying things differently is just one aspect of that behavior.
  8. Sims are only 256x256 meters in size. Your example looks much bigger than that. Objects can extend beyond he sim boundaries, but that is very limited since the maximum object size is 64 meters. Besides that, You can export your scene in multiple parts and upload each part separately into SL and assemble it all together.
  9. What do you need this for? Some more context might help us understand the problem and suggest solutions.
  10. Just to be clear, there are no rules regarding this. You're allowed to TP people between clubs. How you go about it can cause some social ire, but that's something you can work out.
  11. That is what I meant by "same section of the same parcel."
  12. Parcel Privacy only prevents people from seeing you if they are either not on your parcel, or on the other side of the banlines within your parcel. If they're in the same section of the same parcel, they can see your avatar despite that setting.
  13. FYI, an avatar that is sitting on an object can be moved up to 2000 meters away from the root using functions like llSetLinkPrimitiveParamsFast and PRIM_POS_LOCAL. llUnsit doesn't require any permissions either. All it requires is: The agent is sitting on the scripted object, or The agent is over land owned by the scripted object's owner and/or a group the owner has land rights for.
  14. There is no ternary operator in LSL, but if you want to avoid repetition, you could do some dumb list trickery. string sta_str = "Status: " + llList2String(["Off", "On"], status);
  15. Nope. Attachments don't need to load for an avatar to exist in a region, and while you can request a list of attachments on an avatar, there's no guarantee it's a complete list (and it doesn't include any HUDs anyway).
  16. One way is to check for some kind of external factor in the loop-condition, such as the name/color of an object, which would be changed by a separate script that isn't stuck in a loop.
  17. I hate to be that guy, but... could you also make this work for the Unread Content page? My Javascript is terrible.
  18. Mouse Pointer settings in Windows, pick the third option for inverse-colors.
  19. Assuming some things about the build itself, things can be pretty simple. As long as your buttons are "together" in the linkset, as in linked sequentially, you can have all the button-states in a list and use very simple math (like.. subtraction) to figure out which button is being pressed. list buttons = [1, 1, 1, 1, 1]; integer button_count = 5; integer first_button = 2; default { touch_start(integer n) { integer link = llDetectedLinkNumber(0); integer active = link - first_button; // If the touched button isn't actually a button, ignore this event. if (active < 0 || button_count <= active) return; // If this button is available... if (llList2Integer(buttons, active)) { // Turn it off. buttons = llListReplaceList(buttons, [0], active, active); } } } And from there you can figure out how you want to re-enable the buttons. The simplest thing would be to use a timer to enable all of the buttons at once, but that's not very convenient. What I would do is have a similar list for timestamps, so that each button would have its own delay. Below is full example with color-changing buttons to indicate which one is available (white) or disabled (yellow). list timers = [0, 0, 0, 0, 0]; float delay = 10; list buttons = [1, 1, 1, 1, 1]; integer button_count = 5; integer first_button = 2; default { state_entry() { llSetTimerEvent(5); llSetLinkPrimitiveParamsFast(LINK_SET, [ PRIM_COLOR, ALL_SIDES, <1,1,1>, 1, PRIM_LINK_TARGET, LINK_ROOT, PRIM_COLOR, ALL_SIDES, <0.1, 0.1, 0.1>, 1 ]); } touch_start(integer n) { integer link = llDetectedLinkNumber(0); integer active = link - first_button; // If the touched button isn't actually a button, ignore this event. if (active < 0 || button_count <= active) return; // If this button is available... if (llList2Integer(buttons, active)) { // Turn it off and record time. buttons = llListReplaceList(buttons, [0], active, active); timers = llListReplaceList(timers, [llGetTime()], active, active); llSetLinkColor(link, <1,1,0>, ALL_SIDES); } } timer() { float time_now = llGetTime(); integer i; while (i < button_count) { float last_active = llList2Float(timers, i); // Non-zero value is assumed to be a timestamp. if (last_active > 0 && time_now > last_active + delay) { buttons = llListReplaceList(buttons, [1], i, i); timers = llListReplaceList(timers, [0], i, i); llSetLinkColor(first_button + i, <1,1,1>, ALL_SIDES); } ++i; } } } Looks something like this.
  20. http://wiki.secondlife.com/wiki/Category:LSL_User-Defined_Functions (And from that page) http://wiki.secondlife.com/wiki/Combined_Library It could also be that @John445 Bachman is simply asking for a list of all the built-in commands with a short plain-English description of what it does.
  21. A handful of times this month I've gotten the "Received purchase..." Marketplace notification in my viewer, but it's not in my inventory. The inventory has barely 10K items. But all I've needed to do is relog. I've never (ever) had to clear my cache to solve inventory issues, other solutions have been enough.
  22. There is a distinct difference in the way LSO and Mono scripts are handled. LSO scripts will always take up 16KB memory.. even if there are no variables or events. They are always allocated the full 16KB of memory. Mono scripts have dynamic memory. While the maximum memory capacity is 64KB, the script will only take up a fraction of that in most cases. This is significant when a script needs to be transferred from one sim to the next. To do that, the current sim needs to figure out the current size of a script so that it can be stored for transfer (don't forget bytecode sharing, heap/stack memory). For LSO scripts, it's very easy since they're always guaranteed to be exactly 16KB. The destination sim suffers even more since they have to receive that information, allocate the space, and then initialize those scripts. Mono scripts are very slow to initialize and start up compared to LSO and it can be easily observed in your day-to-day interaction with scripts. No, there are quite a few things that are memory intensive without doing any long-term storage. HTTP requests, large llSetLinkPrimitiveParamsFast calls, multiple raycasts (I'm sure @animats's NPCs would benefit from more memory), general data processing, etc.
  23. Almost certainly, due to the process of how scripts are transferred between sims (and why LSO scripts are much faster than Mono scripts for that).
  24. Possible solution: Current and future scripts stay 64KB by default, but llSetMemoryLimit can be used to increase the size up to some new maximum, such as 128KB. (Seems like a safe increase as a first experiment, and we'll be able to know when scripts might be using more memory than normal.) This way, most scripters won't be using any more memory than usual. I'm all for increasing memory capacity somehow (I wish KVP wasn't Premium), but what I'd be concerned about is "what if something does go wrong?" And I don't mean things like bugs, I mean long-term real use-cases. If it does start causing significant degradation of sim performance across the grid and LL is unwilling or unable to improve their hardware with Amazon, going back to 64KB is equivalent to pulling out a barbed arrow. It's gonna hurt more coming out than going in.
  25. As someone who does not currently host a web server, I'm gonna go out on a limb and say any LSL script connecting to your server will look like that. All regions are hosted on Amazon now.
  • Create New...