時報を鳴らすスクリプト
概要
時報を鳴らし、時刻(日本時間)を教えてくれるスクリプトです。土地に設置することも可能ですし、装着アイテム内に組み込んでもOKです。
- 00分、15分、30分、45分のそれぞれに、時報を「鳴らす / 鳴らさない」の設定が可能
- 00分、15分、30分、45分のそれぞれに、個別にサウンドを設定可能
- 00分、15分、30分、45分のそれぞれに、時刻を(チャットで)「教える / 教えない」の設定が可能
スクリプトコード
- timesignal.lsl
// Sounds list sounds_on = [ TRUE, // <<< Modify FALSE, // <<< Modify FALSE, // <<< Modify FALSE // <<< Modify ]; list sounds_name = [ "00.sound", // <<< Modify "15.sound", // <<< Modify "30.sound", // <<< Modify "45.sound" // <<< Modify ]; uuPlaySound(integer num){ if (llList2Integer(sounds_on, num) == TRUE){ llPlaySound(llList2String(sounds_name, num), 1.0); } } // Time Annoucement list announcements_on = [ TRUE, // <<< Modify FALSE, // <<< Modify TRUE, // <<< Modify FALSE // <<< Modify ]; uuTimeAnnouncement(integer num, integer h, integer m){ if (llList2Integer(announcements_on, num) == TRUE){ llSay(0, "ただいまの時刻は" + (string)h + "時" + (string)m + "分です。"); } } // Others integer t; integer hours; integer minutes; integer seconds; // Script default{ state_entry(){ llSetTimerEvent(1.0); } timer(){ t = (integer)llGetWallclock(); hours = t / 3600 + 16; if (hours >= 24){ hours -=24; } minutes = (t % 3600) / 60; seconds = t % 60; if (seconds == 0 && minutes == 0){ uuPlaySound(0); uuTimeAnnouncement(0,hours, minutes); }else if (seconds == 0 && minutes == 15){ uuPlaySound(1); uuTimeAnnouncement(1, hours, minutes); }else if (seconds == 0 && minutes == 30){ uuPlaySound(2); uuTimeAnnouncement(2, hours, minutes); }else if (seconds == 0 && minutes == 45){ uuPlaySound(3); uuTimeAnnouncement(3, hours, minutes); } } }
スクリプトの解説と設定方法
Soundsの設定
音を鳴らすかどうか
list sounds_on = [ TRUE, // <<< Modify FALSE, // <<< Modify FALSE, // <<< Modify FALSE // <<< Modify ];
- TRUE……音を鳴らします
- FALSE…..音を鳴らしません
上から順に「00分」「15分」「30分」「45分」に音を鳴らすかどうかを表しています。
サウンドファイル
list sounds_name = [ "00.sound", // <<< Modify "15.sound", // <<< Modify "30.sound", // <<< Modify "45.sound" // <<< Modify ];
上から順に「00分」「15分」「30分」「45分」に鳴らすサウンド名を表しています。鳴らさない場合はそのままでも構いませんし、「”“」と空白に設定しても構いません。
サウンドを鳴らすユーザ関数
uuPlaySound(integer num){ if (llList2Integer(sounds_on, num) == TRUE){ llPlaySound(llList2String(sounds_name, num), 1.0); } }
特に変更するところはありません。
時刻を知らせる機能の設定
時刻を知らせるかどうか
list announcements_on = [ TRUE, // <<< Modify FALSE, // <<< Modify TRUE, // <<< Modify FALSE // <<< Modify ];
- TRUE……時刻を知らせる
- FALSE…..時刻を知らせない
上から順に「00分」「15分」「30分」「45分」に時刻を知らせるかどうかを表しています。