UU看書

第一百五十七章 初識NPC

天才一秒記住【UU看書】地址:www.uukanshu.co

2016年8月29日,Mojang釋出了攜帶版Alpha0160build1。在這個版本中,首次出現了一種新的實體——NPC(NonPlayerCharacter非玩家角色)。這種實體具有一些村民的特性,比如胸前粘在一起的手和與村民一樣的音效。但它們的外觀相當不同,甚至還有非人哉的外觀。

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

Minecraft基岩版116

由於GameTest(遊戲測試)框架的引入、2018版指令碼的放棄支援、一堆新指令的加入等等重大更改,可以肯定,基岩版116版本稱得上是近些年來基岩版最重大的轉折點。在之前你應該也已經注意到,許多新奇的基岩版指令往往就是在116版本加入。NPC雖然不是指令,但由於它和指令高度的關聯性,因此也不例外。

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

生成當然是及其簡單的,你或許已經知道該如何生成:

①使用summonnpc——直接使用summon指令生成

②使用givesspawnegg151——獲取NPC的刷怪蛋

現在,你應該已經生成出了一個NPC。讓我們先觀察一下這個NPC(圖1571)。

如無意外,你應該看到的是一位留有黑色長髮、不知道是男是女、有大鼻子、鬥雞眼、穿著土色Tshirt和青色長褲、頭上飄著一串黃色NPC的人。這就是NPC,或者更準確的說,這就是使用了預設面板的NPC。

NPC有許多面板。截止基岩版11951版本,NPC已經擁有了多達60種面板。雖然NPC能夠更改面板,但這並不意味著我們能夠隨便給NPC換面板,NPC可不是玩家。

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

現在,讓我們開啟NPC的介面(圖1572)。

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

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

對話編輯按鈕:這是一個按鈕,按下去可以進入到另外一個介面,以編輯NPC與玩家的對話。

面板選擇欄:可以更改NPC的面板,左右的按鈕可以翻頁。

高階設定按鈕:這也是一個按鈕,按下去也是可以進入到另外一個介面,在新的介面裡可以為NPC新增指令。

需要注意,如果你發現你一開啟NPC就只是個空白的對話介面,則說明你沒有Worldbuilder(世界管理員)許可權。這個許可權不等於OP許可權,預設情況下創造模式玩家會自動擁有這個許可權,在開啟教育版模式的情況下也可以透過ability或worldbuilder(wb)指令手動賦予。總而言之,請你先將你的遊戲模式調成創造模式,然後再開啟NPC。

還需要注意,如果你左鍵(鍵鼠輸入)或點選了NPC(不是長按),那麼NPC將會被刪除。現在由於NPC沒有被編輯所以沒什麼,但當你已經弄好時不小心將它點沒了,你估計會破口大罵Mojang為什麼沒有給Minecraft加入CtrlZ。特別是觸控,十分容易誤觸!因此,我建議你勤勞一點,指令和對話先在外面寫再複製到遊戲中。

我們本章就重點來了解NPC的兩部分:對話和高階設定。

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

按下對話編輯按鈕,我們就進入了一個空白的對話介面(圖1573)。

對話介面主要由兩部分組成:NPC外貌的渲染影象和對話方塊。

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

回到正題,對話方塊就像是個文字編輯器一樣。如果超出它的顯示能力,它的右側就會出現捲軸,你可以透過滾動對話方塊來繼續編輯或閱讀。

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

這就是編輯NPC對話的方式,其實相當簡單。接下來讓我們來看看NPC的高階設定。

按下『高階設定』按鈕,你就來到了『高階NPC設定』介面(圖1574)。

這個介面看起來特別空,就寫著兩句話(單擊此按鈕在NPC對話方塊中新增命令。可以同時新增多個命令)和一個『新增命令』按鈕。那如果點一下按鈕呢?(圖1575)

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

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

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

下方的三個按鈕,用途是設定上面的命令會在什麼情況下觸發執行。預設是『退出時』,即在退出對話介面時會觸發執行。需要注意,還記得剛才提到退出介面有兩個關閉按鈕嗎?如果你點選下面的關閉按鈕來退出,那麼指令會正常執行(除非你處於編輯模式);如果你點選上面的按鈕退出,那麼指令反而不會執行(BugJump正常線上)(11951版本實測)。

我們可以將指令的觸發方式改成『進入時』或『按鈕模式』。『進入時』,也就是玩家一開啟NPC對話介面,就會觸發指令執行,除非此時你處於編輯模式。『按鈕模式』是一個比較特殊的觸發方式,在你選擇了這個模式之後,在三個按鈕下方還會出現一個文字輸入框,在這裡你可以輸入按鈕顯示的文字。這個文字輸入框可以輸入至多128個字元,但只有前16個字元才會真正有效顯示出來。當你新增了觸發方式為『按鈕模式』的指令後,再開啟對話介面,在『NPC的渲染圖』和『對話方塊』下面將會出現一些按鈕,上面顯示著那些你自定義的文字(如果你啥也沒寫,按鈕將不會顯示任何文字)。點選這些按鈕將會執行相應的指令,並且在指令執行完後對話視窗將自動關閉,如果此時還有設定退出時執行的指令,那這些指令也將會執行。

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

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

答案是不會怎樣,遊戲會直接跳過這一行指令繼續執行下去,直到沒有指令可以執行。舉個栗子:

giveinitiatordiamond10

tellrawinitiator“rawtext““text““§a您獲得了一顆鑽石!§r“

WTF

say§einitiator§r獲得了一顆§b鑽石§r!

當上面這些指令被執行時,你的聊天欄將會顯示:

您已被給予鑽石1

您獲得了一顆鑽石!

NPC你的遊戲名獲得了一顆鑽石!

NPC在執行到『WTF』一行,並沒有因為『WTF』是錯誤的指令而停止執行,反而是連錯誤資訊都不放一個就繼續執行下去。

你應該注意到了,在上面的指令中,出現了一個奇怪的目標選擇器:initiator

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

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

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

initiator指代的就是正在和執行指令的NPC互動的玩家。這或許是目前最難記下來的目標選擇器變數了吧。

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

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

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

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

這個問題的答案是『不能』。NPC可以免疫幾乎一切的傷害,包括——摔落、爆炸、生物攻擊、玩家攻擊、火焰灼燒、冰凍、窒息、藥水效果等等等。基本上,NPC對於沒有許可權的玩家來說不可擊殺。

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

這就是本章的全部內容,但這僅僅是NPC的冰山一角。我們將在以後瞭解到更多有關於NPC的內容。

————歷史————

攜帶版基岩版

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

100——重新加入了NPC。

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

1100——現在不能使用summon指令生成NPC,但NPC現在有功能了。

1120——現在NPC又沒功能了。

1160——現在能夠獲取到NPC的刷怪蛋,也能夠使用summon指令生成,同時NPC又有功能了。NPC也不再是隻有20點生命值。

118119——加入了一堆面板

教育版

10——加入了NPC

114118——加入了一堆面板

如遇章節錯誤,請點選報錯(無需登陸)

新書推薦

今天,你玩4399了嗎 凰化龍 吾名孟德:馭人之術還不輕輕鬆鬆 從村超開始的球王 妖小米最新小說 無限跑團從吃開始 在無限遊戲裡天天向上