Appearance
角色模块管理接口 Actor
具体函数名及描述如下:
GetItemId
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 result = Actor:SetTeam(Player:GetHostUin(), AbsoluteCampType.Team3)GetTeam
lua
local team = Actor:GetTeam(Player:GetHostUin())AddHp
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否操作成功
- bool:
- 该方法的其他说明: 增加或减少指定角色的当前生命值,正数增加,负数减少
- 具体使用案例如下:
lua
local bool = Actor:AddHp(objid, hp)GetMaxHP
lua
local num = Actor:GetMaxHP(objid)ShowNickName
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定角色对象的昵称显示状态
- 具体使用案例如下:
lua
-- 显示昵称
local result = Actor:ShowNickName(Player:GetHostUin(), true)
-- 隐藏昵称
local result2 = Actor:ShowNickName(Player:GetHostUin(), false)SetNickName
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定角色的昵称,会自动过滤敏感词
- 具体使用案例如下:
lua
local result = Actor:SetNickName(Player:GetHostUin(), "昵称123")GetNickName
- 参数及类型:
- objid:
number角色对象ID
- objid:
- 返回值及类型:
- name:
string角色昵称(失败返回nil)
- name:
- 该方法的其他说明: 根据角色对象ID获取该角色的昵称,支持玩家和生物
- 具体使用案例如下:
lua
-- 获取玩家昵称
local nickname = Actor:GetNickName(Player:GetHostUin())GetObjWorldId
lua
local worldId = Actor:GetObjWorldId(Player:GetHostUin())IsPlayer
lua
local isPlayer = Actor:IsPlayer(objId)PlaySoundEffectById
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否播放成功
- bool:
- 该方法的其他说明: 在指定角色对象身上通过声音ID播放音效,支持设置音量、音调和循环播放
- 具体使用案例如下:
lua
-- 对象上播放3d音效10379, 音量100, 音调1, 不循环
local result = Actor:PlaySoundEffectById(Player:GetHostUin(), 10379, 100, 1, false)StopSoundEffectById
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否停止成功
- bool:
- 该方法的其他说明: 停止指定角色对象身上正在播放的音效
- 具体使用案例如下:
lua
-- 停止播放3d音效10379
local result = Actor:StopSoundEffectById(Player:GetHostUin(), 10379)PauseSoundEffectById
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否操作成功
- bool:
- 该方法的其他说明: 暂停或恢复指定角色对象身上正在播放的音效,支持暂停所有音效(soundId=-1)
- 具体使用案例如下:
lua
--暂停播放3d音效10379
local result = Actor:PauseSoundEffectById(Player:GetHostUin(), 10379, true)RotateFaceToActor
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否旋转成功
- bool:
- 该方法的其他说明: 使指定生物对象旋转朝向目标生物对象
- 具体使用案例如下:
lua
local result = Actor:RotateFaceToActor(objId, Player:GetHostUin())GetMotion
- 参数及类型:
- objid:
number对象ID
- objid:
- 返回值及类型:
- 该方法的其他说明: 获取指定对象当前的移动速度,返回三个轴向的速度分量
- 具体使用案例如下:
lua
local x, y, z = Actor:GetMotion(objId)SetBeHurtTarget
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定生物对象的仇恨目标,用于AI战斗系统
- 具体使用案例如下:
lua
local result = Actor:SetBeHurtTarget(objId, Player:GetHostUin())GetActorFacade
- 参数及类型:
- 返回值及类型:
- facade:
string对象外观描述信息(失败返回nil)
- facade:
- 该方法的其他说明: 获取指定对象的外观描述信息,可设置是否包含装备信息(仅玩家有效,需要确保对象在场景中存在)
- 具体使用案例如下:
lua
local facade = Actor:GetActorFacade(Player:GetHostUin()) --不带装备信息
local facade2 = Actor:GetActorFacade(Player:GetHostUin(),true) --附带装备信息目前只有使用avatar模型的玩家可以生效CompareMainModel
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否相等(参数错误返回false)
- bool:
- 该方法的其他说明: 比较两个主模型外观是否相等,通过外观描述信息进行对比
- 具体使用案例如下:
lua
local bool = Actor:CompareMainModel(facade1, facade2)PlayBodyParticleById
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否播放成功
- bool:
- 该方法的其他说明: 在指定对象身上播放粒子特效,支持设置偏移、旋转和缩放,可批量播放多个特效
- 具体使用案例如下:
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数组
- objid:
- 返回值及类型:
- bool:
boolean是否停止成功
- bool:
- 该方法的其他说明: 停止指定对象身上正在播放的粒子特效,支持单个或批量停止
- 具体使用案例如下:
lua
local result = Actor:StopBodyEffectById(Player:GetHostUin(), 1005)SetBodyParticleTransform
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定对象身上粒子特效的变换参数,包括偏移、旋转和缩放,支持批量设置
- 具体使用案例如下:
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
lua
local ridingObjId = Actor:GetRidingActorObjId(Player:GetHostUin())GetFaceDirection
- 参数及类型:
- objid:
number对象ID
- objid:
- 返回值及类型:
- pos:
table轴向上的方向向量{x=number,y=number,z=number}(失败返回nil)
- pos:
- 该方法的其他说明: 获取指定对象当前的朝向方向,返回三个轴向的方向向量
- 具体使用案例如下:
lua
local face = Actor:GetFaceDirection(objId)TryMoveToActor
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否移动成功
- bool:
- 该方法的其他说明: 使指定对象向目标对象移动,可设置移动速度(注意:刚创建的对象需要加个等待时间)
- 具体使用案例如下:
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
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定对象的朝向方向,通过三个轴向的方向向量控制
- 具体使用案例如下:
lua
local result = Actor:SetFaceDirection(objId, 0, 90, 0)KillSelf
lua
local result = Actor:KillSelf(objId)SetAttr
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定角色对象的属性值,支持多种属性类型(血量、速度、体力等),属性改变会触发事件
- 具体使用案例如下:
lua
-- 设置攻击力300
local result = Actor:SetAttr(objId, RoleAttr.Atk, 300)IncreasesAttr
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否增加成功
- bool:
- 该方法的其他说明: 增加指定角色对象的属性值,在原有属性值基础上增加指定数值
- 具体使用案例如下:
lua
local bool = Actor:IncreasesAttr(objid, atttype, val)GetAttr
- 参数及类型:
- 返回值及类型:
- num:
number属性值(失败返回nil)
- num:
- 该方法的其他说明: 获取指定角色对象的属性值,支持多种属性类型(血量、速度、体力等)
- 具体使用案例如下:
lua
-- 获取最大血量
local maxHp = Actor:GetAttr(objId, RoleAttr.MaxHp)SetActorPermissions
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定对象的行为权限,控制对象的各种能力开关(推荐接口)
- 具体使用案例如下:
lua
local result = Actor:SetActorPermissions(objId, Ability.EnableBeattacked, true)GetActorPermissions
- 参数及类型:
- 返回值及类型:
- bool:
boolean权限开关状态
- bool:
- 该方法的其他说明: 获取指定对象的行为权限状态,查询对象的各种能力开关(推荐接口)
- 具体使用案例如下:
lua
local state = Actor:GetActorPermissions(objId, Ability.Attack)SetFaceYaw
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定生物对象的水平朝向角度(偏航角)
- 具体使用案例如下:
lua
local result = Actor:SetFaceYaw(objId, 90)GetFaceYaw
lua
local yaw = Actor:GetFaceYaw(objId)SetFacePitch
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定生物对象的垂直仰望角度(俯仰角)
- 具体使用案例如下:
lua
local pitch = Actor:GetFacePitch(Player:GetHostUin())GetFacePitch
lua
local num = Actor:GetFacePitch(objid)SetPosition
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功
- bool:
- 该方法的其他说明: 设置指定角色对象的位置坐标,支持玩家和生物,坐标会自动转换为内部单位
- 具体使用案例如下:
lua
local result = Actor:SetPosition(objId, x, y, z)GetPosition
- 参数及类型:
- objid:
number对象ID
- objid:
- 返回值及类型:
- 该方法的其他说明: 获取指定对象的位置坐标,返回三个轴向的坐标值,坐标会自动转换为外部单位
- 具体使用案例如下:
lua
local x, y, z = Actor:GetPosition(objId)ChangeCustomModel
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否改变成功
- bool:
- 该方法的其他说明: 改变指定对象的外观模型,支持多种模型类型(道具、生物、方块、实体等)
- 具体使用案例如下:
lua
-- 改变玩家外观为萤火虫
local result = Actor:ChangeCustomModel(Player:GetHostUin(), "mob_3419")RecoverinitialModel
lua
local result = Actor:RecoverinitialModel(Player:GetHostUin())ActorHurt
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否造成伤害成功
- bool:
- 该方法的其他说明: 使指定对象对目标对象造成伤害,支持设置伤害类型、是否忽略伤害抵抗和触发事件
- 具体使用案例如下:
lua
-- 玩家对生物造成近战伤害10点
local result = Actor:ActorHurt(Player:GetHostUin(), 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 result = Actor:ChangActorMoveType(Player:GetHostUin(), MoveType.Flying)GetActorMovementMode
- 参数及类型:
- objid:
number对象ID
- objid:
- 返回值及类型:
- num:
number移动模式枚举(MoveType)(失败返回nil)
- num:
- 该方法的其他说明: 获取指定角色对象当前的移动模式
- 具体使用案例如下:
lua
local moveType = Actor:GetActorMovementMode(Player:GetHostUin())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
local x, y, z = Actor:FindNearestBlock(objid, blockid, blockRange)GetEyeHeight
lua
local height = Actor:GetEyeHeight(objId)ClearActorWithId
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否清除成功
- bool:
- 该方法的其他说明: 清除指定类型的所有生物,可设置是否杀死生物(影响是否产生掉落物)和指定星球
- 具体使用案例如下:
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
endIsExist
lua
local isExist = Actor:IsExist(objId)PlayAnim
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否播放成功
- bool:
- 该方法的其他说明: 在指定对象身上播放动作,支持设置播放速度和循环模式,播放成功会触发事件
- 具体使用案例如下:
lua
local result = Actor:PlayAnim(objId, 100100, 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(Player:GetHostUin(), objId, true, true)DisMountActor
lua
local result = Actor:DisMountActor(Player:GetHostUin())PickupActor
- 参数及类型: objidA:number:对象objidA,objidB:number:对象objidB
- 返回值及类型:
- bool:
boolean是否举起成功
- bool:
- 该方法的其他说明: 使角色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
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否抓取成功
- bool:
- 该方法的其他说明: 尝试抓取指定角色前方指定距离内的对象,失败时会播放尝试举起动作
- 具体使用案例如下:
lua
local result = Actor:TryPickupActorForward(Player:GetHostUin(), 30)DropActor
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否投掷成功
- bool:
- 该方法的其他说明: 尝试投掷指定角色对象,支持设置投掷方向、速度、是否投掷和是否有惯性
- 具体使用案例如下:
lua
local result = Actor:DropActor(Player:GetHostUin(), {x = 1, y = 2, z = 0}, true, 500, true)EscapePickup
lua
self:ThreadWait(0.1)
local result = Actor:EscapePickup(objId)SetBtreeVarValue
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否设置成功(组数据无法设置)
- bool:
- 该方法的其他说明: 设置指定生物对象行为树的变量值,组数据无法设置
- 具体使用案例如下:
lua
local result = Actor:SetBtreeVarValue(objId, "7321982627776387751_26396", 1)GetBtreeVarValue
- 参数及类型:
- 返回值及类型:
- val:any变量值(失败返回nil,组数据无法获取)
- 该方法的其他说明: 获取指定生物对象行为树的变量值,组数据无法获取
- 具体使用案例如下:
lua
local result = Actor:GetBtreeVarValue(objId, "7321982627776387751_26396")GetDropItemInstanceId
lua
local id = 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(Player:GetHostUin(), objId)
if result then
print("拾取掉落物成功 数量 = " ,result)
endGetPickupObjID
- 参数及类型:
- 返回值及类型:
- id:
number角色对象ID(失败返回0)
- id:
- 该方法的其他说明: 获取指定角色举起的角色对象ID或被举起的角色对象ID
- 具体使用案例如下:
lua
local id = Actor:GetPickupObjID(objid, roleType)HasTags
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否具有标签
- bool:
- 该方法的其他说明: 检测指定对象是否具有指定标签,支持部分匹配方式和精确匹配
- 具体使用案例如下:
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
lua
local tags = Actor:GetTags(uin)
if tags then
print("玩家定义中的标签:", tags)
endAddTags
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否添加成功
- bool:
- 该方法的其他说明: 为指定对象添加标签,支持批量添加,标签由数值、字母和下划线组合,支持引用计数
- 具体使用案例如下:
lua
local tags = { "A.B.C", "A.D.E", "F.G.H" }
local result = Actor:AddTags(uin, tags, 1)
if result then
print("添加标签成功", result)
endRemoveTags
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否删除成功
- bool:
- 该方法的其他说明: 从指定对象删除标签,支持批量删除,引用计数为0时全部删除
- 具体使用案例如下:
lua
local bool = Actor:RemoveTags(objid, tags, icount)ClearTags
lua
local result = Actor:ClearTags(uin)PlayAnimByObj
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否播放成功(仅玩家、生物、实体生效)
- bool:
- 该方法的其他说明: 使对象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