LV. 13
GP 23

RE:【情報】1.13.2 中大型戰鬥RPG <<空島-救世錄>> 更新版本V1.0.4

樓主 星夜下的傑森 seer007100
GP4 BP-

作者標示-非商業性

本授權條款允許使用者重製、散布、傳輸以及修改著作,但不得為商業目的之使用。使用時必須按照著作人指定的方式表彰其姓名。

你好,首先感謝你製作這個地圖。

經過我和朋友的研究後,我們發現這個地圖無法在非官方伺服器使用的其中一個原因是因為你使用了錯誤的判斷指令

以 Hill 專用鐵「搞」為例,你為該鐵鎬設定了以下的 NBT 值:

{
  id: "minecraft:iron_pickaxe",
  Count: 1b,
  tag: {
    display: { Name: "{\"text\":\"§fHill專用鐵搞\"}" },
    Damage: 0,
    Enchantments: [
      { id: "minecraft:unbreaking", lvl: 5 }
    ]
  }
}

而用於判斷該鐵鎬是否位於玩家身上的指令則如下:

/datapacks/Redemptive Revelation of Sky Island/data/rrsi/functions/system/mission/detect/side/find_pickaxe.mcfunction
execute ... if entity @e[nbt= {Inventory: [{id: "minecraft:iron_pickaxe", tag: {display: {Name: "{\"text\":\"§fHill專用鐵搞\"}"}, Enchantments: [{lvl: 5, id: "minecraft:unbreaking"}], Damage: 0}}]}] run ...

然而,你以上的判斷指令卻會引致嚴重的問題。

根據 Minecraft Wiki 的官方資料,附魔等級的 NBT tag(即 lvl)可以是「TAG_Short」(2 字節整數,-32,768 至 32767)或「TAG_Int」(4 字節整數,-2,147,483,648 至 2,147,483,647)。但是使用 /execute 進行比較時,Minecraft 會將相同整數大小但整數類型不同的 NBT tag 視為不同的數值。

雖然在單人遊戲與官方伺服器沒有對數值進行 normalization(正常化,即是將 TAG_Short 轉換為 TAG_Int,或將在 TAG_Short 數值範圍內的 TAG_Int 轉換為 TAG_Short),但 Spigot 伺服器則會進行這項操作。

除此之外,耐久度的 NBT tag(即 Damage)也是其中一個引起問題的 tag。這個 NBT Tag 的預設數值是 0,即是這個 tag 是 optional 的。經過實際測試,大部分情況下這個標籤在未用過的物件都不會存在。可能正因為這個原因,Spigot 伺服器在 normalization 時會將數值為 0Damage tag 移除。

其實要解決這個問題並不困難,只要使用一個自訂的 NBT tag(例如 isHillPickaxe),這樣的話單人遊戲、官方伺服器甚至非官方伺服器都不會修改這個 tag。

以下是經過修改後,Hill 專用鐵鎬的 NBT 值:

{
  id: "minecraft:iron_pickaxe",
  Count: 1b,
  tag: {
    display: { Name: "{\"text\":\"§fHill 專用鐵鎬\"}" },
    Damage: 0,
    Enchantments: [
      { id: "minecraft:unbreaking", lvl: 5 }
    ],
    isHillPickaxe: 1b
  }
}

再加上以下經過修改後,用於判斷該鐵鎬是否位於玩家身上的指令:

execute ... if entity @e[nbt= {Inventory: [{id: "minecraft:iron_pickaxe", tag: {isHillPickaxe: 1b}}]}] run ...

這樣的話,你的指令變更加簡潔而且更加可靠, 更重要的是你的地圖可以在非官方伺服器使用。
4
-
未登入的勇者,要加入討論嗎?
板務人員:

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


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

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