Sim Crash Logger
//********************************************************
//This Script was pulled out for you by YadNi Monde from the SL FORUMS at http://forums.secondlife.com/forumdisplay.php?f=15, it is intended to stay FREE by it s author(s) and all the comments here in ORANGE must NOT be deleted. They include notes on how to use it and no help will be provided either by YadNi Monde or it s Author(s). IF YOU DO NOT AGREE WITH THIS JUST DONT USE!!!
//********************************************************
/////////////////////////////////////////
//SIM CRASH/REBOOT LOGGER
//by: Kyrah Abattoir
/////////////////////////////////////////
integer timering = 10;//the polling rate, put the speed you wish, in seconds
//there we go...
integer UNIX;
string _buffer;
list log;
integer span = 0;
float fps;
float dilation;
integer crash = 0;
string date;
//2004-08-27T00:56:21.785886Z
default
{
state_entry()
{
llSetTimerEvent(timering);//starting our timer
}
timer()
{
string timestamp = llGetTimestamp();
list temp = llParseString2List(timestamp,["T",":",":","."],[]);
integer _hour = llList2Integer(temp,1) + 4;
if(_hour > 24) //getting the hours
_hour = _hour - 24 ;
string _date = llList2String(temp,0);
integer _min = llList2Integer(temp,2);
integer _sec = llList2Integer(temp,3);
string buffer;
if(date == _date) //daily reset of the average fps and dilation
span++;
else
{
span = 1;
date = _date;
fps = 0;
dilation = 0;
}
fps += llGetRegionFPS();
dilation += llGetRegionTimeDilation();
integer avg_FPS = (integer)(fps/span);
string avg_dilation= llGetSubString((string)(dilation/span),0,3);
buffer += llGetRegionName();
buffer += "\n FPS:"+(string)avg_FPS;
buffer += " dil. :"+(string)avg_dilation;
//buffer += "\n" + llDumpList2String(log,"\n");
integer _UNIX = _sec + _min * 60 + _hour * 3600;//making our timestamp
if (_UNIX - UNIX > timering + 5 && UNIX != 0)//okay the delay has been waaay too olong, it probably crashed or rebooted
{
crash++;
log += (string)_date + " - " + (string)_hour+ ":"+(string)_min+":"+(string)_sec;
if(llGetListLength(log) > 9)
log = llDeleteSubList(log,0,0);
}
buffer += "\n sim crashes: " + (string)crash + "\n last crash: \n" + llDumpList2String(log,"\n");
if(_buffer != buffer); //display
{
llSetText(buffer,<1,1,1>,1.0);
_buffer = buffer;
}
UNIX = _UNIX;
}
}