// string car_type = "Free"; float min_time = 60.0; // integer cmd_channel = 870; integer listen_hdl = 0; integer primid; list laptmList; list usridList; list unameList; num_color(string color) { integer i; for (i=0; i<8; i++) { llMessageLinked(primid+8-i, -1, color, ""); llSleep(0.2); } } num_display(float raptime) { integer time = (integer)raptime; integer sub = (integer)((raptime-time)*100); integer sec = time%60; integer min = time/60; integer sub_o = sub%10; integer sub_d = sub/10; integer sec_o = sec%10; integer sec_d = sec/10; integer min_o = min%10; integer min_d = min/10; llMessageLinked(primid+8, sub_o, "", ""); llSleep(0.2); llMessageLinked(primid+7, sub_d, "", ""); llSleep(0.2); llMessageLinked(primid+5, sec_o, "", ""); llSleep(0.2); llMessageLinked(primid+4, sec_d, "", ""); llSleep(0.2); llMessageLinked(primid+2, min_o, "", ""); llSleep(0.2); llMessageLinked(primid+1, min_d, "", ""); } shout_time(string title, float raptime) { integer time = (integer)raptime; integer sub = (integer)((raptime-time)*100); integer sec = time%60; integer min = time/60; string minsec = (string)min+":"+(string)sec+"."+(string)sub; llShout(0, title+" "+ minsec); } init_lsl() { primid = 1; laptmList = [5999.0]; usridList = [""]; unameList = [""]; num_color("0.1 1.0 1.0"); float raptime = llList2Float(laptmList, 0); num_display(raptime); if (listen_hdl!=0) llListenRemove(listen_hdl); listen_hdl = llListen(cmd_channel, "", NULL_KEY, ""); } default { state_entry() { init_lsl(); //llSay(0, "in state_entry"); } on_rez(integer param) { llResetScript(); init_lsl(); //llSay(0, "in on_rez"); } touch_start(integer n) { integer len = llGetListLength(laptmList); if (llDetectedKey(0)!=llGetOwner() && len>6) len = 6; integer i; for (i=0; imin_time) { integer idx = -1; integer len = llGetListLength(laptmList); integer i; for (i=0; i=lap) { string usr = llList2String(usridList, i); if (usr==usrid) jump break1; } else { idx = i; jump break1; } } @break1; // if (idx>=0) { list newlap = [laptm]; list newusr = [usrid]; list newunm = [uname]; laptmList = llListInsertList(laptmList, newlap, idx); usridList = llListInsertList(usridList, newusr, idx); unameList = llListInsertList(unameList, newunm, idx); integer fnd = -1; for (i=idx+1; i<=len; i++) { string usr = llList2String(usridList, i); if (usr==usrid) { fnd = i; jump break2; } } @break2; if (fnd>=0) { laptmList = llDeleteSubList(laptmList, fnd, fnd); usridList = llDeleteSubList(usridList, fnd, fnd); unameList = llDeleteSubList(unameList, fnd, fnd); } } if (idx==0) { num_color("1.0 0.1 0.1"); num_display(laptm); llSleep(10.0); num_color("0.1 1.0 1.0"); } } } else if (cmd=="RESET" && car_type==type) { init_lsl(); } } }