Jump to content

Quistess Alpha

Resident
  • Posts

    3,999
  • Joined

  • Last visited

Everything posted by Quistess Alpha

  1. Is there any specific case you can think of where a function that is "worse" than O(1) would be better when used empirically?
  2. The magic words are "Hover tips" In my viewer of choice, it's under world->hover tips->show hover tips. the default key-binding should be ctrl+shift+T
  3. I don't think it applies to this case, but having a knowably deterministic RNG could be useful for debugging purposes, but for that use-case, you're probably best-off fetching your random numbers sequentially from a list.
  4. Filed: https://jira.secondlife.com/browse/BUG-232321 I mostly wanted to make sure I wasn't missing something obvious or new before putting in a jira for it.
  5. My theory is that the 'select count' is mostly useful server-side for knowing when ~not to delete an object if it's set to temporary. Being in edit mode on an object also counts, and presumably(I didn't think to test) sitting on it does too.
  6. Is there a method of getting the avatars that count towards an object's OBJECT_SELECT_COUNT? I'm specifically interested in avatars who are accessing media on the object (basic testing shows interacting with media does increase the count)
  7. So, I'm not at all a web-developer, but I've been playing around a bit with MoaP things lately. I have this weekly calendar/organizer working, but the problem I have with it is that if I write in more than one box, only the box in which I press 'enter' is used in the query string. Is there a clever way to reorganize this or use javascript to make the browser's query string contain information on all the boxes that have user-entered text in them? (ignoring all empty boxes to save on LSL memory & data limits) key ghRequestURL; string gsURL; string gsHead = "<!DOCTYPE xhtml> <html xmlns=\"http://www.w3.org/1999/xhtml\"> <head><style> table { width: 100%; } </style></head><body> <table>"; list glItems; string gsFoot = "</table> </body></html>"; integer gCount; default { state_entry() { ghRequestURL = llRequestURL(); list days = [ "[TIME]","Monday Plan","Monday Real", "[TIME]","Tuesday Plan","Tuesday Real", "[TIME]","Wednesday Plan","Wednesday Real", "[TIME]","Thursday Plan","Thursday Real", "[TIME]","Friday Plan","Friday Real", "[TIME]","Saturday Plan","Saturday Real", "[TIME]","Sunday Plan","Sunday Real"]; glItems += "<tr><th>"+llDumpList2String(days,"</th>\n<th>")+"</th>"; integer lld = llGetListLength(days); integer index_items = 1; integer index_time = 8; for(;index_time<22;++index_time) { integer iTime = index_time%12; iTime+=12*(!iTime); // 12 not 0. string sTime = (string)iTime +llChar(65+(15*(index_time>=12)))+"M"; glItems+="</tr><tr>"; ++index_items; integer index_day; for(;index_day<lld;++index_day) { string sDay = llList2String(days,index_day); if(sDay=="[TIME]") { glItems+="<th>"+sTime+"</th>"; ++index_items; }else { glItems+="\n<td>"+"<form action=\"./add\">"+sDay+" "+sTime+ "<input type=\"text\" name=\""+(string)index_items+"item\"/>"+ "</form></td>"; ++index_items; } } } glItems+="</tr>"; llOwnerSay((string)llGetFreeMemory()); } on_rez(integer i) { llResetScript(); } changed(integer c) { if(c&(CHANGED_REGION_START|CHANGED_REGION)) { llReleaseURL(gsURL); ghRequestURL = llRequestURL(); } } http_request(key ID, string Method, string Body) { if(ID==ghRequestURL) { gsURL=Body; llSetLinkMedia(LINK_THIS,2, [ PRIM_MEDIA_HOME_URL, gsURL+"/home", PRIM_MEDIA_CURRENT_URL, gsURL+"/home", PRIM_MEDIA_AUTO_PLAY, TRUE, PRIM_MEDIA_PERMS_CONTROL, PRIM_MEDIA_PERM_OWNER, // don't show nav-bar. PRIM_MEDIA_PERMS_INTERACT, PRIM_MEDIA_PERM_NONE // do not change curent URL via navigation. ]); }else { string path = llGetHTTPHeader(ID,"x-path-info"); // Debug: llOwnerSay(path+"::"+llGetHTTPHeader(ID,"x-remote-ip")); if(llGetSubString(path,0,4)=="/home") { llSetContentType(ID,CONTENT_TYPE_XHTML); llHTTPResponse(ID,200,gsHead+(string)glItems+gsFoot); }else if(path=="/add") { string query = llGetHTTPHeader(ID,"x-query-string"); // Debug: llOwnerSay(query); // // if the query had more than one element, we'd loop over them here. // list parsed = llParseString2List(query,["=","&"],[]); string text = llDumpList2String(llParseStringKeepNulls( llList2String(parsed,1),["+"], [])," "); text = llUnescapeURL(text); integer index = (integer)llList2String(parsed,0); glItems=llListReplaceList(glItems, [ "\n<td>"+"<form action=\"./add\">"+text+" "+ "<input type=\"text\" name=\""+(string)index+"item\"/>"+ "</form></td>" ],index,index); /*glItems=llListReplaceList(glItems, [ "<td>"+text+"</td>" ],index,index);*/ llSetLinkMedia(LINK_THIS,2, [ PRIM_MEDIA_CURRENT_URL, gsURL+"/home"+(string)(++gCount) ]); //llSleep(0.2); llSetContentType(ID,CONTENT_TYPE_XHTML); llHTTPResponse(ID,200,gsHead+(string)glItems+gsFoot); } } } } // SL forums syntax highlighting doesn't like multi-line strings
  8. Oh yup, I had a bit of 'off by one' thinking in my head.
  9. Your method is slightly biased (diminishing bias as magnitude increases) to previous+1. The "correct" way would be to exclude the middle: integer rand(integer magnitude, integer previous) { integer result = (integer)llFrand(magnitude-1); if (result >= previous) { ++result; result *= (result!=magnitude); // possibly more efficient than %magnitude . } return result; } // equivalently you could re-roll, but that has a "possibility" of looping forever: integer randB(integer magnitude, integer previous) { integer result; while(previous==(result=llFrand(magnitude))); // null loop body. return result; } ETA: method A made non-branching: integer rand(integer magnitude, integer previous) { integer result = (integer)llFrand(magnitude-1); result += (result >= previous); //result *= (result != magnitude); // wraparound not neccessary. return result; }
  10. If you have a lot of animations, real random doesn't always "feel" random. I'd probably randomize the list with llListRandomize() and loop through it once (if body&animesh animations need to be paired, use a 2-strided list), or if you want to make it feel more random than that, make the list have 2+ copies of each animation (pair).
  11. I vaguely remember someone who might have been you asking this maybe a year ago. You didn't find a solution then? integer gChannel = -9871642; key owner; default { state_entry() { llListen(gChannel,"","","") owner = llGetOwner(); } changed(integer c) { owner = llGetOwner(); } listen(integer chan, string name, key ID, string text) { if(llGetOwnerKey(ID)==owner) { llAddToLandBanList((key)text,0); if(ID==owner) { llRegionSay(gChannel,text); llShout(gChannel,text); // for the case in which a repeater on the other region is within range of the repeater you access. } } } } or so wouldn't work?
  12. As this is the LSL scripting forum, I have to obviously recommend just writing the script yourself, that way you can save al the different script files you like.
  13. Maybe I'm a bit too high up on my white horse, but if you "play the game right" you should only ever let L$ to USD flow in one direction each tax-year. Ex. Say I budget myself to 100USD (+premium) to spend on SL per year, so I buy 25000 L$ on January 1st. 2020. I party a lot and don't do much "work" by january 1 2021 I'm down to 5000 L$ so I buy another 20000. Then start a generally successful club, and howdy do, January 1st 2022 I have 35000 linden in the bank. Sell off the 10000 linden and buy some fancy cake and ice-cream or something with the ~41USD.
  14. I searched it. . . Yikes. and Yikes for what will happen to people who have their medical care fiddled with by people who don't know what the hell they're talking about. (Dumb elected officials rather than medical professionals) https://www.usnews.com/news/health-news/articles/2022-06-24/after-2-ectopic-pregnancies-i-fear-what-might-happen-without-roe-v-wade
  15. the right hand collumn of the llSLPPF chart is occasionally handy https://wiki.secondlife.com/wiki/LlSetPrimitiveParams#llSetLinkPrimitiveParamsFast Textures ,media faces, texture animation, KFM (arguable), sit target... come to mind off the top of my head.
  16. Yeah, would be better to automatically force a detach and reattach rather than a strong suggestion. detaching is easy enough, and re-attaching is easy wit RLV (detaching with llDetachFromAvatar while @detach=n is restricted would probably fulfill the inventory reset) but for things where you can't reasonably expect people to have RLV on, . . . I've never gotten secondlife:///app/inventory/<id>/select to do anything.
  17. There are 2 1024's next to eachother. If you have multiple parcels on the same region, you can split prims between them (Ex. put all prims on one, leave the other empty). Horizons sim settings may or may not let you join parcels (some northern zindra regions don't)
  18. There was a 1024 at ~80L$/m in Pimenuti, but it was bought a few weeks ago. ETA: 3 1024's in Nautilus selling for about 80k.
  19. Did You try checking the 'share' checkbox on the object, and in the properties of the notecard, then having them wear the same group as the object is set to? if that doesn't work, then you just have to be content with dragging the notecard from the object's inventory into your own inventory to edit it, then removing the old one form the prim and dropping in the new one.
  20. Does it happen in every region, or just one particular spot? Does it happen when using a different viewer? If it's an 'object IM' you can mute the object.
  21. Honestly, I really like this. Finding standard 'casual' attire, especially with modify permissions and downloadable texture templates is hard and/or expensive even for experienced residents. Even if it doesn't take off with any of the big creators, if it has a good handful of viable clothing variations it would probably be worth sinking a few hours into playing dress-up with.
  22. He's still banging away at it. I don't use it regularly, and I'm not a major fan of the interface, but it has some features which are worth switching to every blue moon, and are worth being aware of, for example client-side scripting.
  23. I don't see coming to a stop after walking working out too well, given you won't know what stage of the walk they'll be in after stopping, but good luck finding someone who can work with you on it! (If it were my project, I'd just set the ease_out on the walk rather long.)
  24. I haven't tried notecards, but with respect to scripts this can be viewer-specific. Cool-VL viewer lets me edit scripts directly in an object owned by someone who has given me edit perms, other viewers I've tried, I have to copy the script to my inventory, then drop it back into the prim.
  25. Looking at it again after sleep; Reading between the lines on the cardona auction is rather fascinating. at 9:50 the going bid was 18,510. Just before the end time, at 11:53, someone put in a bid for 22,130 and was auto-outbid. From the odd amount, I'd wager they dumped all the L$ they had on hand. 6 minutes later, 11:59, with seconds to spare, either the same person came back with more L$ or another last minute popper-in bid 50,000 and was auto-outbid. seconds remaining, the same (or ~perhaps different) tried 55000 and 75000 and was still auto outbid. In my estimation, the person who had the bid for 18510 won the auction, and was in for a nasty surprise at the cost a few hours later.
×
×
  • Create New...