“LlSetLinkAlpha”的版本间的差异
(创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: llSetLinkAlpha( integer link, float alpha, integer face );…”) |
(没有差异)
|
2020年8月22日 (六) 08:43的最新版本
| 首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
| 函数名 |
|---|
| Function: llSetLinkAlpha( integer link, float alpha, integer face ); |
| 参数:
• integer link – Link number (0: unlinked, 1: root prim, >1: child prims and seated avatars) or a LINK_* flag • float alpha– from 0.0 (clear) to 1.0 (solid) (0.0 <= alpha <= 1.0) |
| 返回值:如果一个基本物体存在于link set中,则对该物体的面进行alpha设置。
如果面是ALL_SIDES,那么函数对所有面都起作用。 |
| 注意事项 |
|---|
| 如果该函数的面值表示一个不存在的面值,则该函数将悄无声息地失败。 |
| 示例 |
|---|
//使整个对象消失5秒
default
{
touch_start(integer num_detected)
{
// transparent
llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);
llSetTimerEvent(5.0);
}
timer()
{
// opaque
llSetLinkAlpha(LINK_SET, 1.0, ALL_SIDES);
llSetTimerEvent(0.0);
}
}
//当对象被触摸时,
//淡出,然后再回来
default
{
touch_start(integer num_detected)
{
// fade out
float alpha = 1.0;
while (alpha >= 0.0)
{
llSetLinkAlpha(LINK_SET, alpha, ALL_SIDES);
alpha -= 0.001;
}
// fade in
while (alpha < 1.0)
{
alpha += 0.001;
llSetLinkAlpha(LINK_SET, alpha, ALL_SIDES);
}
}
}
//使链接集中选中的prims在聊天命令中变得透明或可见。给每个prim一个唯一的名字。
list PrimList = ["ALL"];
//用一个假条目开始我们的prim列表,这样列表中的索引将直接对应于链接号
//通过使虚拟条目‘ALL’,我们也为该选项提供了匹配
default
{
changed (integer change)
{
if (change & CHANGED_LINK)
llResetScript();
}
state_entry()
{
integer PrimCount = llGetNumberOfPrims();
llListen(37, "", NULL_KEY, ""); // 在37频道听任何人的聊天命令
integer i;
for (i = 1; i <= PrimCount; ++i)
PrimList += llToUpper(llGetLinkName(i) ); // 构建一个大写链接名称列表,其中列表位置等于链接编号
}
listen(integer channel, string name, key id, string msg)
{
list TempList = llCSV2List( llToUpper(msg) ); //从用户命令行的大写版本创建一个列表
integer ListLen = llGetListLength (TempList);
integer alpha = (llList2String(TempList, 0) == "SHOW");
//“SHOW”将选中的prim设置为可见,否则设置为透明
// e.g. HIDE,PLATE,SPOON,NAPKIN <---- makes named prims invisible
// e.g. SHOW,ALL <---- makes all prims visible
integer i;
for (i = 1; i < ListLen; ++i)
{
string ThisPrim = llStringTrim(llList2String(TempList, i), STRING_TRIM);
integer LinkNumber = llListFindList(PrimList, [ThisPrim]);
if (~LinkNumber) // i.e. if LinkNumber != -1
{
if (!LinkNumber)
LinkNumber = LINK_SET; // list position 0 is 'ALL'
llSetLinkAlpha(LinkNumber, alpha, ALL_SIDES);
}
}
}
}
|
| 相关函数 |
|---|
| llGetLinkNumber - 返回脚本所在的prim的链接号。
llGetAlpha - Gets the prim's alpha llSetAlpha - Sets the prim's alpha llGetColor - Gets the prim's color llSetColor - Sets the prim's color |
| 相关事件 |
|---|
| changed - CHANGED_COLOR |
附录:(表格)
| Flag | Description | |
|---|---|---|
| LINK_ROOT | 1 | 指多基本物体链接集合中的root基本物体 |
| LINK_SET | -1 | 指所有的基本物体 |
| LINK_ALL_OTHERS | -2 | 指所有其他基本物体 |
| LINK_ALL_CHILDREN | -3 | 指所有的子元素,(除了根元素以外的) |
| LINK_THIS | -4 | 指的是脚本所在的基本物体 |