最近我开始玩Second Life。并希望在LSL中开始编码。
在我的程序中,我想根据记事本文件中提到的颜色更改我的头像衬衫的颜色,我会不断随意更改值(将值写入记事本),如红色到绿色或蓝色等
但问题是我被困在如何使用LSL(Linden Scripting Lang)将Notepad文件(存储在我的本地硬盘上)读入第二人生。我尝试通过设置我的本地apache服务器将其读作suggested here,但我们不能这样做,因为它不被认为不是通过互联网托管的网络服务器。
我们可以使用NoteCard吗??
答案 0 :(得分:2)
基本上,您希望在Second Life中使用llHTTPRequest从Web服务器读取内容。
最优雅的解决方案是使用PHP和MySQL创建Web界面。这里有一个很好的脚本:https://github.com/jgpippin/sldb
更简单的选项,没有任何数据库:
感谢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会对所有形式的通信施加限制。然后,最后,当您的机器人在线时,即使您不在网上,您也将具有一种罕见且丰富的功能,可以通过脚本编写笔记卡。