首頁 游戲

Minecraft指令手冊

第一百五十七章 初識NPC

Minecraft指令手冊 你好MC 3879 2022-12-29 20:53:13

  2016年8月29日,Mojang發(fā)布了攜帶版Alpha 0.16.0 build 1。在這個版本中,首次出現(xiàn)了一種新的實體——NPC(Non-Player Character非玩家角色)。這種實體具有一些村民的特性,比如胸前粘在一起的手和與村民一樣的音效。但它們的外觀相當(dāng)不同,甚至還有非人哉的外觀。

  在隨后的數(shù)次更新中,NPC逐漸擁有了與玩家對話、讓玩家選擇的能力。但這時候,NPC仍只能在教育版或打開了教育版模式的基巖版中發(fā)揮作用,這就使得它的使用受到了很大的限制。直到那個改變了整個Minecraft基巖版開發(fā)界的版本——

  Minecraft:基巖版 1.16

  由于GameTest(游戲測試)框架的引入、2018版腳本的放棄支持、一堆新指令的加入等等重大更改,可以肯定,基巖版1.16版本稱得上是近些年來基巖版最重大的轉(zhuǎn)折點。在之前你應(yīng)該也已經(jīng)注意到,許多新奇的基巖版指令往往就是在1.16版本加入。NPC雖然不是指令,但由于它和指令高度的關(guān)聯(lián)性,因此也不例外。

  1.16.0版本更新后,NPC終于能夠獨自在基巖版中使用而不需要開啟教育版模式。并且隨著官方加大力度更新GameTest框架,NPC可能將會在不久的將來成為基巖版行為包開發(fā)的重要一部分。所以,說了那么多,那么NPC到底如何生成、有什么用、又如何使用?

  生成當(dāng)然是及其簡單的,你或許已經(jīng)知道該如何生成:

  ①使用/summon npc——直接使用summon指令生成

 ?、谑褂?give @s spawn_egg 1 51——獲取NPC的刷怪蛋

  現(xiàn)在,你應(yīng)該已經(jīng)生成出了一個NPC。讓我們先觀察一下這個NPC(圖157-1)。

  如無意外,你應(yīng)該看到的是一位留有黑色長發(fā)、不知道是男是女、有大鼻子、斗雞眼、穿著土色T-shirt和青色長褲、頭上飄著一串黃色NPC的人。這就是NPC,或者更準(zhǔn)確的說,這就是使用了默認(rèn)皮膚的NPC。

  NPC有許多皮膚。截止基巖版1.19.51版本,NPC已經(jīng)擁有了多達(dá)60種皮膚。雖然NPC能夠更改皮膚,但這并不意味著我們能夠隨便給NPC換皮膚,NPC可不是玩家。

  NPC上方顯示的名稱就是NPC自己的名稱。但NPC的名稱比較特殊——在NPC的NBT里面,NPC的名稱存儲在NameTag標(biāo)簽里面,而并不是CustomName標(biāo)簽里。如果你并沒有把之前章節(jié)的東西丟掉,你應(yīng)該還記得CustomName標(biāo)簽的作用,也就是用來存儲實體的名稱。NPC的名稱存儲在另一個單獨的標(biāo)簽內(nèi),就會引出一件麻煩事——使用重命名刷怪蛋或summon指令的方式都不能改變NPC自己的名稱。只不過根據(jù)網(wǎng)上一些使用NPC做浮空字的教程來看,似乎在網(wǎng)易版,NPC的名字就是實體名字,但作者畢竟不玩網(wǎng)易好久了,自然也就無從驗證。

  現(xiàn)在,讓我們打開NPC的界面(圖157-2)。

  NPC的GUI界面十分簡單,僅由四個主要部分組成(順序從上到下):

  -名稱輸入框:可以更改NPC的名稱,并且可以使用格式化代碼§。最大可輸入128個字符,但有效輸入(也就是真正能夠顯示出來的)只有前32個字符。

  -對話編輯按鈕:這是一個按鈕,按下去可以進(jìn)入到另外一個界面,以編輯NPC與玩家的對話。

  -皮膚選擇欄:可以更改NPC的皮膚,左右的按鈕可以翻頁。

  -高級設(shè)置按鈕:這也是一個按鈕,按下去也是可以進(jìn)入到另外一個界面,在新的界面里可以為NPC添加指令。

  需要注意,如果你發(fā)現(xiàn)你一打開NPC就只是個空白的對話界面,則說明你沒有Worldbuilder(世界管理員)權(quán)限。這個權(quán)限不等于OP權(quán)限,默認(rèn)情況下創(chuàng)造模式玩家會自動擁有這個權(quán)限,在開啟教育版模式的情況下也可以通過/ability或/worldbuilder(/wb)指令手動賦予。總而言之,請你先將你的游戲模式調(diào)成創(chuàng)造模式,然后再打開NPC。

  還需要注意,如果你左鍵(鍵鼠輸入)或點擊了NPC(不是長按),那么NPC將會被刪除。現(xiàn)在由于NPC沒有被編輯所以沒什么,但當(dāng)你已經(jīng)弄好時不小心將它點沒了,你估計會破口大罵Mojang為什么沒有給Minecraft加入Ctrl+Z。特別是觸控,十分容易誤觸!因此,我建議你勤勞一點,指令和對話先在外面寫再復(fù)制到游戲中。

  我們本章就重點來了解NPC的兩部分:對話和高級設(shè)置。

  按照順序,讓我們先來看看對話。

  按下對話編輯按鈕,我們就進(jìn)入了一個空白的對話界面(圖157-3)。

  對話界面主要由兩部分組成:NPC外貌的渲染圖像和對話框。

  由于是編輯模式,所以我們可以在對話框中直接輸入一些東西。對話框最大可以輸入1000字符(1.19.51版本作者實測),但Minecraft Wiki上卻說最大是256字或在少數(shù)情況下是337字,更加離譜的是官方文檔又說對話框有307字符的限制(時間為2022年12月29日)。所以——實踐是檢驗真理的唯一標(biāo)準(zhǔn),這句話永不過時。

  回到正題,對話框就像是個文本編輯器一樣。如果超出它的顯示能力,它的右側(cè)就會出現(xiàn)滾動條,你可以通過滾動對話框來繼續(xù)編輯或閱讀。

  讓我們嘗試輸入點東西,比如輸入『你好!』,然后關(guān)閉對話編輯界面。需要注意,你應(yīng)該已經(jīng)注意到右上角有兩個關(guān)閉按鈕了。上面那個關(guān)閉按鈕將會直接關(guān)閉整個界面,而下面那個關(guān)閉按鈕僅僅只會關(guān)閉對話編輯界面然后返回到最初的編輯界面而已。放心,不管是哪個按鈕,你在對話框內(nèi)所寫的任何東西都是不會丟失的,它可是實時保存的!

  這就是編輯NPC對話的方式,其實相當(dāng)簡單。接下來讓我們來看看NPC的高級設(shè)置。

  按下『高級設(shè)置』按鈕,你就來到了『高級NPC設(shè)置』界面(圖157-4)。

  這個界面看起來特別空,就寫著兩句話(單擊此按鈕在NPC對話框中添加命令??梢酝瑫r添加多個命令)和一個『添加命令』按鈕。那如果點一下按鈕呢?(圖157-5)

  在『添加命令』按鈕的上方,原來的兩行文字消失了,取而代之的是一塊『命令』面板。在這個面板上,有一個命令輸入框,輸入框右邊是一個大大的『+』按鈕,下方是三個開關(guān),從左到右分別是『按鈕模式』、『進(jìn)入時』和『退出時』,其中『退出時』已經(jīng)打開。在面板的右上角,還有一個小型的垃圾桶按鈕。

  點擊垃圾桶可以刪除這個面板以及上面的所有設(shè)置。面板的核心部分——命令輸入框——看起來和命令方塊的很像。但兩者有兩個重大區(qū)別。首先,NPC的命令輸入框最大只能輸入1024個字符,但命令方塊能夠輸入32767個。其次,NPC的命令輸入框可以換行,每行都可以寫一個指令,執(zhí)行時會按照從上到下的順序執(zhí)行,而命令方塊不能換行且只能寫入一條指令。

  輸入框右邊巨大的『+』,點擊它可以放大輸入框。但這輸入框目前實測有一個問題——雖然上限是1024,但寫的內(nèi)容超出了界面之后竟然就無法往下滑,僅僅只顯示個省略號。

  下方的三個按鈕,用途是設(shè)置上面的命令會在什么情況下觸發(fā)運行。默認(rèn)是『退出時』,即在退出對話界面時會觸發(fā)運行。需要注意,還記得剛才提到退出界面有兩個關(guān)閉按鈕嗎?如果你點擊下面的關(guān)閉按鈕來退出,那么指令會正常運行(除非你處于編輯模式);如果你點擊上面的按鈕退出,那么指令反而不會運行(BugJump正常在線)(1.19.51版本實測)。

  我們可以將指令的觸發(fā)方式改成『進(jìn)入時』或『按鈕模式』?!哼M(jìn)入時』,也就是玩家一打開NPC對話界面,就會觸發(fā)指令運行,除非此時你處于編輯模式?!喊粹o模式』是一個比較特殊的觸發(fā)方式,在你選擇了這個模式之后,在三個按鈕下方還會出現(xiàn)一個文本輸入框,在這里你可以輸入按鈕顯示的文本。這個文本輸入框可以輸入至多128個字符,但只有前16個字符才會真正有效顯示出來。當(dāng)你添加了觸發(fā)方式為『按鈕模式』的指令后,再打開對話界面,在『NPC的渲染圖』和『對話框』下面將會出現(xiàn)一些按鈕,上面顯示著那些你自定義的文本(如果你啥也沒寫,按鈕將不會顯示任何文本)。點擊這些按鈕將會運行相應(yīng)的指令,并且在指令運行完后對話窗口將自動關(guān)閉,如果此時還有設(shè)置退出時執(zhí)行的指令,那這些指令也將會執(zhí)行。

  有趣的是,即使是在編輯模式下,你點擊那些按鈕,『按鈕模式』的指令和『退出時』的指令(如果有)也能照常運行,這就省去了手動更改游戲模式的麻煩。

  上面說到命令輸入框可以換行,每行可以寫一個指令,運行時從上到下運行。這時候可能就有問題了——如果有一行指令寫錯了會怎樣?

  答案是不會怎樣,游戲會直接跳過這一行指令繼續(xù)執(zhí)行下去,直到?jīng)]有指令可以執(zhí)行。舉個栗子:

  give @initiator diamond 1 0

  tellraw @initiator {“rawtext“:[{“text“:“§a您獲得了一顆鉆石!§r“}]}

  WTF?!

  say§e @initiator§r獲得了一顆§b鉆石§r!

  當(dāng)上面這些指令被運行時,你的聊天欄將會顯示:

  您已被給予鉆石*1

  您獲得了一顆鉆石!

  [NPC]你的游戲名獲得了一顆鉆石!

  NPC在運行到『WTF?!』一行,并沒有因為『WTF?!』是錯誤的指令而停止執(zhí)行,反而是連錯誤信息都不放一個就繼續(xù)執(zhí)行下去。

  你應(yīng)該注意到了,在上面的指令中,出現(xiàn)了一個奇怪的目標(biāo)選擇器:@initiator

  什么是『@initiator』?它指代了什么東西?

  讓我們回想一下第四章『目標(biāo)選擇器』的內(nèi)容,或許你能想起來在第四章曾講到:

  『@initiator——代指正在與該NPC交互的玩家[僅基巖版],不管這名玩家是否在交互時被殺死』

  @initiator指代的就是正在和運行指令的NPC交互的玩家。這或許是目前最難記下來的目標(biāo)選擇器變量了吧。

  回到這個『命令面板』上來。『命令面板』并不能無限制添加,一個NPC最多就只能添加6個『命令面板』。但考慮到一個『命令面板』就可以放下來許多條命令,實際上沒什么影響。

  現(xiàn)在,我們已經(jīng)知道了如何獲得和使用NPC。但是,如果我們要把NPC投入實踐,我們就不得不面對一個問題:NPC會不會被擊殺?

  這個問題的答案肯定是能的,你只需要用一些方法將NPC推下虛空(它們還是會受重力影響的),然后NPC就會死亡。

  我們需要對這個問題作出一些限制,也就是:NPC能否通過正常手段擊殺?

  這個問題的答案是『不能』。NPC可以免疫幾乎一切的傷害,包括——摔落、爆炸、生物攻擊、玩家攻擊、火焰灼燒、冰凍、窒息、藥水效果等等等?;旧?,NPC對于沒有權(quán)限的玩家來說不可擊殺。

  因此,放心使用NPC,官方出品的怎么可能會是不保險的呢?雖然Mojang確實搞出過很多不保險的東西。

  這就是本章的全部內(nèi)容,但這僅僅是NPC的冰山一角。我們將在以后了解到更多有關(guān)于NPC的內(nèi)容。

  ————歷史————

  -攜帶版/基巖版

  0.16.0——加入又移除了NPC,但沒有完全移除。

  1.0.0——重新加入了NPC。

  1.8.0——能夠使用/summon指令生成NPC了。

  1.10.0——現(xiàn)在不能使用/summon指令生成NPC,但NPC現(xiàn)在有功能了。

  1.12.0——現(xiàn)在NPC又沒功能了。

  1.16.0——現(xiàn)在能夠獲取到NPC的刷怪蛋,也能夠使用/summon指令生成,同時NPC又有功能了。NPC也不再是只有20點生命值。

  1.18/1.19——加入了一堆皮膚

  -教育版

  1.0——加入了NPC

  1.14/1.18——加入了一堆皮膚

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進(jìn)入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁
返回書頁
指南