12-26-2007 09:06
/15/0d/32000/1.html

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";
}

}
}