0

最近我开始玩第二人生。并想开始在 LSL 中对其进行编码。

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

但问题是我被困在如何使用 LSL(Linden Scripting Lang)将记事本文件(存储在我的本地 HDD 上)读入第二人生。我试图通过设置我的本地 apache 服务器来按照这里的建议阅读它,但我们不能这样做,因为它不能被识别为它不是托管在互联网上的网络服务器。

我们可以使用 NoteCard ...吗?

4

4 回答 4

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. 对结果做点什么

感谢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');

希望这可以帮助!

于 2014-08-02T05:56:09.190 回答
0

您不能使用 LSL 读取计算机上的文件 - 至少,不是正式的。从理论上讲,第三方第二人生查看器可以让你。不过,我认为他们中的任何一个人实际上都没有。您可以通过调查第三方查看器目录中列出的查看器自行检查。

就目前而言,您只需将数据移动到第二人生记事卡或以可通过 Internet 访问的方式托管它。从记事卡中读取数据非常容易。在线托管文件稍微复杂一些,涉及使用 LSL 的HTTP 功能进行检索。

于 2014-05-30T06:55:25.783 回答
0

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

唯一可用的替代方法是发布文本文件,以便可以从 Internet 访问它。如果您不想获得完整的网络托管,您应该可以使用公共 Dropbox 文件夹。

于 2014-05-29T09:56:46.473 回答
0

运行机器人将允许您编写化身动作脚本,例如创建记事卡。有相当多的付费机器人托管服务提供商,其中一些您可能会托管和调整自己的,但由于您试图快速并将其保持在本地,我建议您在自己的机器上运行一个。检查wiki上的服务列表,特别注意功能表中的“编程”子标题。某些服务将过时(啊,SL 优先级漂移!),因此请联系提供商以仔细检查关键功能,例如在链接对象中编辑记事卡的能力或消息传递功能的范围。

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

于 2019-04-20T21:20:39.387 回答