问题标签 [linden-scripting-language]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
120 浏览

entity-framework - Updating entities in ndb while paging with cursors

To make things short, I have to make a script in Second Life communicating with an AppEngine app updating records in an ndb database. Records extracted from the database are sent as a batch (a page) to the LSL script, which updates customers, then asks the web app to mark these customers as updated in the database.

To create the batch I use a query on a (integer) property update_ver==0 and use fetch_page() to produce a cursor to the next batch. This cursor is also sent as urlsafe()-encoded parameter to the LSL script.

To mark the customer as updated, the update_ver is set to some other value like 2, and the entity is updated via put_async(). Then the LSL script fetches the next batch thanks to the cursor sent earlier.

My rather simple question is: in the web app, since the query property update_ver no longer satisfies the filter, is my cursor still valid ? Or do I have to use another strategy ?

Stripping out irrelevant parts (including authentication), my code currently looks like this (Customer is the entity in my database).

The handler that updates Customer entities in the database is the following. The c= parameters are urlsafe()-encoded entity keys of the records to update and the nv= parameter is the new version number for their update_ver property.

Will this work as expected ? Thanks for any help !

0 投票
2 回答
624 浏览

linden-scripting-language - 试图在第二人生中创建一个骰子 HUD,从记事卡中提取不同掷骰的信息

所以我正在做的事情将是一项相当大的事业。我已经想出了如何做一个“简单”的骰子界面,它只掷出一个基本的 2-20。但是现在我需要进行下一步。

我想为我的 sim 制作一个角色扮演系统骰子 hud。为此,我希望它在您单击 HUD 时获得一个菜单,其中列出了我系统中的所有技能。当您单击该技能时,它会在显示结果之前参考 Hud 中的记事卡进行一些小数学运算:IE。

有一个普通的 2d6、2d8、2d10、2d12、2d16、2d20((无论基本配置总是掷标准骰子))

虽然我希望它查看一张记事卡以添加角色的“统计”和“技能等级”

所以说他们想用剑打人?

我希望 Hud 生成一个介于 2 到 12 之间的随机值,然后添加角色的力量、速度、感知统计以及他们的剑技等级。

如果我能看到如何开始这个的基础知识,我就可以从那里继续前进。

0 投票
1 回答
193 浏览

linden-scripting-language - 获取 llGiveInventory 的结果

我有一个 LSL 脚本,它使用 llGiveInventory() 向用户提供对象。有没有办法让我的脚本知道用户是接受还是拒绝了该对象?

在我的查看器(Firestorm)中,当我接受给定的对象时,我可以看到一条消息:

“网格:测试用户拥有的 Primitive 给了你 Pizza。Primitive 位于 MyRegion <107.7737, 137.6579, 23.5>。

该消息甚至显示在对话日志中,因此它似乎显示为一条消息。我尝试在频道 0 和 DEBUG_CHANNEL 上收听,但都没有听到消息。

这是当前脚本:

0 投票
1 回答
83 浏览

javascript - 从服务器脚本快速刷新动态内容的 URI

我希望初学者的问题是可以接受的。我不介意学习,但根据迄今为止的研究,我什至不知道从哪里开始......

我需要一个可以适应小型 URI 空间(大约 1,000 个字符或更少)的脚本,该脚本将使用服务器脚本解析的信息(由 http 上的 meta-verse 对象提供的 lsl/mono)快速更新自身。

目标浏览器是 Second Life 查看器(基于 Mozilla)的内置媒体查看器。解析的 html 将来自 LSL/mono 脚本。我正在尝试以 0.2 到 0.5 秒的更新分辨率在 Second Life 元节中的图元上显示生成的 html(基本上只是将 prim 面变成一种 UV 投影浏览器窗口)。

我收集到我需要类似 ajax 的东西来不断 ping 服务对象以获取刷新的动态信息并更新初始 URI 中的部分?我不知道如何设置它。

已经尝试过:我尝试简单地将我的一小部分 html 放在 URI 本身中,并让 meta-verse 的 mono/lsl 脚本强制浏览器更新,这在某种程度上有效,但通过这样的脚本强制媒体刷新是节流到大约 2 秒的可靠刷新分辨率。我真的需要完全在客户端进行刷新……分辨率大约为 0.2 秒,因为该信息用于更新移动车辆的数字仪表板。

已经尝试过:仅在 URI 中使用基于元的刷新。要么我做错了,要么就是没用。这样的方法会支持不到一秒的分辨率吗?

还尝试使用来自该网站的关于 ajax 的脚本示例,虽然它们提供了很好的示例代码,但它们没有显示如何在浏览器中设置标题等以使用他们所说的任何库(假设在这些线程的级别,读者知道他们在谈论什么库以及如何设置它们)......所以目前这些都不适合我。

服务器脚本会解析一些简单的动态刷新的 html 格式文本。它可以在每次刷新时都被转储到单个 div 区域中。

需要快速解析的html示例:

或者,如果它更有效,它可以作为更高级脚本的简单变量更新转储,该脚本只更改表中的“数字”?但我也不知道该怎么做。

我想我对如何让服务器端脚本解析我希望显示的所需 html 有很好的理解。我完全不知道如何设置一个 URI,它每 0.2 秒从客户端请求一次......并避免从“缓存”而不是实际的目标 url 中提取该信息。

0 投票
1 回答
91 浏览

linden-scripting-language - 在第二人生中动态创建 prims (linden-scripting-language)

我是一位经验丰富的程序员,但对第二人生/ LSL 很陌生。我希望能够通过算法创建结构、建筑物、对象等。但是,我找不到一个函数可以实际“创建”具有给定属性集的新 prim 并将其放置在环境中。这可以做到吗?

0 投票
1 回答
417 浏览

json - Parse.com Rest API - 操作数组

由于我使用的嵌入式脚本语言(Linden Scripting Language,简称 LSL)的限制,我必须依赖 Parse.com 的 REST api,不幸的是,REST api 文档在某些主题上不清楚或不完整。

这是(粗略地说)我的对象的样子:

我需要做的是两件事:

  1. 我需要能够将字符串值附加到 Data 数组,如果它们不存在的话。“add-unique”是操作的名称,但我不知道如何从 REST api 使用它。
  2. 我需要能够分块加载数组。例如,首先加载元素 0 到 31,然后加载元素 32 到 63,依此类推。这是由于内存使用限制(总共 64kb)和 http 响应主体大小(16kb)的限制,我预计总列表大小会变得非常大。

我知道不是每个人都精通 LSL(感谢你不是!),所以答案不一定需要在 LSL 中。我了解 Python 代码,所以答案就在其中。我也了解 parse.com 在其 REST 文档中使用的 CURL 示例,因此答案也可以在其中。

0 投票
2 回答
73 浏览

parsing - 有没有办法解析在 LSL(林登脚本语言)中错误设置错误 180 度的多个坐标脚本数据?

我在第二人生中使用 LSL(林登脚本语言)。我已经导入了一个虚拟(网状)飞机对象,并花费了数小时制作各种部件的动画,例如机盖和起落架。

我现在发现,当所有轴都设置为零时(我的对象朝西),我应该将对象导入朝东。我现在已经以正确的方向重新导入了对象,但是由于主网格对象是我的“根 prim”,并且存储每个动画部分位置的帧都与之相关,因此所有动画部分(子 prims)现在都是正好反转 180 度。

有谁知道我可以解析脚本数据以查找并自动添加 180 度校正的方法?

我在动画上花费了数小时并拥有数页数据,因此自动化解决方案将是非常可取的,并且非常感谢任何帮助。

我需要解析的代码片段如下所示:

0 投票
1 回答
165 浏览

mouseevent - 如何在 Linden 脚本语言中测量鼠标左键按下的持续时间?

我想用 LSL 制作一个射手,所以我想测量鼠标左键单击开始和结束之间的时间,以设置投掷速度。

我还想更新一个 gui(或至少显示文本Power: 55%等),假设每增加 5%。

我怎样才能做到这一点?

我真的无法展示我所做的任何事情,因为我不太了解 LSL,所以我无法尝试任何事情。我能找到的最接近的是llTakeControls的这个页面,但我不确定如何使用它。

提前感谢您的帮助,

编辑

根据@BlindWanderer 的回答,我尝试对其进行修改(希望control()在鼠标关闭时会重复调用它),但显然情况并非如此:

我的第二次尝试(在意识到有一个名为 的变量之后held),但我再次无法使其工作:/

0 投票
1 回答
203 浏览

algorithm - 在一维网格数组中查找组

如果我有一个随机生成的数组,其中包含 60种类型(表示为整数 0-5)的 60 项(表示为 6x10),我如何在数组中搜索相同类型的组?(至少 3 个垂直/水平连接的组。)

我在类似于 C++ 和 C 的脚本环境 (LSL) 中工作。

0 投票
2 回答
435 浏览

linden-scripting-language - 如何将 JAVA 与 LSL(Linden 脚本语言)连接起来?

我想将java程序连接到LSL。我在SL中有很多传感器。我想通过java程序为这些传感器提供真实世界的读数,即来自外部SL的输入。这可能吗?如果可能,那么如何。请帮助我。如果我提供的信息不充分,请询问我并尝试帮助我。