# Actor管理接口 Actor

在使用Actor接口前需先创建Actor管理对象,方法如下:(此处已废弃)

local Actor = class.Actor.new()

具体函数名及描述如下:

序号 函数名 函数描述
1 isPlayer(...) 检测是否是玩家
2 isMob(...) 检测是否是怪物
3 getObjType(...) 获取对象类型(玩家、生物、投掷物、掉落物等)
4 isInAir(...) 对象是否在空中
5 getPosition(...) 获取actor位置
6 getPositionV2(...) 获取actor位置
7 setPosition(...) 设置Actor对象位置
8 jump(...) 使玩家/生物跳跃一次
9 killSelf(...) 击败生物
10 getCurPlaceDir(...) 获取对象当前朝向
11 tryMoveToActor(...) 使对象向目标行动者移动(如果执行对象是刚创建出来的需要加个等待时间)
12 tryMoveToPos(...) 向目标位置移动(如果执行对象是刚创建出来的需要加个等待时间)
13 addHP(...) 增加对象当前生命量
14 getHP(...) 获取对象的生命量
15 getMaxHP(...) 获取对象最大生命量
16 addOxygen(...) 增加对象的氧气值
17 getOxygen(...) 获取对象的氧气值
18 addEnchant(...) 增加装备镶嵌
19 removeEnchant(...) 移除装备镶嵌
20 findNearestBlock(...) 寻找对象附近某个类型方块的最近位置
21 setFaceYaw(...) 设置actor横向旋转偏移角度
22 getFaceYaw(...) 获取actor横向旋转偏移角度
23 turnFaceYaw(...) 转动actor横向偏移角度
24 setFacePitch(...) 设置actor视角仰望角度
25 getFacePitch(...) 获取actor视角仰望角度
26 turnFacePitch(...) 转动actor仰望偏移角度
27 playBodyEffect(...) 对象播放特效
28 stopBodyEffect(...) 对象停止特效
29 playBodyEffectByFile(...) 播放文件特效
30 stopBodyEffectByFile(...) 停止文件特效
31 playSound(...) 对象播放声音
32 playSoundSpecial(...) 播放声音(特定类型:GSOUND_TYPE)
33 clearActorWithId(...) 清除生物ID为actorid的生物
34 setAttackType(...) 设置伤害类型
35 setImmuneType(...) 设置免疫伤害类型
36 mountActor(...) 使对象登上、脱离载具
37 setActionAttrState(...) 设置生物行为属性状态
38 getActionAttrState(...) 获取生物行为属性状态
39 tryNavigationToPos(...) 寻路到目标位置
40 randomActorID(...) 在资源库里随机创建一个生物
41 getRidingActorObjId(...) 获取骑乘生物的objid
42 playBodyEffectById(...) 在指定对象身上播放粒子特效
43 stopBodyEffectById(...) 停止指定对象身上的粒子特效
44 setBodyEffectScale(...) 设置指定对象身上的特效大小
45 playSoundEffectById(...) 在指定对象身上播放音效
46 stopSoundEffectById(...) 停止指定对象身上的音效
47 appendSpeed(...) 给对象附加一个速度
48 setFaceDirection(...) 设置对象朝向
49 getFaceDirection(...) 获取actor朝向
50 calcDirectionByDirection(...) 通过对象的局部坐标方向计算绝对方向
51 calcDirectionByAngle(...) 通过对象局部球坐标方向计算绝对方向
52 calcDirectionByYawDirection(...) 通过局部坐标方向计算绝对正方向(忽略视角仰角)
53 calcDirectionByYawAngle(...) 通过局部球坐标方向计算绝对正方向(忽略视角仰角)
54 getEyeHeight(...) 获取眼睛高度
55 getEyePosition(...) 获取眼睛位置
56 getBodySize(...) 获取对象身体尺寸
57 playAct(...) 对象播放动作
58 shownickname(...) 设置对象昵称是否显示
59 setnickname(...) 设置对象昵称
60 getActorFacade(...) 获取对象外观描述
61 changeCustomModel(...) 改变对象外观
62 recoverinitialModel(...) 恢复对象外观
63 randomFacadeID(...) 随机获取一个外观
64 playerHurt(...) 使玩家A对B造成伤害
65 actorHurt(...) 使生物A对B造成伤害
66 playerHurtArea(...) 使玩家伤害区域内的目标
67 actorHurtArea(...) 使生物伤害区域内的目标

# isPlayer

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 检测是否是玩家
  • 具体使用案例如下:
--每当玩家攻击命中对象,判断被攻击的对象是不是玩家
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--判断某对象是不是玩家,参数为对象在存档中的id
	local result=Actor:isPlayer(event.toobjid)
	if result==0 then--如果是玩家
		--在聊天框显示
		Chat:sendSystemMsg("objid为"..event.toobjid.."的对象是玩家")
	else--如果不是玩家
		--在聊天框显示
		Chat:sendSystemMsg("objid为"..event.toobjid.."的对象不是玩家")
	end
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# isMob

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 检测是否是怪物
  • 具体使用案例如下:
--每当玩家攻击命中对象,判断被攻击的对象是不是怪物
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--判断某对象是不是怪物,参数为对象在存档中的id
	local result=Actor:isMob(event.toobjid)
	if result==0 then--如果是怪物
		--在聊天框显示
		Chat:sendSystemMsg("objid为"..event.toobjid.."的对象是怪物")
	else--如果不是怪物
		--在聊天框显示
		Chat:sendSystemMsg("objid为"..event.toobjid.."的对象不是怪物")
	end
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# getObjType

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取对象类型(玩家、生物、投掷物、掉落物等)
  • 具体使用案例如下:
--每当有玩家做动画表情,聊天框显示房主周围10格内其中一个对象的所属类型
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--获取房主的坐标
	local result,x,y,z=Player:getPosition(0)
	--获取房主周围10格内对象的数量和列表
	local result2,num,objids=World:getActorsByBox(0,x-10,y-10,z-10,x+10,y+10,z+10)
	if num>0 then--如果获取到了对象
		--获取对象列表中的第一个对象的类型,参数为要获取类型的对象在存档中的id
		--返回值可能是:1玩家 2生物 3掉落物 4投掷物
		local result3,objtype=Actor:getObjType(objids[1])
		--在聊天框显示
		Chat:sendSystemMsg("附近10格发现对象!其中一个对象类型为(1玩家 2生物 3掉落物 4投掷物)"..objtype)
	else--如果获取失败
		--在聊天框显示
		Chat:sendSystemMsg("附近10格没有发现对象!")
	end
end
--注册动画表情监听器,当玩家做动画表情时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# isInAir

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 对象是否在空中
  • 具体使用案例如下:
--每当玩家攻击命中某对象,判断该对象是否在空中
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--判断某对象是否在空中,参数为对象在存档中的id
	local result=Actor:isInAir(event.toobjid)
	if result==0 then--如果在空中
		--在聊天框显示
		Chat:sendSystemMsg("objid为"..event.toobjid.."的生物在空中")
	else--如果不在空中
		--在聊天框显示
		Chat:sendSystemMsg("objid为"..event.toobjid.."的生物不在空中")
	end
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# getPosition

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取actor位置
  • 具体使用案例如下:
--每当玩家攻击命中某对象,获取该对象的坐标
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--获取某对象的坐标,参数为对象在存档中的id
	local result,x,y,z=Actor:getPosition(event.toobjid)
	--在聊天框显示
	Chat:sendSystemMsg("objid为"..event.toobjid.."的生物的坐标为("..x..","..y..","..z..")")
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# getPositionV2

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取actor位置
  • 具体使用案例如下:
local code, pos = Actor:getPositionV2(objid)
if code == ErrorCode.OK then
	print('执行成功', code, pos )
else
	print('执行失败')
end

# setPosition

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置Actor对象位置
  • 具体使用案例如下:
--每当玩家攻击命中某对象,设置该对象的位置
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--设置指定对象的坐标
	--第一个参数为对象在存档中的id
	--后三个参数为要设置的坐标
	Actor:setPosition(event.toobjid,10,20,10)
	--在聊天框显示
	Chat:sendSystemMsg("objid为"..event.toobjid.."的生物被设置到了(10,10)高度20的位置")
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# jump

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 使玩家/生物跳跃一次
  • 具体使用案例如下:
--每当玩家攻击命中某对象,让该对象跳跃
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--让指定对象跳跃,参数为对象在存档中的id
	Actor:jump(event.toobjid)
	--在聊天框显示
	Chat:sendSystemMsg("让objid为"..event.toobjid.."的生物跳跃了一次")
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# killSelf

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 击败生物
  • 具体使用案例如下:
--每当玩家攻击命中某生物,清除该生物
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--清除指定生物,参数为生物在存档中的id
	Actor:killSelf(event.toobjid)
	--在聊天框显示
	Chat:sendSystemMsg("清除了objid为"..event.toobjid.."的生物")
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# getCurPlaceDir

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取对象当前朝向
  • 具体使用案例如下:
--每当玩家攻击命中某生物,获取该生物的朝向
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--获取指定生物的朝向,参数为生物在存档中的id
	--返回值可能是:0西 1东 2南 3北 4下 5上
	local result,dir=Actor:getCurPlaceDir(event.toobjid)
	--在聊天框显示
	Chat:sendSystemMsg("objid为"..event.toobjid.."的生物当前朝向为(0西 1东 2南 3北 4下 5上)"..dir)
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# tryMoveToActor

  • 参数及类型:
    • self_objid:number执行动作的对象objid
    • target_objid:number目标的对象objid
    • speed:number移动速度
  • 返回值及类型:
  • 该方法的主要作用: 使对象向目标行动者移动(如果执行对象是刚创建出来的需要加个等待时间)
  • 具体使用案例如下:
--每当玩家攻击命中某生物,让该生物向另一生物移动
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--让指定生物向另一生物移动
	--第一个参数为要移动的生物在存档中的id
	--第二个参数为移动目标生物在存档中的id
	--第三个参数为移动速度
	Actor:tryMoveToActor(event.toobjid,event.eventobjid,3)
	--在聊天框显示
	Chat:sendSystemMsg("让objid为"..event.toobjid.."的生物向objid为"..event.eventobjid.."的生物移动,速度为3")
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# tryMoveToPos

  • 参数及类型:
    • objid:number执行动作的对象objid
    • x,y,z:number移动到的位置
    • speed:number移动速度
  • 返回值及类型:
  • 该方法的主要作用: 向目标位置移动(如果执行对象是刚创建出来的需要加个等待时间)
  • 具体使用案例如下:
--每当玩家攻击命中某生物,让该生物移动至某位置
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--让某生物移动至某坐标
	--第一个参数为要移动的生物在存档中的id
	--中间三个参数10,7,10为要移动至的坐标
	--最后一个参数为移动速度
	Actor:tryMoveToPos(event.toobjid,10,7,10,3)
	--在聊天框显示
	Chat:sendSystemMsg("让objid为"..event.toobjid.."的生物移动至(10,10)高度7的位置,速度为3")
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# addHP

  • 参数及类型:
    • objid:number生物对象objid
    • hp:number血量值(hp>0增加血量
    • hp<0减少血量)
  • 返回值及类型:
  • 该方法的主要作用: 增加对象当前生命量
  • 具体使用案例如下:
--每当玩家做动画表情,给该玩家增加生命值
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--给指定生物增加生命值
	--第一个参数为生物在存档中的id,可以是玩家迷你号
	--第二个参数为要增加的生命值
	Actor:addHP(event.eventobjid,10)
	--在聊天框显示
	Chat:sendSystemMsg("给objid为"..event.eventobjid.."的生物增加了10点生命值")
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# getHP

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取对象的生命量
  • 具体使用案例如下:
--每当玩家做动画表情,获取该玩家当前生命值
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--获取指定生物的当前生命值,参数为生物在存档中的id,可以是玩家迷你号,0是房主
	local result,value = Actor:getHP(event.eventobjid)
	--在聊天框显示
	Chat:sendSystemMsg("objid为"..event.eventobjid.."的生物当前生命值为:"..value)
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# getMaxHP

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取对象最大生命量
  • 具体使用案例如下:
--每当玩家做动画表情,获取该玩家最大生命值
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--获取指定生物的最大生命值,参数为生物在存档中的id,可以是玩家迷你号,0是房主
	local result,value=getMaxHP(event.eventobjid)
	--在聊天框显示
	Chat:sendSystemMsg("objid为"..event.eventobjid.."的生物最大生命值为:"..value)
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# addOxygen

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 增加对象的氧气值
  • 具体使用案例如下:
--每当玩家做动画表情,增加该玩家氧气值
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--增加指定生物的氧气值
	--第一个参数为生物在存档中的id,可以是玩家迷你号
	--第二个参数为要增加的值
	Actor:addOxygen(event.eventobjid,10)
	--在聊天框显示
	Chat:sendSystemMsg("objid为"..event.eventobjid.."的生物氧气值增加了10")
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# getOxygen

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取对象的氧气值
  • 具体使用案例如下:
--每当玩家做动画表情,获取该玩家当前氧气值
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--获取指定生物的当前氧气值,参数为生物在存档中的id,可以是玩家迷你号,0是房主
	local result,value=getOxygen(event.eventobjid)
	--在聊天框显示
	Chat:sendSystemMsg("objid为"..event.eventobjid.."的生物当前氧气值为:"..value)
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# addEnchant

  • 参数及类型:
    • objid:number生物对象objid
    • slot:number镶嵌的格子位置(快捷栏索引等)
    • enchantId:number镶嵌的ID
    • enchantLevel:number镶嵌等级
  • 返回值及类型:
  • 该方法的主要作用: 增加装备镶嵌
  • 具体使用案例如下:
--每当玩家做动画表情,给该玩家的装备添加附魔
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--给指定玩家的装备添加附魔
	--第一个参数为生物在存档中的id,可以是玩家迷你号
	--第二个参数为装备栏id:0头饰 1胸甲 2裤子 3鞋子 4披风 5手中持有的物品
	--后两个参数为附魔和附魔等级,具体可以在“迷你世界ID查询”的“附魔表数据”中查看
	Actor:addEnchant(event.eventobjid,5,10,5)
	--在聊天框显示
	Chat:sendSystemMsg("objid为"..event.eventobjid.."的生物手中的物品被添加了点燃5的附魔")
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# removeEnchant

  • 参数及类型:
    • objid:number生物对象objid
    • slot:number镶嵌的格子位置(快捷栏索引等)
    • enchantId:number镶嵌的ID
  • 返回值及类型:
  • 该方法的主要作用: 移除装备镶嵌
  • 具体使用案例如下:
--每当玩家做动画表情,移除指定装备的附魔
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--移除指定生物的指定装备的指定附魔
	--第一个参数为生物在存档中的id,可以是玩家迷你号
	--第二个参数为装备栏id:0头饰 1胸甲 2裤子 3鞋子 4披风 5手中持有的物品
	--第三个参数为要移除的附魔,具体可以在“迷你世界ID查询”的“附魔表数据”中查看
	Actor:removeEnchant(event.eventobjid,5,10)
	--在聊天框显示
	Chat:sendSystemMsg("移除了objid为"..event.eventobjid.."的生物手持物品的点燃附魔")
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# findNearestBlock

  • 参数及类型:
    • objid:number生物对象objid
    • blockid:number查找的方块类型
    • blockRange:number查找范围(传1表示1格方块距离)
  • 返回值及类型:
  • 该方法的主要作用: 寻找对象附近某个类型方块的最近位置
  • 具体使用案例如下:
local code, x,y,z = Actor:findNearestBlock(objid, blockid, blockRange)
if code == ErrorCode.OK then
	print('执行成功', code, x,y,z )
else
	print('执行失败')
end

# setFaceYaw

  • 参数及类型:
    • objid:number生物对象objid
    • yaw:number旋转角度(角度制)
  • 返回值及类型:
  • 该方法的主要作用: 设置actor横向旋转偏移角度
  • 具体使用案例如下:
--每当玩家攻击命中生物,设置被命中生物的朝向
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--设置指定玩家的朝向
	--第一个参数为生物在存档中的id
	--第二个参数为要设置的偏移角度,0为南方,从南向西角度递增
	Actor:setFaceYaw(event.toobjid,0)
	--在聊天框显示
	Chat:sendSystemMsg("objid为"..event.toobjid.."的生物朝向被设置为了南方")
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# getFaceYaw

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取actor横向旋转偏移角度
  • 具体使用案例如下:
--获取指定生物的朝向偏转角度,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,yaw=Actor:getFaceYaw(0)
--在聊天框显示
Chat:sendSystemMsg("房主的朝向偏转角度为"..yaw)

# turnFaceYaw

  • 参数及类型:
    • objid:number生物对象objid
    • offset:number旋转角度(角度制)
  • 返回值及类型:
  • 该方法的主要作用: 转动actor横向偏移角度
  • 具体使用案例如下:
--玩家以攻击命中生物的方式选中要旋转的对象,之后每次做动画表情,该生物都会旋转90度
local objid--储存生物id的变量
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--把命中的生物id赋值给上面的变量
	objid=event.toobjid
	--在聊天框显示
	Chat:sendSystemMsg("选中了"..event.toobjid..",现在每次做动画表情该生物都会旋转90度")
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--旋转指定生物某一角度
	--第一个参数为生物在存档中的id
	--第二个参数为要旋转的角度
	Actor:turnFaceYaw(objid,90)
	--在聊天框显示
	Chat:sendSystemMsg("生物"..objid.."被旋转了90度")
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# setFacePitch

  • 参数及类型:
    • objid:number生物对象objid
    • pitch:number旋转角度(角度制)
  • 返回值及类型:
  • 该方法的主要作用: 设置actor视角仰望角度
  • 具体使用案例如下:
--每当玩家攻击命中生物,设置被命中生物的竖直朝向
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--设置指定玩家的竖直朝向
	--第一个参数为生物在存档中的id
	--第二个参数为要设置的偏移角度,0为正前方,仰视为正,俯视为负
	Actor:setFacePitch(event.toobjid,0)
	--在聊天框显示
	Chat:sendSystemMsg("objid为"..event.toobjid.."的生物竖直朝向被设置为了正前方")
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# getFacePitch

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取actor视角仰望角度
  • 具体使用案例如下:
--获取指定生物的竖直朝向偏转角度,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,pitch=Actor:getFacePitch(0)
--在聊天框显示
Chat:sendSystemMsg("房主的竖直朝向偏转角度为"..pitch)

# turnFacePitch

  • 参数及类型:
    • objid:number生物对象objid
    • offset:number旋转角度(角度制)
  • 返回值及类型:
  • 该方法的主要作用: 转动actor仰望偏移角度
  • 具体使用案例如下:
--玩家以攻击命中生物的方式选中要旋转的对象,之后每次做动画表情,该生物的竖直朝向都会旋转90度
local objid--储存生物id的变量
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--把命中的生物id赋值给上面的变量
	objid=event.toobjid
	--在聊天框显示
	Chat:sendSystemMsg("选中了"..event.toobjid..",现在每次做动画表情该生物的竖直朝向都会旋转90度")
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--旋转指定生物的竖直朝向某一角度
	--第一个参数为生物在存档中的id
	--第二个参数为要旋转的角度
	Actor:turnFacePitch(objid,90)
	--在聊天框显示
	Chat:sendSystemMsg("生物"..objid.."的竖直朝向被旋转了90度")
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# playBodyEffect

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 对象播放特效
  • 具体使用案例如下:
--给指定生物添加特效
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要添加的特效id,大致从1000开始
Actor:playBodyEffect(0,1027)
--在聊天框显示
Chat:sendSystemMsg("房主被添加了特效1027")

# stopBodyEffect

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 对象停止特效
  • 具体使用案例如下:
--取消指定生物的特效
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要取消的特效id,大致从1000开始
Actor:stopBodyEffect(0,1027)
--在聊天框显示
Chat:sendSystemMsg("房主被取消了特效1027")

# playBodyEffectByFile

  • 参数及类型:
    • objid:number生物对象objid
    • filename:string特效文件名
    • sync:boolean是否同步客机(默认为true)
  • 返回值及类型:
  • 该方法的主要作用: 播放文件特效
  • 具体使用案例如下:
local code = Actor:playBodyEffectByFile(objid, filename, sync)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# stopBodyEffectByFile

  • 参数及类型:
    • objid:number生物对象objid
    • filename:string特效文件名
  • 返回值及类型:
  • 该方法的主要作用: 停止文件特效
  • 具体使用案例如下:
local code = Actor:stopBodyEffectByFile(objid, filename)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# playSound

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 对象播放声音
  • 具体使用案例如下:
local code = Actor:playSound(objid, name, volume, pitch, flag)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# playSoundSpecial

  • 参数及类型:
    • objid:number生物对象objid
    • name:string声音ID
    • type:number声音类型(0~4挖掘、破坏、放置、掉落到方块,行走)
  • 返回值及类型:
  • 该方法的主要作用: 播放声音(特定类型:GSOUND_TYPE)
  • 具体使用案例如下:
local code = Actor:playSoundSpecial(objid, name, type)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# clearActorWithId

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 清除生物ID为actorid的生物
  • 具体使用案例如下:
--清除存档指定生物
--第一个参数为要清除的生物id,3402是猪,具体可以在“迷你世界ID查询”的“生物表数据”中查看
--第二个参数为是否显示死亡效果:true显示 false直接消失
Actor:clearActorWithId(3402,false)
--在聊天框显示
Chat:sendSystemMsg("清除了存档里所有的猪")

# setAttackType

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置伤害类型
  • 具体使用案例如下:
local code = Actor:setAttackType(objid, attacktype)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# setImmuneType

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置免疫伤害类型
  • 具体使用案例如下:
local code = Actor:setImmuneType(objid, immunetype, enable)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# mountActor

  • 参数及类型:
    • objid:number生物对象objid
    • mountobjid:objid坐骑、载具的objid
    • posindex:number骑乘的位置(默认-1)
  • 返回值及类型:
  • 该方法的主要作用: 使对象登上、脱离载具
  • 具体使用案例如下:
--每当玩家攻击命中生物,玩家骑乘被命中生物
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
	--让指定生物骑乘另一生物
	--第一个参数为骑乘的生物在存档中的id,可以为玩家迷你号
	--第二个参数为被骑乘生物在存档中的id
	--第三个参数为骑乘位
	Actor:mountActor(event.eventobjid,event.toobjid,0)
	--在聊天框显示
	Chat:sendSystemMsg("objid为"..event.eventobjid.."的生物骑乘坐骑objid为"..event.toobjid)
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)

# setActionAttrState

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置生物行为属性状态
  • 具体使用案例如下:
--设置生物的属性
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要设置的属性,1是移动,具体可以在“游戏数据类型”的“生物属性设置”中查看
--第三个参数为设置:true可以 false不可
Actor:setActionAttrState(0,1,false)
--在聊天框显示
Chat:sendSystemMsg("房主被设置为不可移动")

# getActionAttrState

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取生物行为属性状态
  • 具体使用案例如下:
--获取指定生物的属性
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要获取的属性,1是移动,具体可以在“游戏数据类型”的“生物属性设置”中查看
local result=Actor:getActionAttrState(0,1)
if result==0 then--如果可以
	--在聊天框显示
	Chat:sendSystemMsg("房主当前可移动")
else--如果不可以
	--在聊天框显示
	Chat:sendSystemMsg("房主当前不可移动")
end

# tryNavigationToPos

  • 参数及类型:
    • objid:number生物对象objid
    • x,y,z:number目标位置
    • cancontrol:boolean是否可以操作打断
    • bshowtip:boolean是否显示寻路路径
  • 返回值及类型:
  • 该方法的主要作用: 寻路到目标位置
  • 具体使用案例如下:
local code = Actor:tryNavigationToPos(objid, x, y, z, cancontrol, bshowtip)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# randomActorID

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的主要作用: 在资源库里随机创建一个生物
  • 具体使用案例如下:
--随机生成一个生物id,返回值可以在“迷你世界ID查询”的“生物表数据”中查看
local result,id=Actor:randomActorID()
--在聊天框显示
Chat:sendSystemMsg("随机选取了一个生物id"..id)

# getRidingActorObjId

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取骑乘生物的objid
  • 具体使用案例如下:
--获取指定生物的骑乘坐骑在存档中的id
--参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,objid=Actor:getRidingActorObjId(0)
if objid==0 then--如果没有坐骑
	--在聊天框显示
	Chat:sendSystemMsg("房主当前没有骑乘坐骑")
else--如果正在骑乘坐骑
	--在聊天框显示
	Chat:sendSystemMsg("房主当前骑乘的坐骑在存档中的objid为:"..objid)
end

# playBodyEffectById

  • 参数及类型:
    • objid:number生物对象objid
    • particleId:number粒子特效ID
    • scale:number特效大小缩放
  • 返回值及类型:
  • 该方法的主要作用: 在指定对象身上播放粒子特效
  • 具体使用案例如下:
--给指定生物添加特效
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要添加的特效id,大致从1000开始
--第三个参数为特效的缩放比例
Actor:playBodyEffectById(0,1029,1)
--在聊天框显示
Chat:sendSystemMsg("给房主添加了1029特效,缩放比例为1")

# stopBodyEffectById

  • 参数及类型:
    • objid:number生物对象objid
    • particleId:number粒子特效ID
  • 返回值及类型:
  • 该方法的主要作用: 停止指定对象身上的粒子特效
  • 具体使用案例如下:
--停止指定生物的某特效
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要停止的特效id,大致从1000开始
Actor:stopBodyEffectById(0,1029)
--在聊天框显示
Chat:sendSystemMsg("停止了房主的1029特效")

# setBodyEffectScale

  • 参数及类型:
    • objid:number生物对象objid
    • particleId:number粒子特效ID
    • scale:number特效大小缩放
  • 返回值及类型:
  • 该方法的主要作用: 设置指定对象身上的特效大小
  • 具体使用案例如下:
--给房主添加特效
Actor:playBodyEffectById(0,1029,1)
--在聊天框显示
Chat:sendSystemMsg("给房主添加了1029特效,缩放比例为1")
--设置生物指定特效的缩放比例
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要缩放的特效id,大致从1000开始
--第三个参数为缩放比例
Actor:setBodyEffectScale(0,1029,2)
--在聊天框显示
Chat:sendSystemMsg("把房主的1029特效放大了两倍")

# playSoundEffectById

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 在指定对象身上播放音效
  • 具体使用案例如下:
--给指定生物播放音乐
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数10713为播放的音效id,具体可以在“迷你世界ID查询”的“音效表数据”里查看
--后三个参数分别是:音量、音高、是否循环播放
Actor:playSoundEffectById(0,10713,100,1,false)
--在聊天框显示
Chat:sendSystemMsg("正在给房主播放音乐")

# stopSoundEffectById

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 停止指定对象身上的音效
  • 具体使用案例如下:
--给房主播放音乐
Actor:playSoundEffectById(0,10713,100,1,false)
--在聊天框显示提示
Chat:sendSystemMsg("正在给房主播放音乐,做动画表情即可停止播放")
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--停止音乐10713对房主的播放
	--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
	--第二个参数为要停止播放的音乐id,具体可以在“迷你世界ID查询”的“音效表数据”里查看
	Actor:stopSoundEffectById(0,10713)
	--在聊天框显示
	Chat:sendSystemMsg("停止了音乐10713对房主的播放")
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# appendSpeed

  • 参数及类型:
    • objid:number对象objid
    • x,y,z:number轴向方向上的速度大小
  • 返回值及类型:
  • 该方法的主要作用: 给对象附加一个速度
  • 具体使用案例如下:
--给指定生物附加一个速度
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--后三个参数分别为向东、上、北三个方向的分速度,可以为负
Actor:appendSpeed(0,5,6,7)
--在聊天框显示
Chat:sendSystemMsg("房主被弹了出去,向东、上、北方向的速度分别为5,6,7")

# setFaceDirection

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置对象朝向
  • 具体使用案例如下:
local code = Actor:setFaceDirection(objid, x, y, z)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# getFaceDirection

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取actor朝向
  • 具体使用案例如下:
--获取指定生物在各个方向的朝向,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,dirx,diry,dirz=Actor:getFaceDirection(0)
--在聊天框显示
Chat:sendSystemMsg("房主当前在东西方向偏移"..dirx..",在上下方向偏移"..diry..",在南北方向偏移"..dirz)

# calcDirectionByDirection

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 通过对象的局部坐标方向计算绝对方向
  • 具体使用案例如下:
local code, pos = Actor:calcDirectionByDirection(objid, x, y, z)
if code == ErrorCode.OK then
	print('执行成功', code, pos )
else
	print('执行失败')
end

# calcDirectionByAngle

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 通过对象局部球坐标方向计算绝对方向
  • 具体使用案例如下:
local code, pos = Actor:calcDirectionByAngle(objid, yaw, pitch)
if code == ErrorCode.OK then
	print('执行成功', code, pos )
else
	print('执行失败')
end

# calcDirectionByYawDirection

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 通过局部坐标方向计算绝对正方向(忽略视角仰角)
  • 具体使用案例如下:
local code, pos = Actor:calcDirectionByYawDirection(objid, x, y, z)
if code == ErrorCode.OK then
	print('执行成功', code, pos )
else
	print('执行失败')
end

# calcDirectionByYawAngle

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 通过局部球坐标方向计算绝对正方向(忽略视角仰角)
  • 具体使用案例如下:
local code, pos = Actor:calcDirectionByYawAngle(objid, yaw, pitch)
if code == ErrorCode.OK then
	print('执行成功', code, pos )
else
	print('执行失败')
end

# getEyeHeight

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取眼睛高度
  • 具体使用案例如下:
--获取指定生物的眼睛高度,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,height=Actor:getEyeHeight(0)
--在聊天框显示
Chat:sendSystemMsg("房主的眼睛高度为"..height)

# getEyePosition

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取眼睛位置
  • 具体使用案例如下:
--获取指定生物的眼睛坐标,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,x,y,z=Actor:getEyePosition(0)
--在聊天框显示
Chat:sendSystemMsg("房主眼睛坐标为:("..x..","..y..","..z..")")

# getBodySize

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取对象身体尺寸
  • 具体使用案例如下:
--获取指定生物的尺寸,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,w,h=Actor:getBodySize(0)
--在聊天框显示
Chat:sendSystemMsg("房主身体宽:"..w..",高:"..h)

# playAct

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 对象播放动作
  • 具体使用案例如下:
--让指定生物播放动画表情
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为动作表情id,具体可以在“迷你世界ID查询”的“动作表数据”查询
Actor:playAct(0,1)
--在聊天框显示
Chat:sendSystemMsg("让房主播放打招呼动作")

# shownickname

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置对象昵称是否显示
  • 具体使用案例如下:
local code = Actor:shownickname(objid, bshow)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# setnickname

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置对象昵称
  • 具体使用案例如下:
local code = Actor:setnickname(objid, nickname)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# getActorFacade

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取对象外观描述
  • 具体使用案例如下:
local code, modleName = Actor:getActorFacade(objid)
if code == ErrorCode.OK then
	print('执行成功', code, modleName )
else
	print('执行失败')
end

# changeCustomModel

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 改变对象外观
  • 具体使用案例如下:
local code = Actor:changeCustomModel(objid, modleName)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# recoverinitialModel

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 恢复对象外观
  • 具体使用案例如下:
local code = Actor:recoverinitialModel(objid)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# randomFacadeID

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的主要作用: 随机获取一个外观
  • 具体使用案例如下:
local code, modleName = Actor:randomFacadeID()
if code == ErrorCode.OK then
	print('执行成功', code, modleName )
else
	print('执行失败')
end

# playerHurt

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 使玩家A对B造成伤害
  • 具体使用案例如下:
local code = Actor:playerHurt(objidA, objidB, hp, attackType)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# actorHurt

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 使生物A对B造成伤害
  • 具体使用案例如下:
local code = Actor:actorHurt(objidA, objidB, hp, attackType)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# playerHurtArea

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 使玩家伤害区域内的目标
  • 具体使用案例如下:
local code = Actor:playerHurtArea(objidA, areaid, hp, attackType)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# actorHurtArea

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 使生物伤害区域内的目标
  • 具体使用案例如下:
local code = Actor:actorHurtArea(objidA, areaid, hp, attackType)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end
上次更新: 2023/5/10 15:09:30