Appearance
角色模块管理接口 Actor
具体函数名及描述如下:
GetItemId
- 参数及类型:
- objid:
number掉落物对象ID
- objid:
- 返回值及类型:
- id:
number掉落物类型ID(失败返回nil)
- id:
- 该方法的其他说明: 根据掉落物对象ID获取对应的物品类型ID
- 具体使用案例如下:
lua
local itemId = Actor:GetItemId(objId)GetDropItemNum
lua
local num = Actor:GetDropItemNum(objId)SetTeam
- 参数及类型:
- objid:
number角色对象ID - teamid:
number队伍ID(AbsoluteCampType)AbsoluteCampType - bResetAttr:
boolean是否重置属性(仅玩家有效,默认false)
- objid:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定角色的队伍ID,可指定是否重置属性(仅对玩家有效)
- 具体使用案例如下:
lua
-- 设置玩家为3队
local team = AbsoluteCampType.Team3
local result = Actor:SetTeam(playerId, team)GetTeam
lua
local curteam = Actor:GetTeam(playerId)AddHp
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否操作成功
- bool:
- 该方法的其他说明: 增加或减少指定角色的当前生命值,正数增加,负数减少
- 具体使用案例如下:
lua
local playerId = Player:GetHostUin()
local result = Actor:AddHp(playerId, 1)GetMaxHP
lua
local playerId = Player:GetHostUin()
local maxhp = Actor:GetMaxHP(playerId)
if maxhp and maxhp > 0 then
print("获取成功")
endShowNickName
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定角色对象的昵称显示状态
- 具体使用案例如下:
lua
local visible = false
local result = Actor:ShowNickName(playerId, visible)SetNickName
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定角色的昵称,会自动过滤敏感词
- 具体使用案例如下:
lua
local nickname = "昵称123"
local result = Actor:SetNickName(playerId, nickname)GetNickName
- 参数及类型:
- objid:
number角色对象ID
- objid:
- 返回值及类型:
- name:
string角色昵称(失败返回nil)
- name:
- 该方法的其他说明: 根据角色对象ID获取该角色的昵称,支持玩家和生物
- 具体使用案例如下:
lua
-- 获取玩家昵称
local name = Actor:GetNickName(playerId)GetObjWorldId
lua
local worldId = Actor:GetObjWorldId(playerId)IsPlayer
lua
local isPlayer = Actor:IsPlayer(objId)PlaySoundEffectById
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否播放成功
- bool:
- 该方法的其他说明: 在指定角色对象身上通过声音ID播放音效,支持设置音量、音调和循环播放
- 具体使用案例如下:
lua
-- 对象上播放3d音效10379, 音量100, 音调1, 不循环
local result = Actor:PlaySoundEffectById(playerId, 10379, 100, 1, false)StopSoundEffectById
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否停止成功
- bool:
- 该方法的其他说明: 停止指定角色对象身上正在播放的音效
- 具体使用案例如下:
lua
-- 停止播放3d音效10379
local result3 = Actor:StopSoundEffectById(playerId, 10379)PauseSoundEffectById
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否操作成功
- bool:
- 该方法的其他说明: 暂停或恢复指定角色对象身上正在播放的音效,支持暂停所有音效(soundId=-1)
- 具体使用案例如下:
lua
--暂停播放3d音效10379
local result2 = Actor:PauseSoundEffectById(playerId, 10379, true)RotateFaceToActor
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否旋转成功
- bool:
- 该方法的其他说明: 使指定生物对象旋转朝向目标生物对象
- 具体使用案例如下:
lua
local result = Actor:RotateFaceToActor(objId, playerId)GetMotion
- 参数及类型:
- objid:
number对象ID
- objid:
- 返回值及类型:
- 该方法的其他说明: 获取指定对象当前的移动速度,返回三个轴向的速度分量
- 具体使用案例如下:
lua
local mx, my, mz = Actor:GetMotion(objId)SetBeHurtTarget
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定生物对象的仇恨目标,用于AI战斗系统
- 具体使用案例如下:
lua
local result = Actor:SetBeHurtTarget(objId, playerId)GetActorFacade
- 参数及类型:
- 返回值及类型:
- facade:
string对象外观描述信息(失败返回nil)
- facade:
- 该方法的其他说明: 获取指定对象的外观描述信息,可设置是否包含装备信息(仅玩家有效,需要确保对象在场景中存在)
- 具体使用案例如下:
lua
local playerId = Player:GetHostUin()
Backpack:CreateItem(playerId, 12202, 1, BackpackType.Equip) -- 创建装备
--附带装备信息目前只有玩家启用了模型组件才可以生效,并且用了带部件的商城坑位模型才生效,
local includeequip = true
local facade2 = Actor:GetActorFacade(playerId, includeequip)CompareMainModel
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否相等(参数错误返回false)
- bool:
- 该方法的其他说明: 比较两个主模型外观是否相等,通过外观描述信息进行对比
- 具体使用案例如下:
lua
local sameResult = Actor:CompareMainModel("skin_259", "skin_259")
local differentResult = Actor:CompareMainModel("skin_259", "skin_260")PlayBodyParticleById
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否播放成功
- bool:
- 该方法的其他说明: 在指定对象身上播放粒子特效,支持设置偏移、旋转和缩放,可批量播放多个特效
- 具体使用案例如下:
lua
-- 对象上播放特效,特效id为1005,播放时间3秒,特效偏移y 2个方块位置,特效y旋转45,特效缩放为2倍
local particleId = 1005
local result = Actor:PlayBodyParticleById(objId, particleId, 3, {x = 0, y = 2, z = 0}, {x = 0, y = 45, z = 0}, {x = 2, y = 2, z = 2})StopBodyEffectById
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否停止成功
- bool:
- 该方法的其他说明: 停止指定对象身上正在播放的粒子特效,支持单个或批量停止
- 具体使用案例如下:
lua
local result = Actor:StopBodyEffectById(objId, particleId)SetBodyParticleTransform
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定对象身上粒子特效的变换参数,包括偏移、旋转和缩放,支持批量设置
- 具体使用案例如下:
lua
-- 修改对象上播放的特效,特效id为particleId,特效偏移y 3个方块位置,特效y旋转90,特效缩放为1.5倍
local particleId = 1005
local result = Actor:SetBodyParticleTransform(objId, particleId, {x = 0, y = 3, z = 0}, {x = 0, y = 90, z = 0}, {x = 1.5, y = 1.5, z = 1.5})Jump
lua
local result = Actor:Jump(objId)GetRidingActorObjId
lua
local ridingObjId = Actor:GetRidingActorObjId(playerId)GetFaceDirection
- 参数及类型:
- objid:
number对象ID
- objid:
- 返回值及类型:
- pos:
table轴向上的方向向量{x=number,y=number,z=number}(失败返回nil)
- pos:
- 该方法的其他说明: 获取指定对象当前的朝向方向,返回三个轴向的方向向量
- 具体使用案例如下:
lua
local dir = Actor:GetFaceDirection(objId) -- 返回的是方向向量TryMoveToActor
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否移动成功
- bool:
- 该方法的其他说明: 使指定对象向目标对象移动,可设置移动速度(注意:刚创建的对象需要加个等待时间)
- 具体使用案例如下:
lua
-- 创建objId对象往玩家playerId走
local result = Actor:TryMoveToActor(objId, playerId, 5)SetFaceDirection
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定对象的朝向方向,通过三个轴向的方向向量控制
- 具体使用案例如下:
lua
local x ,y,z = 0,0,1 -- 传入方向向量
local result = Actor:SetFaceDirection(objId, x ,y,z)KillSelf
lua
local result = Actor:KillSelf(objId)SetAttr
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定角色对象的属性值,支持多种属性类型(血量、速度、体力等),属性改变会触发事件
- 具体使用案例如下:
lua
-- attr 属性枚举 例如:RoleAttr.MaxHp
local result = Actor:SetAttr(objId, attr, value)IncreasesAttr
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否增加成功
- bool:
- 该方法的其他说明: 增加指定角色对象的属性值,在原有属性值基础上增加指定数值
- 具体使用案例如下:
lua
local result = Actor:IncreasesAttr(playerId, RoleAttr.WalkSpeed, 1)GetAttr
- 参数及类型:
- 返回值及类型:
- num:
number属性值(失败返回nil)
- num:
- 该方法的其他说明: 获取指定角色对象的属性值,支持多种属性类型(血量、速度、体力等)
- 具体使用案例如下:
lua
-- attr 属性枚举 例如:RoleAttr.MaxHp
local attrValue = Actor:GetAttr(objId, attr)SetActorPermissions
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定对象的行为权限,控制对象的各种能力开关(推荐接口)
- 具体使用案例如下:
lua
-- enableenum 是一个枚举值,例如:enableenum = Ability.EnableBeattacked
local enablevalue = false
local result = Actor:SetActorPermissions(objId, enableenum, enablevalue)GetActorPermissions
- 参数及类型:
- 返回值及类型:
- bool:
boolean权限开关状态
- bool:
- 该方法的其他说明: 获取指定对象的行为权限状态,查询对象的各种能力开关(推荐接口)
- 具体使用案例如下:
lua
-- enableenum 是一个枚举值, 例如:enableenum = Ability.EnableBeattacked
local state = Actor:GetActorPermissions(objId, enableenum)SetFaceYaw
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定生物对象的水平朝向角度(偏航角)
- 具体使用案例如下:
lua
local setYaw = 90
local result = Actor:SetFaceYaw(objId, setYaw)GetFaceYaw
lua
local yaw = Actor:GetFaceYaw(objId)SetFacePitch
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定生物对象的垂直仰望角度(俯仰角)
- 具体使用案例如下:
lua
local setPitch = 50
local result = Actor:SetFacePitch(objId, setPitch)GetFacePitch
lua
local pitch = Actor:GetFacePitch(objId)SetPosition
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定角色对象的位置坐标,支持玩家和生物,坐标会自动转换为内部单位
- 具体使用案例如下:
lua
local x, y, z = Actor:GetPosition(playerId)
x, y, z = x + 10, y + 1, z + 10
local result = Actor:SetPosition(objId, x, y, z)GetPosition
- 参数及类型:
- objid:
number对象ID
- objid:
- 返回值及类型:
- 该方法的其他说明: 获取指定对象的位置坐标,返回三个轴向的坐标值,坐标会自动转换为外部单位
- 具体使用案例如下:
lua
local x1, y1, z1 = Actor:GetPosition(objId)ChangeCustomModel
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否改变成功
- bool:
- 该方法的其他说明: 改变指定对象的外观模型,支持多种模型类型(道具、生物、方块、实体等)
- 具体使用案例如下:
lua
-- 改变对象外观为萤火虫
local result = Actor:ChangeCustomModel(objId, "mob_3419")RecoverinitialModel
lua
local result = Actor:RecoverinitialModel(playerId)ActorHurt
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否造成伤害成功
- bool:
- 该方法的其他说明: 使指定对象对目标对象造成伤害,支持设置伤害类型、是否忽略伤害抵抗和触发事件
- 具体使用案例如下:
lua
-- 玩家对生物造成近战伤害10点
local result = Actor:ActorHurt(playerId, objId, 10, HurtType.Melee)SetImmuneType
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定对象对特定伤害类型的免疫状态,支持设置无敌状态(immunetype=-1)
- 具体使用案例如下:
lua
-- 设置免疫爆炸伤害
local result = Actor:SetImmuneType(objId, HurtType.Bomb, true)
-- 设置免疫所有伤害
Actor:SetImmuneType(objId, HurtType.All, true)ChangActorMoveType
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否改变成功(角色没有对应能力时返回失败)
- bool:
- 该方法的其他说明: 改变指定对象的移动方式,支持行走、游泳、飞行等模式,如果角色没有对应能力则返回失败
- 具体使用案例如下:
lua
local moveType = MoveType.Flying
local result = Actor:ChangActorMoveType(objId, moveType)GetActorMovementMode
- 参数及类型:
- objid:
number对象ID
- objid:
- 返回值及类型:
- num:
number移动模式枚举(MoveType)(失败返回nil)
- num:
- 该方法的其他说明: 获取指定角色对象当前的移动模式
- 具体使用案例如下:
lua
local retmovetype = Actor:GetActorMovementMode(objId)GetBoundSzie
- 参数及类型:
- objid:
number角色对象ID
- objid:
- 返回值及类型:
- vec:
table模型大小{x=长,y=高,z=宽}(失败返回nil)
- vec:
- 该方法的其他说明: 获取指定角色对象的模型边界大小,返回长、高、宽三个维度的尺寸
- 具体使用案例如下:
lua
local size = Actor:GetBoundSzie(objId)RandomFacadeID
- 参数及类型: 无
- 返回值及类型:
- id:
string随机外观ID(失败返回nil)
- id:
- 该方法的其他说明: 从外观列表中随机获取一个外观ID字符串,包括生物、角色、装扮等类型
- 具体使用案例如下:
lua
local facadeID = Actor:RandomFacadeID()GetObjType
- 参数及类型:
- objid:
number对象ID
- objid:
- 返回值及类型:
- itype:
number对象类型枚举(ObjType)(失败返回nil)
- itype:
- 该方法的其他说明: 获取指定对象的类型,判断对象是玩家、生物还是其他类型
- 具体使用案例如下:
lua
local objType = Actor:GetObjType(objId)TryMoveToPos
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否移动成功
- bool:
- 该方法的其他说明: 尝试移动指定角色对象到目标位置,使用寻路算法,支持设置是否可控制和是否显示提示
- 具体使用案例如下:
lua
local result = Actor:TryMoveToPos(objId, x + 10, y + 1, z, false, false)AppendSpeed
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否附加成功
- bool:
- 该方法的其他说明: 给指定对象附加一个速度,在三个轴向上叠加速度分量
- 具体使用案例如下:
lua
-- 给对象增加个x轴20,y轴10,z轴0的移动速度
local result = Actor:AppendSpeed(objId, 20, 10, 0)FindNearestBlock
- 参数及类型:
- 返回值及类型:
- 该方法的其他说明: 在指定对象附近查找某个类型方块的最近位置,返回方块坐标
- 具体使用案例如下:
lua
--查找玩家50格子内最近的草块(草块ID为100)
local WorldId = Actor:GetObjWorldId(playerId)
local blockType = 100
if WorldId == 2 then--萌眼星
blockType = 116
elseif WorldId == 1 then --烈焰星
blockType = 124
end
local block = Actor:FindNearestBlock(playerId, blockType, 50)GetEyeHeight
lua
local height = Actor:GetEyeHeight(objId)ClearActorWithId
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否清除成功
- bool:
- 该方法的其他说明: 清除指定类型的所有生物,可设置是否杀死生物(影响是否产生掉落物)和指定星球
- 具体使用案例如下:
lua
local worldId = Actor:GetObjWorldId(playerId)
local result = Actor:ClearActorWithId(3400, false, worldId)IsExist
lua
local isExist = Actor:IsExist(objId)PlayAnim
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否播放成功
- bool:
- 该方法的其他说明: 在指定对象身上播放动作,支持设置播放速度和循环模式,播放成功会触发事件
- 具体使用案例如下:
lua
local result = Actor:PlayAnim(objId, 100101, 1, AnimMode.Default)PlayHandAnim
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否播放成功
- bool:
- 该方法的其他说明: 在指定对象的手部播放动作,支持设置播放速度和循环模式
- 具体使用案例如下:
lua
local result = Actor:PlayHandAnim(objId, 100100, 1, AnimMode.Once)MountActor
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否骑乘成功
- bool:
- 该方法的其他说明: 使指定角色对象骑乘到目标对象上,支持设置是否控制和是否关闭AI
- 具体使用案例如下:
lua
local result = Actor:MountActor(playerId, objId, true, true)DisMountActor
lua
local result2 = Actor:DisMountActor(playerId)PickupActor
- 参数及类型: objidA:number:对象objidA,objidB:number:对象objidB
- 返回值及类型:
- bool:
boolean是否举起成功
- bool:
- 该方法的其他说明: 使角色A尝试举起角色B
- 具体使用案例如下:
lua
--偏移量方块距离
local offset = {
x = 0,
y = 1,
z = 0,
}
--偏移量
local rotate = {
x = 0,
y = 0,
z = 0,
}
local result = Actor:PickupActor(playerId, objId, 100502, 100113, offset, rotate)TryPickupActorForward
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否抓取成功
- bool:
- 该方法的其他说明: 尝试抓取指定角色前方指定距离内的对象,失败时会播放尝试举起动作
- 具体使用案例如下:
lua
local result = Actor:TryPickupActorForward(playerId, 30)DropActor
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否投掷成功
- bool:
- 该方法的其他说明: 尝试投掷指定角色对象,支持设置投掷方向、速度、是否投掷和是否有惯性
- 具体使用案例如下:
lua
local result2 = Actor:DropActor(playerId, {x = 1, y = 2, z = 0}, true, 500, true)EscapePickup
lua
local result = Actor:EscapePickup(objId)SetBtreeVarValue
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功(组数据无法设置)
- bool:
- 该方法的其他说明: 设置指定生物对象行为树的变量值,组数据无法设置
- 具体使用案例如下:
lua
local treeId = "7447781052440657655_1"
Monster:ChangeAI(objId, treeId)
local treevalue = 99
local varid = "7447781778290130679-23182_23712" --行为树中定义的黑板变量,需要确保生物对象有这个行为树和变量
local result = Actor:SetBtreeVarValue(objId,varid, treevalue)GetBtreeVarValue
- 参数及类型:
- 返回值及类型:
- val:any变量值(失败返回nil,组数据无法获取)
- 该方法的其他说明: 获取指定生物对象行为树的变量值,组数据无法获取
- 具体使用案例如下:
lua
local varid = "7447781778290130679-23182_23712" --行为树中定义的黑板变量
local value = Actor:GetBtreeVarValue(objId, varid)GetDropItemInstanceId
lua
local result = Actor:GetDropItemInstanceId(objId)SetAblePick
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定掉落物对象是否可以被拾取
- 具体使用案例如下:
lua
local result = Actor:SetAblePick(objId, false)GetEntityFacade
- 参数及类型:
- prefab:
string实体类型名称
- prefab:
- 返回值及类型:
- facade:
string外观描述信息(失败返回nil)
- facade:
- 该方法的其他说明: 根据实体类型名称获取对应的外观描述信息,支持官方模板实体和自定义实体
- 具体使用案例如下:
lua
--传入自定义实体prefabid
local result = Actor:GetEntityFacade("s_7509852525127419914_23098")PickupItem
- 参数及类型:
- 返回值及类型:
- num:
number拾取数量(失败返回0)
- num:
- 该方法的其他说明: 使指定角色对象拾取地上的掉落物或投掷物,支持强制拾取
- 具体使用案例如下:
lua
local result = Actor:PickupItem(playerId, objId)
if result then
print("拾取掉落物成功 数量 = " ,result)
endGetPickupObjID
- 参数及类型:
- 返回值及类型:
- id:
number角色对象ID(失败返回0)
- id:
- 该方法的其他说明: 获取指定角色举起的角色对象ID或被举起的角色对象ID
- 具体使用案例如下:
lua
local result = Actor:GetPickupObjID(playerId, RolePickupType.Carrying)HasTags
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否具有标签
- bool:
- 该方法的其他说明: 检测指定对象是否具有指定标签,支持部分匹配方式和精确匹配
- 具体使用案例如下:
lua
local result3 = Actor:HasTags(playerId, {"A.B.C", "A.D.E", "F.G.H" }, MatchMode.All, true)
local result4 = Actor:HasTags(playerId, {"A.B.C", "D.E", "S.T.D" }, MatchMode.All, false)
local result5 = Actor:HasTags(playerId, {"A.B.C", "B.C" }, MatchMode.Any, false)
local result6 = Actor:HasTags(playerId, { "G.H" }, MatchMode.Any, false)GetTags
lua
local getTags = Actor:GetTags(playerId)
if getTags then
print("玩家定义中的标签:", getTags)
endAddTags
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否添加成功
- bool:
- 该方法的其他说明: 为指定对象添加标签,支持批量添加,标签由数值、字母和下划线组合,支持引用计数
- 具体使用案例如下:
lua
local tags = { "A.B.C", "A.D.E", "F.G.H" }
local result2 = Actor:AddTags(playerId, tags, 1)
if result2 then
print("添加标签成功", result2)
endRemoveTags
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否删除成功
- bool:
- 该方法的其他说明: 从指定对象删除标签,支持批量删除,引用计数为0时全部删除
- 具体使用案例如下:
lua
local result = Actor:RemoveTags(playerId, tag, 1)ClearTags
lua
local result = Actor:ClearTags(playerId)PlayAnimByObj
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否播放成功(仅玩家、生物、实体生效)
- bool:
- 该方法的其他说明: 使对象A播放对象B的动作,仅玩家、生物和实体生效,模型外观最好一致
- 具体使用案例如下:
lua
local result = Actor:PlayAnimByObj(objId, playerId, true) -- objId对象跟随playerId播放动作