“LlFleeFrom”的版本间的差异

来自人工智能助力教育知识百科
跳转至: 导航搜索
(创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: llFleeFrom( vector position, float distance, list options…”)
 
Mkx讨论 | 贡献
 
第4行: 第4行:
 
{{函数详情
 
{{函数详情
 
|函数名 = Function: llFleeFrom( vector position, float distance, list options );
 
|函数名 = Function: llFleeFrom( vector position, float distance, list options );
|参数= 参数: vector position position in region coordinates from which to flee.  
+
|参数= 参数: vector position –在区域坐标中的位置,从那里逃跑( position in region coordinates from which to flee.
  
float distance – Distance in meters to flee from position.
+
float distance – 逃离位置的距离,以米为单位。
  
list options – No options available at this time.
+
list options – 目前没有可用的选项。
|返回值= 返回值:Directs a character to keep a specific distance from a specific position in the region or adjacent regions.
+
|返回值= 返回值: 指示字符与区域或相邻区域中的特定位置保持特定距离。
  
  
|注意事项=Must use llCreateCharacter or script won't compile.  
+
|注意事项=必须使用llCreateCharacter,否则脚本无法编译。.  
  
The position to flee from must be near the nav mesh; otherwise, this behavior will fail and trigger path update with PU_FAILURE_INVALID_GOAL.
+
逃跑的位置必须靠近导航网;否则,此行为将失败,并使用PU_FAILURE_INVALID_GOAL触发路径更新。
  
If you want to avoid an agent or object as per the example below, it's much more elegant and less sim resource intensive to use llEvade instead.
+
如果您想要像下面的示例那样避免代理或对象,那么使用llEvade将会更加优雅,并且减少sim资源的消耗。
  
  

2020年5月25日 (一) 09:42的最新版本

Template:Needs Translation/


函数名
Function: llFleeFrom( vector position, float distance, list options );
参数: vector position –在区域坐标中的位置,从那里逃跑( position in region coordinates from which to flee. )

float distance – 逃离位置的距离,以米为单位。

list options – 目前没有可用的选项。

返回值: 指示字符与区域或相邻区域中的特定位置保持特定距离。
注意事项
必须使用llCreateCharacter,否则脚本无法编译。.

逃跑的位置必须靠近导航网;否则,此行为将失败,并使用PU_FAILURE_INVALID_GOAL触发路径更新。

如果您想要像下面的示例那样避免代理或对象,那么使用llEvade将会更加优雅,并且减少sim资源的消耗。

示例
示例1
vector last_touched_pos;
key last_touched_key;
 
default
{
    state_entry()
    {
        llCreateCharacter([CHARACTER_DESIRED_SPEED, 50.0]);
    }
 
    touch_start(integer total_number)
    {
	last_touched_key = llDetectedKey(0);
	last_touched_pos = llDetectedPos(0);
	llFleeFrom(last_touched_pos, 10, []);
	llSetTimerEvent(0.2);
    }
 
    timer()
    {
	vector last_touched_pos_now = llList2Vector(llGetObjectDetails(last_touched_key, [OBJECT_POS]), 0);
	if ( llVecDist(last_touched_pos, last_touched_pos_now) > 1 )
	{
	    last_touched_pos = last_touched_pos_now;
	    llFleeFrom(last_touched_pos, 10, []);
	}
    }
}
相关函数
llCreateCharacter

llDeleteCharacter

llEvade

llExecCharacterCmd

llGetClosestNavPoint

llFleeFrom

llNavigateTo

llPatrolPoints

llPursue

llUpdateCharacter

llWanderWithin

相关事件
path_update