掌握SL财富命脉——LSL,最直接的赚钱程序语言

网络生活

如果你会林登脚本语言(LSL),你编写一个作品,马上就可以在Second Life中变卖成真实美元。如果你有编程的基础,今天就能掌握LSL语言,这是最直接的赚钱程序语言。在SL中,一切都由LSL脚本语言支撑着。它给SL中所有的对象赋予生命,是SL世界中一切物体运动和物理现象以及事务逻辑的根本推动力。只有它,SL世界才变得丰富多彩,活灵活现,否则一切将毫无意义。

如何开始一个新的脚本文件?

LSL是一个事件驱动的程序语言,语法类似C++和JAVA。LSL语言简单有效,易学,功能强大。在接下来的这个教程中,我们将学习LSL以及它的基本功能让你快速进入到SL核心地带。

在编辑脚本之前,需要选择一些你有建造权限的土地,例如SANDBOX或者你自己的家。然后点屏幕下方的BUILD,随便创造一个物体。右键点击弹出它,在弹出的菜单中选择EDIT,接着在弹出的窗体上点“MORE”然后选择CONTENT标签页,点New script,然后双击下面列表中出现的New script界面。这时候,你会看到脚本的源代码(图1),根据需要编辑最后保存改变。

19-f11-9.jpg
图1

打开“inventory”,在上边图中所演示的窗口上,点击“Create”,选择New Script(图2),这时候会在My Inventory列表中出现一个新的脚本文件,双击它就会出现上边方法一中的内置的脚本编辑器了。这个编辑器是我们书写,编辑和调试脚本的工具。

19-f11-10.jpg
图2

从“Hello World”开始了解SL脚本

现在我们知道了,如何开始编写一个新的脚本文件和在什么地方用什么工具来编写调试脚本,但是对于具体的脚本语法,逻辑变量,事件函数等还不甚了解。那么我们从最简单例子开始吧,分解它们,一条语句一条语句的来分析,从最浅显的一个“Hello World”例子中我们来介绍如何编程。

我们都知道任何程序语言开始都是“Hello World”,我们这里也是如此。虽然这个Hello的小程序不是特别有用,但是我们可以通过这个小实例程序知道下面几点:

1.如何创建一个基本的脚本

2.脚本状态

3.调用函数

4.脚本事件

5.脚本应用到对象上。

通过上边的步骤生成一个脚本,如下:

default

{

state_entry()

{

llSay(0, “Hello, Avatar!”);

}

touch_start(integer total_number)

{

llSay(0, “Touched.”);

}

}

这个小程序会在保存后,在屏幕左下角显示Hello, Avatar!,当触摸它的时候,屏幕左下角显示Touched。因为这也许是你第一次看到一个程序脚本,尽管它没有什么实际作用,但我们可以来分解这段小程序,一个小段一个小段的解释。

Default STATE 默认状态

default

{

...

}

每段LSL脚本代码都是一个带有一到多种状态(STATE)的简单隐形状态机,每一个程序都有默认状态。如果只有一种状态的话,那就一定是默认状态。当一个程序第一次打开或者reset后。它都会是默认状态, 以

{

...

}

形式标明

每次进入一种状态,程序引擎会自动调用状态输入函数state_entry()并执行其内部的代码,在本例子中,我们在状态输入函数state_entry()中调用函数llSay()。

如何调用Functions 函数

LSL语言有200多种内置函数并随着版本的变化而增减,函数允许脚本和对象在SL环境中互相影响。所有这些内置函数都以“ll”开始,比如例子中调用的函数llSay(),此函数的作用就是可以在特定的信道中。调用并输出文本。

llSay( integer channel, string text );

CHANNEL: 0是公共信道,允许居民看到并作为聊天的文本框,从信道1到2147483648是私人信道,不对居民开放,但是其它脚本程序可以监听。

Touch Event 触摸事件

touch_start(integer total_number)

{

llSay(0, “Touched.”);

}

事件可以通过你的脚本程序声明一个处理器(handler)来监测,当用户通过用户界面触摸到脚本所在对象的时候,事件touch_start()会执行。

将脚本应用到物体

现在我们已经知道基本的脚本程序,现在让我们看看运行脚本,点击“save”保存程序,在保存过程中,编辑器会保存程序文本并编译脚本程序到字节码中保存。当你在预览窗口看到“Compile successful!”,编译和保存工作都做好了。

如果编译过程中出现语法错误,会像下面图中所显示的那样给出提示“(13,0):ERROR:Sytax error”。其中,(13,0)表示出现错误的行和列。ERROR后边显示的是出现错误的种类(图3)。

19-f11-11.jpg
图3

这时候当你把含有“Hello World”脚本的物体从inventory中拖到地面上的时候,你可以看到对象说:Hello Avatar!在点击物体对象时候,在聊天历史记录信道里会出现“Touched”。

在SL中造一辆汽车有多难?

从前面的小例子中我们逐渐知道了一个脚本从建立、调试到应用的全过程。下面我们将讲解一个汽车驱动的脚本实例来让大家加深了解和掌握LSL的原理和使用方法。

首先,我们需要知道,一辆汽车所应该拥有的部件,主要包括汽车主体,还有前轮,后轮,以及座位,方向盘等。越是制作精细,功能齐全的汽车卖的价钱越贵,当然相应的程序和建模也越复杂。这里,我们不赘述如何建模和如何设计汽车的各个部件,我们只讲解脚本,当然,前提条件是设计的各个部件要最后组装到一起,也就是SL中的“link”如图4所示或者直接用快捷键“Ctrl+L”。

19-f11-12.jpg
图4

在建模等前提条件完成之后(如何建模这里不作介绍),我们将下面的各个部位的功能脚本代码按照前面讲解的步骤放入其中,整个汽车的前进后退,左拐,右拐等功能就会由这些脚本来实现了。

这里只给出汽车主体脚本供大家参考学习,限于版面,汽车主体脚本请网上下载,下载地址:http://slbazar.com/showthread.php?t=1969

将下载的代码放入做好的汽车中,右键点击汽车,弹出窗口中选择“Jump In”,就会自动进入汽车驾驶室,通过方向控制键W,S,A,D或者前后左右方向键来控制汽车前进后退了。代码和参数稍微修改一下就可以应用到很多运动的物体中(图5)。

19-f11-13.jpg
图5

当然,要实现更多更好的功能,我们就要深入学习更多的LSL脚本函数和事件等一系列的脚本语言,这将是一条很艰难但充满乐趣的道路。学好了脚本,我们就可以成为了一个虚拟世界中的灵魂工程师,让汽车动起来,飞机飞起来,游戏火起来,魔法施展起来,枪械能够发射子弹等。