// SPDX-License-Identifier: MIT // Copyright (c) 2026 Incoprea // Run a short timeline by deadlines // Not compiled or tested in-world // Setup: Put in a spare prim you own. Touch to start the three-job timeline. Touch again to restart it. // Stop / restore: Disable or remove the script. It only reports to its owner and does not change prim properties. Reset clears its temporary state. // Notes: Uses elapsed deadlines instead of assuming perfect timer intervals. It processes at most the three configured jobs per event. // License: see LICENSE in this distribution. // Original Incoprea example. MIT. Owner-only calculation; no scene changes. list OFFSETS = [1.0,3.0,6.0]; list LABELS = ["Prepare", "Preview", "Complete"]; integer nextJob; float started; default { touch_start(integer detectedCount) { if (llDetectedKey(0) != llGetOwner()) return; nextJob = 0; started = llGetTime(); llSetTimerEvent(0.25); llOwnerSay("Timeline started."); } changed(integer change) { if (change & CHANGED_OWNER) llResetScript(); } timer() { float elapsed = llGetTime()-started; while (nextJob < 3 && elapsed >= llList2Float(OFFSETS,nextJob)) { llOwnerSay(llList2String(LABELS,nextJob)); ++nextJob; } if (nextJob >= 3) llSetTimerEvent(0.0); } }