Jump to content

Ron Khondji

Resident
  • Posts

    351
  • Joined

  • Last visited

Everything posted by Ron Khondji

  1. This should do it. integer i; for (i = 0; i < numPoses; ++i)
  2. Oooh. Don't let Henri see the Canny issue. (Hint: his is the Cool VL viewer.)
  3. Maybe it's a priority problem. This is what the wiki has to say about it: 8. Priority 8-1: The default built-in animations are always available to your avatar in-world. They may have different priorities on each keyframed part, unlike uploaded animations which always have the same animation on the whole body. Unless you give a higher priority to your animations, your animations will be overriden by them in-world. Priorities range from 0 to 4, with 4 being the highest priority. See the default built-in animations page to make sure what kind of priority each animation has. 8-2: Priority for uploaded animations is only given for the whole avatar, and is set in the uploading window. However, unless you animate each individual part of the avatar in your animation, some parts may be overridden by default animations (breathing, walking, etc.) 8-3: A later playing animation is given priority over the former one when their priorities are the same. To see if the animation is playing, you can select 'Developer - Avatar - Animation info' to get a list of all animations (uuid's) playing on the avatar above its head. I believe the number behind the animation name or uuid is the priority.
  4. I might be missing something, or looking at the wrong tree, but that is a old linden tree from 2004.
  5. The mobile viewer is in alpha. That means it's very long from being a finished product. Wait until it's a relaese candidate before you judge it.
  6. It still works in the Linden viewers. Don't know about the third party viewers.
  7. A hud can only be used by it's owner, as it is only on that users screen and not on anybody elses. If you give a copy of the hud to somebody else, than that somebody becomes its owner and can use it just fine. Or maybe I'm missing something.
  8. I just tried this (not very sophisticated) script: default { state_entry () { llSetTimerEvent (30.0); } timer () { list agents = llGetAgentList (AGENT_LIST_REGION, []); integer num = llGetListLength (agents); while (--num > -1) { key id = llList2Key (agents, num); integer info = llGetAgentInfo (id); string t; if (info & AGENT_AUTOMATED) t = "BOT."; else t = "AVATAR."; llOwnerSay (llKey2Name (id) + ": " + t); } } } and it seems to work just fine. Tested it in 'Boardroom' and 'Violet'.
  9. "Second Life" might be the name of the object that's doing the banning. Try clicking on it.
  10. I think the OP is talking about the sandboxes at, and near by, http://maps.secondlife.com/secondlife/LeTigre Sandbox 1/189/128/23
  11. Instead of typecasting manually, it might be easier to use this function: list CastList(list L) { integer i = llGetListLength(L); while(--i > -1) { string d = llStringTrim(llList2String(L, i), STRING_TRIM); if (llGetSubString(d, 0, 0) == "<") { if (llGetSubString(d, -1, -1) == ">") { list s = llParseString2List(d, [","], []); integer sl= llGetListLength(s); if (sl == 3) L = llListReplaceList(L, [(vector)d], i, i); else if(sl == 4) L = llListReplaceList(L, [(rotation)d], i, i); } } else { if (~llSubStringIndex(d, ".")) { if ((float)(d + "1") != 0.0) L = llListReplaceList(L, [(float)d], i, i); } else { if ((string)((integer)d) == d) L = llListReplaceList(L, [(integer)d], i, i); else { if ((key)d) L = llListReplaceList(L, [(key)d], i, i); } } } } return L; } Use it like: list tempCamSettings = CastList(llParseString2List(temp,["#"],[""]));//convert to list and then llSetCameraParams(tempCamSettings); should work as intended.
  12. No. You haven't. What I meant was you have to do something like this: list tempCamSettings = llParseString2List(temp,["#"],[""]);//convert to list list testcam2 = [ (integer)llList2String(tempCamSettings, 0), (integer)llList2String(tempCamSettings, 1), (integer)llList2String(tempCamSettings, 2), (float)llList2String(tempCamSettings, 3), (integer)llList2String(tempCamSettings, 4), (float)llList2String(tempCamSettings, 5), (integer)llList2String(tempCamSettings, 6), (float)llList2String(tempCamSettings, 7), (integer)llList2String(tempCamSettings, 8), (float)llList2String(tempCamSettings, 9), (integer)llList2String(tempCamSettings, 10), (vector)llList2String(tempCamSettings, 11), (integer)llList2String(tempCamSettings, 12), (float)llList2String(tempCamSettings, 13), (integer)llList2String(tempCamSettings, 14), (integer)llList2String(tempCamSettings, 15), (integer)llList2String(tempCamSettings, 16), (float)llList2String(tempCamSettings, 17), (integer)llList2String(tempCamSettings, 18), (float)llList2String(tempCamSettings, 19), (integer)llList2String(tempCamSettings, 20), (float)llList2String(tempCamSettings, 21), (integer)llList2String(tempCamSettings, 22), (integer)llList2String(tempCamSettings, 23) ]; llClearCameraParams(); llSetCameraParams(testcam2);
  13. LinksetData are all strings. 'lParseString2List(temp,["#"],[""])' results in a list of strings. So you need to typecast those strings back to what llSetCameraParams() is expecting. I think.
  14. From the deploy plan forum thread:
  15. llSensor( string name, key id, integer type, float radius, float arc );
  16. Get the specular date like this: state_entry() { integer face = ALL_SIDES; // or whatever face you need the sspecular date for. list params = llGetLinkPrimitiveParams(LINK_THIS, [PRIM_SPECULAR, face]); string texture = llList2String(params, 0); vector repeats = llList2Vector(params, 1); vector offsets = llList2Vector(params, 2); float rotation_in_radians = llList2Float(params, 3); vector color = llList2Vector(params, 4); integer glossiness = llList2Integer(params, 5); integer environment = llList2Integer(params, 6); }
  17. I hope the prims are not farther then 20 meters apart from eachother.
  18. I just tried Sandry's test url from the jira with this script. key HttpRequest (string HtmlMsg) { return llHTTPRequest ("https://www.sandry.co.uk/dreamhost_test.txt", [HTTP_METHOD, "POST"], ""); } default { state_entry() { llSay(0, "Hello, Avatar!"); } touch_start(integer total_number) { HttpRequest ("Hallo"); } http_response (key request_id, integer status, list metadata, string body) { if (request_id) { llOwnerSay ("Status: " + (string)status); llOwnerSay ("Metadata: " + llList2CSV (metadata)); llOwnerSay ("Body: " + body); } } } This came back: [08:22] Object: Status: 200 [08:22] Object: Metadata: [08:22] Object: Body: Hi Dreamhost Tester! . Maybe the problem has resolved itself? (Second Life Server 2022-11-04.576376)
  19. Use llGetPrimitiveParams to get the alpha value of the face. Then use that value when setting the new color.
  20. It seems to me that if you have a vector from a corner to the center of the screen, and multiply that by 2, you get the diagonal instead of the width of the screen. But my math may be worse than yours.
×
×
  • Create New...