在第二次生命中读取记事本文件?

时间:2014-05-29 07:31:29

标签: linden-scripting-language secondlife

最近我开始玩Second Life。并希望在LSL中开始编码。

在我的程序中,我想根据记事本文件中提到的颜色更改我的头像衬衫的颜色,我会不断随意更改值(将值写入记事本),如红色到绿色或蓝色等

但问题是我被困在如何使用LSL(Linden Scripting Lang)将Notepad文件(存储在我的本地硬盘上)读入第二人生。我尝试通过设置我的本地apache服务器将其读作suggested here,但我们不能这样做,因为它不被认为不是通过互联网托管的网络服务器。

我们可以使用NoteCard吗??

4 个答案:

答案 0 :(得分:2)

基本上,您希望在Second Life中使用llHTTPRequest从Web服务器读取内容。

最优雅的解决方案是使用PHP和MySQL创建Web界面。这里有一个很好的脚本:https://github.com/jgpippin/sldb

更简单的选项,没有任何数据库:

  1. 创建一个名为color.txt的文本文件,只有一行,如绿色
  2. 使用FTP将文本文件上传到您的服务器,我推荐使用FileZilla
  3. 创建一个PHP文件(下面的代码)
  4. 在Second Life中创建一个对象以读取您的PHP文件
  5. 使用结果执行某些操作
  6. 感谢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中的内容。

    此外,如果您想使用Dropbox而不是FTP将文件更容易上网,您只需获取公共链接,然后将?dl = 1 添加到最后要打开的文件,而不是在浏览器中显示为附加了额外HTML内容的网页。例如,您可以使用:

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

    希望这有帮助!

答案 1 :(得分:0)

由于即使您不在线,LSL也需要能够运行,因此本地Web服务器和本地文件不能与LSL一起使用。

唯一可用的替代方法是发布文本文件,以便可以从互联网访问。如果您不想获得完整的Web托管,则应该可以使用Public Dropbox文件夹。

答案 2 :(得分:0)

您无法使用LSL读取计算机上的文件 - 至少不是正式的。从理论上讲,第三方Second Life查看器可以让你。不过,我认为他们中的任何一个都没有。您可以通过调查the Third-Party Viewer Directory中列出的观看者来查看自己。

目前,您只需将数据移至Second Life记事卡或以可通过互联网访问的方式托管。从记录卡中读取数据是very easy。在线托管您的文件有点复杂,涉及使用LSL HTTP functions进行检索。

答案 3 :(得分:0)

运行机器人将允许您编写头像操作脚本,例如创建记事卡。付费机器人托管服务的提供商很少,并且有一些提供商可以托管和改编自己的机器人,但是由于您试图快速并保持本地化,因此建议您在自己的计算机上运行。检查the wiki上的服务列表,特别注意功能表中的“编程”子标题。某些服务将过时(Ahh SL Priority Drift!),因此请联系提供商再次检查关键功能,例如在链接对象中编辑便签卡的功能或消息传递功能的范围。

设置完成后,可能需要进行一些调整以确保记录卡得到正确处理。在大规模使用此功能之前,一定要彻底测试其行为,SL会对所有形式的通信施加限制。然后,最后,当您的机器人在线时,即使您不在网上,您也将具有一种罕见且丰富的功能,可以通过脚本编写笔记卡。