Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
archiv:opensim:downloads:scripts:binary_clock [2024/01/24 16:39] – Externe Bearbeitung 127.0.0.1 | archiv:opensim:downloads:scripts:binary_clock [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== Binary Clock ===== | ||
+ | |||
+ | < | ||
+ | // Binary Clock Script | ||
+ | // By Fox Diller | ||
+ | // OMG INSANITY! | ||
+ | |||
+ | list bTime; | ||
+ | list oTime; | ||
+ | |||
+ | integer token; | ||
+ | |||
+ | string dec2bin(integer dec) | ||
+ | { | ||
+ | if (dec == 0) return " | ||
+ | if (dec == 1) return " | ||
+ | if (dec == 2) return " | ||
+ | if (dec == 3) return " | ||
+ | if (dec == 4) return " | ||
+ | if (dec == 5) return " | ||
+ | if (dec == 6) return " | ||
+ | if (dec == 7) return " | ||
+ | if (dec == 8) return " | ||
+ | if (dec == 9) return " | ||
+ | return " | ||
+ | } | ||
+ | |||
+ | BuildClock() | ||
+ | { | ||
+ | integer shiftraw = (integer)llGetWallclock(); | ||
+ | |||
+ | integer hours = shiftraw / 3600; | ||
+ | integer minutes = (shiftraw % 3600) / 60; | ||
+ | integer seconds = shiftraw % 60; | ||
+ | |||
+ | bTime = [hours | ||
+ | | ||
+ | | ||
+ | |||
+ | } | ||
+ | |||
+ | displayBDC() | ||
+ | { | ||
+ | integer current_rowA = llList2Integer(bTime, | ||
+ | integer old_rowA = llList2Integer(oTime, | ||
+ | if (current_rowA != old_rowA) | ||
+ | { | ||
+ | string rowA = dec2bin(current_rowA); | ||
+ | integer Acol0 = (integer)llGetSubString(rowA, | ||
+ | integer Acol1 = (integer)llGetSubString(rowA, | ||
+ | llMessageLinked(2, | ||
+ | llMessageLinked(3, | ||
+ | } else if (!current_rowA) { | ||
+ | llMessageLinked(2, | ||
+ | llMessageLinked(3, | ||
+ | } | ||
+ | |||
+ | integer current_rowB = llList2Integer(bTime, | ||
+ | integer old_rowB = llList2Integer(oTime, | ||
+ | if (current_rowB != old_rowB) | ||
+ | { | ||
+ | string rowB = dec2bin(current_rowB); | ||
+ | integer Bcol0 = (integer)llGetSubString(rowB, | ||
+ | integer Bcol1 = (integer)llGetSubString(rowB, | ||
+ | integer Bcol2 = (integer)llGetSubString(rowB, | ||
+ | integer Bcol3 = (integer)llGetSubString(rowB, | ||
+ | llMessageLinked(4, | ||
+ | llMessageLinked(5, | ||
+ | llMessageLinked(6, | ||
+ | llMessageLinked(7, | ||
+ | } else if (!current_rowB) { | ||
+ | llMessageLinked(4, | ||
+ | llMessageLinked(5, | ||
+ | llMessageLinked(6, | ||
+ | llMessageLinked(7, | ||
+ | } | ||
+ | |||
+ | |||
+ | integer current_rowC = llList2Integer(bTime, | ||
+ | integer old_rowC = llList2Integer(oTime, | ||
+ | if (current_rowC != old_rowC) | ||
+ | { | ||
+ | string rowC = dec2bin(current_rowC); | ||
+ | integer Ccol0 = (integer)llGetSubString(rowC, | ||
+ | integer Ccol1 = (integer)llGetSubString(rowC, | ||
+ | integer Ccol2 = (integer)llGetSubString(rowC, | ||
+ | llMessageLinked(8, | ||
+ | llMessageLinked(9, | ||
+ | llMessageLinked(10, | ||
+ | } else if (!current_rowC) { | ||
+ | llMessageLinked(8, | ||
+ | llMessageLinked(9, | ||
+ | llMessageLinked(10, | ||
+ | } | ||
+ | |||
+ | integer current_rowD = llList2Integer(bTime, | ||
+ | integer old_rowD = llList2Integer(oTime, | ||
+ | if (current_rowD != old_rowD) | ||
+ | { | ||
+ | string rowD = dec2bin(current_rowD); | ||
+ | integer Dcol0 = (integer)llGetSubString(rowD, | ||
+ | integer Dcol1 = (integer)llGetSubString(rowD, | ||
+ | integer Dcol2 = (integer)llGetSubString(rowD, | ||
+ | integer Dcol3 = (integer)llGetSubString(rowD, | ||
+ | llMessageLinked(11, | ||
+ | llMessageLinked(12, | ||
+ | llMessageLinked(13, | ||
+ | llMessageLinked(14, | ||
+ | } else if (!current_rowD) { | ||
+ | llMessageLinked(11, | ||
+ | llMessageLinked(12, | ||
+ | llMessageLinked(13, | ||
+ | llMessageLinked(14, | ||
+ | } | ||
+ | |||
+ | integer current_rowE = llList2Integer(bTime, | ||
+ | integer old_rowE = llList2Integer(oTime, | ||
+ | if (current_rowE != old_rowE) | ||
+ | { | ||
+ | string rowE = dec2bin(current_rowE); | ||
+ | integer Ecol0 = (integer)llGetSubString(rowE, | ||
+ | integer Ecol1 = (integer)llGetSubString(rowE, | ||
+ | integer Ecol2 = (integer)llGetSubString(rowE, | ||
+ | llMessageLinked(15, | ||
+ | llMessageLinked(16, | ||
+ | llMessageLinked(17, | ||
+ | } else if (!current_rowE) { | ||
+ | llMessageLinked(15, | ||
+ | llMessageLinked(16, | ||
+ | llMessageLinked(17, | ||
+ | } | ||
+ | |||
+ | integer current_rowF = llList2Integer(bTime, | ||
+ | integer old_rowF = llList2Integer(oTime, | ||
+ | if (current_rowF != old_rowF) | ||
+ | { | ||
+ | string rowF = dec2bin(current_rowF); | ||
+ | integer Fcol0 = (integer)llGetSubString(rowF, | ||
+ | integer Fcol1 = (integer)llGetSubString(rowF, | ||
+ | integer Fcol2 = (integer)llGetSubString(rowF, | ||
+ | integer Fcol3 = (integer)llGetSubString(rowF, | ||
+ | llMessageLinked(18, | ||
+ | llMessageLinked(19, | ||
+ | llMessageLinked(20, | ||
+ | llMessageLinked(21, | ||
+ | } else if (!current_rowF) { | ||
+ | llMessageLinked(18, | ||
+ | llMessageLinked(19, | ||
+ | llMessageLinked(20, | ||
+ | llMessageLinked(21, | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | default | ||
+ | { | ||
+ | touch_start(integer total_number) | ||
+ | { | ||
+ | if (!token && llDetectedKey(0) == llGetOwner()) | ||
+ | { | ||
+ | oTime = []; | ||
+ | bTime = []; | ||
+ | llSetTimerEvent(1.0); | ||
+ | token = 1; | ||
+ | llOwnerSay(" | ||
+ | } | ||
+ | |||
+ | else if (token && llDetectedKey(0) == llGetOwner()) | ||
+ | { | ||
+ | llSetTimerEvent(0); | ||
+ | token = 0; | ||
+ | llOwnerSay(" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | timer() | ||
+ | { | ||
+ | bTime = oTime; | ||
+ | BuildClock(); | ||
+ | displayBDC(); | ||
+ | } | ||
+ | } | ||
+ | </ | ||