LlSetLinkAlpha

来自人工智能助力教育知识百科
跳转至: 导航搜索

Template:Needs Translation/


函数名
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)

• integer face – face number or ALL_SIDES

返回值:如果一个基本物体存在于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

llSetLinkColor

llSetLinkTexture

llSetLinkPrimitiveParams

相关事件
changed - CHANGED_COLOR

附录:(表格)

Flag Description
LINK_ROOT 1 指多基本物体链接集合中的root基本物体
LINK_SET -1 指所有的基本物体
LINK_ALL_OTHERS -2 指所有其他基本物体
LINK_ALL_CHILDREN -3 指所有的子元素,(除了根元素以外的)
LINK_THIS -4 指的是脚本所在的基本物体