Jump to content

Qie Niangao

  • Posts

  • Joined

  • Last visited

Everything posted by Qie Niangao

  1. Once all bugs and other griefing vectors are fixed, some desperate ne'er-do-well might resort to vehicle abuse. Do let's hasten to prevent that at all cost, lest fun be had in the meantime.
  2. Of course you can always make touches ineffective, but you rightly want them to be impossible. If there will really only be a few destination buttons, personally I'd do the unthinkable and put a script in each button so I can move the script to a state with no touch-related handler, thus making it visibly unclickable. (Remember not to use touch_start in a state-cycling script; use touch_end instead.) Another option, needing only one script, would be to make the real, touchable button surface separate from the button label, and then to make the button untouchable shrink that touchable part and bury it within another part of the assembly until it should be touchable again. To be safe, this approach should also include the logic that makes touches ineffective, just in case somebody cams inside and manages to paw at the hidden touch surface. If hovertext is acceptable, there's always PRIM_TEXT as the "link" version of llSetText(), but maybe you wanted something else.
  3. I have no expectation that a "AAA game level designer" could do anything at all with SL, but just to be clear about Rod Humble's tenure, if anything he wasn't budget-constrained enough. It was his time as CEO that saw the Lab buy Desura, LittleTextPeople, and Blocksworld, launch Patterns and Creatorverse, and oversee the death throes of the earlier-acquired Avatars United. A whole lot of money and time was squandered back then.
  4. Just to show what I've been fussing with: which should be viewable on Flickr as a 360 view of 360-view spheres.
  5. Yeah, but the current issue doesn't seem to have anything to do with the IP of the audio content. Rather, they appear to be claiming some IP rights to the streaming service itself (as curators or something?), and anyway they're in a position to impose "terms" on providing that service. But I can't figure out how this benefits them. I get it that they're trying to defeat scrobbling* and so they poison the Shoutcast-standard Now Playing URL "<stream:port>/7.html" with a lame beg for donations (see, e.g., http://ice6.somafm.com/groovesalad-128-mp3/7.html ), and yet they expose those direct streaming URLs in their radio station directories (e.g., https://somafm.com/groovesalad/directstreamlinks.html ) with the rationale: So they don't seem to be insisting that one use their own (pathetic) web player, and indeed the direct stream URLs work just fine in a browser (e.g., https://ice6.somafm.com/groovesalad-128-mp3 ) so I don't know exactly what they're doing (matching user agent string? seems unlikely), and even more mysteriously, why. What am I missing? _______________________ *I also don't understand why anybody would want to discourage scrobbling / now-playing info, although I gather the EU banned Shazam which is kinda like scrobbling I guess? Do they also confiscate all Android phones with that magical ambient Now Playing local hash on background music? It's like lawyers are pining for the good ol' days of Napster lawsuits. I don't understand any of it.
  6. *blush* Well, I may have "elaborated" some. For the nonce, though, I'm still wanting to hide some specific stuff on those 360 images as TPVs do with Derender. It occurred to me, though, that the whole 360 object rendering process might be different enough that Derender can't exclude what gets into those images. So that's another conditional hurdle, the list now standing at: Does the Lab intend to merge 360 code into the main viewer branch? Will TPVs have that 360 code (either inherited from the main branch or on their own separate 360 branch)? Will Derender functionality work on 360 code in anybody's viewer? (Incidentally, ya know that glitch that happens sometimes where some random link of an object just doesn't show up? until, maybe, after you select the object of which it's a link? Not surprisingly, perhaps, that also occurs in some 360 images, of which I happen to have photographic evidence.)
  7. Yeah, but I'd take it further: Please let me decide what other parcel contents to draw while anyone's cam is on my parcel. I'm fine with the neighbour's fetish for hemorrhaging hippo hovercraft when viewed in the context of their very special parcel, but not so much on mine. Visitors may turn off my parcel-specific content curation, but give us a chance or give up on Mainland. (Meanwhile, though, may I please have a viewer that lets me hide one particular bleeding artiodactyla blimp whilst creating a 360 snapshot?)
  8. Does anybody know if other viewers will adopt the 360-degree snapshot capability? I presume that depends on whether it will be merged into the Lab's main viewer branch, as opposed to being stranded on a project viewer as it was for years, so do we know if that's the plan? The reason it matters is that other viewers offer Derender functionality that is absent from the Linden viewer (or, at least, I sure can't find it). That poses a real problem when trying to use the 360 viewer on Mainland where there's a lot of kruft floating overhead. That stuff is rarely visible with typical Mainland draw depth, but a much deeper than usual setting produces better, more complete 360-degree images. I'd sure like to hide some of that mid-depth stuff from my Mainland 360s.
  9. SomaFM may have some fantasy that Linden Lab is responsible for the streaming content to which parcels may link, but that's not true, and no more true than the fact Google may return SomaFM URLs or we might post one on social media. There is no streaming into SL, there is no streaming through SL, there is only streaming from URLs posted as a courtesy in SL's parcel metadata. Arguably viewers might be in a position to pay for the content they stream based on those URLs, inasmuch as they actually make a connection to the client machine's audio streaming libraries. SomaFM should take that up with Firestorm and see how far it gets. (They are, objectively, idiots—but to be fair, they're probably idiots with financial problems.)
  10. An object only has physics on one region, so any parts that extend into a region other than where it's rooted will behave as if phantom on that other region. (I'm not sure that's what you mean, though.) [ETA: Probably that's not what you mean, inasmuch as "objects... would be wholly in one or the other region", and if region crossings are infrequent it may not matter anyway, but nonetheless: common practice is to invisibly overlap the region border a few meters from both directions to make crossings a little smoother—which may still not be relevant, I'm not sure.]
  11. Meh. Every developer thinks their job is impossibly more challenging than every other developer's, and it's always somebody else's fault. Developing from or refactoring a large existing code base? It's always krufty "spaghetti code" written in an obsolete language by cavemen, and if only we could start from scratch it would be just a weekend's work. Sansar is a perfect example of what happens when actually starting from scratch: just watch those pages fly off the calendar while requirements drift into a backwater of market irrelevance. That said, SL avatars specifically have accrued so many layers of mostly incompatible functionality that it's now impossible to learn all the ways they can be visually and functionally broken, let alone how to fix them. A "newbie" after a few months will have stumbled on most of the failure conditions for their specific choice of avatar and can safely attend public events as long as they don't try a new head or skin or push the wrong shape slider, or any of the myriad other ways to uncover incompatibilities across the many strata of avatar customization detritus that we worship as Creator-blessed content.
  12. It's a good idea to get accustomed to the format @Quistess Alpha suggests because there are many LSL functions that take a list of parameters as an argument, and eventually in some script it's likely to matter how many distinct function calls get made, or whether all the parameters are likely to get set during the same simulation frame. Just a note about the IP address thing: if you're lucky enough to have an actual domain name such as stream.wqxr.org, by all means use that in preference to a corresponding IP address which will become invalid if, for example, WQXR changes streaming providers.
  13. Ah, yeah, AFAIK the Malwarebytes thing is unique to the problem @Cyrene Price describes of teleports failing only when returning to a region already visited during a login session. I see this thread is about teleport failures more generally, and I should have been more specific.
  14. This sounds like a bug found in Malwarebytes. Do you happen to use that? If so, can you see this jira? It includes a hint for how to configure Malwarebytes to behave nicely with SL teleports.
  15. Agreed that anything that actually blocks Linden waterway should be reported, and you should make a point of following up to see if it's been resolved. If not, enlist some friends to add ARs. (Governance claims that one AR is as good as many. It's simply not true. No fault of Governance, but Mainland generally needs residents to do more of the work to get things done.) The bad part is that there's nothing to be done about the cheap security systems. They cannot eject nor teleport home anybody who isn't actually on the owner's parcel at that instant (so if one gets caught by them, they're functioning "properly") and there's no formal rules about how long the warning interval must be except on Bellisseria.
  16. (I'm assuming "pop out" here refers to bringing up the Nearby Chat window.) I don't know BD, but I expect it's like Catznip and the Linden viewer: just hit Enter while mouse focus is on the world. Ctrl-T should work too, which thankfully was preserved in Firestorm, too. (On those infrequent occasions I use Firestorm, I'm forever forgetting I can't simply hit Enter to type in chat.)
  17. In addition to the repeated calls in the dataserver() handler, these ones in state_entry() and changed() will indeed be to kick-off reading or re-reading the notecard from the top. The reason it arises in changed() is usually to handle times when the notecard is edited or replaced, which is evident when the CHANGED_INVENTORY flag is set. (A notecard gets a brand new "key" or UUID every time it's saved, so that's a way of telling that specifically that notecard was the thing in object inventory that changed.)
  18. Yeah, llSetLinkMedia() establishes shared media for one face of an element in the linkset. (Of mostly historical interest, the llSetPrimMediaParams() does the same thing but only for the scripted link itself, so those functions share parameters such as PRIM_MEDIA_CURRENT_URL.) It is tricky finding viable URLs to feed these various functions (same problem for parcel sound, too), so it's not surprising that it doesn't like an .mp3 (which it will see as a file rather than a streaming format). I don't think playlists (.pls) will work either. I generally end up specifying a URL in the form of http:// <IP address> : <port number> for these streams, which are often found by persistent snooping around an internet radio source site. SomaFM, for example, calls these things "direct stream links" hidden under "alternative stream links for internet radios and other media players" and even then only the non-.pls, non-.m3u links seem viable. Maybe somebody else has a more rigorous way of finding working stream links. And yeah, shared media's range is problematic. Used to be even less predictable. If I really need to constrain streaming audio, I revert to the old PARCEL_MEDIA_COMMAND_AGENT and periodically check where the avatars are located, so they can hear for example different streams in adjacent "apartment" spaces. It's not that difficult, but a bit of a heavy lift for a first script, and requires some script processing time in contrast to merely leaving a URL on an object surface for the viewer to discover and pass off to an audio streaming library.
  19. For #1, see llDialog(). It works with llListen() to return the user's response to the script's listen() event handler. You can probably find cool sample scripts for land radio, as a starting point. (Many will read notecards in which you can specify a list of internet radio station URLs, etc., but because you're writing your own script you could populate the list variable(s) directly inside the script.) For #2, there are a couple ways to approximate what you want here. The more common is to use "shared media" (aka Media On A Prim) instead of parcel radio. You can actually play around with this just in the "Build Tool" object editor without needing to write a script at all (but you'll eventually want a script to make it easy to change channels). For completeness, the other way to get location-specific sound is with PARCEL_MEDIA_COMMAND_AGENT while keeping track of which agents are within range of the emitter. This puts the script in charge of who gets which sounds, thus incurring some overhead that's instead absorbed by the viewer with the more common Shared Media approach. Note that users more commonly enable parcel-wide "land radio" audio than either parcel media or shared media, so visitors may need some instruction to enable the stream(s).
  20. Reading through this thread, the first thing that came to mind was that llFrand generates psuedorandom numbers in a linear distribution, whereas natural processes generally follow some other frequency distribution (e.g., Gaussian) where events are more likely to occur around some central timing and with decreasing likelihood at the beginning or end of the permissible interval. Of course it doesn't need to be Gaussian, and most likely nobody would notice exactly what distribution is at play (except when wagering is involved). So I searched the wiki for "gaussian" and found this which points to this tidy spot of math, all of which seems overkill for the intent here. A simpler approach would be to generate a list of values that correspond to the delay intervals, so the first element in the list is the shortest permissible interval, the last element is the longest, and we index into that list by integer-forced llFrand() over the arbitrary number of discrete values we use to represent the distribution. The values themselves would actually be the ogive cumulative over the frequency distribution we're modeling, so they monotonically increase in a shape something like an (offset and scaled) arctan—llAtan2()—thus invoking a sine-adjacent trig function. Or maybe this has nothing to do with the sine wave you were visualizing.
  21. I'm confused. They'll "have us dead in the water" by making human avatars "way too realistic" only moreso? Anyway, I probably have wandered deep into uncanny valley, unconscious as realism crept in. I mean, I was perfectly happy with the system avatars when I started in 2006, and now I'm happy (-ish) with mesh avatars that are much more realistic. If I hadn't boiled my own frog for a decade and a half, I'm sure 2006 me would be aghast at 2021 Qie. As to scripted avatar deformation: seems to me it's not the avatars that are too primitive, but rather the animations that are just clumsy joint-bending, mindlessly mimicking the side-effect of the intent expressed by the motion.
  22. I don't doubt you, Nova, but I don't know where to see that. I realized that https://secondlife.com/my/account/membership.php?lang=en-US could be some grandfathered rate specific to my ancient account* so I even opened an incognito window in case it was doing some cookied user-specific thing, but https://go.secondlife.com/premium still shows me this: so I just can't figure out where to find the US$ 120 per year. ________________________ *It gets the grandfathered L$500/wk stipend, so I knew it could be getting a special Premium subscription rate too, but I'm not finding that.
  23. I think the textures—most if not all—and maybe some sculptmaps used in Linden Homes are publicly available at the InfoHubs of the corresponding continents* so making your own should be possible. It would be wrong, I think, to completely copy their designs without some explicit permission, but I think the Lab would encourage us to make the most of the textures and other content they made public when the homes were released—especially if we had fun doing it. ___________________________ *E.g., for "Meadowbrook" see secondlife:///app/objectim/3989b0ce-404d-38a5-6945-6acaa00a7cfb?name=Linden%20Homes%20%2D%20Meadowbrook%20Textures&owner=3d49d163-6ced-420b-83c9-7ae16f6fc9b3&slurl=Meadowbrook/79.200000/169.100000/40.169650
  24. Let's pretend you do it the simple way, just as an individual landowner, no group bonus, no pooling premium alts etc. You're currently paying L$1850/wk, which is US$384.80/yr (at the conservative L$250/US$ exchange rate used throughout). An annual Premium subscription is US$ 99 and pays L$300/wk in stipend which offsets that cost by about $62.40, for a net cost for Premium of $36.60/yr. Tier for 4096 sq.m. (in addition to the 1024 "Premium Bonus" tier) costs $264/yr; added to the Premium fee that's $300.60, or US$84.20 less than you're paying now. That annual savings amounts to about L$21,000, which could go pretty far towards buying the land itself. That 5120 sq.m. amounts 1757 Land Impact, or 502 (or 40%) more than you have now. (Single-prim Mainland regions have 22500 LI.)
  • Create New...