Skip to content

角色模块管理接口 Actor

具体函数名及描述如下:

序号函数名函数描述
1GetItemId(...)获取掉落物的类型ID
2GetDropItemNum(...)获取掉落物品数量
3SetTeam(...)设置角色队伍
4GetTeam(...)获取角色队伍
5AddHp(...)增加角色当前生命量
6GetMaxHP(...)获取最大血量(包括加成)
7SetNickName(...)设置角色昵称
8GetNickName(...)获取角色昵称
9GetCurMapId(...)获取角色所在的mapid
10IsPlayer(...)检查对象是否为玩家
11PlaySoundEffectById(...)在指定角色身上播放音效
12StopSoundEffectById(...)停止指定对象身上的音效
13PauseSoundEffectById(...)暂停/恢复指定对象身上的音效
14RotateFaceToActor(...)使生物朝向目标生物
15GetActorFacade(...)获取生物外观(需要确保对象在场景中存在)
16PlayBodyParticleById(...)在指定对象身上播放粒子特效
17StopBodyEffectById(...)停止指定对象身上的粒子特效
18SetBodyParticleTransform(...)设置指定对象身上的特效大小
19GetRidingActorObjId(...)获取骑乘生物的objid
20GetFaceDirection(...)获取actor朝向
21TryMoveToActor(...)使对象向目标行动者移动(如果执行对象是刚创建出来的需要加个等待时间)
22SetFaceDirection(...)设置对象朝向
23KillSelf(...)击败对象
24SetAttr(...)设置角色属性
25GetAttr(...)获取角色属性值
26SetActorPermissions(...)设置对象权限
27GetActorPermissions(...)获取对象权限
28SetFaceYaw(...)设置对象面向角度
29GetFaceYaw(...)获取actor视角偏移角度
30SetFacePitch(...)设置actor视角仰望角度
31GetFacePitch(...)获取actor视角仰望角度
32SetPosition(...)设置角色位置
33GetPosition(...)获取对象位置
34ChangeCustomModel(...)改变对象外观
35RecoverinitialModel(...)恢复对象外观
36ActorHurt(...)使对象A对对象B造成伤害
37SetImmuneType(...)设置免疫伤害类型
38ChangActorMoveType(...)改变玩家移动方式
39GetActorMovementMode(...)取角色的移动模式
40GetBoundSzie(...)获取模型大小值
41RandomFacadeID(...)随机一个外观获取其 id字符串
42GetObjType(...)判断对象是否是玩家/生物
43TryMoveToPos(...)尝试移动到某个位置走寻路 方块坐标
44AppendSpeed(...)给对象附加一个速度
45FindNearestBlock(...)寻找对象附近某个类型方块的最近位置
46GetEyeHeight(...)获取角色高度
47ClearActorWithId(...)清除生物ID为actorid的生物
48IsExist(...)对象是否存在
49PlayAnim(...)对象播放动作
50PlayHandAnim(...)对象手持播放动作
51MountActor(...)角色骑乘
52DisMountActor(...)角色取消骑乘
53PickupActor(...)对象抓举对象
54TryPickupActorForward(...)尝试抓取前方指定距离的对象
55DropActor(...)尝试投掷角色
56EscapePickup(...)尝试逃脱抓举

GetItemId

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取掉落物的类型ID
  • 具体使用案例如下:
lua
    local itemId = Actor:GetItemId(objId)

GetDropItemNum

  • 参数及类型:
  • 返回值及类型:
    • itemnum:number掉落物品数量
  • 该方法的主要作用: 获取掉落物品数量
  • 具体使用案例如下:
lua
    local num = Actor:GetDropItemNum(objId)

SetTeam

  • 参数及类型:
  • 返回值及类型:
    • ret:bool设置成功(true)
  • 该方法的主要作用: 设置角色队伍
  • 具体使用案例如下:
lua
    -- 设置玩家为3队

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

GetTeam

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取角色队伍
  • 具体使用案例如下:
lua
    local team = Actor:GetTeam(Player:GetHostUin())

AddHp

  • 参数及类型:
    • objid:number角色objid
    • hp:number血量值(hp>0增加血量
    • hp<0减少血量)
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 增加角色当前生命量
  • 具体使用案例如下:
lua
local ret = Actor:AddHp(objid, hp)

GetMaxHP

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取最大血量(包括加成)
  • 具体使用案例如下:
lua
local value = Actor:GetMaxHP(objid)

SetNickName

  • 参数及类型:
  • 返回值及类型:
    • ret:bool设置成功(true)
  • 该方法的主要作用: 设置角色昵称
  • 具体使用案例如下:
lua
    local result = Actor:SetNickName(Player:GetHostUin(), "昵称123")

GetNickName

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取角色昵称
  • 具体使用案例如下:
lua
    -- 获取玩家昵称

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

GetCurMapId

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取角色所在的mapid
  • 具体使用案例如下:
lua
    local mapId = Actor:GetCurMapId(objId)

IsPlayer

  • 参数及类型:
  • 返回值及类型:
    • ret:bool是否为玩家(true)
  • 该方法的主要作用: 检查对象是否为玩家
  • 具体使用案例如下:
lua
    local isPlayer = Actor:IsPlayer(objId)

PlaySoundEffectById

  • 参数及类型:
  • 返回值及类型:
    • ret:bool播放成功(true)
  • 该方法的主要作用: 在指定角色身上播放音效
  • 具体使用案例如下:
lua
     -- 对象上播放3d音效10379, 音量100, 音调1, 不循环

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

StopSoundEffectById

  • 参数及类型:
  • 返回值及类型:
    • ret:bool停止成功(true)
  • 该方法的主要作用: 停止指定对象身上的音效
  • 具体使用案例如下:
lua
    -- 停止播放3d音效10379

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

PauseSoundEffectById

  • 参数及类型:
  • 返回值及类型:
    • ret:bool停止成功(true)
  • 该方法的主要作用: 暂停/恢复指定对象身上的音效
  • 具体使用案例如下:
lua
    --暂停播放3d音效10379

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

RotateFaceToActor

  • 参数及类型:
  • 返回值及类型:
    • ret:bool旋转成功(true)
  • 该方法的主要作用: 使生物朝向目标生物
  • 具体使用案例如下:
lua
local ret = Actor:RotateFaceToActor(objid, targetid)

GetActorFacade

  • 参数及类型:
  • 返回值及类型:
    • facade:string生物外观对象
  • 该方法的主要作用: 获取生物外观(需要确保对象在场景中存在)
  • 具体使用案例如下:
lua
    local facade = Actor:GetActorFacade(Player:GetHostUin())

PlayBodyParticleById

  • 参数及类型:
    • objid:number生物对象objid
    • particleId:number或者number列表粒子特效ID
    • ptme:number时长(单位:秒)
    • offset:table偏移
    • rot:table旋转
    • scale:table缩放
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 在指定对象身上播放粒子特效
  • 具体使用案例如下:
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

  • 参数及类型:
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 停止指定对象身上的粒子特效
  • 具体使用案例如下:
lua
    local result = Actor:StopBodyEffectById(Player:GetHostUin(), 1005)

SetBodyParticleTransform

  • 参数及类型:
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 设置指定对象身上的特效大小
  • 具体使用案例如下:
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})

GetRidingActorObjId

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取骑乘生物的objid
  • 具体使用案例如下:
lua
    local ridingObjId = Actor:GetRidingActorObjId(Player:GetHostUin())

GetFaceDirection

  • 参数及类型:
  • 返回值及类型:
    • pos:table轴向上的方向
  • 该方法的主要作用: 获取actor朝向
  • 具体使用案例如下:
lua
    local face = Actor:GetFaceDirection(objId)

TryMoveToActor

  • 参数及类型:
    • objid:number执行动作的对象id
    • targetObjid:number目标的对象id
    • speed:number移动速度
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 使对象向目标行动者移动(如果执行对象是刚创建出来的需要加个等待时间)
  • 具体使用案例如下:
lua
    local objs = World:SpawnCreature(x + 5, y + 1, z, 3400)

    local objId = objs[1]

    self:ThreadWait(0.2)

    -- 创建嘟嘟鸟往房主走

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

SetFaceDirection

  • 参数及类型:
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 设置对象朝向
  • 具体使用案例如下:
lua
    local result = Actor:SetFaceDirection(objId, 0, 90, 0)

KillSelf

  • 参数及类型:
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 击败对象
  • 具体使用案例如下:
lua
    local result = Actor:KillSelf(objId)

SetAttr

  • 参数及类型:
  • 返回值及类型:
    • ret:bool设置成功(true)
  • 该方法的主要作用: 设置角色属性
  • 具体使用案例如下:
lua
    -- 设置攻击力300

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

GetAttr

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取角色属性值
  • 具体使用案例如下:
lua
    -- 获取最大血量

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

SetActorPermissions

  • 参数及类型:
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 设置对象权限
  • 具体使用案例如下:
lua
    local result = Actor:SetActorPermissions(objId, Ability.EnableBeattacked, true)

GetActorPermissions

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取对象权限
  • 具体使用案例如下:
lua
    local state = Actor:GetActorPermissions(objId, Ability.Attack)

SetFaceYaw

  • 参数及类型:
  • 返回值及类型:
    • ret:bool设置成功(true)
  • 该方法的主要作用: 设置对象面向角度
  • 具体使用案例如下:
lua
    local result = Actor:SetFaceYaw(objId, 90)

GetFaceYaw

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取actor视角偏移角度
  • 具体使用案例如下:
lua
    local yaw = Actor:GetFaceYaw(objId)

SetFacePitch

  • 参数及类型:
  • 返回值及类型:
    • ret:bool设置成功(true)
  • 该方法的主要作用: 设置actor视角仰望角度
  • 具体使用案例如下:
lua
    local pitch = Actor:GetFacePitch(Player:GetHostUin())

GetFacePitch

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取actor视角仰望角度
  • 具体使用案例如下:
lua
local pitch = Actor:GetFacePitch(objid)

SetPosition

  • 参数及类型:
  • 返回值及类型:
    • ret:bool设置成功(true)
  • 该方法的主要作用: 设置角色位置
  • 具体使用案例如下:
lua
    local result = Actor:SetPosition(objId, x, y, z)

GetPosition

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取对象位置
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(objId)

ChangeCustomModel

  • 参数及类型:
  • 返回值及类型:
    • ret:bool成功(true),
  • 该方法的主要作用: 改变对象外观
  • 具体使用案例如下:
lua
    -- 改变玩家外观为萤火虫

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

RecoverinitialModel

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 恢复对象外观
  • 具体使用案例如下:
lua
    local result = Actor:RecoverinitialModel(Player:GetHostUin())

ActorHurt

  • 参数及类型:
    • objid:number攻击者对象的objid
    • targetid:number目标对象的objid
    • damage:number伤害值
    • attacktype:number伤害类型枚举(HurtType)HurtType
    • ignoreResist:bool忽略伤害抵抗
    • ignoreTriggerEvent:bool忽略触发伤害事件
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 使对象A对对象B造成伤害
  • 具体使用案例如下:
lua
    -- 玩家对生物造成近战伤害10点

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

SetImmuneType

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置免疫伤害类型
  • 具体使用案例如下:
lua
    -- 设置免疫爆炸伤害

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

    -- 设置免疫所有伤害

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

ChangActorMoveType

  • 参数及类型:
  • 返回值及类型: return:bool。如果角色没有设置的移动模式对应的能力,返回失败。
  • 该方法的主要作用: 改变玩家移动方式
  • 具体使用案例如下:
lua
    local result = Actor:ChangActorMoveType(Player:GetHostUin(), MoveType.Flying)

GetActorMovementMode

  • 参数及类型:
  • 返回值及类型:
    • return:number返回玩家的移动模式
  • 该方法的主要作用: 取角色的移动模式
  • 具体使用案例如下:
lua
    local moveType = Actor:GetActorMovementMode(Player:GetHostUin())

GetBoundSzie

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取模型大小值
  • 具体使用案例如下:
lua
    local size = Actor:GetBoundSzie(objId)

RandomFacadeID

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的主要作用: 随机一个外观获取其 id字符串
  • 具体使用案例如下:
lua
    local facadeID = Actor:RandomFacadeID()

GetObjType

  • 参数及类型:
  • 返回值及类型:
    • ret:itype获取结果 ObjType
  • 该方法的主要作用: 判断对象是否是玩家/生物
  • 具体使用案例如下:
lua
    local objType = Actor:GetObjType(objId)

TryMoveToPos

  • 参数及类型:
    • objid:number角色objid
    • x,y,z:number坐标
    • cancontrol:bool是否能控制
    • bshowtip:bool是否显示提示
  • 返回值及类型:
    • ret:bool移动成功(true)
  • 该方法的主要作用: 尝试移动到某个位置走寻路 方块坐标
  • 具体使用案例如下:
lua
    local result = Actor:TryMoveToPos(objId, x + 10, y + 1, z, false, false)

AppendSpeed

  • 参数及类型:
    • objid:number对象objid
    • x,y,z:number轴向方向上的速度大小
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 给对象附加一个速度
  • 具体使用案例如下:
lua
    -- 给对象增加个x轴20,y轴10,z轴0的移动速度

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

FindNearestBlock

  • 参数及类型:
    • objid:number对象objid
    • blockid:number查找的方块类型
    • blockRange:number查找范围(传1表示1格方块距离)
  • 返回值及类型:
  • 该方法的主要作用: 寻找对象附近某个类型方块的最近位置
  • 具体使用案例如下:
lua
    --查找玩家50格子内最近的草块(草块ID为100)

    local block = Actor:FindNearestBlock(Player:GetHostUin(), 100, 50)

GetEyeHeight

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取角色高度
  • 具体使用案例如下:
lua
    local height = Actor:GetEyeHeight(objId)

ClearActorWithId

  • 参数及类型: actorid:number:生物类型,bkill:bool:是否杀死生物(默认false,可以区分是否产生掉落物)
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 清除生物ID为actorid的生物
  • 具体使用案例如下:
lua
    local result = Actor:ClearActorWithId(3400, false)

IsExist

  • 参数及类型:
  • 返回值及类型:
    • ret:bool存在(true)
  • 该方法的主要作用: 对象是否存在
  • 具体使用案例如下:
lua
    local isExist = Actor:IsExist(objId)

PlayAnim

  • 参数及类型:
    • objid:number对象id
    • animid:number,string动作id
    • speed:number播放速度
    • loop:bool,number是否循环或循环模式
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 对象播放动作
  • 具体使用案例如下:
lua
    local result = Actor:PlayAnim(objId, 100100, 1, AnimMode.Default)

PlayHandAnim

  • 参数及类型:
    • objid:number对象id
    • animid:number,string动作id
    • speed:number播放速度
    • loop:bool,number是否循环或循环模式
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 对象手持播放动作
  • 具体使用案例如下:
lua
    local result = Actor:PlayHandAnim(objId, 100100, 1, AnimMode.Once)

MountActor

  • 参数及类型:
    • objid:number对象id
    • rideObjid:number被骑乘对象
    • isContrl:bool是否控制
    • isCloseAI:bool是否关闭AI
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 角色骑乘
  • 具体使用案例如下:
lua
    local result = Actor:MountActor(Player:GetHostUin(), objId, true, true)

DisMountActor

  • 参数及类型:
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 角色取消骑乘
  • 具体使用案例如下:
lua
    local result = Actor:DisMountActor(Player:GetHostUin())

PickupActor

  • 参数及类型:
  • 返回值及类型:
    • ret:bool抓取成功(true)
  • 该方法的主要作用: 对象抓举对象
  • 具体使用案例如下:
lua
    local result = Actor:PickupActor(Player:GetHostUin(), objId)

TryPickupActorForward

  • 参数及类型:
  • 返回值及类型:
    • ret:bool抓取成功(true)
  • 该方法的主要作用: 尝试抓取前方指定距离的对象
  • 具体使用案例如下:
lua
    local result = Actor:TryPickupActorForward(Player:GetHostUin(), 30)

DropActor

  • 参数及类型:
  • 返回值及类型:
    • ret:bool投掷成功(true)
  • 该方法的主要作用: 尝试投掷角色
  • 具体使用案例如下:
lua
    local result = Actor:DropActor(Player:GetHostUin(), {x = 1, y = 2, z = 0}, true, 500, true)

EscapePickup

  • 参数及类型:
    • objid:number被抓举的对象objid
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 尝试逃脱抓举
  • 具体使用案例如下:
lua
    self:ThreadWait(0.1)

    local result = Actor:EscapePickup(objId)