2010年06月03日

曜日ごとにテクスチャを切り替える

テクスチャを毎日決まった時間ごとに切り替える方法を探しています。
一定時間が経つとテクスチャが切り替わるスクリプトを応用させて、
ムリやり86,400秒経ったらテクスチャを変えるという方法もしてみたのですが
どうもうまく作動しなくて…。

やりたいことは月曜から日曜まで、毎日決まった時間(たとえば日本時間の朝の5時)に
その曜日のテクスチャに切り替えて表示するということです。
従って表示させたいテクスチャの枚数は、各曜日用の7枚になります。

もし方法をおわかりになる方がいらっしゃいましたら、ぜひ教えてください。
よろしくお願いします。



同じカテゴリー(スクリプト関連)の記事画像
オブジェクトのリンクとタッチで開く扉
自動チャットを止めたい
テレポートするとアニメーションが解除される
同じカテゴリー(スクリプト関連)の記事
 テクスチェンジのHUDについて (2015-07-01 04:51)
 モール用のプリムカウンターを探しています (2014-11-29 20:09)
 連続するアニメーションの処理 (2014-08-24 03:23)
 オブジェクトの上にフローティングテキストを出す。 (2014-08-22 16:46)
 チャットログの盗聴について (2014-02-03 03:43)
 椅子に座った後で位置調整できるスクリプト (2013-03-24 16:37)

Posted by しなちーく  at 00:04 │Comments(5)スクリプト関連

この記事へのコメント
日付の計算をし、曜日を出してあげれば可能です。
要は日付表示もする時計作れば良いって事ですね。
Posted by MaayaYohkoh at 2010年06月03日 02:14
なるほど。。。
それで具体的にはどのようなスクリプトを書けばいいのでしょう?
スクリプトのことはあまりよくわかっていないので、もしよろしければ教えていただけると幸いです。
Posted by しなちーく at 2010年06月03日 02:25
integer jpt = 15; //24時は 0 と書く
integer side = ALL_SIDES;

list weeklytexture = [
"texturename1", //1番目の画像
"texturename2", //2番目
"texturename3", //3番目
"texturename4",
"texturename5",
"texturename6",
"texturename7"];

integer higawari;
integer check;

default
{
state_entry()
{
llSetTimerEvent(60);
llSetTexture(llList2String(weeklytexture, higawari), side);
}

timer()
{
integer hours = (integer)llGetGMTclock() / 3600 + 9;
if(hours >= 24) hours = hours - 24;
if(hours == jpt && check != hours)
{
higawari++;
if(higawari >= 7) higawari = 0;
llSetTexture(llList2String(weeklytexture, higawari), side);
}
check = hours;
}
}


//ここまで


★スクリプトの概要・・

曜日を計算するのはめんどうなので、
決められた時刻が訪れるたびに
画像を切り替えていくという寸法。



★書きかえ手順

integer jpt = 15; //24時は 0 と書く

切り替えたい日本時間(何時何分のうちの何時)を決めて
jptの数値を書き換える。



integer side = ALL_SIDES;

プリムのすべての面に画像表示するならば
ALL_SIDES
どれかひとつの面だけ表示するならば
0から5の間で好きに書きかえる。
どの面に表示されるかは実際に書きかえてみてネ!



list weeklytexture = [];

プリムの中にテクスチャを7枚いれて
それらの名前を表示したい順番どおりに
texturename1から7のところを書き換える。
テクスチャの名前は " " で囲う。



スクリプトを保存すると
1番目の画像がまず貼り付けられます。
決めた時間(例ならば15時)が訪れるたびに
2番目の画像に切り替わっていき
7番目の次は、1番目の画像に戻るので
曜日で決められたテクスチャを毎日切り替るコトを実現します。
Posted by しゃだだしゃだだ at 2010年06月03日 15:23
訂正のお知らせです・・

13行目
integer check;



integer check = -1;

としてください。

画像を切り替えたい時間を現在の時間と同じにすると
さっそく2番目の画像に切り替わるので
テストになっていいかもしれません・・

(´・∀・`)ありがとうございました!
Posted by しゃだだしゃだだ at 2010年06月03日 15:53
おおっ、まさに自分が望んでいたものはコレです!
詳しい解説もしていただきありがとうございます!!
早速こちらのスクリプトを入れてみたら、できましたー。
本当にありがとうございます!
Posted by しなちーく at 2010年06月03日 23:03
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。