LlReplaceAgentEnvironment
首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
函数名 |
---|
Function: Integer llReplaceAgentEnvironment( key agent_id, float transition, string environment ); |
参数:
• key agent_id – 该地区代理商的钥匙。代理必须在该地区,必须参与到体验中。 • float transition – 转换到新设置的秒数。 • string environment – 对象目录中环境设置的名称或环境的资产ID。 |
返回值:llReplaceAgentEnvironment函数覆盖代理看到的当前区域和包裹环境。新环境持续存在,直到代理跨到新的区域,或者使用特定代理的环境参数中的NULL_KEY或空字符串调用该函数,这样做将删除作为体验的一部分应用于该代理的所有环境设置。这个功能必须作为体验的一部分来执行。
返回一个整数 |
注意事项 |
---|
代理的查看器可以选择忽略此命令。
在查看器上本地设置的环境将覆盖从该函数设置的任何环境。 如果UUID作为环境参数传递,并且该UUID没有指定环境设置,则查看器将忽略该指令。 |
示例 |
---|
示例1
string gEnvironment = "A-12AM"; // Can be asset's name in object's inventory or the asset ID float gTransitionTime = 3.0; default { touch_start(integer total_number) { key person = llDetectedKey(0); if (llGetAgentSize(person) != ZERO_VECTOR) { llRequestExperiencePermissions(person, ""); } else { llInstantMessage(person, "You need to be in the same region to change environment"); } } experience_permissions(key agent_id) { integer envTest = llReplaceAgentEnvironment(agent_id, gTransitionTime, gEnvironment); if (envTest == 1) { llRegionSayTo(agent_id, 0, "Applying environment for " + (string)agent_id); } else { llRegionSayTo(agent_id, 0, "Cannot apply environment for " + (string)agent_id + " due to reason id: " + (string)envTest); } } experience_permissions_denied(key agent_id, integer reason) { llRegionSayTo(agent_id, 0, "Denied experience permissions for " + (string)agent_id + " due to reason id: " + (string)reason); } } |
相关函数 |
---|
llSetAgentEnvironment |
相关事件 |
---|
无 |
附录:(表格)
Value | Constant | Description |
---|---|---|
1 | 代理已经被指示改变他们的环境。 | |
ENV_INVALID_AGENT | -4 | 无法找到指定的代理。 |
ENV_NO_ENVIRONMENT | -3 | 找不到环境目录对象。 |
ENV_NO_EXPERIENCE_LAND | -7 | 经验没有被启用或不能在土地上运行。 |
ENV_NO_EXPERIENCE_PERMISSION | -2 | 代理没有给予许可。 |
ENV_NOT_EXPERIENCE | -1 | 脚本没有作为具有有效体验键的体验的一部分运行。 |
ENV_THROTTLE | -8 | 脚本已经超出了油门。等待并重试请求。 |