| API说明—人物操作 |
● 向指定用户添加一个自定义属性
● 修改指定人物指定自定义属性名的自定义属性值
● 删除指定人物的指定自定义属性
● 在指定用户的主界面显示指定的自定义属性值
● 设置触发脚本用户的朝向
● 通过用户id设置用户朝向
● 设置触发脚本用户的坐标
● 设置指定用户坐标
● 使指定用户平移
● 使指定用户移动到指定位置
● 使指定用户移动到指定物体的相对位置
● 使触发脚本用户平移
● 设置指定用户的速率
● 设置指定用户的速度方向
● 设置触发脚本用户的速度方向
● 使人物以指定速度旋转
● 激活指定用户的动作
● 限定指定用户的动作
● 停止指定用户的动作
● 把指定物体挂到人物指定挂载点上
● 从指定用户身上卸下指定物体
向指定用户添加一个自定义属性
函数:
int uAddPlayerDefineValue(defineName,defineValue,playerId);
参数:
(1) defineName:字符串,自定义属性名。
(2) defineValue:字符串,自定义属性值。
(3) playerId:字符串,用户id。如此参数不填,则默认playerid为触发脚本的用户id。
返回值:
详见5.4返回值类型。
备注:
(1) 当用户已有某个属性名时,继续添加相同的属性名相当于修改该属性名对应的属性值。
Eg:
(1) uAddPlayerDefineValue("账户","nailo1999", uGetToucherId());
--向触发脚本的用户添加一条属性名为“账户”,属性值为“nailo1999”的自定义属性。
(2) uAddPlayerDefineValue("账户","nailo1999");
--向触发脚本的用户添加一条属性名为“账户”,属性值为“nailo1999”的自定义属性。
修改指定人物指定自定义属性名的自定义属性值
函数:
int uSetPlayerDefineValue(defineName,defineValue,playerId);
参数:
(1) defineName:字符串,自定义属性名。
(2) defineValue:字符串,自定义属性值。
(3) playerId:字符串,用户id。如此参数不填,则默认playerid为触发脚本的用户id。
返回值:
详见5.4返回值类型。
备注:
(1) 此api功能同“向指定用户添加一个自定义属性”的部分功能相同。
Eg:
(1) uSetPlayerDefineValue("账户","nailo1999", uGetToucherId());
--修改触发脚本的用户属性名为“账户”的自定义属性值,修改后属性值为“nailo1999”。
(2) uSetPlayerDefineValue("账户","nailo1999");
--修改触发脚本的用户属性名为“账户”的自定义属性值,修改后属性值为“nailo1999”。
删除指定人物的指定自定义属性
函数:
int uDeletePlayerDefineValue(defineName,playerId);
参数:
(1) defineName:字符串,自定义属性名。
(2) playerId:字符串,用户id。如此参数不填,则默认playerid为触发脚本的用户id。
返回值:
详见5.4返回值类型。
Eg:
(1) uDeletePlayerDefineValue("账户", uGetToucherId());
--删除触发脚本的用户属性名为“账户”的自定义属性。
(2) uSetPlayerDefineValue("账户");
--删除触发脚本的用户属性名为“账户”的自定义属性。
在指定用户的主界面显示指定的自定义属性值
函数:
int uShowPlayerDefineValue(name,pos,playerId);
参数:
(1) name:字符串,自定义属性名。最大输入为8个中文字符。
(2) pos:整形,显示位置。人物头像框下有三行额外属性槽,0,2,4是那三条白框,1,3,5是白框上的橙色的数值条。此参数定义在0、2、4位置就等于把该属性值给了白条的一个最大值,定义在1、3、5的位置就等于在白条上加了一个相对的橙色当前值。当前值和最大值的比值决定橙色条的长度。可以通过显示槽的tips查看属性。
(3) playerId:字符串,用户id。
返回值:
详见5.4返回值类型。
备注:
(1) 可以通过快捷键“小键盘0”打开或关闭额外显示槽。
Eg:
(1) uShowPlayerDefineValue("账户",0, uGetToucherId());
--将触发脚本的用户属性名为“账户”的属性值显示在该用户额外属性槽的第一条白框上。
(2) uShowPlayerDefineValue("账户",0);
--将触发脚本的用户属性名为“账户”的属性值显示在该用户额外属性槽的第一条白框上。
设置触发脚本用户的朝向
函数:
int uSetOperatorOrient(degree);
参数:
(1) degree:浮点型,用户的朝向,从0到360,注意360时显示为0,单位:度。
返回值:
详见5.4返回值类型。
Eg:
(1) uSetOperatorOrient(30);
--将触发脚本的用户朝向设置为以Y轴为旋转轴,和初始朝向夹角30度。
通过用户id设置用户朝向
函数:
int uSetPlayerOrient(playerId,degree);
参数:
(1) playerId:字符串,目标用户id。
(2) degree:浮点型,用户的朝向,从0到360,注意360时显示为0,单位:度。
返回值:
详见5.4返回值类型。
Eg:
(1) uSetPlayerOrient(uGetToucherId(),30);
--将触发脚本的用户朝向设置为以Y轴为旋转轴,和初始朝向夹角30度。
设置触发脚本用户的坐标
函数:
int uSetOperatorPos(pos);
参数:
(1) pos:三维向量,坐标。
返回值:
详见5.4返回值类型。
备注:
(1) 目的地坐标必须和脚本所在物体位于同一个街区内。
Eg:
(1) local pos = G3D.Vector3:new(222,222,0);
uSetOperatorPos(pos);
--将触发脚本的用户的坐标设置于(222,222,0)处。
设置指定用户坐标
函数:
int uSetPlayerPos(playerId,pos);
参数:
(1) playerId:字符串,目标用户id。
(2) pos:三维向量,坐标。
返回值:
详见5.4返回值类型。
备注:
(1) 目标用户、目的地坐标必须和脚本所在物体位于同一个街区内。
Eg:
(1) local pos = G3D.Vector3:new(222,222,0);
uSetPlayerPos(uGetToucherId(),pos);
--将触发脚本的用户的坐标设置于(222,222,0)处。
使指定用户平移
函数:
int uSetPlayerSpeed(playerId, degree,speed);
参数:
(1) playerId:字符串,目标用户id。
(2) degree:浮点型,用户的朝向,从0到360,注意360时显示为0,单位:度。
(3) speed:浮点型,用户的平移速度,单位:米/秒。最大速度为20米每秒。
返回值:
详见5.4返回值类型。
备注:
(1) 在脚本控制移动过程中,用户进行任意移动操作会中断移动。
(2) 当用户移动超出脚本所在街区后,会中断移动。
(3) 当用户和任意物体发生碰撞时,会中断移动。
Eg:
(1) uSetPlayerSpeed(uGetToucherId(),uGetOperatorOrient(),5);
--使触发脚本的用户以当前朝向,5米/秒的速度,进行平移。
使指定用户移动到指定位置
函数:
int uPlayerMoveTo(type,pos,playerId);
参数:
(1) type:整型,详见5.3移动类型。
(2) pos:三维向量,坐标。
(3) playerId:字符串,目标用户id。
返回值:
详见5.4返回值类型。
备注:
(1) 在脚本控制移动过程中,用户进行任意移动操作会中断移动。
(2) 当用户移动超出脚本所在街区后,会中断移动。
(3) 当用户和任意物体发生碰撞时,会中断移动。
Eg:
(1) local pos = G3D.Vector3:new(8009,8009,-128);
uPlayerMoveTo(PLAYER_FLY,pos);
--使触发脚本的用户飞行至坐标(8009,8009,-128)处。
使指定用户移动到指定物体的相对位置
函数:
int uPlayerMoveToRelative(type,pos,itemId,playerId);
参数:
(1) type:整型,用户的移动类型。详见5.3移动类型。
(2) pos:三维向量,坐标。
(3) itemId:字符串,目标物体id。如果不填则默认为脚本所在的物体。
(4) playerId:字符串,目标用户id。如果不填则默认为执行脚本的用户。
返回值:
详见5.4返回值类型。
备注:
(1) 在脚本控制移动过程中,用户进行任意移动操作会中断移动。
(2) 当用户移动超出脚本所在街区后,会中断移动。
(3) 当用户和任意物体发生碰撞时,会中断移动。
Eg:
(1) local pos = G3D.Vector3:new(9,0,9);
uPlayerMoveToRelative(PLAYER_RUN,pos, "2251799816559832", uGetToucherId());
--使执行脚本的用户以跑的方式移动到物品id“2251799816559832”相对位置为(9,0,9)处。
(2) local pos = G3D.Vector3:new(9,0,9);
uPlayerMoveToRelative(PLAYER_RUN,pos);
--使执行脚本的用户以跑的方式移动到脚本所在物体相对位置为(9,0,9)处。
使触发脚本用户平移
函数:
int uSetOperatorSpeed(degree,speed);
参数:
(1) degree:浮点型,用户的朝向,从0到360,注意360时显示为0,单位:度。
(2) speed:浮点型,用户的平移速度,单位:米/秒。
返回值:
详见5.4返回值类型。
备注:
(1) 在脚本控制移动过程中,用户进行任意移动操作会中断移动。
(2) 当用户移动超出脚本所在街区后,会中断移动。
(3) 当用户和任意物体发生碰撞时,会中断移动。
Eg:
(1) uSetOperatorSpeed(uSetOperatorOrient(),5);
--使执行脚本的用户以平移的方式以5米/秒的速度沿当前朝向移动。
设置指定用户的速率
函数:
int uSetRoleSpeed(speed,type,playerId);
参数:
(1) speed:浮点型,用户的速率,单位:米/秒。最大速度为20米/秒。
(2) type:整型,用户的移动类型。详见5.3移动类型。
(3) playerId:字符串,目标用户id。如果不填则默认为执行脚本的用户。
返回值:
详见5.4返回值类型。
Eg:
(1) uSetRoleSpeed(6, PLAYER_RUN, uGetToucherId());
--使执行脚本的用户的跑步速度设为6米/秒。
设置指定用户的速度方向
函数:
int uSetPlayerSpeedOrient(playerId,degree);
参数:
(4) playerId:字符串,目标用户id。如果不填则默认为执行脚本的用户。
(5) degree:浮点型,用户的朝向,从0到360,注意360时显示为0,单位:度。
返回值:
详见5.4返回值类型。
Eg:
(2) uSetPlayerSpeedOrient(uGetToucherId(),89);
--使执行脚本的用户的速度方向与初始朝向夹角为89度。
设置触发脚本用户的速度方向
函数:
int uSetOperatorSpeedOrient(degree);
参数:
(1) degree:浮点型,用户的朝向,从0到360,注意360时显示为0,单位:度。
返回值:
详见5.4返回值类型。
Eg:
(1) uSetPlayerSpeedOrient(90);
--使执行脚本的用户的速度方向与初始朝向夹角为90度。
使人物以指定速度旋转
函数:
int uPlayerRotate(int orient,rotateSpeed,playerId);
参数:
(1) orient:整形,用户的旋转朝向,0-顺时针旋转、1-逆时针旋转。
(2) rotateSpeed:浮点型,用户的旋转速度,从0到2π。最大为2π/秒。π为3.14。
(3) playerId:字符串,目标用户id。如果不填则默认为执行脚本的用户。
返回值:
详见5.4返回值类型。
备注:
(1) 在脚本控制旋转过程中,用户进行任意移动操作会中断旋转。
(2) 当用户旋转时超出脚本所在街区后,会中断旋转。
(3) 当用户和任意物体发生碰撞时,会中断旋转。
Eg:
(1) uPlayerRotate(0,5);
--使执行脚本的用户以5 /秒的速度原地旋转。
激活指定用户的动作
函数:
int uPlayOperatorAct(string animationId, playerId);
参数:
(1) animationId:字符串,为资源库中动作资源的路径、系统动作命令、系统动作id。如 “uw://招手”,系统动作配置id表见附录5.6。
(2) playerId:字符串,目标用户id。如果不填则默认为执行脚本的用户。
返回值:
详见5.4返回值类型。
Eg:
(1) uPlayOperatorAct(“uw://cate716/3659174732221529.skeleton”);--使用该资源库上传资源,需要上传动作资源。资源必须是单个动作资源。
uPlayOperatorAct(“uw://招手”);--使用系统动作命令
uPlayOperatorAct(9); --使用系统动作id
--使触发脚本的用户播放招手动作。
限定指定用户的动作
函数:
int uSit(itemId, playerId);
参数:
(1) itemId :字符串,物品id。表示将表情动作的播放限定在某个物品上。
(2) playerId :字符串,目标用户id。如果不填则默认为执行脚本的用户。
返回值:
详见5.4返回值类型。
Eg:
(1) uPlayOperatorAct(uw://坐椅);
uSit(uGetItemId());
--使触发脚本的用户播放动作表中坐椅的动作,并在坐椅的过程中保持坐姿,直到新的移动或动作指令打断此动作。
停止指定用户的动作
函数:
int uStopOperatorAct(playerId);
参数:
(1) playerId :字符串,目标用户id。如果不填则默认为执行脚本的用户。
返回值:
详见5.4返回值类型。
Eg:
(1) uStopOperatorAct();
--停止触发脚本用户的当前表情动作。
把指定物体挂到人物指定挂载点上
函数:
int uAttachToPlayer(itemId,equipPos,playerId);
参数: 8 9 10 11 12 13 14 15 16 17 18 19 头 眼睛 嘴 左耳 右耳 脖子 左肩 右肩 左上臂 右上臂 左下臂 右下臂 20 21 22 23 24 25 26 27 28 29 30 31 左手掌 右手掌 胸部 腰部 左大腿 右大腿 左小腿 右小腿 左脚踝 右脚踝 左腕 右腕
(1) itemId:字符串,目标物体id。
(2) equipPos:整形,人物身上的挂载点id,对应关系如下:
(3) playerId:字符串,目标用户id。如果不填则默认为执行脚本的用户。
返回值:
详见5.4返回值类型。
备注:
(1) 当用户移动超出脚本所有者拥有摆放权限的个人地块或脚本所在街区后,挂载物体回到挂载前位置。
(2) 同一时间,一个挂载点只能挂载一个物体。人物换装和此api共用挂载点,所以假设头部已挂载物体时,使用此api再向头部挂载物体执行无效。
Eg:
(1) uAttachToPlayer(uGetItemId(),8);
--将脚本所在物体挂载到触发脚本用户的头部。
从指定用户身上卸下指定物体
函数:
int uDetachFromPlayer(itemId,playerId);
参数:
(1) itemId:字符串,目标物体id。
(2) playerId:字符串,目标用户id。如果不填则默认为执行脚本的用户。
返回值:
详见5.4返回值类型。
备注:
(1) 此api只能卸下通过脚本挂载的物体,卸下后物体返回挂载前位置。
(2) 要卸载的物体必须和执行脚本的物体在同一个用户身上。
Eg:
(1) uDetachFromPlayer("2251799818210561",uGetToucherId());
--卸下触发脚本者身上id为"2251799818210561"的物体。