Jump to content

Ron Khondji

Resident
  • Posts

    351
  • Joined

  • Last visited

Posts posted by Ron Khondji

  1. 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.

  2. 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'.

    • Like 2
    • Haha 1
  3. 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.

    • Thanks 1
  4. 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);

     

    • Like 1
  5. From the deploy plan forum thread:

    Quote

    Since there's been a bit of churn with LSL-related bugs in the recent RC versions, we have already deployed version 2023-02-21.578370 to a handful of test regions, including Debug1 and Debug2.  Please feel free to try out the new features there.

     

    • Thanks 1
  6. 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);
    }

     

    • Like 1
  7. 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)

     

×
×
  • Create New...