Jump to content

Lucia Nightfire

Resident
  • Content Count

    797
  • Joined

  • Last visited

Community Reputation

819 Excellent

About Lucia Nightfire

  • Rank
    Daughter of the Devil

Recent Profile Visitors

1,310 profile views
  1. Does standard mobile have the hardware specs to support Sansar? Also, if LL can't even generate concurrency with desktop users, why would they achieve it with mobile users? The majority of the worlds aren't even designed in mobile game environment format. Who would want to use their phones just to explore dozens of art exhibits?
  2. Ask in the adult section. https://community.secondlife.com/forums/forum/267-general-discussion/
  3. To the best of my memory it was mentioned a few times verbally(personal IM) and in the blogs. I can't find the old blogs anymore, though.
  4. Other fun reads: Here is the jira creators relied on when content was broken unexpected without notice. Here is the alternative I requested during the same time frame. Using media to store data and get synchronous access came up in today's Content Creators meeting. Many showed interest in an official method without resorting to hacks especially since common large data storage/access involves hosting or using experiences which aren't usable everywhere. The method I proposed would be less of a concern in the hands of the inexperienced. Abuse of Linden Lab's KVP dataservers is one of the main reasons why we never got grid scope experiences in the first place.
  5. A bug I forgot to mention and recently filed is that if your data has C0 control characters in it you won't be able to rez the object after taking it into inventory. If this is new expected behavior, then the wiki needs to be updated with the caveat, "We went so far to prevent url control character use that we blocked rezzing of anything using them. Mwahahaha!"
  6. Since you're listening on an open channel, you might want to verify that the object heard is at least owned by yourself. listen(integer i, string name, key k, string message) { if (llGetOwnerKey(k) == llGetOwner()) { } } Otherwise anyone can script an object to send regionsays in the region to interfere.
  7. MMD is a body and skeletal format the same as "bento" is SL's skeletal format.
  8. Yes, I've butted heads with you over your improvements changes a few times in Simon's UG, heh. You didn't want the viewer to do validation so you added schema enforcement to llSetPrimMediaParams() & llSetLinkMedia(), but you didn't go far enough to actually do full url formatting validation so urls can still be malformed and the viewer pass them on. With HTTP out, you made a change to prevent C0 control character use, but still allowed C1 control character use. When you made both of these changes you gave the community no prior heads up which caused content to break and creators to file jiras after their customers came to them to complain. I'm still waiting on you to block use of commas with key inputs for llCreateKeyValue() & llUpdateKeyValue() so it doesn't break llKeysKeyValue() return. See BUG-18269. As far as "Use the way the author intended.", we both know that it has been stated many times by Lindens themselves in the UG's over the years that users will always find many different ways to use the script functions. Yes, there is always the chance that things in the future can change and content be broken, but I would hope that it is done with valid reasoning, that prior notice be made in good faith to the content creator community, and that the problem(s) that warranted the change be addressed completely, not partially. Until then I will continue to use "hacks" when LL refuses to provide equal alternatives and will deal with any "improvements" when they come. I like living on the wild side, heh. Whenever a topic comes up in the future whose solution might be considered a hack, I will add appropriate disclaimers. P.S. To everyone else reading, no this is not drama. Oz and I just sometimes have disagreements on how things are handled. We are not enemies.
  9. I don't consider using string literals to hold data outside of valid url format a hack. LSL functions have always allowed literal type inputs. The execution of incorrect formatted data should have error control/handling tied to it and it usually does with LSL or the viewer. You can store data in many unconventional/unintended ways with other functions. As long as you don't plan on actually attempting to execute those functions you're still using literal type inputs. A very basic example, an object's description field is commonly used to hold operation data with many applications instead of an actual "description".
  10. default { touch_end(integer i) { if (llDetectedKey(0) == llGetOwner()) { string data = llGetObjectDesc(); integer link = llGetLinkNumber(); integer face; if (i = llClearLinkMedia(link,face)) { llOwnerSay("Media failed to be cleared on link " + (string)link + ", face " + (string)face + " due to error " + (string)i); return; } if (i = llSetLinkMedia(link,face,[PRIM_MEDIA_WHITELIST,data,PRIM_MEDIA_PERMS_INTERACT,0x0,PRIM_MEDIA_PERMS_CONTROL,0x0])) { llOwnerSay("Media failed to be set on link " + (string)link + ", face " + (string)face + " due to error " + (string)i); return; } llOwnerSay("Data set on link " + (string)link + ", face " + (string)face + ": '" + llList2String(llGetLinkMedia(link,face,[PRIM_MEDIA_WHITELIST]),0) + "'"); } } } I included example usage of llClearLinkMedia() even though it may or may not be necessary for any specific application. I used None for interact and controls perms so a media interface isn't generated when anyone hovers their mouse over the prim, but this doesn't prevent the stored data from leaking. I used the whitelist param above. Remember to parse out the url schema if using the current url or home url param. Also, another caveat is that touch won't work on a face with media, so if you want to use a touch script in the same prim, do so on a face that doesn't have media.
  11. Since it was not mentioned, you can also use llSetLinkMedia() to store up to 27KB of data in 1KB blocks per legacy prim using the current, home and whitelist params. Caveats: URL schema enforcement exists for current and home params. ("https://" added at the beginning of data if "http://" or "https://" is not present) When using the whitelist param, there is a 64 count limit if data is in CSV format. (attempting to exceed it yields a script error) Reducing face count results in data loss on faces that no longer exist. Benefits: Synchronous access to data. (No leaving/entering script events) Data survives taking into inventory and rerezzing. Data survives shift-copying in-world. Error control/reporting with r/w failure. Detriments: The presence of data yields media beacons. Data is not secure.
  12. I was NOT able to log into aditi hours ago, but am now.
×
×
  • Create New...