LlRequestSimulatorData

De DigiWiki.

string gSimName; 
key gStatusQuery;
string gStatus;
string gRating;
key SimPos;
 
default
{
    state_entry() 
    { 
        llListen(1, "", "", ""); 
    } 
 
    listen(integer channel, string name, key id, string mesg) 
    { 
        gSimName = mesg; 
        gStatusQuery = llRequestSimulatorData(gSimName, DATA_SIM_STATUS); 
        gRating = llRequestSimulatorData(gSimName, DATA_SIM_RATING);
        SimPos = llRequestSimulatorData(gSimName, DATA_SIM_POS);
    }
 
    dataserver(key queryId, string data) 
    {
        if (queryId == gStatusQuery)
        {
            gStatus = data;
        }
        else if (queryId == gRating)
        {
            gRating = data;
        }    
        else 
        {
            vector SimPos? = (vector) data; 
            llSay(0, gSimName + " (" + gRating + ") " + "(" + 
                (string)((integer) SimPos?.x) + ", " + 
                (string)((integer) SimPos?.y) + ") is " + gStatus); 
        }
    }
}
key ahernStatusQuery;
key ahernPosQuery;
default
{
    touch_start(integer total_number)
    {
        ahernStatusQuery = llRequestSimulatorData("ahern", DATA_SIM_STATUS);
        ahernPosQuery = llRequestSimulatorData("ahern", DATA_SIM_POS);
    }
    dataserver(key queryId, string data) 
    {
        if (queryId == ahernStatusQuery) {
            ahernStatusQuery = "";
            llSay(0, "Status of Ahern: " + data);
        } else if (queryId == ahernPosQuery) {
            ahernPosQuery = "";
            llSay(0, "Ahern's position: " + data);
        }
    }
}

Hide objects in PG or unknown regions

key gRateingQuery = NULL_KEY;
 
default
{
    state_entry()
    {
        gRateingQuery = llRequestSimulatorData( llGetRegionName(), DATA_SIM_RATING );
    }
 
    dataserver(key query_id, string data)
    {
        if (query_id == gRateingQuery)
        {
            if (data == "MATURE" || data == "ADULT")
                llSetLinkAlpha(LINK_SET, 1.0, ALL_SIDES);
            else if (data == "UNKNOWN" || data == "PG")
                llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);
        }
    }
 
    on_rez(integer Setting) {llResetScript();}
 
    changed(integer ItChanged)
    {
        if (ItChanged & CHANGED_OWNER)  llResetScript();
        if (ItChanged & CHANGED_REGION) llResetScript();
    }
}
string  email_address = "leproprio@gmail.com";
 
list    regions = [ "Garmu", "Bruda", "Qrassica", "Broadwater", "Predrow", "Derimon","Kellig", 
                    "Melisande", "Osbourne Beach", "Osbourne Walk","Caeshu","Patavium","Maso Ariol",
                    "Henrietta","Sea of Antiquity","Sailor","Deadly Fear","Jieut","Land Of Light","Venn"];
list    list_ids;
 
default
{
    state_entry() 
    { 
        llSetTimerEvent ( 300 );
    }
 
    timer()
    {
        integer i;
        key     Id;
        string  region_checked;
 
        integer nb_regions_checked = llGetListLength ( regions ); // nombre de régions
 
        list_ids = [];
 
        for (i = 0; i < nb_regions_checked;   ++i) 
        { 
            region_checked = llList2String(regions,i);                          // pour une région
            Id = llRequestSimulatorData( region_checked , DATA_SIM_STATUS );    // on effectue la requête
            list_ids += [Id,region_checked];                                    // et on ASSOCIE dans une liste 
                                                                                // le couple Id/Région
                                                                                // puisque l'on sait que cette ligne de  code sera 
        }                                                                       // lu  AVANT de recevoir les données.....
    }
 
    dataserver(key queryId, string data) 
    {
        integer index = llListFindList(list_ids, (list)queryId); // Après on teste l'existence de ID dans la liste....
        if(index  != -1)
        {    
            if (data != "up")  // et son status  et le tour est joué!
                llEmail( email_address, "Alert from Second Life about one of your region ", llList2String(list_ids,index+1) + " is " + data  );
        }
    }
}
Outils personnels
  • Cette page a été consultée 970 fois.
donate
Google Ads