“LlSetClickAction”的版本间的差异
(创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: llSetClickAction( integer action ); |参数= 参数:•…”) |
|||
| 第121行: | 第121行: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| + | ! Flag | ||
! | ! | ||
| − | ! | + | ! Description |
| − | + | |- | |
| + | | [[CLICK_ACTION_BUY]] | ||
| + | | 2 | ||
| + | | 当点击prim时,会打开buy对话框 | ||
| + | |- | ||
| + | | [[CLICK_ACTION_DISABLED]] | ||
| + | | 8 | ||
| + | | 没有点击动作。没有检测到或传递触摸。 | ||
| + | |- | ||
| + | | [[CLICK_ACTION_NONE]] | ||
| + | | 0 | ||
| + | | 执行默认动作:当prim被触摸时,触摸事件被触发 | ||
| + | |- | ||
| + | | [[CLICK_ACTION_OPEN]] | ||
| + | | 4 | ||
| + | | 当触摸prim时,对象库存对话框打开 | ||
| + | |- | ||
| + | | [[CLICK_ACTION_OPEN_MEDIA]] | ||
| + | | 6 | ||
| + | | 触摸播放包裹媒体,没有暂停 | ||
| + | |- | ||
| + | | [[CLICK_ACTION_PAY]] | ||
| + | | 3 | ||
| + | | 当点击prim时,pay对话框打开 | ||
| + | |- | ||
| + | | [[CLICK_ACTION_PLAY]] | ||
| + | | 5 | ||
| + | | 播放或暂停包裹媒体触摸 | ||
| + | |- | ||
| + | | [[CLICK_ACTION_SIT]] | ||
| + | | 1 | ||
| + | | 当触碰物体时,化身就坐在它上面 | ||
|- | |- | ||
| − | | | + | | [[CLICK_ACTION_TOUCH]] |
| − | | | + | | 0 |
| − | | | + | | 当prim被触摸时,触摸事件被触发 |
|- | |- | ||
| − | | | + | | [[CLICK_ACTION_ZOOM]] |
| − | | | + | | 7 |
| − | | | + | | Zoom ([[Viewer 2]]) |
|} | |} | ||
2020年8月26日 (三) 04:05的最新版本
| 首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
| 函数名 |
|---|
| Function: llSetClickAction( integer action ); |
| 参数:• integer action – CLICK_ACTION_* flag |
| 返回值:设置单击prim时执行的操作(又名单击操作)。
当光标悬停在prim上时,它的图像会改变以反映操作。 |
| 注意事项 |
|---|
| 当在一个对象的根中设置时,所选的CLICK_ACTION_*将是为孩子们也即使他们有自己的llSetClickAction集(它将被覆盖)。然而(例如在触摸)如果CLICK_ACTION_ *在根中设置,但不是所有的孩子(包括事件脚本在他们没有联系(这将创建一个默认CLICK_ACTION_TOUCH))的影响根源CLICK_ACTION_ *未见但CLICK_ACTION_ *点击使用。为了使用和看到正确的光标,CLICK_ACTION_*标志必须在子目录和根目录中匹配。
如果llSetClickAction是CLICK_ACTION_PAY,那么您必须有一个money事件,否则它将恢复为CLICK_ACTION_NONE。 当此功能工作或附加对象(可以更改单击操作)时,查看器将忽略配置的附件单击操作。查看器的行为始终像一个附加对象已经设置了CLICK_ACTION_TOUCH。 |
| 示例 |
|---|
make sitting easier
default
{
state_entry()
{
llSetClickAction(CLICK_ACTION_SIT);
llRemoveInventory(llGetScriptName());
}
}
// simple tipjar
default
{
state_entry()
{
llSetClickAction(CLICK_ACTION_BUY);
//启用了自己的金额编辑字段,所有快速支付按钮隐藏
llSetPayPrice(PAY_DEFAULT, [PAY_HIDE, PAY_HIDE, PAY_HIDE, PAY_HIDE]);
}
money(key id, integer amount)
{
string name = llKey2Name(id);
llInstantMessage(id, "Thank you for the tip, " + name + "!");
}
}
//Sit Only with Permission
list gAvWhitelist = ["953d10f1-44ce-462a-8bc1-f634333ee031","599dce91-a2b8-48c5-b96d-54965433022b"];
default
{
state_entry()
{
llSitTarget(<0.0,0.0,0.5>,ZERO_ROTATION);
}
changed(integer change)
{
if(change & CHANGED_LINK)
{
list Properties = llGetObjectDetails(llGetKey(),[OBJECT_CLICK_ACTION]);
integer Click = llList2Integer(Properties,0);
key Av = llAvatarOnSitTarget();
if ((Av != NULL_KEY) && (!Click))
{
llSay(0,"Please click first for permission to sit.");
llUnSit(Av);
}
}
}
touch_start(integer total_number)
{
list Properties = llGetObjectDetails(llGetKey(),[OBJECT_CLICK_ACTION]);
integer Click = llList2Integer(Properties,0);
if (!Click && (~llListFindList(gAvWhitelist,[(string)llDetectedKey(0)])) )
{
llSetClickAction(CLICK_ACTION_SIT);
llSetTimerEvent(10.0);
llSay(0,"Please take a seat.");
}
else
{
llSetClickAction(CLICK_ACTION_TOUCH);
if (llAvatarOnSitTarget() != NULL_KEY)
{
llSay(0,"Good bye!");
}
else
{
llSay(0,"Sorry. You are not allowed to sit here.");
}
llUnSit(llDetectedKey(0));
}
}
timer()
{
llSetTimerEvent(0.0);
llSetClickAction(CLICK_ACTION_TOUCH);
}
}
|
| 相关函数 |
|---|
| llPassTouches |
| 相关事件 |
|---|
| touch_start |
附录:(表格)
| Flag | Description | |
|---|---|---|
| CLICK_ACTION_BUY | 2 | 当点击prim时,会打开buy对话框 |
| CLICK_ACTION_DISABLED | 8 | 没有点击动作。没有检测到或传递触摸。 |
| CLICK_ACTION_NONE | 0 | 执行默认动作:当prim被触摸时,触摸事件被触发 |
| CLICK_ACTION_OPEN | 4 | 当触摸prim时,对象库存对话框打开 |
| CLICK_ACTION_OPEN_MEDIA | 6 | 触摸播放包裹媒体,没有暂停 |
| CLICK_ACTION_PAY | 3 | 当点击prim时,pay对话框打开 |
| CLICK_ACTION_PLAY | 5 | 播放或暂停包裹媒体触摸 |
| CLICK_ACTION_SIT | 1 | 当触碰物体时,化身就坐在它上面 |
| CLICK_ACTION_TOUCH | 0 | 当prim被触摸时,触摸事件被触发 |
| CLICK_ACTION_ZOOM | 7 | Zoom (Viewer 2) |