首页 男生 游戏竞技 Minecraft指令手册

第一百五十章 如何看懂调试界面 ③

Minecraft指令手册 你好MC 7297 2024-07-09 15:29

  在上一章中,作者提到了调试界面左边第二阵第四行之后的内容,在1.13.2到1.16.5版本期间发生了极大的变化。这一章,我们就要了解,到底发生了什么变化?

  在1.16.5版本,第五行已经不是Biome了。这一行得和下面一行,即第六行一起看:

  Client Light:光照强度(天空光照强度 sky,方块光照强度 block)

  Server Light:光照强度(天空光照强度 sky,方块光照强度 block)

  不难发现,新版本是将Light一行拆成了客户端光照强度(Client Light)和服务端光照强度(Server Light),实际作用和原本的Light一样,只不过分成了两端。比较奇怪的是,当你并没有在玩服务器而是在单人游戏时,Server Light还是会显示,只不过会显示成:

  Server Light:(与上一行的天空光照强度一样 sky,与上一行的方块光照强度一样 block)

  嗯,所以说为什么Mojang不直接把它给隐藏掉呢?

  第六行下面的第七行CH和第八行SH,是新版本新添加的一对兄弟,也需要一起看:

  CH S:xx M:xx

  SH S:xx O:xx M:xx ML:xx

  这两行的作用差不多,其用处都是显示玩家当前位置(X和Z坐标)最高的特定方块的Y坐标信息,区别就在于一个是客户端的信息(Client Highest)一个是服务端的信息(Server Highest)。

  CH和SH都有S和M这两个参数。S的作用是显示玩家当前所处位置(X和Z坐标)最高的非空气方块的方块的Y坐标信息。M是显示玩家当前所处位置(X和Z坐标)最高的任意液体或会挡住你的方块的Y坐标信息。

  M这个参数可能会比较难以理解。那就举个例子:

  假设一个服务器的腐竹,由于服务器没人玩,很无聊,就用蜘蛛网从地上一直搭(创造模式)搭到Y坐标为212的地方。此时如果有一位玩家路过这个服务器,并且从蜘蛛网下面走了过去,那么在穿过蜘蛛网的时候,它的CH一行会显示为:

  CH S:212,M:64

  因为蜘蛛网并不会挡住玩家,它本身也不是个液体,导致并不会被M参数算到。但蜘蛛网并不是个空气方块,S参数便记录了它的坐标,所以最终得出了这个结果。

  SH在CH的基础上还有O和ML这两个参数(1.18版本还多了个东西在S和O之间,只不过目前在预览版中显示为null:xx),但这两位并不适合单独介绍,而是应该和刚才那两位,搞一个表格(建议电脑或平板上观看):

  参数名/方块类型——空气方块—挡人方块—液体—树叶—其他

  S——————————×————√———√——√——√

  O —————————×————√———×——√——×

  M—————————×————√———√——√——×

  ML—————————×————√———√——×——×

  可能这仍然有些难以理解,但好在,这位腐竹又搞了两个奇怪的塔:

  ①

  蜘蛛网--- 67

  水--- 66

  树叶--- 65

  草方块---64

  ②

  蜘蛛网--- 67

  树叶--- 66

  水--- 65

  草方块--- 64

  如果此时有一位管理大大从正上方路过,那么它的调试面板SH这一行将会显示:

  ①——SH S:67 O:65 M:66 ML:66

  (因为蜘蛛网不是空气方块,所以S是67;因为蜘蛛网和水都不会挡住玩家,但树叶可以,所以O是65;因为蜘蛛网和水都不会挡住玩家,但水是液体,所以M和ML都是66)

  ②——SH S:67 O:66 M:66 ML:65

  (因为.....所以S是67;因为树叶会挡住玩家,但蜘蛛网不会,所以O和M都是66;因为蜘蛛网不会挡住玩家,树叶不属于ML的计算范围,水是液体,所以ML是65)

  理解了吧?不理解就再看一遍。

  第九行和第十行即Biome(生物群系)和Local Difficultly(区域难度)。

  第十一行,即SC一行,是在1.16版本中新加入的一行参数,作用是显示生物生成的详细信息:

  SC:xx——当前可以生成生物的区块数量,似乎与渲染距离没有关系

  M:xx——当前所有已生成的生物中,敌对生物的总数量

  C:xx——当前所有已生成的生物中,动物的总数量

  A:xx——当前所有已生成的生物中,环境生物(比如蝙蝠)的总数量

  W:xx——当前所有已生成的生物中,水生动物的总数量

  M:xx——当前所有已生成的生物中,其他类型的生物的总数量

  最后一行,也就是Sounds行:

  Sounds:xx/xxx + x/x(Mood xx%)

  Sounds一行主要是关于游戏声音。Minecraft的游戏声音大致可以分为三类:

  普通音效、环境音效、背景音乐

  普通音效——游戏中的大部分声音是普通音效,比如放置方块、怪物/动物发出声音、脚步声等都算普通音效

  环境音效——环境音效一般是指在特定场景下播放的声音,说白点就是你在挖矿的时候听到的怪声(晚上玩怪恐怖的)。环境音效除了在洞穴里有,还有在水下和在下界的环境音效。

  背景音乐——不用多说,C418的音乐真好听。

  加号的左边即是普通音效,具体是:

  当前正在播放的普通音效数量/可以播放的普通音效数量上限

  右边是环境音效,只不过此环境音效还包括了唱片机播放的音乐和游戏背景音乐(或者更准确的来讲应该使用英文Minecraft Wiki的streamed sounds):

  当前正在播放的环境音效数量/可以播放的环境音效数量上限

  在这一串参数后面,还有一个:

  Mood xx%

  这个东西目前中文Wiki上没有说明。作者将这东西放进百度生草机里搅拌了一下,得出来了:

  情绪 xx%

  生草机出来的东西准不准不知道,但这东西绝对跟你的情绪有关。

  这东西的百分比后面有一个算法:Mood algorithm

  Mood 算法大致的代码(伪)是这样的:

  ubr /dateMood(mood):

  tickDelay = 6000

  maxLightLevel = 15

  block = select a random block in a 17×17×17 block cube centered around the br /layer

  skyLight = block.getSkyLightLevel()

  if (skyLight > 0):

  mood = mood -(skyLight / maxLightLevel)* 0.015

  else:

  blockLight = block.getBlockLightLevel()

  mood = mood -(blockLight - 1)/ tickDelay

  if (mood ≥ 1.0):

  br /layer.br /laySbr /ookySound()

  mood = 0.0

  else if (mood < 0):

  mood = 0.0

  翻译:

  声明“更新情绪”方法(情绪):

  设定变量“游戏刻延迟”值为6000

  设定变量“最大光照等级”值为15

  在以玩家为中心的17×17×17的立方体中随机选定一个方块

  获取该方块的天空光照等级

  如果(天空光照等级大于0)

  设定变量“情绪”的值=情绪-(天空光照等级÷ 最大光照等级)× 0.015

  否则

  获取该方块的方块光照等级

  设定变量“情绪”的值=情绪-(方块光照等级- 1)÷游戏刻延迟

  如果(情绪大于等于1.0)

  执行玩家类方法“游戏里诡异的声音”

  设定变量“情绪”的值为0.0

  否则如果(情绪小于0)

  设定变量“情绪”的值为0.0

  为了让你能够真正理解这算法是怎么算的,我们来举个栗子。

  假设此时你正在矿洞里挖矿。在上一游戏刻中,你的情绪值为0.9999999999999232(Mood 99%),如果此刻游戏随机到了你正前方五格的方块,那么:

  游戏通过执行block.getSkyLightLevel这个方法(Java语言中的方法类似于Minecraft中的函数,将一串代码包起来成为一个方法,需要执行的时候再调用),获取到了这个方块的天空光照等级为0。

  因为这个方块的天空光照等级是0,所以游戏又执行了block.getBlockLightLevel这个方法,获取到了这个方块的方块光照等级,发现也是0。

  于是游戏做了一个简单的运算:

  mood = 0.9999999999999232-(0-1)÷6000

  =0.9999999999999232-(-1)÷6000

  =0.9999999999999232-(-0.0001666666666666)

  =0.9999999999999232+0.0001666666666666

  =1.0001666666665898

  此时游戏发现1.0001666666665898大于1,所以执行了br /layer.br /laySbr /ookySound方法,然后你就听到了一辆地铁驶过的声音(Cave 11)。

  但如果这个方块的方块光照等级大于等于1,或者这个方块的天空光照大于0,那么mood值反而会减少一些或不增不减,因为如果仔细观察上面的代码,你会发现计算mood时都是减法,要让mood增加,必须要让减数为负数,各种情况下,只有天空和方块光照等级都为0的情况下才能得出负数。

  Mood算法每游戏刻都会执行一遍,每次执行最多增加1/6000。也就是说,在极端的情况下,即你完全置身于黑暗之中,Mood也需要每五分钟才能够轮回一次。

  说了这么多,那么这个Mood xx%到底有什么用?

  看一下上面的假设就知道了,当Mood到100%也就是你的情绪达到了顶峰时,游戏就会突然给你随机放一个环境音效,把你吓一跳。

  嗯.......不愧是Mojang,把玩家的情绪拿捏得明明白白的。

  到这儿。左边的第二方阵算是彻底研究完了,但本章还没有结束。

  1.8.2版本,左边新出现了个第三方阵,这个第三方阵主要是关于调试本身的信息,它长这个样子:

  (1.14版本之前)

  Debug:Pie [shift]:hidden FPS [alt]:hidden

  For helbr /:br /ress F3 + Q

  (1.14版本之后)

  Debug:Pie [shift]:hidden FPS + TPS [alt]:hidden

  For helbr /:br /ress F3 + Q

  第一行Debug主要是一些关于调试界面的参数。Pie指的是饼图,这东西可以通过按shift + F3显示(visible),默认是隐藏(hidden)。

  什么?你说按了没用?

  哦,这东西得这样按出来:

  第一步,按住shift,由于和游戏按键冲突,按住时会蹲下或向下飞行。如果此时调试界面已打开,请先关闭调试界面。

  第二步,继续按住shift,同时另一个手指按住F3。

  第三步,两个手指同时放开。看,饼图出来了!(这饼图小得字都看不清啊)

  FPS(1.14版本之后还有一个TPS,即Ticks Per Second每秒传输刻数)指的是帧(刻)生成时间柱状图,可以按alt + F3显示。在1.14版本之前,这儿只有一个柱状图。这个柱状图有两条参考线,一个参考线在最上面,代表30fbr /s;另一个在中间,代表60fbr /s。这个柱状图的柱子越低,即代表每帧运算的时间越快,FPS越高。

  在1.13版本之前,这个柱状图很简陋,但相对于之后的版本,多了一个东西:

  xx MB/s

  作者猜测这可能跟读写速度有关,可能是内存的读写速度。

  1.13版本更新后,这个柱状图就好看多了,首先它变大了,其次它有更丰富的颜色了——柱子越矮越绿,越高越红。

  1.14版本更新后,这儿又多了个TPS的生成时间柱状图,看法和FPS的柱子差不多。同时,柱状图上面会显示当前最低和最高计算用时,单位为毫秒。

  上面所述的两个附加调试图在关闭调试界面后,如果再打开调试界面,那么将会又一次隐藏。你可能以为我要说如何保持它默认开启,但可惜不是,因为没有这个功能。我要说的是:如何一次性将两个图表都打开。

  你只需要按下shift + alt + F3即可。

  第二行For helbr /相信大家都看得懂,这就类似于软件中的“获取帮助”,这一行就是提醒你按F3 + Q可以了解更多东西。

  具体有什么东西如下:

  [?~]F3 + A:重新加载所有区块

  [1.8~]F3 + B:打开或关闭实体的碰撞箱(白色线条)、朝向(蓝色线条)和生物的视线高度(红色线条)信息。

  [?~1.13~]F3 + C:短按以/execute指令的形式复制玩家本身的坐标、旋转角度信息[1.13及之后]:

  /execute in minecraft:overworld run tbr / @s......

  长按10秒以使Minecraft游戏本身强制性崩溃

  [1.13.1~]Ctrl + F3 + C:按住10秒以使Java本身强制性崩溃(有些键盘需要使用右Ctrl)

  [?~]F3 + D:清空聊天记录,但仍然可以通过上下键查看之前输入过的指令和消息

  [1.9~]F3 + F:使客户端渲染距离+1(范围为2~32)

  [1.9~]F3 + shift + F:使客户端渲染距离-1(范围为2~32)

  [1.10~]F3 + G:打开或关闭区块边界(红色,玩家所处区块为黄色)、玩家所处区块区段边界(蓝色)信息

  [1.4.2~]F3 + H:打开或关闭高级提示框(即显示物品详细信息,如物品ID、NBT标签)

  [1.13~]F3 + I:将玩家所注视的方块或实体在服务端的信息复制下来,具体如下。

  方块:/setblock 坐标信息,方块ID[方块状态]

  实体:/summon 实体ID,实体坐标,实体NBT

  [1.13~]shift + F3 + I:将玩家所注视的方块或实体在客户端的信息复制下来。

  [?~1.12.2|1.17~]F3 + L:Wiki上说是“生成、保存性能分析数据”。在1.12.2版本,按住F3 +L会显示“正在加载可见区块”,但实际啥也没有发生。

  [1.9~1.16~|需要执行/gamemode权限]F3 + N:在上一个游戏模式和旁观模式切换[1.15之后]在创造模式和旁观模式中切换[1.15及之前]

  [1.4.2~]F3 + P:开启或关闭当Minecraft窗口没被选中时自动暂停的功能

  [1.9~]F3 + Q:显示帮助列表

  [?~1.9]F3 + S:重新加载声音

  [?~]F3 + T:重新加载所有资源包(包括原版资源包)和声音

  [1.16~|需要执行/gamemode权限]F3 + F4:在四种模式中切换,可以使用鼠标选择或按F4下一个,松开F3即切换到选定模式

  [1.14.1~]F3 + Esc:暂停游戏而不显示菜单,多人模式无法暂停

  [1.2.4~]shift + F3:显示饼状图

  [1.8.2~]alt + F3:显示柱状图

  [1.8.2~]shift +alt + F3:我全都要显示

  到这里,调试界面左边这一栏才算介绍完成。

  本章到此结束。

目录
设置
手机
书架
书页
评论