08-07-2008 05:23
I've been using the following script to keep a watch on my sim. It has been quite faithful until early this morning. The script indicated that there were 2 sim crashes and I verified this by avatars being automatically logged off during this time frame. Is there anything that would cause this script to give a false indication that the sim crashed? I contacted LL support and they maintain that their logs show no downtime and that there was persistent avatar presence during this time frame. Thanx. :-)


/////////////////////////////////////////
//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;
//2004-08-27T00:56:21.785886Z
string date;
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 tdelay 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;
}
}