進入不穩定梅雨季節,疫情持續肆虐,各位礦工是否還在認真的挖土呢?挖土之餘花點時間為喜愛的文章投票吧!
LV. 7
GP 76

【心得】【1.13】Data pack 資料包 介紹及使用

樓主 阿猴 inana0712
GP17 BP-
大家好我是Congyu阿猴,因為版上沒有詳細說明Data pack的功能,所以來打篇介紹文
Data pack主要介紹目錄
        一、Data pack 本體
                1. Data pack介紹
                2. Data pack放置的位置
                3. Data pack建立
                4. Data pack整體架構
        二、Function
                1. function介紹
                2. function放置的位置
                3. function建立
                4. 如何使用function
                5. 如何重複執行function
                6. 如何在載入地圖時執行一次function
        三、Loot Table
                1. loot table介紹
                2. loot table放置的位置
                3. loot table建立
                4.如何使用loot table
        四、Recipe
                1. recipe介紹
                2. recipe放置的位置
                3. recipe建立
                4.如何使用recipe
                5.如何取代原版配方
                6. recipe內容
        五、Advancement
                1. advancement介紹
                2. advancement放置的位置
                3. advancement建立
                4.如何使用advancement
                5.如何移除原版進度
                6.如何移除配方解鎖進度通知
                7. advancement內容
        六、Structure
                1. structure介紹
                2. structure放置的位置
                3. structure建立
                4.如何使用structure
        七、Tag
                1. tag介紹
                2. tag放置的位置
                3. tag建立
                4. 如何使用tag
                5. tag內容

一、Data pack 本體

1. Data pack介紹
Data pack 的主要功能是把很多可自定義化的功能全部存在一起放進地圖並且可以隨處移動到不同的地圖,因他的設定比起更容易把複數的Data pack組合在一起且不容易衝突。(1.12很多自定義選項並沒有整合)
俗稱一鍵指令,因可以利用其內容來完成1.12以前的一鍵指令方塊,且功能更強大
當新的Data pack被安裝時將被默認為最高優先級的Data pack,可以用/datapack來改變
Data pack 有分兩種形式 1.資料夾 2. zip壓縮檔

2. Data pack放置的位置
位置位於 .minecraft/saves/地圖名稱/datapacks

3. Data pack建立
創立一個資料夾,名稱任意中文也可以不影響使用
並於資料夾裡建立
一、名子是data的資料夾
二、pack.mcmeta
要注意副檔名是mcmeta可以先用記事本建立文字文件再修改副檔名
pack.mcmeta內容是

  • {
  •     "pack": {
  •             "pack_format": 1,
  •             "description": "描述"
  •     }
  • }
pack_format   數字可以任意不影響使用,只有材質包才會影響
description可以使用任意文字如果要使用中文檔案編碼請使用UTF-8
如果要建立zip壓縮檔的Data pack 只壓縮上述這兩個檔案就可,不要把整個資料夾壓縮會沒用
data裡的自訂資料夾可建立複數個

4. Data pack整體架構

自訂名稱資料夾1 (不影響主要指令使用)
pack.mcmeta
data
        ├ minecraft (用於特殊使用)
        自訂名稱資料夾2 (影響主要指令使用)
                │
                ├ functions資料夾
                │        └ (function).mcfunction
                │     
                ├ loot_tables資料夾
                │        └ (loot_table).json
                │     
                ├ recipes資料夾
                │        └ (recipe).json
                │     
                ├ advancements資料夾
                │        └ (advancement).json
                │     
                ├ structures資料夾
                │        └ (structures).nbt
                │     
                └ tags資料夾
                        ├ blocks 資料夾
                        │        └ (tag).json
                        ├ items資料夾
                        │        └ (tag).json
                        └ functions資料夾
                                  └(tag).json

注意: data裡開始的資料夾和檔案名稱都只允許 小寫az . _ - 這三個符號
例如上面 自訂名稱資料夾2 的名子就是不可行的
以下範例寫的 自訂名稱2 都是為了易於解釋才用的

二、Function

1.function介紹
function可以是把多條指令打在一個文件檔裡並且用指令來呼叫那個檔案來執行文件檔裡的所有指令,而可以利用function來實現不用指令方塊來完成指令

其中一個好處是當選取一個實體要執行多條指令時可以不必重複選取實體來執行每條命令,利用function可以只選取一次來執行多條進而省資源

2.function放置的位置
位置位於 datapacks/自訂名稱1/data/自訂名稱2/functions
也可設定子資料夾放進裡面

3. function建立
要建立function 先建一個文字文件,存檔編碼使用UTF-8,副檔名使用mcfunction
檔名只允許 小寫az . _ - 這三個符號
並於檔案裡打上你要執行的指令,每一行就是一條指令,開頭不能有 /
如果為錯誤的指令遊戲會認為這為失效檔案而不讀取

4. 如何使用function
假如我 自訂名稱2資料夾名為 test function檔名為hello
指令打 /function test:hello

如果我在functions資料夾裡創建子資料夾名為gamegame裡面有functionboy
指令打 /function test: game/boy

5. 如何重複執行function
可用重複型指令方塊執行function 或者
datapacks/自訂名稱1/data/minecraft/tags/functions 裡建立一個tick.json
文件內容範例

  • {
  •         "values": [
  •                 "test:hello",
  •                 "test:game/boy"
  •         ]
  • }
test:hello test:game/boy 就會在每tick執行一次

6. 如何在載入地圖時執行一次function
datapacks/自訂名稱1/data/minecraft/tags/functions 裡建立一個load.json
文件內容範例

  • {
  •         "values": [
  •                 "test:hello",
  •                 "test:game/boy"
  •         ]
  • }
test:hello test:game/boy 就會載入地圖或/reload時執行一次


三、Loot Table

1. loot table介紹
loot_table為生物自訂掉落物或含儲存空間的方塊的自訂內容物(寶藏)
當生物使用loot_table時原本的掉落物將被取代

2. loot table放置的位置
位置位於 datapacks/自訂名稱1/data/自訂名稱2/loot_tables
也可設定子資料夾放進裡面

3. loot table建立
要建立loot_table 先建一個文字文件,存檔編碼使用UTF-8,副檔名使用json
檔名只允許 小寫az . _ - 這三個符號
此為JSON格式檔,如果有打錯任何一個地方遊戲會認為這為失效檔案而不讀取

內容因巴哈版上有詳細文章不多作介紹

4.如何使用loot table
假如我 自訂名稱2資料夾名為 test function檔名為loot
要改變生物的loot_table在生物tag加上DeathLootTable:"test:loot"
例如/summon chicken ~ ~ ~ {DeathLootTable:"test:loot"}

要改變方塊loot_table在方塊tag加上LootTable:"test:loot"
例如/setblock chest ~ ~ ~ {LootTable:"test:loot"}

以上只是範例,生物和方塊不可能用同個loot_table


四、Recipe

1. recipe介紹
recipe為一種自訂合成表,可以合成生存拿不到的東西,目前1.13合成表還無法自訂nbt,所以只能合成普通物件

2. recipe放置的位置
位置位於 datapacks/自訂名稱1/data/自訂名稱2/recipes
也可設定子資料夾放進裡面

3. recipe建立
要建立recipe 先建一個文字文件,存檔編碼使用UTF-8,副檔名使用json
檔名只允許 小寫az . _ - 這三個符號
此為JSON格式檔,如果有打錯任何一個地方遊戲會認為這為失效檔案而不讀取

4.如何使用recipe
Datapack正確安裝且recipe內容沒有打錯時,遊戲內就可使用該配方合成

5.如何取代原版配方
先建立一個取代原版配方的recipe
把該檔放置於datapacks/自訂名稱1/data/minecraft/recipes
即可覆蓋

P.S.有些配方可能無法覆蓋 我在1.13嘗試覆蓋活塞配方並沒有成功

6. recipe內容


五、Advancement

1. advancement介紹
advancement為一種自訂進度(成就),擁有很多觸發選項可以選擇來完成進度,並且可以設定獎勵系統

2. advancement放置的位置
位置位於 datapacks/自訂名稱1/data/自訂名稱2/advancements
也可設定子資料夾放進裡面

3. advancement建立
要建立advancement 先建一個文字文件,存檔編碼使用UTF-8,副檔名使用json
檔名只允許 小寫az . _ - 這三個符號
此為JSON格式檔,如果有打錯任何一個地方遊戲會認為這為失效檔案而不讀取

4.如何使用advancement
當Datapack正確安裝且advancement內容沒有打錯時,遊戲內就會有該進度
要注意的是分頁裡的進度沒有任何一個達成該分頁就不會顯示

5.如何移除原版進度
於以下的5個資料夾裡放入root.json即可移除,檔案內容空白

Minecraft進度
datapacks/自訂名稱1/data/minecraft/advancements/story
冒險進度
datapacks/自訂名稱1/data/minecraft/advancements/adventure
地獄進度
datapacks/自訂名稱1/data/minecraft/advancements/nether
終界進度
datapacks/自訂名稱1/data/minecraft/advancements/end
農牧進度
datapacks/自訂名稱1/data/minecraft/advancements/husbandry

6.如何移除配方解鎖進度通知
於以下的資料夾裡放入root.json即可移除,檔案內容空白
datapacks/自訂名稱1/data/minecraft/advancements/recipes
如果移除通知將看不到尚未合成過的新合成表
可以使用 /recipe give @s * 取得所有配方

7. advancement內容


六、Structure

1. structure介紹
structure為結構方塊建立的檔案
檔案內容物為遊戲內使用結構方塊所儲存的方塊和實體的資料

2. structure放置的位置
位置位於 datapacks/自訂名稱1/data/自訂名稱2/structures
也可設定子資料夾放進裡面

3. structure建立
於遊戲中使用結構方塊儲存區域
並於 .minecraft\saves\地圖名稱\generated 裡取得

4.如何使用structure
假如我 自訂名稱2資料夾名為 test structure裡檔名為 dice
結構方塊裡打test:dice即可讀取資料


七、Tag

1. tag介紹
tag為一種標籤資料用於想要一次偵測大量不同方塊或物品
利用建立檔案來設定方塊或物品的共同標籤來省略利用指令大量偵測的方法
也可以設定function的共同標籤

目前還不能偵測物品和方塊的nbt

2.tag放置的位置

方塊標籤
位置位於 datapacks/自訂名稱1/data/自訂名稱2/tags/blocks

物品標籤
位置位於 datapacks/自訂名稱1/data/自訂名稱2/tags/items

function標籤
位置位於 datapacks/自訂名稱1/data/自訂名稱2/tags/functions

也可設定子資料夾放進裡面

3.tag建立
要建立tag 先建一個文字文件,存檔編碼使用UTF-8,副檔名使用json
檔名只允許 小寫az . _ - 這三個符號
此為JSON格式檔,如果有打錯任何一個地方遊戲會認為這為失效檔案而不讀取

4.如何使用tag
假如我 自訂名稱2資料夾名為 test tag/blocks裡檔名為 dice

假如我要偵測方塊
execute if block ~ ~ ~ #test:dice run say 1

使用標籤形式時要於最前端使用#
Minecraft本身就提供很多標籤
例如:#minecraft:planks 可以偵測所有種類的木頭
可利用於自訂合成配方來選擇所有木頭

也可用於設定CanPlaceOn方塊標籤上
所以可製作tag檔裡面包含所有的minecraft block id
用於CanPlaceOn方塊標籤上
就可以用很短的一串文字來製作可以放在所有地方的方塊
而且也易於編輯


只是打那個檔出來很累人

5. tag內容
17
-
未登入的勇者,要加入 2 樓的討論嗎?
板務人員:

1294 筆精華,06/03 更新
一個月內新增 3
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】