Appearance
角色模块管理接口 Actor
具体函数名及描述如下:
GetItemId
lua
local itemId = Actor:GetItemId(objId)GetDropItemNum
lua
local num = Actor:GetDropItemNum(objId)SetTeam
- 参数及类型:
- objid:
number角色objid - teamid:
number队伍ID AbsoluteCampTypeAbsoluteCampType - bResetAttr:
bool是否重置属性(填玩家有效,默认false)
- objid:
- 返回值及类型:
- ret:
bool设置成功(true)
- ret:
- 该方法的主要作用: 设置角色队伍
- 具体使用案例如下:
lua
-- 设置玩家为3队
local result = Actor:SetTeam(Player:GetHostUin(), AbsoluteCampType.Team3)GetTeam
lua
local team = Actor:GetTeam(Player:GetHostUin())AddHp
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true)
- ret:
- 该方法的主要作用: 增加角色当前生命量
- 具体使用案例如下:
lua
local ret = Actor:AddHp(objid, hp)GetMaxHP
lua
local value = 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
lua
-- 获取玩家昵称
local nickname = Actor:GetNickName(Player:GetHostUin())GetObjWorldId
lua
local worldId = Actor:GetObjWorldId(Player:GetHostUin())IsPlayer
lua
local isPlayer = Actor:IsPlayer(objId)PlaySoundEffectById
- 参数及类型:
- 返回值及类型:
- ret:
bool播放成功(true)
- ret:
- 该方法的主要作用: 在指定角色身上播放音效
- 具体使用案例如下:
lua
-- 对象上播放3d音效10379, 音量100, 音调1, 不循环
local result = Actor:PlaySoundEffectById(Player:GetHostUin(), 10379, 100, 1, false)StopSoundEffectById
- 参数及类型:
- 返回值及类型:
- ret:
bool停止成功(true)
- ret:
- 该方法的主要作用: 停止指定对象身上的音效
- 具体使用案例如下:
lua
-- 停止播放3d音效10379
local result = Actor:StopSoundEffectById(Player:GetHostUin(), 10379)PauseSoundEffectById
- 参数及类型:
- 返回值及类型:
- ret:
bool停止成功(true)
- ret:
- 该方法的主要作用: 暂停/恢复指定对象身上的音效
- 具体使用案例如下:
lua
--暂停播放3d音效10379
local result = Actor:PauseSoundEffectById(Player:GetHostUin(), 10379, true)RotateFaceToActor
- 参数及类型:
- 返回值及类型:
- ret:
bool旋转成功(true)
- ret:
- 该方法的主要作用: 使生物朝向目标生物
- 具体使用案例如下:
lua
local result = Actor:RotateFaceToActor(objId, Player:GetHostUin())GetMotion
- 参数及类型:
- objid:
number对象objid
- objid:
- 返回值及类型:
- 该方法的主要作用: 获取对象的当前移动速度
- 具体使用案例如下:
lua
local x, y, z = Actor:GetMotion(objId)SetBeHurtTarget
- 参数及类型:
- 返回值及类型:
- ret:
bool设置成功(true)
- ret:
- 该方法的主要作用: 设置目标仇恨目标
- 具体使用案例如下:
lua
local result = Actor:SetBeHurtTarget(objId, Player:GetHostUin())GetActorFacade
- 参数及类型:
- 返回值及类型:
- facade:
string对象外观描述信息
- facade:
- 该方法的主要作用: 获取角色外观(需要确保对象在场景中存在)
- 具体使用案例如下:
lua
local facade = Actor:GetActorFacade(Player:GetHostUin()) --不带装备信息
local facade2 = Actor:GetActorFacade(Player:GetHostUin(),true) --附带装备信息目前只有使用avatar模型的玩家可以生效CompareMainModel
- 参数及类型:
- 返回值及类型:
- ret:
bool是否相等(true) ,传入参数错误返回false
- ret:
- 该方法的主要作用: 比较两个主模型外观是否相等
- 具体使用案例如下:
lua
local ret = Actor:CompareMainModel(facade1, facade2)PlayBodyParticleById
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true)
- ret:
- 该方法的主要作用: 在指定对象身上播放粒子特效
- 具体使用案例如下:
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)
- ret:
- 该方法的主要作用: 停止指定对象身上的粒子特效
- 具体使用案例如下:
lua
local result = Actor:StopBodyEffectById(Player:GetHostUin(), 1005)SetBodyParticleTransform
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true)
- ret:
- 该方法的主要作用: 设置指定对象身上的特效大小
- 具体使用案例如下:
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
lua
local face = Actor:GetFaceDirection(objId)TryMoveToActor
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true)
- ret:
- 该方法的主要作用: 使对象向目标行动者移动(如果执行对象是刚创建出来的需要加个等待时间)
- 具体使用案例如下:
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
- 参数及类型:
- 返回值及类型:
- ret:
bool设置成功(true)
- ret:
- 该方法的主要作用: 设置角色属性
- 具体使用案例如下:
lua
-- 设置攻击力300
local result = Actor:SetAttr(objId, RoleAttr.Atk, 300)IncreasesAttr
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true)
- ret:
- 该方法的主要作用: 增加角色属性值
- 具体使用案例如下:
lua
local ret = Actor:IncreasesAttr(objid, atttype, val)GetAttr
lua
-- 获取最大血量
local maxHp = Actor:GetAttr(objId, RoleAttr.MaxHp)SetActorPermissions
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true)
- ret:
- 该方法的主要作用: 设置对象权限
- 具体使用案例如下:
lua
local result = Actor:SetActorPermissions(objId, Ability.EnableBeattacked, true)GetActorPermissions
- 参数及类型:
- 返回值及类型:
- ret:
bool开关
- ret:
- 该方法的主要作用: 获取对象权限
- 具体使用案例如下:
lua
local state = Actor:GetActorPermissions(objId, Ability.Attack)SetFaceYaw
lua
local result = Actor:SetFaceYaw(objId, 90)GetFaceYaw
lua
local yaw = Actor:GetFaceYaw(objId)SetFacePitch
- 参数及类型:
- 返回值及类型:
- ret:
bool设置成功(true)
- ret:
- 该方法的主要作用: 设置actor视角仰望角度
- 具体使用案例如下:
lua
local pitch = Actor:GetFacePitch(Player:GetHostUin())GetFacePitch
lua
local pitch = Actor:GetFacePitch(objid)SetPosition
- 参数及类型:
- 返回值及类型:
- ret:
bool设置成功(true)
- ret:
- 该方法的主要作用: 设置角色位置
- 具体使用案例如下:
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
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true)
- ret:
- 该方法的主要作用: 使对象A对对象B造成伤害
- 具体使用案例如下:
lua
-- 玩家对生物造成近战伤害10点
local result = Actor:ActorHurt(Player:GetHostUin(), objId, 10, HurtType.Melee)SetImmuneType
- 参数及类型:
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 设置免疫伤害类型
- 具体使用案例如下:
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
lua
local moveType = Actor:GetActorMovementMode(Player:GetHostUin())GetBoundSzie
lua
local size = Actor:GetBoundSzie(objId)RandomFacadeID
- 参数及类型: 无
- 返回值及类型:
- ret:
string随机外观ID
- ret:
- 该方法的主要作用: 随机一个外观获取其 id字符串
- 具体使用案例如下:
lua
local facadeID = Actor:RandomFacadeID()GetObjType
- 参数及类型:
- objid:
number生物objid
- objid:
- 返回值及类型:
- ret:itype获取结果 ObjType
- 该方法的主要作用: 判断对象是否是玩家/生物
- 具体使用案例如下:
lua
local objType = Actor:GetObjType(objId)TryMoveToPos
- 参数及类型:
- 返回值及类型:
- ret:
bool移动成功(true)
- ret:
- 该方法的主要作用: 尝试移动到某个位置走寻路 方块坐标
- 具体使用案例如下:
lua
local result = Actor:TryMoveToPos(objId, x + 10, y + 1, z, false, false)AppendSpeed
- 参数及类型:
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 给对象附加一个速度
- 具体使用案例如下:
lua
-- 给对象增加个x轴20,y轴10,z轴0的移动速度
local result = Actor:AppendSpeed(objId, 20, 10, 0)FindNearestBlock
- 参数及类型:
- 返回值及类型:
- x,y,z:
number方块坐标
- x,y,z:
- 该方法的主要作用: 寻找对象附近某个类型方块的最近位置
- 具体使用案例如下:
lua
local x|y|z = Actor:FindNearestBlock(objid, blockid, blockRange)GetEyeHeight
lua
local height = Actor:GetEyeHeight(objId)ClearActorWithId
- 参数及类型:
- actorid:number:生物类型,bkill:bool:是否杀死生物(默认false,可以区分是否产生掉落物)
- worldId:
number星球id(默认当前主机所在星球)
- 返回值及类型:
- ret:
bool成功(true)
- ret:
- 该方法的主要作用: 清除生物类型为actorid的生物
- 具体使用案例如下:
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
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true)
- ret:
- 该方法的主要作用: 对象播放动作
- 具体使用案例如下:
lua
local result = Actor:PlayAnim(objId, 100100, 1, AnimMode.Default)PlayHandAnim
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true)
- ret:
- 该方法的主要作用: 对象手持播放动作
- 具体使用案例如下:
lua
local result = Actor:PlayHandAnim(objId, 100100, 1, AnimMode.Once)MountActor
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true)
- ret:
- 该方法的主要作用: 角色骑乘
- 具体使用案例如下:
lua
local result = Actor:MountActor(Player:GetHostUin(), objId, true, true)DisMountActor
lua
local result = Actor:DisMountActor(Player:GetHostUin())PickupActor
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true) 失败(false)
- ret:
- 该方法的主要作用: 角色和角色尝试举起
- 具体使用案例如下:
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
- 参数及类型:
- 返回值及类型:
- ret:
bool抓取成功(true)
- ret:
- 该方法的主要作用: 尝试抓取前方指定距离的对象
- 具体使用案例如下:
lua
local result = Actor:TryPickupActorForward(Player:GetHostUin(), 30)DropActor
- 参数及类型:
- 返回值及类型:
- ret:
bool投掷成功(true)
- ret:
- 该方法的主要作用: 尝试投掷角色
- 具体使用案例如下:
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
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true) 失败(false) 组数据无法设置
- ret:
- 该方法的主要作用: 设置行为树变量
- 具体使用案例如下:
lua
local result = Actor:SetBtreeVarValue(objId, "7321982627776387751_26396", 1)GetBtreeVarValue
- 参数及类型:
- 返回值及类型: ret:成功有值 失败(nil) 组数据无法获取
- 该方法的主要作用: 获取行为树变量
- 具体使用案例如下:
lua
local result = Actor:GetBtreeVarValue(objId, "7321982627776387751_26396")GetDropItemInstanceId
lua
local InstanceId = Actor:GetDropItemInstanceId(objid)SetAblePick
lua
local result = Actor:SetAblePick(objId, false)GetEntityFacade
lua
--传入自定义实体prefabid
local result = Actor:GetEntityFacade("s_7509852525127419914_23098")PickupItem
- 参数及类型:
- 返回值及类型:
- num:
number拾取数量
- num:
- 该方法的主要作用: 角色拾取地上的掉落物或者投掷物
- 具体使用案例如下:
lua
local result = Actor:PickupItem(Player:GetHostUin(), objId)
if result then
print("拾取掉落物成功 数量 = " ,result)
endGetPickupObjID
lua
local ret = Actor:GetPickupObjID(objid, roleType)HasTags
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true) 失败(false)
- ret:
- 该方法的主要作用: 添加标签
- 具体使用案例如下:
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
- 参数及类型:
- objid:
number对象objid
- objid:
- 返回值及类型: ret:table:标签(nil:失败)
- 该方法的主要作用: 获取对象标签
- 具体使用案例如下:
lua
local tags = Actor:GetTags(uin)
if tags then
print("玩家定义中的标签:", tags)
endAddTags
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true) 失败(false)
- ret:
- 该方法的主要作用: 添加标签
- 具体使用案例如下:
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
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true) 失败(false)
- ret:
- 该方法的主要作用: 删除标签
- 具体使用案例如下:
lua
local ret = Actor:RemoveTags(objid, tags, icount)ClearTags
lua
local result = Actor:ClearTags(uin)PlayAnimByObj
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true)仅玩家,生物 实体生效,模型外观最好一致
- ret:
- 该方法的主要作用: 对象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