具体函数名及描述如下:
参数及类型:objid
返回值及类型:
该方法的主要作用:检测是否为玩家
具体使用案例如下:
--每当玩家攻击命中对象,判断被攻击的对象是不是玩家
--当玩家攻击命中时会执行此函数
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)
参数及类型:objid
返回值及类型:
该方法的主要作用:检测是否为怪物
具体使用案例如下:
--每当玩家攻击命中对象,判断被攻击的对象是不是怪物
--当玩家攻击命中时会执行此函数
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)
--每当有玩家做动画表情,聊天框显示房主周围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)
--每当玩家攻击命中某对象,判断该对象是否在空中
--当玩家攻击命中时会执行此函数
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)
--每当玩家攻击命中某对象,获取该对象的坐标
--当玩家攻击命中时会执行此函数
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)
--每当玩家攻击命中某对象,设置该对象的位置
--当玩家攻击命中时会执行此函数
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)
--每当玩家攻击命中某对象,让该对象跳跃
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
--让指定对象跳跃,参数为对象在存档中的id
Actor:jump(event.toobjid)
--在聊天框显示
Chat:sendSystemMsg("让objid为"..event.toobjid.."的生物跳跃了一次")
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)
--每当玩家攻击命中某生物,清除该生物
--当玩家攻击命中时会执行此函数
local function Player_AttackHit(event)
--清除指定生物,参数为生物在存档中的id
Actor:killSelf(event.toobjid)
--在聊天框显示
Chat:sendSystemMsg("清除了objid为"..event.toobjid.."的生物")
end
--注册监听器,玩家攻击命中时执行Player_AttackHit函数
ScriptSupportEvent:registerEvent([=[Player.AttackHit]=],Player_AttackHit)
--每当玩家攻击命中某生物,获取该生物的朝向
--当玩家攻击命中时会执行此函数
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)
参数及类型:
返回值及类型:
该方法的主要作用:向目标行动者移动
具体使用案例如下:
--每当玩家攻击命中某生物,让该生物向另一生物移动
--当玩家攻击命中时会执行此函数
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)
--每当玩家攻击命中某生物,让该生物移动至某位置
--当玩家攻击命中时会执行此函数
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)
--每当玩家做动画表情,给该玩家增加生命值
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
--给指定生物增加生命值
--第一个参数为生物在存档中的id,可以是玩家迷你号
--第二个参数为要增加的生命值
Actor:addHP(event.eventobjid,10)
--在聊天框显示
Chat:sendSystemMsg("给objid为"..event.eventobjid.."的生物增加了10点生命值")
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)
--每当玩家做动画表情,获取该玩家当前生命值
--当玩家做动画表情时执行此函数
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)
--每当玩家做动画表情,获取该玩家最大生命值
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
--获取指定生物的最大生命值,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,value=Actor:getMaxHP(event.eventobjid)
--在聊天框显示
Chat:sendSystemMsg("objid为"..event.eventobjid.."的生物最大生命值为:"..value)
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)
--每当玩家做动画表情,增加该玩家氧气值
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
--增加指定生物的氧气值
--第一个参数为生物在存档中的id,可以是玩家迷你号
--第二个参数为要增加的值
Actor:addOxygen(event.eventobjid,10)
--在聊天框显示
Chat:sendSystemMsg("objid为"..event.eventobjid.."的生物氧气值增加了10")
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)
--每当玩家做动画表情,获取该玩家当前氧气值
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
--获取指定生物的当前氧气值,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,value=Actor:getOxygen(event.eventobjid)
--在聊天框显示
Chat:sendSystemMsg("objid为"..event.eventobjid.."的生物当前氧气值为:"..value)
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)
参数及类型:
返回值及类型:
该方法的主要作用:增加装备附魔
具体使用案例如下:
--每当玩家做动画表情,给该玩家的装备添加附魔
--当玩家做动画表情时执行此函数
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)
--每当玩家做动画表情,移除指定装备的附魔
--当玩家做动画表情时执行此函数
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)
参数及类型:
返回值及类型:
该方法的主要作用:寻找附近方块
具体使用案例如下:
local function ClickBlock(event)
local objid=event.eventobjid--实体id
local blockid=1--寻找方块id
local blockRange=10--寻找范围
--寻找附近方块
local result,x,y,z=Actor:findNearestBlock(objid, blockid, blockRange)
if result==0 then
Chat:sendSystemMsg("范围内找到了方块")
else
Chat:sendSystemMsg("范围内未找到方块")
end
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
--每当玩家攻击命中生物,设置被命中生物的朝向
--当玩家攻击命中时会执行此函数
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)
--获取指定生物的朝向偏转角度,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,yaw=Actor:getFaceYaw(0)
--在聊天框显示
Chat:sendSystemMsg("房主的朝向偏转角度为"..yaw)
--玩家以攻击命中生物的方式选中要旋转的对象,之后每次做动画表情,该生物都会旋转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)
--每当玩家攻击命中生物,设置被命中生物的竖直朝向
--当玩家攻击命中时会执行此函数
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)
--获取指定生物的竖直朝向偏转角度,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,pitch=Actor:getFacePitch(0)
--在聊天框显示
Chat:sendSystemMsg("房主的竖直朝向偏转角度为"..pitch)
--玩家以攻击命中生物的方式选中要旋转的对象,之后每次做动画表情,该生物的竖直朝向都会旋转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)
参数及类型:
number
number
特效类型ACTORBODY_EFFECT返回值及类型:
该方法的主要作用:播放特效
具体使用案例如下:
--给指定生物添加特效
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要添加的特效id,大致从1000开始
Actor:playBodyEffect(0,1027)
--在聊天框显示
Chat:sendSystemMsg("房主被添加了特效1027")
参数及类型:
number
number
特效类型ACTORBODY_EFFECT返回值及类型:
该方法的主要作用:停止特效
具体使用案例如下:
--取消指定生物的特效
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要取消的特效id,大致从1000开始
Actor:stopBodyEffect(0,1027)
--在聊天框显示
Chat:sendSystemMsg("房主被取消了特效1027")
local result = Actor:playBodyEffectByFile(objid, filename, sync)
local result = Actor:stopBodyEffectByFile(objid, filename)
参数及类型:
返回值及类型:
该方法的主要作用:播放声音
具体使用案例如下:
local result = Actor:playSound(objid, name, volume, pitch, flag)
参数及类型:
number
string
number
指定类型(GSOUND_TYPE)返回值及类型:
该方法的主要作用:播放声音(特定类型:GSOUND_TYPE)
具体使用案例如下:
local result = Actor:playSoundSpecial(objid, name, type)
--清除存档指定生物
--第一个参数为要清除的生物id,3402是猪,具体可以在“迷你世界ID查询”的“生物表数据”中查看
--第二个参数为是否显示死亡效果:true显示 false直接消失
Actor:clearActorWithId(3402,false)
--在聊天框显示
Chat:sendSystemMsg("清除了存档里所有的猪")
local function ClickActor(event)
local objid=event.toobjid--被点击的生物
local attacktype=0--近战伤害(伤害类型可在常量列表查询)
--设置被点击的生物伤害类型为近战伤害
Actor:setAttackType(objid, attacktype)
end
ScriptSupportEvent:registerEvent([=[Player.ClickActor]=], ClickActor)--点击生物
local function ClickActor(event)
local objid=event.toobjid--被点击的生物
local immunetype=0--近战伤害(伤害类型可在常量列表查询)
local isadd=true--开启
--被点击的生物开启免疫近战伤害
Actor:setImmuneType(objid, immunetype, isadd)
end
ScriptSupportEvent:registerEvent([=[Player.ClickActor]=], ClickActor)--点击生物
参数及类型:
返回值及类型:
该方法的主要作用:登上、脱离载具
具体使用案例如下:
--每当玩家攻击命中生物,玩家骑乘被命中生物
--当玩家攻击命中时会执行此函数
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)
参数及类型:
number
number
CREATUREATTR_ENABLEboolean
返回值及类型:
该方法的主要作用:设置生物行为属性状态
具体使用案例如下:
--设置生物的属性
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要设置的属性,1是移动,具体可以在“游戏数据类型”的“生物属性设置”中查看
--第三个参数为设置:true可以 false不可
Actor:setActionAttrState(0,1,false)
--在聊天框显示
Chat:sendSystemMsg("房主被设置为不可移动")
参数及类型:
number
number
CREATUREATTR_ENABLE返回值及类型:
该方法的主要作用:获取生物特殊属性的状态
具体使用案例如下:
--获取指定生物的属性
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要获取的属性,1是移动,具体可以在“游戏数据类型”的“生物属性设置”中查看
local result=Actor:getActionAttrState(0,1)
if result==0 then--如果可以
--在聊天框显示
Chat:sendSystemMsg("房主当前可移动")
else--如果不可以
--在聊天框显示
Chat:sendSystemMsg("房主当前不可移动")
end
参数及类型:
返回值及类型:
该方法的主要作用:寻路到目标位置
具体使用案例如下:
local function ClickBlock(event)
local objid=event.eventobjid--自动寻路的生物实体id,这里是点击方块的玩家
local x,y,z=event.x+10,event.y+1,event.z--寻路目的地
local cancontrol=false--寻路过程中是否可控制:否
local showtip=true--是否显示路线提示:是
--让生物自动寻路
Actor:tryNavigationToPos(objid, x, y, z, cancontrol, showtip)
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
参数及类型:nil
返回值及类型:
该方法的主要作用:在资源库里随机创建一个生物
具体使用案例如下:
--随机生成一个生物id,返回值可以在“迷你世界ID查询”的“生物表数据”中查看
local result,id=Actor:randomActorID()
--在聊天框显示
Chat:sendSystemMsg("随机选取了一个生物id"..id)
--获取指定生物的骑乘坐骑在存档中的id
--参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,objid=Actor:getRidingActorObjId(0)
if objid==0 then--如果没有坐骑
--在聊天框显示
Chat:sendSystemMsg("房主当前没有骑乘坐骑")
else--如果正在骑乘坐骑
--在聊天框显示
Chat:sendSystemMsg("房主当前骑乘的坐骑在存档中的objid为:"..objid)
end
参数及类型:
返回值及类型:
该方法的主要作用:在指定对象身上播放特效
具体使用案例如下:
--给指定生物添加特效
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要添加的特效id,大致从1000开始
--第三个参数为特效的缩放比例
--最后一个参数是播放时长,时长大于0时,特效会在设定时间内循环播放,直到时间结束;设置时间小于等于0或为nil时,循环类型的特效会持续播放,非循环类型的特效只播放一次
Actor:playBodyEffectById(0,1029,1,3)
--在聊天框显示
Chat:sendSystemMsg("给房主添加了1029特效,缩放比例为1,播放时间3秒")
--停止指定生物的某特效
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要停止的特效id,大致从1000开始
Actor:stopBodyEffectById(0,1029)
--在聊天框显示
Chat:sendSystemMsg("停止了房主的1029特效")
参数及类型:
返回值及类型:
该方法的主要作用:设置指定玩家身上的特效大小
具体使用案例如下:
--给房主添加特效
Actor:playBodyEffectById(0,1029,1)
--在聊天框显示
Chat:sendSystemMsg("给房主添加了1029特效,缩放比例为1")
--设置生物指定特效的缩放比例
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要缩放的特效id,大致从1000开始
--第三个参数为缩放比例
Actor:setBodyEffectScale(0,1029,2)
--在聊天框显示
Chat:sendSystemMsg("把房主的1029特效放大了两倍")
参数及类型:
返回值及类型:
该方法的主要作用:在指定Actor身上播放音效
具体使用案例如下:
--给指定生物播放音乐
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数10713为播放的音效id,具体可以在“迷你世界ID查询”的“音效表数据”里查看
--后三个参数分别是:音量、音高、是否循环播放
Actor:playSoundEffectById(0,10713,100,1,false)
--在聊天框显示
Chat:sendSystemMsg("正在给房主播放音乐")
--给房主播放音乐
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)
参数及类型:
返回值及类型:
该方法的主要作用:给对象附加一个速度
具体使用案例如下:
--给指定生物附加一个速度
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--后三个参数分别为向东、上、北三个方向的分速度,可以为负
Actor:appendSpeed(0,5,6,7)
--在聊天框显示
Chat:sendSystemMsg("房主被弹了出去,向东、上、北方向的速度分别为5,6,7")
--获取指定生物在各个方向的朝向,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,dirx,diry,dirz=Actor:getFaceDirection(0)
--在聊天框显示
Chat:sendSystemMsg("房主当前在东西方向偏移"..dirx..",在上下方向偏移"..diry..",在南北方向偏移"..dirz)
参数及类型:
返回值及类型:
该方法的主要作用:通过局部坐标方向计算绝对方向
具体使用案例如下:
local function ClickBlock(event)
local objid=event.eventobjid--玩家id
local vx,vy,vz=10,10,10--以objid的朝向建立坐标系的局部坐标
--通过局部坐标计算在地图默认坐标系上的绝对坐标
local result,dir=Actor:calcDirectionByDirection(objid, vx, vy, vz)
print(dir)--输出绝对坐标
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
参数及类型:
返回值及类型:
该方法的主要作用:通过局部球坐标方向计算绝对方向
具体使用案例如下:
local function ClickBlock(event)
local objid=event.eventobjid--玩家id
local yaw,pitch=90,90--以objid的朝向为基准的旋转角度(水平、垂直)
--计算在地图上的绝对方向
local result,dir=Actor:calcDirectionByAngle(objid, yaw, pitch)
print(dir)--输出绝对方向
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
参数及类型:
返回值及类型:
该方法的主要作用:通过局部坐标方向计算绝对正方向(忽略视角仰角)
具体使用案例如下:
local function ClickBlock(event)
local objid=event.eventobjid--玩家id
local vx,vy,vz=10,10,10--以objid的朝向建立坐标系的局部坐标
--计算绝对正方向(忽略竖坐标)
local result,dir=Actor:calcDirectionByYawDirection(objid, vx, vy, vz)
print(dir)--输出绝对正方向
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
参数及类型:
返回值及类型:
该方法的主要作用:通过局部球坐标方向计算绝对正方向(忽略视角仰角)
具体使用案例如下:
local function ClickBlock(event)
local objid=event.eventobjid--玩家id
local yaw,pitch=90,90--以objid的朝向为基准的旋转角度(水平、垂直)
--计算绝对正方向(忽略仰角)
local result,dir=Actor:calcDirectionByYawAngle(objid, yaw, pitch)
print(dir)--输出绝对正方向
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
--获取指定生物的眼睛高度,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,height=Actor:getEyeHeight(0)
--在聊天框显示
Chat:sendSystemMsg("房主的眼睛高度为"..height)
--获取指定生物的眼睛坐标,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,x,y,z=Actor:getEyePosition(0)
--在聊天框显示
Chat:sendSystemMsg("房主眼睛坐标为:("..x..","..y..","..z..")")
--获取指定生物的尺寸,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,w,h=Actor:getBodySize(0)
--在聊天框显示
Chat:sendSystemMsg("房主身体宽:"..w..",高:"..h)
--让指定生物播放动画表情
--第一个参数为生物在存档中的实体id,可以是玩家迷你号,0是房主
--第二个参数为动作表情id,具体可以在“迷你世界ID查询”的“动作表数据”查询
Actor:playAct(0,1)
--在聊天框显示
Chat:sendSystemMsg("让房主播放打招呼动作")
local function ClickActor(event)
local objid=event.toobjid--被点击的生物
local actid=17--要播放的动作id,这里是“死亡”动作,具体可以在ID库查询
--让生物播放动作
Actor:playAct(objid,actid)
end
ScriptSupportEvent:registerEvent([=[Player.ClickActor]=], ClickActor)--点击生物
local function ClickBlock(event)
local objid=event.eventobjid--要显示昵称的实体id,这里是点击方块的玩家
local isshow=true--是否显示昵称:是
--设置objid的昵称
Actor:setnickname(objid, "昵称")
--显示objid的昵称
Actor:shownickname(objid, isshow)
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
local function ClickBlock(event)
local objid=event.eventobjid--要设置昵称的实体id,这里是点击方块的玩家
local name="昵称"--要设置的昵称
--显示objid的昵称
Actor:shownickname(objid, true)
--设置objid的昵称
Actor:setnickname(objid, name)
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
local function ClickBlock(event)
local objid=event.eventobjid--要获取外观的实体id,这里是玩家
--获取objid的外观
local result,name=Actor:getActorFacade(objid)
Chat:sendSystemMsg(name)--在聊天框显示
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
local function ClickActor(event)
local objid=event.toobjid--要获取外观的实体id,这里是被点击的生物
local result,name=Actor:getActorFacade(objid)--获取objid的外观
local objid2=event.eventobjid--要设置外观的实体id,这里是点击生物的玩家
--设置objid2的外观为刚刚获取的name
Actor:changeCustomModel(objid2, name)
end
ScriptSupportEvent:registerEvent([=[Player.ClickActor]=], ClickActor)--点击生物
local function ClickBlock(event)
local objid=event.eventobjid--要恢复外观的实体id,这里是点击方块的玩家
--恢复objid的外观
Actor:recoverinitialModel(objid)
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
--给指定生物添加buff
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二、三个参数为要添加的buff,具体可以在“迷你世界ID查询”的“状态(效果)表数据”中查看
--最后一个参数为buff持续时长
Actor:addBuff(0,50,4,10000)
--在聊天框显示
Chat:sendSystemMsg("房主被添加了快速生命恢复4级的buff,持续时长10000")
--判断某生物是否有某buff
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要判断的buff,具体可以在“迷你世界ID查询”的“状态(效果)表数据”中查看
local result=Actor:hasBuff(0,50)
if result==0 then--如果有
--在聊天框显示
Chat:sendSystemMsg("房主当前有快速生命恢复的buff")
else--如果没有
--在聊天框显示
Chat:sendSystemMsg("房主当前没有快速生命恢复的buff")
end
--移除指定生物的指定buff
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要移除的buff,具体可以在“迷你世界ID查询”的“状态(效果)表数据”中查看
Actor:removeBuff(0,50)
--在聊天框显示
Chat:sendSystemMsg("移除了房主的快速生命恢复的buff")
--移除某生物所有buff,参数为生物在存档中的id,可以是玩家迷你号,0是房主
Actor:clearAllBuff(0)
--在聊天框显示
Chat:sendSystemMsg("清空了房主所有buff")
--移除某生物所有负面buff,参数为生物在存档中的id,可以是玩家迷你号,0是房主
Actor:clearAllBadBuff(0)
--在聊天框显示
Chat:sendSystemMsg("清空了房主所有负面buff")
number
--获取某生物buff列表,参数为生物在存档中的id,可以是玩家迷你号,0是房主
local result,num,array=Actor:getBuffList(0)
if num>0 then--如果有buff
for i,a in ipairs(array) do
--在聊天框显示buff列表
Chat:sendSystemMsg("房主第"..i.."个buff为:"..a)
end
else--如果没有buff
--在聊天框显示
Chat:sendSystemMsg("房主当前没有buff")
end
--获取某生物指定buff的剩余时长
--第一个参数为生物在存档中的id,可以是玩家迷你号,0是房主
--第二个参数为要获取剩余时长的buff,具体可以在“迷你世界ID查询”的“状态(效果)表数据”中查看
local result,ticks=Actor:getBuffLeftTick(0,50)
--在聊天框显示
Chat:sendSystemMsg("房主当前快速生命恢复的buff剩余时长为:"..ticks)
local result = Actor:randomFacadeID()
local function ClickActor(event)
local objidA=event.eventobjid--攻击者,这里是点击生物的玩家
local objidB=event.toobjid--被攻击者,这里是被点击的生物
local hp=999--造成的伤害数值
local attackType=0--伤害类型,这里是近战伤害,可以在常量列表查询
--使玩家对生物造成伤害
Actor:playerHurt(objidA, objidB, hp, attackType)
end
ScriptSupportEvent:registerEvent([=[Player.ClickActor]=], ClickActor)--点击生物,执行函数ClickActor
local function ClickBlock(event)
local objidA=event.eventobjid--攻击者,这里是点击方块的玩家
--以被点击的方块为中心,向前后左右上下各扩展10格创建一个区域
local result,areaid=Area:createAreaRect({x=event.x,y=event.y,z=event.z},{x=10,y=10,z=10})
local hp=999--造成的伤害数值
local attackType=0--伤害类型,这里是近战伤害,可以在常量列表查询
--使玩家对区域内的所有目标造成伤害
Actor:playerHurtArea(objidA, areaid, hp, attackType)
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块,执行函数ClickBlock
local function ClickActor(event)
local objidA=event.toobjid--攻击者,这里是被点击的生物
local objidB=event.eventobjid--被攻击者,这里是点击生物的玩家
local hp=999--造成的伤害数值
local attackType=0--伤害类型,这里是近战伤害,可以在常量列表查询
--使生物对玩家造成伤害
Actor:actorHurt(objidA, objidB, hp, attackType)
end
ScriptSupportEvent:registerEvent([=[Player.ClickActor]=], ClickActor)--点击生物,执行函数ClickActor
local function ClickActor(event)
local objidA=event.toobjid--攻击者,这里是被点击的生物
local _,x,y,z=Actor:getPosition(objidA)--获取被点击的生物坐标
--以被点击的生物为中心,向前后左右上下各扩展10格创建区域
local _,areaid=Area:createAreaRect({x=x,y=y,z=z},{x=10,y=10,z=10})
local hp=999--造成的伤害数值
local attackType=0--伤害类型,这里是近战伤害,可以在常量列表查询
--使生物对区域内的所有目标造成伤害(包括生物自身)
Actor:actorHurtArea(objidA, areaid, hp, attackType)
end
ScriptSupportEvent:registerEvent([=[Player.ClickActor]=], ClickActor)--点击生物,执行函数ClickActor
local code ,pos = Actor:getPositionV2(objid)
if code == ErrorCode.OK then
print('执行成功' ,pos )
else
print('执行失败')
end
local code = Actor:setFaceDirection(objid, x, y, z)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local code = Actor:ChangePlayerSkin(objid, uin)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end