/////////////////////////////////////////////////////////////////////////// // Copyright (C) Wizardry and Steamworks 2013 - License: GNU GPLv3 // // Please see: http://www.gnu.org/licenses/gpl.html for legal details, // // rights of fair usage, the disclaimer and warranty conditions. // /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// // Copyright (C) 2011 Wizardry and Steamworks - License: GNU GPLv3 // /////////////////////////////////////////////////////////////////////////// string wasProgress(float percent, integer length, list symbols) { percent /= (integer)((float)100.0/(length)); string p = llList2String(symbols,0); integer itra = 0; do { if(itra>percent-1) p += llList2String(symbols,2); else p += llList2String(symbols,1); } while(++itra; } float total_time; float time_elapsed; default { link_message(integer sender, integer num, string str, key id) { if(str != "progress") return; total_time = num; state progress; } } state progress { state_entry() { llSetTimerEvent(1); } timer() { llSetText("Sending: " + wasProgress(100*time_elapsed/total_time, 10, ["[", "█", "░", "]"]), wasPercentToGradient(100*time_elapsed/total_time, "rg"), 1); ++time_elapsed; } link_message(integer sender, integer num, string str, key id) { if(str != "progress") jump reset; llSetTimerEvent(0); time_elapsed = 0; total_time = num; llSetTimerEvent(1); return; @reset; if(str != "reset") return; llSetText("", <1,1,1>, 1.0); llResetScript(); } }