迷你世界脚本脚本常见问题

脚本常见问题
 彼得兔
更新时间: 2024-05-22 17:54:44
在查阅开发者学院中的脚本API时,若有任何问题或建议,欢迎通过问卷进行反馈!【点我填写问卷】
1.Block中的data在什么地方使用
data使用有具体需求,此处不建议开发者使用。开发者尽可能使用已封装过的没有data的新接口

 

 
2.自定义的Block和Item应该如何获取ID (或 data?)(用于 setBlock、spawnItem 等)
有两种办法可以获取到自定义类型的ID,<1>使用手持触发器去点击获取 <2>依赖相关的触发事件去打印ID 比如,如果是自定义的方块或者生物,可以将其放置在地图里然后用手持触发器去点击获取信息,也可以通过触发相关事件去打印出ID。 代码示例如下:

Callback_ClickBlock = function(event_args)
   local blockid = event_args['blockid']
   Chat:sendSystemMsg('点击的方块ID为'..blockid)
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], Callback_ClickBlock)
Lua
 

 

3.Block 接口中的 setBlockAllForNotify/setBlockAllForUpdate 方法的参数 flag 需要更多信息
setBlockAllForNotify/setBlockAllForUpdate方法中的flag和data参数对开发者来说都是不可用的,新版wiki描述上已修正

 

 

4.ObjectLib 方法里的 uuid 该如何获取
目前开发者暂时没法直接获取到,我们会在下一版里迭代更新,详情请关注更新通知

 

 

5.World:playSoundEffectOnPos 方法的 soundId 参数需要更多信息
最新一期Wiki会放出soundId[2]表,与触发器内的音效库同步

 

 

6.World 类中可否提供一个获取有所有 Actor 的方法,或者历遍其的方法 (非 World:getActorsByBox)
由于游戏机制及效率考虑的原因,此功能不给予提供。但我们会提供触发器生物库的ActorId[3]表

 

 

7.Event 需要更详细的用法及参数解释
Event即为开发者事件,是指玩家在游戏内进行了某些操作后触发的对应事件。比如玩家点击了某个方块, 这时就会触发玩家的点击方块事件,即名为"Player.ClickBlock"的事件,开发者只要注册监听该事件就能进行点击方块后的对应操作。 注册监听事件的方法如下:ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], function(event_args) ... end)。 而开发者事件在进行回调时会传回来一些对应的参数,每个开发者事件对应的参数可参考wiki中的事件系统[4]部分。

 

 

8.UI 接口中的 setGBattleUI/setShapeLine/setShapeCircle 方法的参数 name 及 uiname 需要更多信息
1)setGBattleUI方法的参数name是string类型的枚举值,可选值有如下几种情况:

name    value type    value describe
'left_title'    string    左标题(第1)
'right_title'    string    右标题(/40)
'left_desc'    string    左描述(大吉大利,我是第一)
'left_little_desc'    string    左简述(排名1)
'right_little_desc'    string    右简述(战胜4)
'battle_btn'    boolean    比分导航栏面板按钮显示
'result'    boolean    比赛结果显示
'result_bkg'    boolean    比赛结果底板显示
'reopen'    boolean    再来一局按钮显示
 

2)setShapeLine及setShapeCircle这两个接口目前暂时无效果,可不用理会。后面自定义用户界面(Custom UI)完成后可将其替代

 

 

9.UI:ShowScreenEffect 方法的 type 需要更多信息
该接口是用于显示屏幕特效,其中type的值为1表示speedline,2表示powerline,3表示fog

 

 

10.Game:addRenderGlobalEffect 方法的 path 参数需要更多信息
path即为全局特效的路径,目前可用的是path只有"particles/Fog.ent",详情可参考范例集合[5]里面给出的例子

 

 

11.Game:getDefString 方法的 id 需要更多信息
不提倡开发者使用上述接口,鼓励开发者使用自己定义的字符串

 

 

12.Player:setActionAttrState 方法的 actionattr 参数需要更多信息
setActionAttrState是设置玩家特殊属性的状态(例如可移动、可攻击等)的接口,actionattr参数可参考PLAYERATTR_ENABLE[6]

 

 

13.Team 接口中的 teamid 参数需要更多信息
目前我们游戏中最多支持六个队伍,六个队伍的ID及颜色对应如下: 

  队伍      对应颜色     TeamID
 队伍1     红色     1
 队伍2     蓝色     2
 队伍3     绿色     3
 队伍4     黄色     4
 队伍5     橙色     5
 队伍6     紫色     6
 观战队     无     999
Team相关接口中,可以teamid使用-1表示全部队伍。玩家或生物如果不设置队伍的话默认teamid是为0,也是无队伍的一种

 

 

14.appendSpeed 接口中的x,y,z参数信息
该接口的参数x,y,z表示设定一个移动距离,需要传入整数。

案例:假设把Z设定为5,当执行一次该接口后,那么objid就会向+z轴移动5格的距离

写法:appendSpeed(objid,0,0,5)

 

 

15.getBlockPowerStatus 接口中的pos的使用方法
假设想判断坐标为(7、7、7)位置的方块通电状态

正确的写法:

local pos = {x=7,y=7,z=7}
Block:getBlockPowerStatus(pos)
Lua
常见错误写法:

local pos = {7,7,7}
Block:getBlockPowerStatus(pos)
Lua
 

 

16.UI接口为什么没有效果?
ui相关的接口暂时不能用,等后续更新。

 

 

17.如何让游戏开始5秒后,每隔5秒生成一批生物?
--5秒后开始刷怪 每隔5秒刷一次 坐标(0,7,0) 怪物id3400 生成5只
local function r(e)
    local t=e.second
    if t>5 and (t-20)%5==0 then
        World:spawnCreature(0,7,0,3400,5)
    end
end
ScriptSupportEvent:registerEvent("Game.RunTime",r)
Lua
 

 

18.游戏坐标(x,y,z)分别指什么?
x:横坐标,y:竖坐标,z:纵坐标;

(x,y,z)代表:坐标(x,z)高度y的位置,如图:

 

 

19.如何查看某个方块的坐标?
--点击方块显示坐标
local function f2(e)
    local x,y,z=math.floor(e.x),math.floor(e.y),math.floor(e.z)
    Chat:sendSystemMsg("( "..x.." , "..y.." , "..z.." )")
    print(x,y,z)
end
ScriptSupportEvent:registerEvent('Player.ClickBlock',f2)
Lua
 

 

20.输出的聊天框消息为什么会是星号(*)?
数字太多会被屏蔽,可以使用print输出,然后打开“测试”,在运行日志里查看:

 

 

21.可以自定义NPC的AI吗?
目前没有相关接口。可以使用插件里自带的一些AI。

 

 

22.为什么生成方块接口那么卡?
不要一次性生成太多方块,不同设备性能不同,一般尽量不要超过100。

 

 

23.如何修改玩家的血量和饱食度?或者跳跃高度、移动速度等属性?
使用Player:setAttr(uid,attr,value)接口。

 

 

24.如何不允许玩家放置某种特定方块?
--不允许放置的方块id为1
local function f3(e)
    if e.blockid==1 then
        Block:destroyBlock(e.x,e.y,e.z)
    end
end
ScriptSupportEvent:registerEvent('Block.PlaceBy',f3)
Lua
 

 

25.为什么我用脚本生成的生物,离一定距离的话,隔段时间就消失了?
这是bug,已经提交修复,等待后续更新。

 

 

26.如何在游戏开始30秒后,从(0,7,0)到(15,10,15)范围内随机生成一些生物?
--30:游戏开始30秒后 (0,7,0)和(15,10,15):生成范围 {{3400,5},{3401,6},{3402,7}}:生成的生物id和数量
local st=30
local x0,y0,z0=0,7,0
local x1,y1,z1=15,10,15
local actors={{3400,5},{3401,6},{3402,7}}
local function r(e)
    local t=e.second
    if t==st then
        local i=0
        for i=1,#actors do
            World:spawnCreature(math.random(x0,x1),math.random(y0,y1),math.random(z0,z1),actors[i][1],actors[i][2])
        end
    end
end
ScriptSupportEvent:registerEvent("Game.RunTime",r)
Lua
 

 

27.如何更改玩家模型?
修改状态插件,在“效果”里选择“更改玩家模型”。需要改模型的时候使用Actor:addBuff(objid,buffid,bufflv)接口给玩家添加这个状态即可。

 

 

28.能否让玩家在某个区域范围内,自动向前加速?
local x0,y0,z0=0,7,0
local x1,y1,z1=15,10,15
local function r()
    local r,n,ps=World:getAllPlayers(1)
    local i=0
    for i=1,n do
        local r2,x,y,z=Player:getPosition(ps[i])
        if x>x0 and x<x1 and y>y0 and y<y1 and z>z0 and z<z1 then
            local r3,dx,dy,dz=Actor:getFaceDirection(ps[i])
            Actor:appendSpeed(ps[i],dx/math.abs(dx+dz),0,dz/math.abs(dx+dz))
        end
    end
end
ScriptSupportEvent:registerEvent("Game.Run",r)
Lua
 

 

29.如何查看生物id?
--点击生物,输出id
local function c(e)
    local r,id=Creature:getActorID(e.toobjid)
    Chat:sendSystemMsg(id)
end
ScriptSupportEvent:registerEvent('Player.ClickActor',c)
Lua
 

 

30.如何清空玩家背包?
使用Backpack:clearAllPack(uid)接口。

 

 

31.为什么使用Player:setPosition(uid,x,y,z)接口,玩家会卡在虚空无法移动?
如果设置的坐标距离过远,不在玩家加载的区块范围内(视野范围),就会导致玩家卡在虚空。可以使用“复活玩家到指定坐标”代替,即Player:reviveToPos(uid,x,y,z)接口。

 

 

32.如何修改生物属性,比如血量、速度等?
使用Creature:setAttr(objid,attr,value)接口。

 

 

33.如何等待1秒后继续执行?
threadpool:wait(1)
Lua
 

 

34.如何在指定位置生成生物?
使用World:spawnCreature(x,y,z,actorid,num)接口。

 

 

35.如何攻击生物时,在生物头顶显示剩余血量?
local function Eath(e)
    local p,a=e.eventobjid,e.toobjid
    local r=Actor:isPlayer(a)
    if r~=0 then
        local r1,maxhp=Creature:getAttr(a,1)
        local r2,hp=Creature:getAttr(a,2)
        Actor:shownickname(a,true)
        Actor:setnickname(a,"#G"..math.floor(hp).."#R/"..math.floor(maxhp))
    end
end
ScriptSupportEvent:registerEvent('Player.AttackHit',Eath)
Lua
 

 

36.能否监听玩家放置生物蛋的事件?
可以,玩家放置生物蛋会触发“生物生成”事件。

 

 

37.如何实现玩家长按Shift加速?
监听“长按按键事件”,判断事件中的按键如果是Shift,就增加玩家速度。

 

 

38.如何获取玩家手持道具的id?
使用Player:getCurToolID(uid)接口。

 

 

39.为什么计时器窗口会消失?
打开背包后计时器的文字会消失,目前不能解决。可以把显示计时器放在“游戏运行”事件里。

 

 

40.如何设置玩家坐标?
使用Actor:setPosition(objid,x,y,z)或Player:setPosition(objid,x,y,z)接口。

 

 

41.能否在游戏运行中更改地图游戏人数上限?
不能。但是可以监听玩家进入游戏事件,然后判断当前游戏人数是否大于某个值,是的话就传送玩家到地图外面。

 

 

42.能否把玩家踢出游戏?
可以设置玩家游戏结果为负,或者在“游戏运行”事件里设置玩家坐标的高度为负,让玩家在地图下方无法移动。

 

 

43.为什么设置了方块无法被破坏,但还是会被炸掉?
目前“方块无法被破坏”无法避免炸弹、激光等的破坏,只能在插件设置方块抗性为-1,或者监听方块被破坏事件,破坏后重新生成。

 

 

44.玩家离开一定距离后,NPC会消失,这个bug可以解决吗?
已经提交,等待后续更新。目前可以改成“玩家进入区域,生成NPC;玩家离开区域,移除NPC”来代替。

 

 

45.如何改变生物模型?
目前没有这种接口。只能先移除再创建。

 

 

46.能否获取整个地图的生物数量?
无法获取整个地图的,但是可以获取指定区域的生物数量。

 

 

47.如何清除某个生物?
使用World:despawnCreature(objid)或Actor:killSelf(objid)接口。

 

 

48.能否获取指定坐标上的生物id?
不能从坐标获取生物。可以从范围获取,获取到的是整个区域内的生物。

 

 

49.如何让生物出现几秒后消失,如何再出现,一直循环?
as={}
function r2(e)
    if e.second%4==0 then
        _,as=World:spawnCreature(0,7,0,3400,5)
    elseif e.second%4==2 then
        for _,a in pairs(as) do
            World:despawnActor(a)
        end
    end
end
ScriptSupportEvent:registerEvent([=[Game.RunTime]=],r2)
Lua
 

 

50.能否移除家园宠物?
local function depet(e)
    local p,a=e.eventobjid,e.toobjid
    if Actor:isPlayer(p)==1001 then a=p end
    local _,id=Creature:getActorID(a)
    if id>10000 then
        World:despawnActor(a)
    end
end
ScriptSupportEvent:registerEvent([=[Player.ClickActor]=],depet)
ScriptSupportEvent:registerEvent([=[Actor.Collide]=],depet)
Lua
 

 

51.如何设置生物的队伍?
--玩家点击生物,设置生物队伍
--当点击生物时会执行此函数
local function Player_ClickActor(event)
    --设置生物所属的队伍
    --第一个参数为要设置的生物在存档中的id
    --第二个参数为要设置为的队伍id
    Creature:setTeam(event.toobjid,1)
    --在聊天框显示
    Chat:sendSystemMsg("objid为"..event.toobjid.."的生物被设置到了队伍1")
end
--注册监听器,点击生物时执行Player_ClickActor函数
ScriptSupportEvent:registerEvent([=[Player.ClickActor]=],Player_ClickActor)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/76074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

四、Appium Inspector

一、介绍 Appium Inspector 是一个用于移动应用自动化测试的图形化工具&#xff0c;主要用于检查和交互应用的 UI 元素&#xff0c;帮助生成和调试自动化测试脚本。类似于浏览器的F12(开发者工具),Appium Inspector 的主要作用包括&#xff1a;‌ 1.‌检查 UI 元素‌ …

android11通过白名单卸载安装应用

目录 1.源码路径: 2.准备文件package.conf: 3.安装方法installPackagesLI 4.卸载方法deletePackageX 1.源码路径: frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java public static final String WHITELIST_PATH="/data/misc/pa…

qt mapFrom返回的QPoint和event->pos()区别和globalPos区别

mousePressEvent 和 eventFilter 里 event.pos 不一样&#xff0c;一定要注意 eventFilter里event.pos 直接返回相对于label左上角的坐标&#xff0c;就不要再mapFrom mousePressEvent 里event.pos 返回是相对于窗口左上角的坐标&#xff0c;需要用mapFrom返回label左上角的…

Hadoop四 Hive语法

一 数据库操作 Hive数据库操作&#xff0c;与MySql有很多都是一致的 创建数据库 create database if not exists myhive; use myhive;查看数据库详细信息 desc database myhive;数据库本质上就是在HDFS之上的文件夹&#xff0c;是一个以.db结尾的目录&#xff0c;默认存…

前端VUE框架理论与应用(10)

1、记住全局注册的行为必须在根 Vue 实例 (通过 new Vue) 创建之前发生。 2、要注意,以 / 开头的嵌套路径会被当作根路径。 这让你充分的使用嵌套组件而无须设置嵌套的路径。 3、注意:在 Vue 实例内部,你可以通过 $router 访问路由实例。因此你可以调用 this.$router.push…

leetcode-单调栈26

关于单调栈的顺序总结&#xff1a; 寻找右边第一个比我大的&#xff1a;从左到右遍历&#xff0c;栈单调递减 寻找左边第一个比我小的&#xff1a;从左到右遍历&#xff0c;栈单调递增 寻找右边第一个比我小的&#xff1a;从右到左遍历&#xff0c;栈单调递增 寻找左边第一个比…

Linux:安装 CentOS 7(完整教程)

文章目录 一、简介二、安装 CentOS 72.1 虚拟机配置2.2 安装CentOS 7 三、连接远程服务器&#xff08;扩展&#xff09;3.1 获取虚拟机 IP 地址3.2 连接远程服务器 四、结语 一、简介 CentOS&#xff08;Community ENTerprise Operating System&#xff09;是一个基于 Linux 的…

Nautilus 正式发布:为 Sui 带来可验证的链下隐私计算

作为 Sui 安全工具包中的强大新成员&#xff0c;Nautilus 现已上线 Sui 测试网。它专为 Web3 开发者打造&#xff0c;支持保密且可验证的链下计算。Nautilus 应用运行于开发者自主管理的可信执行环境&#xff08;Trusted Execution Environment&#xff0c;TEE&#xff09;中&a…

Git完全指南:从入门到精通版本控制 ------- Git 工作流程 (3)

Git工作流程完全指南&#xff1a;从入门到高效协作 引言 Git作为分布式版本控制系统的行业标准&#xff0c;其高效的分支管理能力是团队协作的基石。本文将深入解析标准Git工作流程&#xff0c;助你掌握从代码提交到团队协作的全链路实践。 一、Git核心概念速览 三大工作区域 …

Distortion, Animation Raymarching

这节课的主要目的是对uv进行操作&#xff0c;实现一些动画的效果&#xff0c;实际就是采样的动画 struct texDistort {float2 texScale(float2 uv, float2 scale){float2 texScale (uv - 0.5) * scale 0.5;return texScale;}float2 texRotate(float2 uv, float angle){float…

《vue3学习手记3》

标签的ref属性 vue3和vue2中的ref属性&#xff1a; 用在普通DOM标签上&#xff0c;获取的是DOM节点 ref用在组件标签上&#xff0c;获取的是组件实例对象 区别在于&#xff1a; 1.vue3中person子组件中的数据父组件App不能直接使用&#xff0c;需要引入并使用defineExpose才可…

List基础与难度题

1. 向 ArrayList 中添加元素并打印 功能描述&#xff1a; 程序创建一个空的 ArrayList 集合&#xff0c;用于存储字符串类型的元素。向该 ArrayList 中依次添加指定的字符串元素。使用增强型 for 循环遍历 ArrayList 中的所有元素&#xff0c;并将每个元素打印输出到控制台。 …

楼宇自控系统如何为现代建筑打造安全、舒适、节能方案

在科技飞速发展的当下&#xff0c;现代建筑对功能和品质的要求日益提升。楼宇自控系统作为建筑智能化的核心技术&#xff0c;宛如一位智慧的“管家”&#xff0c;凭借先进的技术手段&#xff0c;为现代建筑精心打造安全、舒适、节能的全方位解决方案&#xff0c;让建筑真正成为…

绿算轻舟系列FPGA加速卡:驱动数字化转型的核心动力【2】

工业与医疗&#xff1a;精准化的幕后推手 在工业4.0与智慧医疗领域&#xff0c;绿算轻舟FPGA加速卡通过实时信号处理与高精度控制&#xff0c;推动关键场景的技术升级。 工业自动化&#xff1a;在机器视觉质检中&#xff0c;实现亚像素级缺陷检测&#xff0c;产线检测速度大幅…

uniapp-商城-22-顶部模块

这里其实很复杂.我们在前面已经说了这个组件 shop-headbar ,这里来继续说。 该组件实现一个高度的显示以及图片展示,包含logo 名称 后台管理以及避让 导航栏 和 手机的状态栏。 1 整体 代码如下: <template><view class="headr" :style="{ hei…

利用Global.asax在ASP.NET Web应用中实现功能

Global.asax文件&#xff08;也称为ASP.NET应用程序文件&#xff09;是ASP.NET Web应用程序中的一个重要文件&#xff0c;它允许您处理应用程序级别和会话级别的事件。下面介绍如何利用Global.asax来实现各种功能。 Global.asax基本结构 <% Application Language"C#&…

ReportLab 导出 PDF(页面布局)

ReportLab 导出 PDF&#xff08;文档创建&#xff09; ReportLab 导出 PDF&#xff08;页面布局&#xff09; ReportLab 导出 PDF&#xff08;图文表格) PLATYPUS - 页面布局和排版 1. 设计目标2. 开始3. Flowables3.1. Flowable.draw()3.2. Flowable.drawOn(canvas,x,y)3.3. F…

Ubuntu下安装Intel MKL完整指南

&#x1f9e0; Intel MKL 安装指南&#xff08;Ubuntu 完整版&#xff09; 适用平台&#xff1a;Ubuntu 18.04 / 20.04 / 22.04 更新时间&#xff1a;2025 年最新版&#xff08;适配 Intel oneAPI 2024&#xff09; ✅ 一、安装方式选择 安装方式适合用户群体特点推荐程度&…

HackMyVM Gigachad.

Gigachad 信息搜集 ┌──(root㉿kali)-[/home/kali] └─# nmap 192.168.214.85 Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-16 07:42 EDT Nmap scan report for 192.168.214.85 Host is up (0.00011s latency). Not shown: 997 closed tcp ports (reset) PORT S…

大模型全景解析:从技术突破到行业变革

目录 一、引言&#xff1a;人工智能的新纪元 二、大模型发展历史与技术演进 1. 早期探索期&#xff08;2015-2017&#xff09;&#xff1a;从"人工智障"到初具规模 RNN/LSTM架构时代&#xff08;2013-2017&#xff09; Transformer革命&#xff08;2017&#xf…