Skip to content

角色模块管理接口 Actor

具体函数名及描述如下:

序号函数名函数描述
1GetItemId(...)获取掉落物类型ID
2GetDropItemNum(...)获取掉落物品数量
3SetTeam(...)设置角色队伍
4GetTeam(...)获取角色队伍
5AddHp(...)增加角色当前生命值
6GetMaxHP(...)获取最大生命值
7ShowNickName(...)设置昵称显示
8SetNickName(...)设置角色昵称
9GetNickName(...)获取角色昵称
10GetObjWorldId(...)获取角色所在星球ID
11IsPlayer(...)检查对象是否为玩家
12PlaySoundEffectById(...)播放音效
13StopSoundEffectById(...)停止音效
14PauseSoundEffectById(...)暂停/恢复音效
15RotateFaceToActor(...)生物朝向目标
16GetMotion(...)获取对象移动速度
17SetBeHurtTarget(...)设置仇恨目标
18GetActorFacade(...)获取角色外观
19CompareMainModel(...)比较主模型外观
20PlayBodyParticleById(...)播放粒子特效
21StopBodyEffectById(...)停止粒子特效
22SetBodyParticleTransform(...)设置粒子特效变换
23Jump(...)对象跳跃
24GetRidingActorObjId(...)获取骑乘生物ID
25GetFaceDirection(...)获取对象朝向
26TryMoveToActor(...)对象移动到目标
27SetFaceDirection(...)设置对象朝向
28KillSelf(...)击败对象
29SetAttr(...)设置角色属性
30IncreasesAttr(...)增加角色属性值
31GetAttr(...)获取角色属性值
32SetActorPermissions(...)设置对象权限
33GetActorPermissions(...)获取对象权限
34SetFaceYaw(...)设置面向角度
35GetFaceYaw(...)获取面向角度
36SetFacePitch(...)设置仰望角度
37GetFacePitch(...)获取仰望角度
38SetPosition(...)设置角色位置
39GetPosition(...)获取对象位置
40ChangeCustomModel(...)改变对象外观
41RecoverinitialModel(...)恢复对象外观
42ActorHurt(...)对象造成伤害
43SetImmuneType(...)设置免疫伤害类型
44ChangActorMoveType(...)改变移动方式
45GetActorMovementMode(...)获取移动模式
46GetBoundSzie(...)获取模型大小
47RandomFacadeID(...)随机外观ID
48GetObjType(...)获取对象类型
49TryMoveToPos(...)移动对象到位置(寻路)
50AppendSpeed(...)附加速度
51FindNearestBlock(...)查找最近方块
52GetEyeHeight(...)获取角色眼睛高度
53ClearActorWithId(...)清除指定类型生物
54IsExist(...)对象是否存在
55PlayAnim(...)对象播放动作
56PlayHandAnim(...)对象手持播放动作
57MountActor(...)角色骑乘
58DisMountActor(...)角色取消骑乘
59PickupActor(...)角色举起角色
60TryPickupActorForward(...)尝试抓取前方对象
61DropActor(...)尝试投掷角色
62EscapePickup(...)尝试逃脱抓举
63SetBtreeVarValue(...)设置行为树变量
64GetBtreeVarValue(...)获取行为树变量
65GetDropItemInstanceId(...)获取掉落物实例ID
66SetAblePick(...)设置掉落物可拾取
67GetEntityFacade(...)获取实体类型外观
68PickupItem(...)角色拾取物品
69GetPickupObjID(...)获取举起行为中的角色ID
70HasTags(...)对象是否有标签
71GetTags(...)获取对象标签列表
72AddTags(...)添加标签
73RemoveTags(...)删除标签
74ClearTags(...)清空所有标签
75PlayAnimByObj(...)对象播放对象动作

GetItemId

  • 参数及类型:
  • 返回值及类型:
    • id:number掉落物类型ID(失败返回nil)
  • 该方法的其他说明: 根据掉落物对象ID获取对应的物品类型ID
  • 具体使用案例如下:
lua
    local itemId = Actor:GetItemId(objId)

GetDropItemNum

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 根据掉落物对象ID获取该掉落物的物品数量
  • 具体使用案例如下:
lua
    local num = Actor:GetDropItemNum(objId)

SetTeam

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定角色的队伍ID,可指定是否重置属性(仅对玩家有效)
  • 具体使用案例如下:
lua
    -- 设置玩家为3队

    local result = Actor:SetTeam(Player:GetHostUin(), AbsoluteCampType.Team3)

GetTeam

  • 参数及类型:
  • 返回值及类型:
    • id:number队伍ID(失败返回nil)
  • 该方法的其他说明: 根据角色对象ID获取该角色所属的队伍ID
  • 具体使用案例如下:
lua
    local team = Actor:GetTeam(Player:GetHostUin())

AddHp

  • 参数及类型:
    • objid:number角色对象ID
    • hp:number血量值(hp>0增加血量,hp<0减少血量)
  • 返回值及类型:
  • 该方法的其他说明: 增加或减少指定角色的当前生命值,正数增加,负数减少
  • 具体使用案例如下:
lua
local bool = Actor:AddHp(objid, hp)

GetMaxHP

  • 参数及类型:
  • 返回值及类型:
    • num:number最大生命值(失败返回nil)
  • 该方法的其他说明: 获取指定角色的最大生命值,包括所有属性加成
  • 具体使用案例如下:
lua
local num = Actor:GetMaxHP(objid)

ShowNickName

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定角色对象的昵称显示状态
  • 具体使用案例如下:
lua
    -- 显示昵称

    local result = Actor:ShowNickName(Player:GetHostUin(), true)

    -- 隐藏昵称

    local result2 = Actor:ShowNickName(Player:GetHostUin(), false)

SetNickName

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定角色的昵称,会自动过滤敏感词
  • 具体使用案例如下:
lua
    local result = Actor:SetNickName(Player:GetHostUin(), "昵称123")

GetNickName

  • 参数及类型:
  • 返回值及类型:
    • name:string角色昵称(失败返回nil)
  • 该方法的其他说明: 根据角色对象ID获取该角色的昵称,支持玩家和生物
  • 具体使用案例如下:
lua
    -- 获取玩家昵称

    local nickname = Actor:GetNickName(Player:GetHostUin())

GetObjWorldId

  • 参数及类型:
  • 返回值及类型:
    • id:number星球ID(失败返回-1)
  • 该方法的其他说明: 获取指定角色当前所在的星球ID
  • 具体使用案例如下:
lua
    local worldId = Actor:GetObjWorldId(Player:GetHostUin())

IsPlayer

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 检测指定对象ID是否为玩家对象
  • 具体使用案例如下:
lua
    local isPlayer = Actor:IsPlayer(objId)

PlaySoundEffectById

  • 参数及类型:
    • objid:number角色对象ID
    • soundId:number声音ID
    • volume:number音量(0-100,实际会转换为0-1)
    • pitch:number音调(默认1.0)
    • isLoop:boolean是否循环播放(默认false)
  • 返回值及类型:
  • 该方法的其他说明: 在指定角色对象身上通过声音ID播放音效,支持设置音量、音调和循环播放
  • 具体使用案例如下:
lua
     -- 对象上播放3d音效10379, 音量100, 音调1, 不循环

    local result = Actor:PlaySoundEffectById(Player:GetHostUin(), 10379, 100, 1, false)

StopSoundEffectById

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 停止指定角色对象身上正在播放的音效
  • 具体使用案例如下:
lua
    -- 停止播放3d音效10379

    local result = Actor:StopSoundEffectById(Player:GetHostUin(), 10379)

PauseSoundEffectById

  • 参数及类型:
    • objid:number角色对象ID
    • soundId:number声音ID(-1表示暂停所有音效)
    • pause:booleantrue暂停/false恢复
  • 返回值及类型:
  • 该方法的其他说明: 暂停或恢复指定角色对象身上正在播放的音效,支持暂停所有音效(soundId=-1)
  • 具体使用案例如下:
lua
    --暂停播放3d音效10379

    local result = Actor:PauseSoundEffectById(Player:GetHostUin(), 10379, true)

RotateFaceToActor

  • 参数及类型:
    • objid:number生物对象ID
    • targetid:number目标生物对象ID
  • 返回值及类型:
  • 该方法的其他说明: 使指定生物对象旋转朝向目标生物对象
  • 具体使用案例如下:
lua
    local result = Actor:RotateFaceToActor(objId, Player:GetHostUin())

GetMotion

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 获取指定对象当前的移动速度,返回三个轴向的速度分量
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetMotion(objId)

SetBeHurtTarget

  • 参数及类型:
    • objid:number生物对象ID
    • targetid:number目标生物对象ID
  • 返回值及类型:
  • 该方法的其他说明: 设置指定生物对象的仇恨目标,用于AI战斗系统
  • 具体使用案例如下:
lua
    local result = Actor:SetBeHurtTarget(objId, Player:GetHostUin())

GetActorFacade

  • 参数及类型:
    • objid:number对象ID
    • bhasequip:boolean是否包含装备(默认false,仅玩家有效)
  • 返回值及类型:
    • facade:string对象外观描述信息(失败返回nil)
  • 该方法的其他说明: 获取指定对象的外观描述信息,可设置是否包含装备信息(仅玩家有效,需要确保对象在场景中存在)
  • 具体使用案例如下:
lua
    local facade = Actor:GetActorFacade(Player:GetHostUin()) --不带装备信息

    local facade2 = Actor:GetActorFacade(Player:GetHostUin(),true) --附带装备信息目前只有使用avatar模型的玩家可以生效

CompareMainModel

  • 参数及类型:
  • 返回值及类型:
    • bool:boolean是否相等(参数错误返回false)
  • 该方法的其他说明: 比较两个主模型外观是否相等,通过外观描述信息进行对比
  • 具体使用案例如下:
lua
local bool = Actor:CompareMainModel(facade1, facade2)

PlayBodyParticleById

  • 参数及类型:
    • objid:number生物对象ID
    • particleId:number,string,table粒子特效ID或ID数组
    • ptme:number时长(单位:秒)
    • offset:table偏移(默认{x=0,y=0,z=0})
    • rot:table旋转(默认{x=0,y=0,z=0})
    • scale:table缩放(默认{x=1,y=1,z=1})
  • 返回值及类型:
  • 该方法的其他说明: 在指定对象身上播放粒子特效,支持设置偏移、旋转和缩放,可批量播放多个特效
  • 具体使用案例如下:
lua
    -- 对象上播放特效,特效id为1005,播放时间10秒,特效偏移y 2个方块位置,特效y旋转45,特效缩放为2倍

    local result = Actor:PlayBodyParticleById(Player:GetHostUin(), 1005, 10, {x = 0, y = 2, z = 0}, {x = 0, y = 45, z = 0}, {x = 2, y = 2, z = 2})

StopBodyEffectById

  • 参数及类型:
    • objid:number生物对象ID
    • particleId:number,string,table粒子特效ID或ID数组
  • 返回值及类型:
  • 该方法的其他说明: 停止指定对象身上正在播放的粒子特效,支持单个或批量停止
  • 具体使用案例如下:
lua
    local result = Actor:StopBodyEffectById(Player:GetHostUin(), 1005)

SetBodyParticleTransform

  • 参数及类型:
    • objid:number生物对象ID
    • particleId:number,string,table粒子特效ID或ID数组
    • offset:table偏移(默认{x=0,y=0,z=0})
    • rot:table旋转(默认{x=0,y=0,z=0})
    • scale:table缩放(默认{x=1,y=1,z=1})
  • 返回值及类型:
  • 该方法的其他说明: 设置指定对象身上粒子特效的变换参数,包括偏移、旋转和缩放,支持批量设置
  • 具体使用案例如下:
lua
    -- 修改对象上播放的特效,特效id为1005,播放时间10秒,特效偏移y 2个方块位置,特效y旋转45,特效缩放为2倍

    local result = Actor:SetBodyParticleTransform(Player:GetHostUin(), 1005, {x = 0, y = 2, z = 0}, {x = 0, y = 45, z = 0}, {x = 2, y = 2, z = 2})

Jump

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 使指定玩家或生物对象执行一次跳跃动作
  • 具体使用案例如下:
lua
    local result = Actor:Jump(objId)

GetRidingActorObjId

  • 参数及类型:
  • 返回值及类型:
    • id:number生物对象ID(失败返回0)
  • 该方法的其他说明: 获取指定角色对象正在骑乘的生物对象ID
  • 具体使用案例如下:
lua
    local ridingObjId = Actor:GetRidingActorObjId(Player:GetHostUin())

GetFaceDirection

  • 参数及类型:
  • 返回值及类型:
    • pos:table轴向上的方向向量{x=number,y=number,z=number}(失败返回nil)
  • 该方法的其他说明: 获取指定对象当前的朝向方向,返回三个轴向的方向向量
  • 具体使用案例如下:
lua
    local face = Actor:GetFaceDirection(objId)

TryMoveToActor

  • 参数及类型:
    • objid:number执行动作的对象ID
    • targetObjid:number目标对象ID
    • speed:number移动速度
  • 返回值及类型:
  • 该方法的其他说明: 使指定对象向目标对象移动,可设置移动速度(注意:刚创建的对象需要加个等待时间)
  • 具体使用案例如下:
lua
    local objs = World:SpawnCreature(x + 5, y + 1, z, 3400, 1, true, WorldId)

    local objId = objs[1]

    self:ThreadWait(0.2)

    -- 创建嘟嘟鸟往房主走

    local result = Actor:TryMoveToActor(objId, Player:GetHostUin(), 5)

SetFaceDirection

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定对象的朝向方向,通过三个轴向的方向向量控制
  • 具体使用案例如下:
lua
    local result = Actor:SetFaceDirection(objId, 0, 90, 0)

KillSelf

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 击败指定生物对象,使其死亡
  • 具体使用案例如下:
lua
    local result = Actor:KillSelf(objId)

SetAttr

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定角色对象的属性值,支持多种属性类型(血量、速度、体力等),属性改变会触发事件
  • 具体使用案例如下:
lua
    -- 设置攻击力300

    local result = Actor:SetAttr(objId, RoleAttr.Atk, 300)

IncreasesAttr

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 增加指定角色对象的属性值,在原有属性值基础上增加指定数值
  • 具体使用案例如下:
lua
local bool = Actor:IncreasesAttr(objid, atttype, val)

GetAttr

  • 参数及类型:
  • 返回值及类型:
    • num:number属性值(失败返回nil)
  • 该方法的其他说明: 获取指定角色对象的属性值,支持多种属性类型(血量、速度、体力等)
  • 具体使用案例如下:
lua
    -- 获取最大血量

    local maxHp = Actor:GetAttr(objId, RoleAttr.MaxHp)

SetActorPermissions

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定对象的行为权限,控制对象的各种能力开关(推荐接口)
  • 具体使用案例如下:
lua
    local result = Actor:SetActorPermissions(objId, Ability.EnableBeattacked, true)

GetActorPermissions

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 获取指定对象的行为权限状态,查询对象的各种能力开关(推荐接口)
  • 具体使用案例如下:
lua
    local state = Actor:GetActorPermissions(objId, Ability.Attack)

SetFaceYaw

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定生物对象的水平朝向角度(偏航角)
  • 具体使用案例如下:
lua
    local result = Actor:SetFaceYaw(objId, 90)

GetFaceYaw

  • 参数及类型:
  • 返回值及类型:
    • num:number面朝角度(失败返回nil)
  • 该方法的其他说明: 获取指定生物对象的水平朝向角度(偏航角)
  • 具体使用案例如下:
lua
    local yaw = Actor:GetFaceYaw(objId)

SetFacePitch

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定生物对象的垂直仰望角度(俯仰角)
  • 具体使用案例如下:
lua
    local pitch = Actor:GetFacePitch(Player:GetHostUin())

GetFacePitch

  • 参数及类型:
  • 返回值及类型:
    • num:number仰望角度(失败返回nil)
  • 该方法的其他说明: 获取指定生物对象的垂直仰望角度(俯仰角)
  • 具体使用案例如下:
lua
local num = Actor:GetFacePitch(objid)

SetPosition

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定角色对象的位置坐标,支持玩家和生物,坐标会自动转换为内部单位
  • 具体使用案例如下:
lua
    local result = Actor:SetPosition(objId, x, y, z)

GetPosition

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 获取指定对象的位置坐标,返回三个轴向的坐标值,坐标会自动转换为外部单位
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(objId)

ChangeCustomModel

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 改变指定对象的外观模型,支持多种模型类型(道具、生物、方块、实体等)
  • 具体使用案例如下:
lua
    -- 改变玩家外观为萤火虫

    local result = Actor:ChangeCustomModel(Player:GetHostUin(), "mob_3419")

RecoverinitialModel

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 恢复指定对象到初始外观模型,清除自定义外观设置
  • 具体使用案例如下:
lua
    local result = Actor:RecoverinitialModel(Player:GetHostUin())

ActorHurt

  • 参数及类型:
  • 返回值及类型:
    • bool:boolean是否造成伤害成功
  • 该方法的其他说明: 使指定对象对目标对象造成伤害,支持设置伤害类型、是否忽略伤害抵抗和触发事件
  • 具体使用案例如下:
lua
    -- 玩家对生物造成近战伤害10点

    local result = Actor:ActorHurt(Player:GetHostUin(), objId, 10, HurtType.Melee)

SetImmuneType

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定对象对特定伤害类型的免疫状态,支持设置无敌状态(immunetype=-1)
  • 具体使用案例如下:
lua
    -- 设置免疫爆炸伤害

    local result = Actor:SetImmuneType(objId, HurtType.Bomb, true)

    -- 设置免疫所有伤害

    Actor:SetImmuneType(objId, HurtType.All, true)

ChangActorMoveType

  • 参数及类型:
  • 返回值及类型:
    • bool:boolean是否改变成功(角色没有对应能力时返回失败)
  • 该方法的其他说明: 改变指定对象的移动方式,支持行走、游泳、飞行等模式,如果角色没有对应能力则返回失败
  • 具体使用案例如下:
lua
    local result = Actor:ChangActorMoveType(Player:GetHostUin(), MoveType.Flying)

GetActorMovementMode

  • 参数及类型:
  • 返回值及类型:
    • num:number移动模式枚举(MoveType)(失败返回nil)
  • 该方法的其他说明: 获取指定角色对象当前的移动模式
  • 具体使用案例如下:
lua
    local moveType = Actor:GetActorMovementMode(Player:GetHostUin())

GetBoundSzie

  • 参数及类型:
  • 返回值及类型:
    • vec:table模型大小{x=长,y=高,z=宽}(失败返回nil)
  • 该方法的其他说明: 获取指定角色对象的模型边界大小,返回长、高、宽三个维度的尺寸
  • 具体使用案例如下:
lua
    local size = Actor:GetBoundSzie(objId)

RandomFacadeID

  • 参数及类型: 无
  • 返回值及类型:
    • id:string随机外观ID(失败返回nil)
  • 该方法的其他说明: 从外观列表中随机获取一个外观ID字符串,包括生物、角色、装扮等类型
  • 具体使用案例如下:
lua
    local facadeID = Actor:RandomFacadeID()

GetObjType

  • 参数及类型:
  • 返回值及类型:
    • itype:number对象类型枚举(ObjType)(失败返回nil)
  • 该方法的其他说明: 获取指定对象的类型,判断对象是玩家、生物还是其他类型
  • 具体使用案例如下:
lua
    local objType = Actor:GetObjType(objId)

TryMoveToPos

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 尝试移动指定角色对象到目标位置,使用寻路算法,支持设置是否可控制和是否显示提示
  • 具体使用案例如下:
lua
    local result = Actor:TryMoveToPos(objId, x + 10, y + 1, z, false, false)

AppendSpeed

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 给指定对象附加一个速度,在三个轴向上叠加速度分量
  • 具体使用案例如下:
lua
    -- 给对象增加个x轴20,y轴10,z轴0的移动速度

    local result = Actor:AppendSpeed(objId, 20, 10, 0)

FindNearestBlock

  • 参数及类型:
    • objid:number对象ID
    • blockid:number,string查找的方块类型ID
    • blockRange:number查找范围(传1表示1格方块距离)
  • 返回值及类型:
  • 该方法的其他说明: 在指定对象附近查找某个类型方块的最近位置,返回方块坐标
  • 具体使用案例如下:
lua
local x, y, z = Actor:FindNearestBlock(objid, blockid, blockRange)

GetEyeHeight

  • 参数及类型:
  • 返回值及类型:
    • num:number眼睛高度(失败返回nil)
  • 该方法的其他说明: 获取指定角色对象的眼睛高度,用于视线计算
  • 具体使用案例如下:
lua
    local height = Actor:GetEyeHeight(objId)

ClearActorWithId

  • 参数及类型:
    • actorid:number,string生物类型ID
    • bkill:boolean是否杀死生物(默认false,影响是否产生掉落物)
    • worldId:number星球ID(默认当前主机所在星球)
  • 返回值及类型:
  • 该方法的其他说明: 清除指定类型的所有生物,可设置是否杀死生物(影响是否产生掉落物)和指定星球
  • 具体使用案例如下:
lua
    local result = Actor:ClearActorWithId(3400, false, WorldId)

    local count = 0

    for _, objId in ipairs(objs) do

        local obj = GameObject:FindObject(objId)

        if obj then

            count = count + 1

        end

    end

IsExist

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 检测指定对象是否存在且存活
  • 具体使用案例如下:
lua
    local isExist = Actor:IsExist(objId)

PlayAnim

  • 参数及类型:
    • objid:number对象ID
    • animid:number,string动作ID
    • speed:number播放速度
    • loop:number,boolean播放模式(AnimMode)或是否循环AnimMode
  • 返回值及类型:
  • 该方法的其他说明: 在指定对象身上播放动作,支持设置播放速度和循环模式,播放成功会触发事件
  • 具体使用案例如下:
lua
    local result = Actor:PlayAnim(objId, 100100, 1, AnimMode.Default)

PlayHandAnim

  • 参数及类型:
    • objid:number对象ID
    • animid:number,string动作ID
    • speed:number播放速度
    • loop:number,boolean播放模式(AnimMode)或是否循环AnimMode
  • 返回值及类型:
  • 该方法的其他说明: 在指定对象的手部播放动作,支持设置播放速度和循环模式
  • 具体使用案例如下:
lua
    local result = Actor:PlayHandAnim(objId, 100100, 1, AnimMode.Once)

MountActor

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 使指定角色对象骑乘到目标对象上,支持设置是否控制和是否关闭AI
  • 具体使用案例如下:
lua
    local result = Actor:MountActor(Player:GetHostUin(), objId, true, true)

DisMountActor

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 使指定角色对象取消当前骑乘状态
  • 具体使用案例如下:
lua
    local result = Actor:DisMountActor(Player:GetHostUin())

PickupActor

  • 参数及类型: objidA:number:对象objidA,objidB:number:对象objidB
  • 返回值及类型:
  • 该方法的其他说明: 使角色A尝试举起角色B
  • 具体使用案例如下:
lua
    -- local result = Actor:PickupActor(uin, objId)

    -- Actor:EscapePickup(objId) --取消抓举

    --偏移量方块距离

    local offset = {

        x = 0,

        y = 1,

        z = 0,

    }

    --偏移量

    local rotate = {

        x = 0,

        y = 0,

        z = 0,

    }

    local result = Actor:PickupActor(uin,objId,100502,100113,offset,rotate)

TryPickupActorForward

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 尝试抓取指定角色前方指定距离内的对象,失败时会播放尝试举起动作
  • 具体使用案例如下:
lua
    local result = Actor:TryPickupActorForward(Player:GetHostUin(), 30)

DropActor

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 尝试投掷指定角色对象,支持设置投掷方向、速度、是否投掷和是否有惯性
  • 具体使用案例如下:
lua
    local result = Actor:DropActor(Player:GetHostUin(), {x = 1, y = 2, z = 0}, true, 500, true)

EscapePickup

  • 参数及类型:
    • objid:number被抓举的对象ID
  • 返回值及类型:
  • 该方法的其他说明: 使指定被抓举的对象尝试逃脱抓举状态
  • 具体使用案例如下:
lua
    self:ThreadWait(0.1)

    local result = Actor:EscapePickup(objId)

SetBtreeVarValue

  • 参数及类型:
    • objid:number生物对象ID
    • varid:string变量ID
    • val:any变量值
  • 返回值及类型:
    • bool:boolean是否设置成功(组数据无法设置)
  • 该方法的其他说明: 设置指定生物对象行为树的变量值,组数据无法设置
  • 具体使用案例如下:
lua
    local result = Actor:SetBtreeVarValue(objId, "7321982627776387751_26396", 1)

GetBtreeVarValue

  • 参数及类型:
  • 返回值及类型:
    • val:any变量值(失败返回nil,组数据无法获取)
  • 该方法的其他说明: 获取指定生物对象行为树的变量值,组数据无法获取
  • 具体使用案例如下:
lua
    local result = Actor:GetBtreeVarValue(objId, "7321982627776387751_26396")

GetDropItemInstanceId

  • 参数及类型:
  • 返回值及类型:
    • id:string道具实例ID(失败返回nil)
  • 该方法的其他说明: 根据掉落物对象ID获取对应的道具实例ID
  • 具体使用案例如下:
lua
local id = Actor:GetDropItemInstanceId(objid)

SetAblePick

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 设置指定掉落物对象是否可以被拾取
  • 具体使用案例如下:
lua
    local result = Actor:SetAblePick(objId, false)

GetEntityFacade

  • 参数及类型:
    • prefab:string实体类型名称
  • 返回值及类型:
    • facade:string外观描述信息(失败返回nil)
  • 该方法的其他说明: 根据实体类型名称获取对应的外观描述信息,支持官方模板实体和自定义实体
  • 具体使用案例如下:
lua
    --传入自定义实体prefabid

    local result = Actor:GetEntityFacade("s_7509852525127419914_23098")

PickupItem

  • 参数及类型:
    • objid:number角色对象ID
    • itemobjid:number掉落物或投掷物对象ID
    • bforcepickup:boolean是否强制拾取(默认false)
  • 返回值及类型:
    • num:number拾取数量(失败返回0)
  • 该方法的其他说明: 使指定角色对象拾取地上的掉落物或投掷物,支持强制拾取
  • 具体使用案例如下:
lua
    local result = Actor:PickupItem(Player:GetHostUin(), objId)

    if result then

        print("拾取掉落物成功 数量 = " ,result)

    end

GetPickupObjID

  • 参数及类型:
    • objid:number角色对象ID
    • roleType:number角色类型(1=举起者CARRYING, 2=被举起者CARRIED)
  • 返回值及类型:
    • id:number角色对象ID(失败返回0)
  • 该方法的其他说明: 获取指定角色举起的角色对象ID或被举起的角色对象ID
  • 具体使用案例如下:
lua
local id = Actor:GetPickupObjID(objid, roleType)

HasTags

  • 参数及类型:
    • objid:number对象ID
    • tags:string,table标签或标签数组
    • mathcmode:number匹配方式(MatchMode)MatchMode
    • bexactmatch:boolean每条标签是否精确匹配
  • 返回值及类型:
  • 该方法的其他说明: 检测指定对象是否具有指定标签,支持部分匹配方式和精确匹配
  • 具体使用案例如下:
lua
    local result = Actor:HasTags(uin, {"A.B.C", "A.D.E", "F.G.H" },MatchMode.All,true)

    local result2 = Actor:HasTags(uin, {"A.B.C", "D.E", "S.T.D" },MatchMode.All,false)

    local result3 = Actor:HasTags(uin, {"A.B.C","B.C", },MatchMode.Any,false)

    local result4 = Actor:HasTags(uin, { "G.H" },MatchMode.Any,false)

GetTags

  • 参数及类型:
  • 返回值及类型:
    • tags:table标签数组(失败返回nil)
  • 该方法的其他说明: 获取指定对象的所有标签列表
  • 具体使用案例如下:
lua
    local tags = Actor:GetTags(uin)

    if tags then

        print("玩家定义中的标签:", tags)

    end

AddTags

  • 参数及类型:
    • objid:number对象ID
    • tags:string,table标签或标签数组(数值字母下划线组合)
    • icount:number引用计数(默认1)
  • 返回值及类型:
  • 该方法的其他说明: 为指定对象添加标签,支持批量添加,标签由数值、字母和下划线组合,支持引用计数
  • 具体使用案例如下:
lua
    local tags = { "A.B.C", "A.D.E", "F.G.H" }

    local result = Actor:AddTags(uin, tags, 1)

    if result then

        print("添加标签成功", result)

    end

RemoveTags

  • 参数及类型:
    • objid:number对象ID
    • tags:string,table标签或标签数组
    • icount:number引用计数(默认0,传0全部删除)
  • 返回值及类型:
  • 该方法的其他说明: 从指定对象删除标签,支持批量删除,引用计数为0时全部删除
  • 具体使用案例如下:
lua
local bool = Actor:RemoveTags(objid, tags, icount)

ClearTags

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 清空指定对象的所有标签
  • 具体使用案例如下:
lua
    local result = Actor:ClearTags(uin)

PlayAnimByObj

  • 参数及类型:
  • 返回值及类型:
    • bool:boolean是否播放成功(仅玩家、生物、实体生效)
  • 该方法的其他说明: 使对象A播放对象B的动作,仅玩家、生物和实体生效,模型外观最好一致
  • 具体使用案例如下:
lua
    local ret =  Actor:PlayAnim(uin, "100101", 1, AnimMode.Loop) -- 玩家播放奔跑动画

    if ret then

        self:ThreadWait(0.2)

        -- 如果objId对应的模型如果没有动画 就播放不成功 跟随播放的生物最好不要动 可能会被其他状态打断

        ret = Actor:PlayAnimByObj(objId , uin ,true) -- 重新播放

    end