OsGetRegionStats

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
Line 81: Line 81:
 
         CommandList = osSetFontSize( CommandList, TextSize );      // font size
 
         CommandList = osSetFontSize( CommandList, TextSize );      // font size
 
         CommandList = osSetPenColor( CommandList, TextColor );      // text color
 
         CommandList = osSetPenColor( CommandList, TextColor );      // text color
         CommandList = osDrawText( CommandList, s );                // some text
+
         CommandList = osDrawText( CommandList, s );                // insert some text
 
   
 
   
 
         // Now draw the image
 
         // Now draw the image

Revision as of 02:42, 26 April 2021

list osGetRegionStats()
Returns a list of float values representing a number of region statistics (many of the values shown in the "Stats Bar" of LL-based clients). Provides similar functionality to llGetRegionFPS() and llGetRegionTimeDilation(), but returns 21 statistics simultaneously.

The elements in the list may be referred to by the following new LSL constants:

Threat Level Moderate
Permissions ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
Extra Delay 0 seconds
Example(s)
// llGetRegionStats() example script
//
// Displays certain region statistics in hovertext above the prim containing the script.
//
default
{
    state_entry()
    {
        llSetTimerEvent(5.0);
    }
 
    timer()
    {
        list Stats = osGetRegionStats();
        string s = "Sim FPS: " + (string)llList2Float( Stats, STATS_SIM_FPS) + "\n";
        s += "Physics FPS: " + (string)llList2Float( Stats, STATS_PHYSICS_FPS) + "\n";
        s += "Time Dilation: " + (string)llList2Float( Stats, STATS_TIME_DILATION) + "\n";
        s += "Root Agents: " + (string)llList2Integer( Stats, STATS_ROOT_AGENTS) + "\n";
        s += "Child Agents: " + (string)llList2Integer( Stats, STATS_CHILD_AGENTS) + "\n";
        s += "Total Prims: " + (string)llList2Integer( Stats, STATS_TOTAL_PRIMS) + "\n";
        s += "Active Scripts: " + (string)llList2Integer( Stats, STATS_ACTIVE_SCRIPTS) + "\n";
        s += "Script LPS: " + (string)llList2Float( Stats, STATS_SCRIPT_LPS);
        llSetText(s, <0.0, 1.0, 0.0>, 1.0);
    }
}
// llGetRegionStats() example script
//
// Displays certain region statistics in Dynamic Texture.
//
 
// ### Config ###
string TextColor = "White";                                 // text color
integer TextSize = 8;                                       // text size
string SetupScreen = "width:256,height:256,bgcolour:Black"; // width of the image, height of the image, background color
integer RepetitionTime  = 30.0;                             // repetition time
 
default
{
    state_entry()
    {
        llSetTimerEvent(RepetitionTime);
    }
 
    timer()
    {
        list Stats = osGetRegionStats();
        string s = "Sim FPS: " + (string)llList2Float( Stats, STATS_SIM_FPS) + "\n";
        s += "Physics FPS: " + (string)llList2Float( Stats, STATS_PHYSICS_FPS) + "\n";
        s += "Time Dilation: " + (string)llList2Float( Stats, STATS_TIME_DILATION) + "\n";
        s += "Root Agents: " + (string)llList2Integer( Stats, STATS_ROOT_AGENTS) + "\n";
        s += "Child Agents: " + (string)llList2Integer( Stats, STATS_CHILD_AGENTS) + "\n";
        s += "Total Prims: " + (string)llList2Integer( Stats, STATS_TOTAL_PRIMS) + "\n";
        s += "Active Scripts: " + (string)llList2Integer( Stats, STATS_ACTIVE_SCRIPTS) + "\n";
        s += "Script LPS: " + (string)llList2Float( Stats, STATS_SCRIPT_LPS);
        s += "Image MS: " + (string)llList2Float( Stats, STATS_IMAGE_MS) + "\n";
        s += "Other MS: " + (string)llList2Float( Stats, STATS_OTHER_MS) + "\n";
        s += "In Packets Per Second: " + (string)llList2Float( Stats, STATS_IN_PACKETS_PER_SECOND) + "\n";
        s += "Agent Updates: " + (string)llList2Float( Stats, STATS_AGENT_UPDATES) + "\n";
        s += "Out Packets Per Second: " + (string)llList2Float( Stats, STATS_OUT_PACKETS_PER_SECOND) + "\n";
        s += "Unpacked Bytes: " + (string)llList2Float( Stats, STATS_UNACKED_BYTES) + "\n";
        s += "Child Agents: " + (string)llList2Float( Stats, STATS_CHILD_AGENTS) + "\n";
        s += "Agent MS: " + (string)llList2Float( Stats, STATS_AGENT_MS) + "\n";
        s += "Pending Downloads: " + (string)llList2Float( Stats, STATS_PENDING_DOWNLOADS) + "\n";
        s += "Active Prims: " + (string)llList2Float( Stats, STATS_ACTIVE_PRIMS) + "\n";
        s += "Pending Uploads: " + (string)llList2Float( Stats, STATS_PENDING_UPLOADS) + "\n";
        s += "Frame MS: " + (string)llList2Float( Stats, STATS_FRAME_MS) + "\n";
        s += "Net MS: " + (string)llList2Float( Stats, STATS_NET_MS) + "\n";
        s += "Physics MS: " + (string)llList2Float( Stats, STATS_PHYSICS_MS) + "\n";
 
        string CommandList = ""; // Storage for our drawing commands
 
        CommandList = osMovePen( CommandList, 5, 5 );               // Upper left corner at <5,5>
        CommandList = osSetFontSize( CommandList, TextSize );       // font size
        CommandList = osSetPenColor( CommandList, TextColor );      // text color
        CommandList = osDrawText( CommandList, s );                 // insert some text
 
        // Now draw the image
        osSetDynamicTextureData( "", "vector", CommandList, SetupScreen, 0 );
    }
}
Notes
Please note that as of November 2009, some of the elements in the array (to wit, the STATS_*_MS values) do not appear to contain useful information.

Notes that "STATS_TOTAL_PRIMS" reports worn prims also.

Code provided by Implementor:  Godfrey and Implemented in Git Hash 9d05962029fe864408d287d5fa7ef81f312e098a, - Rev 11601


STATS_TIME_DILATION 0 STATS_IMAGE_MS 11
STATS_SIM_FPS 1 STATS_OTHER_MS 12
STATS_PHYSICS_FPS 2 STATS_IN_PACKETS_PER_SECOND 13
STATS_AGENT_UPDATES 3 STATS_OUT_PACKETS_PER_SECOND 14
STATS_ROOT_AGENTS 4 STATS_UNACKED_BYTES 15
STATS_CHILD_AGENTS 5 STATS_AGENT_MS 16
STATS_TOTAL_PRIMS 6 STATS_PENDING_DOWNLOADS 17
STATS_ACTIVE_PRIMS 7 STATS_PENDING_UPLOADS 18
STATS_FRAME_MS 8 STATS_ACTIVE_SCRIPTS 19
STATS_NET_MS 9 STATS_SCRIPT_LPS 20
STATS_PHYSICS_MS 10
Personal tools
General
About This Wiki