個人的に10日おきに通知がほしいことがあって、そういうのを作りました。
毎月10、20、30日にメッセージを送ります。
2月は30日がありませんが、代わりに3月1日に送ります。
仕組みは、タイムスタンプを調べて、日付の1の位の数が減ると通知します。
10日おきに「9」→「0」となって1の位の数が減ることを利用するのです。
default { state_entry() { llSetTimerEvent(TimeCycle); // 一定時間ごとに } timer() { integer date1 = (integer)llGetSubString(llGetTimestamp(),9,9); // タイムスタンプから数字をとりだす;書式は"2014-04-30..." if (date1 < Date1) llInstantMessage(llGetOwner(),Message); // 前回より減ったらメッセージを送信 Date1 = date1; // 数字を記録 } }2月の終わりでは、2「8」(閏年は「9」)日から3月「1」日に変わるので、やはり1の位の数が減ります。
他の月では、30日にメッセージを出したあと、月末3「0」または3「1」→翌月「1」となって、数字は減りません。
タイムスタンプは世界標準時間なので、日本時間やSL時間とは時差があります。
また、もし、2月でも月末までに通知が必要な場合などでは、別の条件を考えないといけません。
というわけで、このスクリプトは「だいたい10日おき」と条件がゆるいときにしか使えないかも(^^;;