查看“LlGetParcelPrimOwners”的源代码
←
LlGetParcelPrimOwners
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: list llGetParcelPrimOwners( vector pos ); |参数= 参数:vector pos – 区域坐标中的位置 |返回值= 返回值:返回在pos拥有地块上的对象并使用了单个土地影响的所有居民和组的列表。列表的格式为[key ownerKey1,integer agentImpact1,key ownerKey2,integer agentImpact2。。。],并按代理/组键排序,最大步幅为100步。 |注意事项= 此函数使脚本睡眠2.0秒。 如果此功能所在对象的所有者当前未联机且未连接到sim,则Function将不会在集体所有的土地上工作(尽管现在似乎正在为私有土地的所有者工作,即使所有者不在身边)。 这些限制可以通过将对象定义为对象所有者所属的组来克服。 在做决定之前记得要复印一份,因为你不可能得到某样东西。 需要对包具有类似所有者的权限。 Ownership 如果地块所有者和对象所有者相同(包括对象和地块都是集团所有的情况下): 返回所有对象所有者。 如果包裹归集团所有,但对象归集团成员所有,则函数返回取决于授予的权限: 如果住户拥有“归还集团拥有的物品”的权力: 返回列表包括它在地块上拥有的对象的组和LI。 如果常驻程序具有“返回组设置对象”权限: 返回列表包括将对象设置为地块上的组的所有所有者 如果住户具有“返回非组对象”权限 返回列表包括不属于上述两类的对象的所有所有者。 如果以上情况都不匹配,则返回空列表。 |示例= 显示以逗号分隔的用户ID及其原始计数列表。键1,计数1,键2,计数2。。。。等。 <pre> default { state_entry() { list TempList = llGetParcelPrimOwners( llGetPos() ); llSay(0, llList2CSV(TempList) ); } } </pre> 使用浮动文本按计数顺序显示原始所有者名称和计数 <pre> // 显示此地块上原始所有者的浮动文本列表,按每个所有者的原始计数排序。最高用户优先。 // Omei Qunhua // 对象具有与其所有者相同的权限来查看原始地块所有者(在“关于土地>>对象>>对象所有者”中) // 示例:如果不能返回组对象,则看不到组对象 //如果不能返回任何对象,将返回空列表。 //如果prim被认为是正确的组,它应该总是得到一个完整的列表 // Note: 仅当对象所有者在Sim中时,才在集团所有的土地上工作 // Deeded objects always work (group is always online?) list gListCountsAndOwners; // 排序列表计数+所有者对 list gListNamesAndCounts; // 所有者名称列表+原始计数 integer gOffset; integer gIndex; key gDataserverID; integer gListLength; default { state_entry() { llSetText("Parcel Prim Owner List\n", <1,1,1>, 1); list TempList = llGetParcelPrimOwners( llGetPos() ); gListLength= llGetListLength(TempList); if (!gListLength) { llSetText("[ERROR]\n Couldn't get Parcel Prim Owners", <1,0,0>, 1); } else { // 生成一份适合按计数排序的列表副本,即计数然后按键 integer x; for ( ; x < gListLength; x += 2) { gListCountsAndOwners += llList2Integer(TempList, x+1); gListCountsAndOwners += llList2String(TempList, x); } // 按原始计数的降序排列列表 gListCountsAndOwners = llListSort(gListCountsAndOwners, 2, FALSE); // 查找每个所有者的名称。从排序列表的开头开始 gDataserverID = llRequestAgentData( llList2String(gListCountsAndOwners, 1), DATA_NAME ); } } dataserver( key request_id, string data) { string TempStr = "Parcel Prim Owner List\n"; if ( request_id == gDataserverID ) { gListNamesAndCounts += data; gListNamesAndCounts += llList2String(gListCountsAndOwners, gIndex); // 将计数作为字符串处理 gIndex += 2; // 快速浏览单子 if (gIndex < gListLength ) { // 查找列表中下一个所有者的名称 gDataserverID = llRequestAgentData( llList2String(gListCountsAndOwners, gIndex +1) , DATA_NAME ); } integer x; for (; x < 16; x+=2) // 从“gOffset”开始,显示列表的8名子集 { // 如果我们超出了列表的末尾,我们只会得到空值,所以不会造成伤害 TempStr += llList2String(gListNamesAndCounts, gOffset+x) + " : " + llList2String(gListNamesAndCounts, gOffset+x+1) + "\n"; } llSetText(TempStr, <1,1,1>, 1); if ( (gListNamesAndCounts != []) > 14) // 如果列表超过14(7个所有者+计数)。。。 { gOffset += 2; // 向前滚动列表 llSleep(2); // 每隔2秒 } } } touch_start(integer total_number) { llResetScript(); // 触摸,重新开始整个过程 } } </pre> |相关函数=无 }}
该页面使用的模板:
模板:LSL Header
(
查看源代码
)
模板:LSLC
(
查看源代码
)
模板:LSLGC
(
查看源代码
)
模板:Multi-lang
(
查看源代码
)
模板:函数详情
(
查看源代码
)
返回至
LlGetParcelPrimOwners
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
网站首页
知识百科
编辑帮助
最近更改
工具
链入页面
相关更改
特殊页面
页面信息