ソラマメブログ

2008年06月21日

リモートロードを試してみた(その2)

前の記事を書いた後 ん~ でも これって スクリプトをコピーするとその動的な環境までコピーされる ということじゃないと成り立たないよな
-----
と 思い 参照した記事
-----
Makapu@BlackSheep-LSL:リモートロード
-----
をもう一度見てみると
-----
検証するためのコードがちゃんと入っていた
-----
ふむ~ これで試してみるか
-----

-----
前は ただの初期スクリプトのままだったんだが data をデータを保存する
//
// File: data.lsl
// Date Author number of nodes
// 2008/6/21 walkinglint 19
//
list data = [];
default {
link_message(integer sender, integer num, string str, key id) {
if (str == "set") {
integer i = llListFindList(data, [(string)id]);
if (i != -1) {
data = llListReplaceList(data, [(string)id, num], i, i+1);
} else {
data += [(string)id, num];
}
} else if (str == "get") {
integer i = llListFindList(data, [(string)id]);
if (i != -1) {
llMessageLinked(sender, llList2Integer(data, i+1), "ret", id);
} else {
llMessageLinked(sender, num, "ret", id);
}
}
}
}
にし 起動時に(data 内に)test は128 というデータを入れ クリックすると それを取り出すスクリプト date_set_and_get(date は data の間違い w)
//
// File: data_set_and_get.lsl
// Date Author number of nodes
// 2008/6/21 walkinglint 21
//
set_value(string keyword, integer value) {
llMessageLinked(LINK_THIS, value, "set", (key)keyword);
}
get_value(string keyword, integer default_value) {
llMessageLinked(LINK_THIS, default_value, "get", (key)keyword);
}
default {
state_entry() {
set_value("test", 128);
}
touch_start(integer detected) {
get_value("test", 0);
}
link_message(integer sender, integer num, string str, key id) {
if (str == "ret") {
llSay(0, "Keyword:" + (string)id + "=" + (string)num);
}
}
}
を入れ
-----

-----
クリック
-----
data に test は128 というデータが入っていることを確認すると同時に data を保存(データの設定自体は起動時に行われているので実際はタイミングの問題は存在しないのだが 1秒後に保存するようにしておいた)
-----

-----
本体の data を削除した後 save_data の方をクリックし 本体に data をロードした後 もう一度本体をクリック
-----
値が保存されていればここで test=128 と出るはず なんだけど 0?
-----
ん~ というわけで 最初の記事をコメント欄まで読んでみると
-----
そうですね、リモートロードはあくまでもスクリプトの「コード」をコピーするだけですので、変数の中身をそのまま送れるわけではありません・・・。
ということは、サンプルに載せてるコードは真っ赤な嘘ということに(><;
何を勘違いして書いたんだか、ちとこれはお馬鹿過ぎですね。
-----
あれれ~ あはは でもいろいろ勉強させていただきました ^^

同じカテゴリー(walking のスクリプティング講座)の記事
 プロフィール写真の表示に問題 (2009-11-30 20:55)
 ミニ太陽系 (2009-03-21 06:03)
 関数から文字列を返したら何か問題になる? (2009-03-18 18:02)
 llListFindList って型って関係ないんだったっけ (2009-03-18 14:02)
 夏時間(PDT)の実験 (2009-03-08 22:04)
 15パズルの作り方(その3) (2009-03-08 06:03)
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。