0

最近、セカンドライフを始めました。そして、LSL でコーディングを開始したいと考えていました。

私のプログラムでは、メモ帳ファイルで言及した色に従ってアバターのシャツの色を変更したいのですが、赤から緑、青などのように、値をランダムに変更し続けています(値をメモ帳に書き込んでいます)。

しかし、問題は、LSL (Linden Scripting Lang) を使用して (ローカル HDD に保存されている) メモ帳ファイルを Second life に読み込む方法に行き詰まっていることです。ここで提案されているように、ローカルのApacheサーバーを設定して読み取ろうとしましたが、インターネット経由でホストされているWebサーバーではないと認識されないため、それを行うことはできません.

NoteCard を使用して実行できますか?

4

4 に答える 4

2

基本的に、Second Life 内で llHTTPRequest を使用して、Web サーバーから何かを読み取ります。

最も洗練された解決策は、PHP と MySQL を使用して Web インターフェイスを作成することです。素敵なスクリプトはこちら: https://github.com/jgpippin/sldb

データベースを使用しないさらに単純なオプション:

  1. green のような 1 行だけの color.txt というテキスト ファイルを作成します。
  2. FTP を使用してサーバーにテキスト ファイルをアップロードします。FileZilla をお勧めします
  3. PHP ファイルを作成します (以下のコード)。
  4. Second Life で PHP ファイルを読み取るオブジェクトを作成する
  5. 結果で何かをする

このコードの概念と基礎についてhttp://lslwiki.net/lslwiki/wakka.php?wakka=ExamplellHTTPRequestに感謝します:

PHP ファイル sl.php

<?php
$color = file_get_contents('http://yourdomain.com/color.txt');
echo "Your color selection is " . $color . ".\n";
?>

オブジェクト内のスクリプト

key requestid; // check if we're getting the result we've asked for
// all scripts in the same object get the same replies

default
{
    touch_start(integer number)
    {
        requestid = llHTTPRequest("http://yourdomain.com/sl.php", 
            [HTTP_METHOD, "POST",
             HTTP_MIMETYPE, "application/x-www-form-urlencoded"],
            "");
    }

    http_response(key request_id, integer status, list metadata, string body)
    {
        if (request_id == requestid)
            llWhisper(0, body);
    }
}

もちろん、出力をささやくだけでなく、その値で何かをしたいでしょう。たとえば、一般的な色名のリストを HEX 値または他の色形式に変換し、それを使用して問題のオブジェクトの色を変更します。しかし、お分かりいただけると思いますが、何かをテキスト文書から LSL に読み込むことは可能です。

また、FTP の代わりに Dropbox を使用して簡単にファイルを Web にアップロードしたい場合は、パブリック リンクを取得してから、最後に?dl=1を追加して、ファイルを表示するのではなく強制的に開く必要があります。追加の HTML 要素が添付された Web ページとしてブラウザに表示されます。たとえば、次のように使用します。

 $color = file_get_contents('https://www.dropbox.com/s/i0wpav054k5uept/color.txt?dl=1');

お役に立てれば!

于 2014-08-02T05:56:09.190 に答える
0

LSL はオンラインでなくても実行できる必要があるため、ローカル Web サーバーとローカル ファイルを LSL で使用することはできません。

使用可能な唯一の代替手段は、インターネットからアクセスできるようにテキスト ファイルを公開することです。完全な Web ホスティングを取得したくない場合は、パブリック Dropbox フォルダーを使用できるはずです。

于 2014-05-29T09:56:46.473 に答える
0

LSL を使用してコンピュータ上のファイルを読み取ることはできません - 少なくとも公式にはそうではありません。理論的には、サードパーティの Second Life ビューアで可能です。しかし、実際にそうしている人はいないと思います。サードパーティ ビューアー ディレクトリ にリストされているビューアーを調べることで、自分で確認できます。

現状では、データを Second Life ノートカードに移動するか、インターネット経由でアクセスできるようにホストする必要があります。ノートカードからのデータの読み取りは非常に簡単です。ファイルをオンラインでホストするのはもう少し複雑で、検索に LSL のHTTP 関数を使用する必要があります。

于 2014-05-30T06:55:25.783 に答える