hmm, i'm sure I"m doing something wrong in using this from the script library.
See script below. Paste it into a prim.
Watch time. After 30 seconds, the time inevitably leaps to 1:35 seconds. Then at the 2 minute mark, the time goes back to 1 minute (1:00)
Thought it was just my eyeballs at 4 am this morning. But no, even with fresh (well, coffee-enhanced anyway) eyeballs, I still see the problem.
_________________________________
//variables
string sElapsed;
string sStart;
string workingtext;
//functions
string elapsed(string sTime)
{
if (sTime == "" )
{
sTime = llGetTimestamp();
}
else
{
string sH;
string sM;
string sS;
string sTimeEnd = llGetTimestamp();
integer iHour = (integer)llGetSubString( sTimeEnd, 11, 12 );
integer iMin = (integer)llGetSubString( sTimeEnd, 14, 15 );
float fSec = (float)llGetSubString( sTimeEnd, 17, 22 );
integer iHour_start = (integer)llGetSubString( sTime, 11, 12 );
integer iMin_start = (integer)llGetSubString( sTime, 14, 15 );
float fSec_start = (float)llGetSubString( sTime, 17, 22 );
if (iHour < iHour_start)
{
iHour += 24;
}
if (iMin < iMin_start)
{
iMin += 60;
}
if (fSec < fSec_start)
{
fSec += 60.0;
}
iHour = iHour - iHour_start;
iMin = iMin - iMin_start;
fSec = fSec - fSec_start;
if (iHour < 10)
{
sH = "0";
}
if (iMin < 10)
{
sM = "0";
}
if (fSec < 10.0)
{
sS = "0";
}
sTime = sM + (string)iHour + ":" + sM + (string)iMin + ":" + sS + (string)fSec;
}
return sTime;
}
//_______________________
default {
on_rez(integer params) {
llResetScript();
}
state_entry() {
sStart = elapsed(""
;llSetText("W O R K I N G", <1,0,0>, 1.0);
llSetTimerEvent(5);
workingtext = "red";
}
timer() {
sElapsed = elapsed(sStart);
if (workingtext == "red"
{llSetText("W O R K I N G\n\" + sElapsed, <1,1,1>, 1.0);
workingtext = "white";
}
else if (workingtext == "white"
{llSetText("W O R K I N G\n\" + sElapsed, <1,0,0>, 1.0);
workingtext = "red";
}
}
}